Le serveur Hytale est le moteur de votre monde virtuel, gérant tout, des interactions des joueurs à la génération du terrain. Une connaissance approfondie de sa structure vous permettra de tirer le meilleur parti des capacités de personnalisation offertes par le jeu.
Que vous souhaitiez ajouter de nouveaux blocs, des objets uniques ou des mécaniques de jeu complexes, tout commence par le bon placement des fichiers.
Dossiers et fichiers essentiels du serveur Hytale
Voici les principaux dossiers et fichiers que vous trouverez à la racine de votre installation serveur Hytale, ainsi que leurs rôles.
| Dossier/Fichier | Fonction | Détails pertinents |
|---|---|---|
HytaleServer.jar | Le programme exécutable principal du serveur. | C’est le cœur de votre monde Hytale, lancé via Java 25. Il contient le code fondamental pour les mécaniques de jeu, la création du monde et la gestion des connexions des joueurs. |
Assets.zip | Archive compressée contenant toutes les ressources de jeu essentielles. | Comprend les modèles 3D, les textures de base, les sons, les configurations d’éléments (blocs, objets, personnages non-joueurs) et les systèmes de création du monde par défaut. Sans ce fichier, le serveur ne démarrera pas correctement. |
config.json | Fichier de configuration global du serveur. | Contient les paramètres généraux du serveur, tels que le nom du serveur, le port réseau (par défaut 5520 UDP), les arguments de la machine virtuelle Java, et d’autres ajustements liés à la performance et aux fonctionnalités de base. |
permissions.json | Gère les autorisations des joueurs et des groupes. | Définit quels joueurs ont accès à quelles commandes ou fonctionnalités. Le système d’autorisation permet d’attribuer des privilèges spécifiques (ex: l’accès à certaines commandes d’administration). Il peut également prendre en charge des mécanismes de stockage personnalisés. |
whitelist.json | Liste des joueurs autorisés à se connecter au serveur. | Permet de restreindre l’accès au serveur à un groupe spécifique de joueurs en utilisant leurs identifiants uniques. |
bans.json | Liste des joueurs bannis du serveur. | Enregistre les bannissements, y compris les raisons et la durée. Un joueur dont le nom figure ici ne peut pas se connecter. |
mods/ (ou plugins/) | Contient les modifications côté serveur (extensions Java). | C’est le répertoire où vous déposez les fichiers .jar de vos extensions ou autres ajouts. Ces programmes enrichissent les fonctionnalités du serveur (mini-jeux, économie, gestion de chat, par exemple un filtre de discussions). Le serveur les charge automatiquement au démarrage. |
earlyplugins/ | Dossier pour les extensions à chargement anticipé. | Destiné aux extensions qui doivent s’exécuter très tôt dans le cycle de vie du serveur, souvent pour des modifications de bas niveau ou des intégrations complexes. Son utilisation est plus avancée et demande une compréhension fine du fonctionnement du serveur. |
logs/ | Contient les fichiers journaux d’activité du serveur. | Enregistre tous les événements, messages et erreurs générés par le serveur et ses extensions. Ce dossier est essentiel pour le débogage et le suivi des activités. Des informations détaillées peuvent aider à identifier l’origine des problèmes. |
universe/ | Contient les données de tous les mondes jouables sur le serveur. | Ce dossier est la racine de vos sauvegardes de monde. Chaque monde y possède son propre sous-dossier, contenant ses propres configurations et données spécifiques, telles que l’avancement des joueurs et les structures sauvegardées. |
.cache/ | Cache pour les fichiers optimisés du serveur. | Stocke des versions optimisées de certains fichiers pour améliorer les temps de démarrage et les performances générales du serveur. Il est généralement inutile et déconseillé de modifier ce dossier manuellement. |
Structure des mondes (universe/worlds/<NomDuMonde>/)
Chaque monde que vous créez ou que vous utilisez sur votre serveur Hytale dispose de sa propre arborescence de fichiers, gérant ses particularités et ses données spécifiques.
| Dossier/Fichier | Fonction | Détails pertinents |
|---|---|---|
<NomDuMonde>/ | Dossier dédié à un monde spécifique (ex: lobby, créatif, arène_pvp). | Chaque monde fonctionne sur son propre fil d’exécution. Il contient toutes les informations uniques à ce monde, de la manière dont il est généré à son état actuel. |
config.json | Configuration spécifique au monde. | Définit les règles de création du monde (type de générateur, graine, niveau de l’eau), l’état du jeu (PvP activé, dégâts de chute), et les extensions requises pour ce monde. Cette configuration est chargée au démarrage du monde. |
regions/ | Stocke les données des régions de terrain générées. | Contient les blocs, les structures (éléments préfabriqués) et les informations sur les portions de monde (chunks). C’est ici que les modifications de terrain et de structures sont enregistrées. La création du terrain utilise des fonctions de densité pour définir la topographie et des fournisseurs de matériaux pour le type de blocs. |
playerdata/ | Stocke les données individuelles des joueurs dans ce monde. | Contient l’inventaire des joueurs, leurs positions enregistrées, leurs statistiques et d’autres informations spécifiques à leur progression dans ce monde. |
entities/ | Sauvegardes des entités non-joueurs (personnages, créatures, objets spéciaux). | Stocke l’état des entités dynamiques qui ne sont pas des blocs ou des joueurs, y compris leurs attributs, leur intelligence artificielle et leurs déplacements. |
prefabs/ | Contient les définitions des structures préfabriquées spécifiques à ce monde. | Les « prefabs » sont des constructions réutilisables (villages, donjons) qui peuvent être placées pendant la génération du monde ou via des outils d’édition. |
logs/ | Journaux spécifiques à ce monde. | Enregistre les événements et les informations propres à ce monde, utiles pour le débogage ou l’analyse des performances d’un monde spécifique. |
data/ | Stocke diverses données spécifiques au monde pour les extensions. | Peut contenir des informations d’inventaire, de quêtes, ou d’autres données dynamiques gérées par les extensions pour ce monde. |
Gérer les plugins/mods et les contenus personnalisés
La personnalisation de votre serveur Hytale passe par l’ajout de « packs » de contenu et de « plugins » (mods).
| Dossier/Fichier | Fonction | Détails pertinents |
|---|---|---|
[NomDeL'Extension].jar | Fichier exécutable de l’extension Java. | Ce fichier est placé dans le dossier mods/ du serveur. Il contient tout le code compilé de votre extension, ses logiques et parfois des ressources (éléments graphiques ou de données) incluses. |
manifest.json (dans le .jar ou pack) | Décrit l’extension et ses exigences. | Indique le nom de l’extension, la version, l’auteur, une description, la classe principale (Main), et les dépendances nécessaires. Il signale aussi si l’extension inclut un ensemble de ressources ( IncludesAssetPack: true), ce qui est courant pour les contenus personnalisés (blocs, objets). |
Common/ (dans le .jar ou pack) | Ressources partagées (côté client). | Contient les fichiers qui seront envoyés aux clients pour l’affichage : modèles 3D (.blockymodel), textures (.png), animations (.blockyanim), icônes. Ces éléments sont essentiels pour que les joueurs voient correctement les objets et blocs personnalisés. Les textures peuvent être stockées dans un dossier de textures de blocs. |
Server/ (dans le .jar ou pack) | Définitions des ressources (côté serveur). | Contient les définitions JSON/YAML des blocs (Item/Items/*.json), des catégories d’objets (Item/Category/*.json), et des fichiers de traduction (Languages/en-US/*.lang). Ces fichiers contrôlent le comportement et les propriétés des éléments du jeu. Des sous-dossiers comme Server/Languages/ et Server/Item/ sont typiques. |
Libs/ (dans le .jar) | Bibliothèques Java tierces incluses. | Souvent, les extensions Java utilisent des bibliothèques externes. Elles sont généralement incluses directement dans le fichier .jar de l’extension (via des techniques d’empaquetage) pour éviter les conflits de dépendances entre différentes extensions. |
assets/ (dans le .jar) | Racine pour les ressources embarquées. | Si une extension inclut ses propres ressources, elles sont souvent structurées comme assets/[votre_namespace]/. Cela permet à l’extension de distribuer du contenu (comme des modèles ou des textures) directement avec sa logique. |
earlyplugins/ | Extensions de démarrage anticipé. | Pour les extensions qui nécessitent un chargement avant la plupart des autres, permettant des modifications plus profondes du serveur ou la gestion de fonctionnalités critiques dès le début. |
