Configuration avancée du serveur Hytale

De Survival Servers
Aller à la navigation Aller à la recherche

Important : Sauvegardez toujours les fichiers de votre serveur avant de modifier la configuration. Arrêtez votre serveur avant d'éditer tout fichier de configuration.

Emplacements des fichiers de configuration

Fichier Localisation Rôle
config.json Dossier racine du serveur Paramètres principaux du serveur
permissions.json Dossier racine du serveur Rôles et permissions des joueurs
bans.json Dossier racine du serveur Liste des joueurs bannis
whitelist.json Dossier racine du serveur Ancienne liste des joueurs autorisés. Hytale 0.6.6 et versions ultérieures la lisent une fois, la convertissent en permissions de connexion et la renomment whitelist.json.migrated
config.json universe/worlds/[WorldName]/ Paramètres par monde

Configuration du serveur (config.json)

Le config.json principal à la racine de votre serveur contrôle les paramètres globaux du serveur. Voici la structure utilisée par la mise à jour 7 de Hytale :

{
  "Version": 4,
  "ServerName": "Hytale Server",
  "MOTD": "",
  "Password": "",
  "MaxPlayers": 100,
  "MaxViewRadius": 32,
  "LocalCompressionEnabled": false,
  "Defaults": {
    "World": "default",
    "GameMode": "Adventure",
    "HardcoreMode": "None",
    "CrashRecovery": {}
  },
  "ConnectionTimeouts": {},
  "RateLimit": {},
  "Modules": {},
  "LogLevels": {},
  "Mods": {},
  "DisplayTmpTagsInStrings": false,
  "PlayerStorage": {
    "Type": "Hytale"
  },
  "DefaultModsEnabled": true,
  "RequireJoinPermission": false,
  "UniverseResourceStorage": {
    "Type": "Hytale"
  },
  "BanStorage": {
    "Type": "Disk",
    "Path": "bans.json"
  },
  "AuthCredentialStore": {
    "Type": "Encrypted",
    "Path": "auth.enc"
  },
  "Update": {},
  "Backup": {},
  "WorldMap": {}
}
Paramètre Description Recommandé
ServerName Nom d’affichage visible par les joueurs Le nom de votre serveur
MOTD Message du jour Message de bienvenue court
Password Mot de passe du serveur (vide = aucun mot de passe) Laisser vide pour un serveur public
MaxPlayers Nombre maximal de joueurs simultanés Selon la RAM (20-50 en général)
MaxViewRadius Distance de vue des joueurs (en chunks) 12 pour les performances
LocalCompressionEnabled Active la compression du réseau local. Hytale 0.7.0 ne la lit plus, donc elle n’a aucun effet false
Defaults.World Nom du monde par défaut dans lequel les joueurs apparaissent « default »
Defaults.GameMode Mode de jeu par défaut pour les nouveaux joueurs « Adventure » ou « Creative »

Conseil performances : Le manuel officiel de Hytale recommande de limiter MaxViewRadius à 12 chunks (384 blocs) pour les performances comme pour le gameplay. La valeur par défaut est 32, qui est aussi le maximum depuis la mise à jour 7. Une valeur plus élevée dans config.json est ramenée à 32 avec un avertissement au démarrage du serveur.

Modification des fichiers de configuration

Pour les clients Survival Servers

Le plus simple est Server Config, le premier bouton sous TOOLS : modifiez les paramètres, choisissez Apply & Restart ou Apply, puis cliquez sur Save.

  1. Connectez-vous au Command Center
  2. Cliquez sur Stop pour arrêter votre serveur
  3. Sous TOOLS, cliquez sur config.json ou world/config, ou utilisez l’accès FTP
  4. Modifiez le fichier souhaité et enregistrez
  5. Cliquez sur Démarrer pour redémarrer votre serveur

Pour les serveurs auto-hébergés

  1. Arrêtez votre serveur (tapez stop ou appuyez sur Ctrl+C)
  2. Ouvrez le fichier de configuration dans un éditeur de texte
  3. Effectuez vos modifications et enregistrez
  4. Démarrez votre serveur

Configuration du monde (universe/worlds/[WorldName]/config.json)

Chaque monde possède son propre fichier de configuration.

{
  "Version": 4,
  "UUID": {
    "$binary": "j2x/idwTQpen24CDfH1+OQ==",
    "$type": "04"
  },
  "Seed": 1767292261384,
  "WorldGen": {
    "Type": "Hytale",
    "Name": "Default"
  },
  "WorldMap": {
    "Type": "WorldGen"
  },
  "ChunkStorage": {
    "Type": "Hytale"
  },
  "ChunkConfig": {},
  "IsTicking": true,
  "IsBlockTicking": true,
  "IsPvpEnabled": false,
  "IsFallDamageEnabled": true,
  "IsGameTimePaused": false,
  "GameTime": "0001-01-01T08:26:59.761606129Z",
  "ClientEffects": {
    "SunHeightPercent": 100.0,
    "SunAngleDegrees": 0.0,
    "BloomIntensity": 0.30000001192092896,
    "BloomPower": 8.0,
    "SunIntensity": 0.25,
    "SunshaftIntensity": 0.30000001192092896,
    "SunshaftScaleFactor": 4.0
  },
  "RequiredPlugins": {},
  "IsSpawningNPC": true,
  "IsSpawnMarkersEnabled": true,
  "IsAllNPCFrozen": false,
  "GameplayConfig": "Default",
  "IsCompassUpdating": true,
  "IsSavingPlayers": true,
  "IsSavingChunks": true,
  "SaveNewChunks": true,
  "IsUnloadingChunks": true,
  "IsObjectiveMarkersEnabled": true,
  "DeleteOnUniverseStart": false,
  "DeleteOnRemove": false,
  "ResourceStorage": {
    "Type": "Hytale"
  },
  "Plugin": {}
}
Paramètre Description
Seed Seed de génération du monde
IsPvpEnabled Autoriser le combat joueur contre joueur
IsFallDamageEnabled Les joueurs subissent des dégâts de chute
IsGameTimePaused Figer le cycle jour/nuit
IsSpawningNPC Activer l’apparition des mobs
IsAllNPCFrozen Fige tous les PNJ sur place
IsTicking La simulation du monde tourne
IsBlockTicking Mises à jour de blocs (cultures, liquides)
IsSavingPlayers Enregistre les données des joueurs
IsSavingChunks Enregistrer les modifications du monde
SaveNewChunks Enregistrer les nouveaux chunks générés sur le disque
IsUnloadingChunks Décharger les chunks vides
ClientEffects Paramètres des effets visuels (soleil, bloom, rayons de soleil)
DeleteOnUniverseStart Supprimer le monde au démarrage du serveur
DeleteOnRemove Supprimer les fichiers du monde lors du retrait

