Configuration avancée du serveur Hytale

De Survival Servers
Aller à la navigation Aller à la recherche

Ce guide couvre la configuration avancée du serveur Hytale, notamment les paramètres du monde, les arguments de ligne de commande et l’architecture de maillage de serveurs.

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 Liste des joueurs autorisés
config.json universe/worlds/[WorldName]/ Paramètres par monde

Configuration du serveur (config.json)

Le fichier config.json principal, à la racine de votre serveur, contrôle les paramètres globaux du serveur :

{
  "Version": 3,
  "ServerName": "Hytale Server",
  "MOTD": "",
  "Password": "",
  "MaxPlayers": 100,
  "MaxViewRadius": 32,
  "LocalCompressionEnabled": false,
  "Defaults": {
    "World": "default",
    "GameMode": "Adventure"
  },
  "ConnectionTimeouts": {
    "JoinTimeouts": {}
  },
  "RateLimit": {},
  "Modules": {},
  "LogLevels": {},
  "Mods": {},
  "DisplayTmpTagsInStrings": false,
  "PlayerStorage": {
    "Type": "Hytale"
  }
}
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 Activer la compression du réseau local 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 performance : le manuel officiel de Hytale recommande de limiter MaxViewRadius à 12 chunks (384 blocs), tant pour les performances que pour le gameplay. La valeur par défaut de 32 équivaut à environ 64 chunks Minecraft et augmentera fortement l’utilisation de la RAM.

Modification des fichiers de configuration

Pour les clients Survival Servers

  1. Connectez-vous à votre panneau de contrôle
  2. Cliquez sur Stop pour arrêter votre serveur
  3. Cliquez sur Fichiers de configuration ou utilisez 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. Voici la structure documentée de la configuration d’un monde :

{
  "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 (obligatoire) None
--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 ./backups
--backup-frequency <mins> Intervalle de sauvegarde en minutes 60
--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