Que sont les donjons modulaires ?
Les donjons modulaires sont un système de donjons introduit dans BetterStructures 2.0.0 et versions ultérieures. Au lieu d'apparaître comme un seul schematic fixe, les donjons modulaires sont assemblés dynamiquement à partir de petits modules façonnés à la main. Cette approche permet de créer de grands donjons à plusieurs étages qui semblent uniques dans chaque monde tout en s'intégrant harmonieusement au Minecraft vanilla.
Comment les donjons modulaires sont-ils générés
-
Modules Chaque module est généralement construit selon une taille configurable (par défaut 16x16x16 blocs, bien que certains packs de contenu utilisent 32x16x32 ou d'autres dimensions). Les modules sont conçus avec des points de connexion standardisés à l'aide d'un système de balises de bordure, afin de pouvoir se connecter à d'autres modules sans espaces ni chevauchements. Les dimensions d'un donjon sont définies à l'aide des options de configuration
moduleSizeXZetmoduleSizeYdans la configuration du générateur de modules. Les modules peuvent contenir des couloirs, des salles, des escaliers ou des espaces d'affrontement spéciaux. -
Processus de génération Lorsqu'un donjon modulaire se génère dans un nouveau chunk, BetterStructures utilise un algorithme Wave Function Collapse (WFC) pour assembler procéduralement les modules à partir du pool disponible. Le système sélectionne aléatoirement des modules compatibles en se basant sur la correspondance des balises de bordure et les « coud » ensemble pour former un donjon complet. Le temps de génération varie selon les performances du serveur, la taille du donjon (rayon), la plage verticale, le nombre de modules et la complexité des contraintes. Le système utilise une répartition de la charge de travail pour éviter le lag du serveur pendant la génération.
-
Taille du donjon Les donjons peuvent être configurés pour se générer à différentes tailles à l'aide du paramètre de rayon. Des valeurs de rayon plus grandes créent des donjons nettement plus grands, pouvant s'étendre sur des centaines de blocs. La plupart des donjons comprennent plusieurs étages, reliés par des modules d'escalier ou des puits verticaux. Les connexions verticales entre les étages sont réalisées via les entrées
up/downde la carte de balises de bordurebordersd'un module : la face supérieure d'un module se connecte à un voisin situé au-dessus lorsque leurs balises de bordure opposées correspondent.
Variété et intégration des packs
-
Free Pack Le Dungeoneering Modules Free Pack comprend 15 modules. Il fonctionne comme un donjon entièrement jouable à lui seul.
-
Premium Pack Le Dungeoneering Modules Premium Pack ajoute 38 modules supplémentaires. Combinés au Free Pack, les deux ensembles s'entrelacent en un seul système de donjon avec un pool de modules bien plus large. Cela réduit la répétition et augmente la variété dans les agencements générés.
-
Intégration des props Si vous installez également le BetterStructures Prop Pack (via FreeMinecraftModels), les donjons modulaires afficheront des props avec des modèles personnalisés tout au long des constructions, comme le montrent nos captures d'écran de présentation. Sans le prop pack, les donjons fonctionneront toujours normalement, mais sans les modèles décoratifs.
Intégration EliteMobs
Bien que la majeure partie du donjon ne repose que sur BetterStructures et les mobs vanilla de Minecraft, certains donjons proposent des combats de boss :
- Si EliteMobs et FreeMinecraftModels sont tous deux installés → combat de boss personnalisé complet avec modèle.
- Si seul FreeMinecraftModels est installé → le modèle du boss apparaît comme prop décoratif.
- Si aucun n'est installé → la salle du boss sera tout simplement vide.
Le système utilise un système d'apparition basé sur des panneaux avec des balises spéciales pour placer des entités et des conteneurs dans des zones désignées. Les niveaux des boss sont mis à l'échelle en fonction de la distance par rapport au centre du donjon, offrant un défi adapté à travers toute la structure.
Types de panneaux de module
| Balise de panneau | Ligne 1 | Lignes supplémentaires | Description |
|---|---|---|---|
[spawn] | [spawn] | Type d'entité sur la ligne 2 | Fait apparaître une entité vanilla à l'emplacement du panneau |
[pool: poolname] | [pool: poolname] | — | Fait apparaître un boss aléatoire depuis le pool d'apparition nommé |
[chest] | [chest] | — | Place un coffre à l'emplacement du panneau |
[trapped_chest] | [trapped_chest] | — | Place un coffre piégé à l'emplacement du panneau |
[barrel] | [barrel] | — | Place un tonneau à l'emplacement du panneau |
[exit] | [exit] | Noms de fichiers de schematics d'ascenseur sur les lignes 2-3 | Marque un point de sortie avec des schematics d'ascenseur haut/bas |
Si EliteMobs n'est pas installé mais qu'un pack de contenu le nécessite, les administrateurs recevront un message d'avertissement.
Cette conception garde les donjons modulaires compatibles avec les configurations de style vanilla, tout en offrant une intégration plus poussée aux utilisateurs disposant de plugins supplémentaires.
Pools d'apparition
Les panneaux [pool: poolname] lisent les fichiers de configuration de pools d'apparition dans le dossier spawn_pools/. Chaque fichier de pool d'apparition est une petite configuration YAML comportant ces champs :
| Champ | Par défaut | Description |
|---|---|---|
isEnabled | true | Si ce pool d'apparition est activé |
poolStrings | [] | Liste des noms de fichiers de boss EliteMobs éligibles pour ce pool |
minLevel | -1 | Niveau minimum pour les boss instanciés issus de ce pool (-1 = non spécifié) |
maxLevel | -1 | Niveau maximum pour les boss instanciés issus de ce pool (-1 = non spécifié) |
Lorsqu'un panneau [pool: poolname] est traité, BetterStructures recherche poolname.yml (éventuellement avec le spawnPoolSuffix du générateur ajouté) et choisit un boss aléatoire parmi les poolStrings du pool. Pour les boss instanciés, le niveau d'apparition est mis à l'échelle entre minLevel et maxLevel selon la distance du boss par rapport au centre du donjon.
Intégration MythicMobs
BetterStructures prend également en charge l'intégration MythicMobs pour des rencontres de mobs personnalisées dans les donjons modulaires.
Lorsque MythicMobs est installé, les packs de structures peuvent faire apparaître des MythicMobs personnalisés dans le cadre de la génération de donjons. Cela permet des rencontres de mobs et des combats de boss plus sophistiqués que ce que le Minecraft vanilla ou EliteMobs proposent.
Si MythicMobs n'est pas installé, le plugin avertira les administrateurs disposant des permissions appropriées et fournira un lien de téléchargement.
Intégration FMM
Les donjons modulaires peuvent aussi tirer parti des props FreeMinecraftModels (FMM) lors de leur création.
- Si FMM est installé, tous les props placés par le créateur ou le constructeur du module apparaîtront dans le donjon généré.
- Les props sont purement décoratifs et n'affectent pas le gameplay, mais ils améliorent la fidélité visuelle et l'immersion de l'environnement.
- Si FMM n'est pas installé, le donjon se générera tout de même normalement, mais ces props personnalisés ne seront pas affichés.
Cela garantit que les créateurs peuvent concevoir des donjons avec des détails supplémentaires tout en maintenant la compatibilité pour les joueurs qui n'ont pas FMM installé.
Dimensions des modules
Important : la taille des modules est configurable, pas fixe.
Chaque générateur de modules définit sa taille de module standard à l'aide de :
moduleSizeXZ: largeur et profondeur en blocs (par défaut : 16)moduleSizeY: hauteur en blocs (par défaut : 16)
Taille par défaut : 16×16×16 blocs Alternative courante : 32×16×32 blocs (utilisée dans certains packs de contenu)
Pour les créateurs de modules :
- Vérifiez la valeur de
moduleSizeXZetmoduleSizeYdans la configuration de votre générateur - Construisez TOUS les modules de ce générateur en respectant exactement ces dimensions
- Des tailles non concordantes entraîneront des échecs de connexion
Définir des dimensions personnalisées : Dans votre fichier de configuration du générateur de modules :
moduleSizeXZ: 32 # Width and depth
moduleSizeY: 16 # Height
Remarque : tous les modules d'un générateur doivent utiliser les mêmes dimensions. Vous ne pouvez pas mélanger des modules 16×16×16 et 32×16×32 dans le même système de donjon.
Champs de configuration du générateur de modules
Au-delà de moduleSizeXZ et moduleSizeY, la configuration du générateur de modules prend en charge les champs suivants :
| Champ | Par défaut | Description |
|---|---|---|
radius | 1 | Rayon du donjon en chunks |
edges | false | Si les modules de bordure sont générés |
startModule | — | Liste du/des module(s) de départ pour la génération |
minChunkY | 0 | Limite verticale minimale de chunk |
maxChunkY | 0 | Limite verticale maximale de chunk |
moduleSizeXZ | 16 | Largeur et profondeur des modules en blocs |
moduleSizeY | 16 | Hauteur des modules en blocs |
debug | false | Active le mode débogage pour le dépannage de la génération |
useGradientLevels | false | Active une mise à l'échelle des niveaux basée sur un gradient pour les entités apparues |
spawnPoolSuffix | — | Suffixe ajouté aux noms de pools d'apparition pour ce générateur |
isWorldGeneration | false | Si ce générateur est utilisé pour la génération de monde |
treasureFile | — | Fichier de configuration de trésor pour les coffres de ce donjon |
generateLootInBarrels | true | Si les tonneaux des modules doivent être remplis de butin |
barrelTreasureFilename | treasure_barrel_food.yml | Fichier de configuration de trésor utilisé pour remplir les tonneaux de ce donjon |
validWorlds | — | Liste des noms de mondes valides où le donjon peut se générer |
validWorldEnvironments | — | Liste des environnements de monde valides |
centerModuleAltitude | 0 | Altitude du module central |
Champs de configuration par module
Chaque module individuel peut définir les champs de configuration suivants :
| Champ | Par défaut | Description |
|---|---|---|
isEnabled | true | Si ce module est activé |
weight | 100 | Poids de sélection de ce module pendant la génération |
repetitionPenalty | 0 | Pénalité appliquée lorsque ce module est sélectionné plusieurs fois |
noRepeat | false | Empêche ce module de se répéter |
enforceVerticalRotation | false | Applique les contraintes de rotation verticale |
enforceHorizontalRotation | false | Applique les contraintes de rotation horizontale |
minY | -4 | Niveau Y minimum pour ce module |
maxY | 20 | Niveau Y maximum pour ce module |
biome | default | Exigence de biome pour ce module |
minecraftBiome | null | Exigence de biome Minecraft pour ce module |
treasureFile | — | Fichier de configuration de trésor pour les coffres de ce module |
generateLootInBarrels | true | Si les tonneaux de ce module doivent être remplis de butin |
barrelTreasureFilename | treasure_barrel_food.yml | Fichier de configuration de trésor utilisé pour remplir les tonneaux de ce module |
borders | — | Carte de balises de bordure définissant la compatibilité de connexion |
cloneConfig | — | Clone les paramètres depuis un autre fichier de configuration de module |
compoundModule | — | Lie ce module en tant que partie d'un module composé (multi-parties) |
isAutomaticallyPlaced | true | Si le module est placé automatiquement pendant la génération |
Remarque : les faces d'un module pouvant se connecter à des voisins sont entièrement contrôlées par la carte de balises de bordure borders, et non par un quelconque interrupteur « passable » par face. Deux modules se connectent sur une face lorsque leurs balises de bordure opposées correspondent.