Pré-génération du monde

La pré-génération crée le terrain à l’avance, ce qui réduit le lag lorsque les joueurs explorent.

Méthode 1 : Exploration en jeu

  1. Démarrez votre serveur et connectez-vous en tant qu’admin
  2. Survolez la carte pour générer les chunks
  3. Le serveur enregistre les chunks au fur et à mesure de votre exploration

Méthode 2 : mods de pré-génération

  1. Ajoutez un mod de pré-génération dans votre dossier mods/
  2. Configurez la taille de la zone et son point central
  3. Exécutez la commande de pré-génération

Méthode 3 : ligne de commande

java -jar HytaleServer.jar --help

Vérifiez les options de pré-génération intégrées.

Architecture en maillage de serveurs (réseaux multi-serveurs)

Hytale prend en charge nativement la connexion de plusieurs serveurs entre eux, sans proxy tiers comme BungeeCord.

Ces fonctionnalités sont implémentées via l’API Java du serveur :

Fonctionnalité Méthode API Description
Parrainage de joueurs PlayerRef.referToServer(host, port, payload) Transférer des joueurs entre serveurs avec une charge utile optionnelle de 4 Ko
Redirection de connexion PlayerSetupConnectEvent.referToServer(host, port) Redirection pendant la négociation, avant la connexion complète
Repli en cas de déconnexion (Disconnect Fallback) Bientôt disponible Reconnexion automatique au serveur de secours en cas de plantage du serveur

Sécurité : les données de redirection (referral) transitent par le client et peuvent être altérées. Signez-les de manière cryptographique (par exemple avec un HMAC et un secret partagé) afin que les serveurs destinataires puissent en vérifier l’authenticité.

Proxies personnalisés : créez des serveurs proxy avec Netty QUIC. Les définitions de paquets sont disponibles dans HytaleServer.jar à l’emplacement com.hypixel.hytale.protocol.packets.

Arguments de ligne de commande

java [JVM options] -jar HytaleServer.jar [server options]

Options JVM

Option Description Exemple
-Xms Allocation mémoire initiale -Xms4G
-Xmx Allocation mémoire maximale -Xmx4G
-XX:+UseG1GC Utilisez le ramasse-miettes G1 Recommandé pour 8 Go et plus
-XX:AOTCache Utiliser le cache AOT pour un démarrage plus rapide -XX:AOTCache=HytaleServer.aot

Options du serveur

Option Description Par défaut
--assets <path> Chemin vers Assets.zip ..\HytaleAssets
--bind <ip:port> Adresse et port d’écoute 0.0.0.0:5520
--auth-mode <mode> authenticated ou offline authentifié
--backup Activer les sauvegardes automatiques Désactivé
--backup-dir <path> Emplacement de stockage des sauvegardes None
--backup-frequency <mins> Intervalle de sauvegarde en minutes 30
--disable-sentry Désactiver les rapports de plantage Activé
--allow-op Autoriser les commandes d’opérateur Désactivé
--accept-early-plugins Charger les plugins expérimentaux (non pris en charge) Désactivé

Exemples de scripts de lancement

Production server (Windows - start.bat):
@echo off
java -Xms6G -Xmx6G -XX:+UseG1GC -XX:AOTCache=HytaleServer.aot -jar HytaleServer.jar --assets Assets.zip --backup --backup-frequency 60
pause

Serveur de production (Linux - start.sh) :

#!/bin/bash
java -Xms6G -Xmx6G -XX:+UseG1GC -XX:AOTCache=HytaleServer.aot -jar HytaleServer.jar --assets Assets.zip --backup --backup-frequency 60

Serveur de développement :

java -Xms4G -Xmx4G -jar HytaleServer.jar --assets Assets.zip --auth-mode offline --disable-sentry

Configuration du pare-feu

Hytale utilise le protocole QUIC sur UDP (et non TCP).

Windows PowerShell :

New-NetFirewallRule -DisplayName "Hytale Server" -Direction Inbound -Protocol UDP -LocalPort 5520 -Action Allow

Linux (iptables) :

sudo iptables -A INPUT -p udp --dport 5520 -j ACCEPT

Linux (ufw) :

sudo ufw allow 5520/udp

Voir aussi