Aller au contenu principal

Créer des Spawns

webapp_banner.jpg

Que sont les Spawns Personnalisés ?​

Les Spawns Personnalisés sont utilisés par les Événements et les renforts globaux pour définir comment, où et quand un événement doit faire apparaître le boss pour cet événement.

Les événements et renforts globaux définissent quel spawn ils utilisent en indiquant son nom de fichier.

Créer des Spawns Personnalisés

Les Spawns Personnalisés se trouvent dans le dossier customspawns. Un Spawn Personnalisé peut être utilisé par plusieurs événements en même temps, vous n'avez donc pas besoin d'en créer un par événement.

Voici un exemple de Spawn Personnalisé :

isEnabled: true
validWorldEnvironments:
- NORMAL
- CUSTOM
bypassWorldGuard: false
isSurfaceSpawn: true

Créer un Spawn Partout​

Pour créer un spawn qui peut se produire n'importe où, votre configuration devrait ressembler à ceci :

isEnabled: true
canSpawnInLight: true

Cette configuration supprime la restriction de lumière sans ajouter de filtre de monde, d'heure ou de lune. La liste des mondes activés, les limites Y par défaut, les joueurs proches éligibles, les chunks chargés, les flags de protection et les contrôles de placement ci-dessous restent applicables.

Si vous souhaitez créer un spawn plus personnalisé, continuez la lecture ci-dessous.

Valeurs​


isEnabled​

Définit si le spawn est activé.

CléValeursDéfaut
isEnabledBooleantrue
Exemple
isEnabled: true

lowestYLevel​

Définit le niveau Y minimal. La valeur par défaut 0 exclut les grottes à Y négatif. Utilisez une valeur comme -64 pour autoriser une recherche souterraine plus profonde. Cela ne change ni le tirage Y initial ni la limite interne de la recherche ascendante.

CléValeursDéfaut
lowestYLevelInteger0
Exemple
lowestYLevel: 0

highestYLevel​

Définit le niveau Y le plus haut (hauteur de la carte) utilisé.

CléValeursDéfaut
highestYLevelInteger320
Exemple
highestYLevel: 320

validWorlds​

Filtre les mondes lors de la sélection normale des joueurs, y compris pour les événements chronométrés. Omettez-le pour ne pas ajouter de filtre propre ; ValidWorlds.yml et les autres contrôles restent applicables. Les renforts globaux prennent directement les joueurs du monde de l'invocateur et ignorent ce filtre.

CléValeursDéfaut
validWorldsString Listaucun
Exemple
validWorlds:
- WORLD
- FUN_LAND

Si vous voulez que tous vos mondes soient valides, vous pouvez simplement ne pas utiliser ce paramètre ou le formater ainsi :

validWorlds: []

validWorldEnvironments​

Filtre les environnements lors de la sélection normale des joueurs. Omettez-le pour ne pas ajouter de restriction d'environnement. Les renforts globaux prennent directement les joueurs du monde de l'invocateur et ignorent ce filtre.

CléValeursDéfaut
validWorldEnvironmentsEnvironment Listaucun
Exemple
validWorldEnvironments:
- NORMAL
- NETHER

Si vous voulez que tous les environnements soient valides, vous pouvez simplement ne pas utiliser ce paramètre ou le formater ainsi :

validWorldEnvironments: []

validBiomesV2​

Définit les biomes où le spawn personnalisé peut se produire. Omettez-le, ou utilisez une liste vide, pour n'ajouter aucune restriction de biome. Ce paramètre s'appelait validBiomes dans les anciennes versions d'EM.

Chaque entrée est une clé de biome. Un nom sans espace de noms, comme plains ou DEEP_OCEAN, est lu comme minecraft:<name>, et la casse n'a pas d'importance. Si une entrée ne correspond à aucun biome enregistré, EliteMobs enregistre un avertissement et désactive tout le fichier de spawn : les événements et renforts globaux qui l'utilisent ne peuvent alors pas apparaître.

Le biome est lu au point candidat tiré au hasard, avant qu'EliteMobs ne détermine son niveau Y final. Consultez Comment un emplacement de spawn est choisi.

CléValeursDéfaut
validBiomesV2Liste de biomesaucun
Exemple
validBiomesV2:
- minecraft:plains
- desert

earliestTime​

Définit l'heure minimale en jeu pour le spawn. Les deux bornes sont incluses. L'intervalle ne peut pas traverser minuit : si earliestTime dépasse latestTime, le spawn ne se produit pas.

Une fois l'emplacement trouvé, EliteMobs vérifie earliestTime, latestTime et moonPhase à chaque tick et y attend que les conditions soient réunies. Après cette attente, il ne revérifie ni la distance aux joueurs, ni la lumière, ni le chargement du chunk, ni WorldGuard. Le test final du zombie et le contrôle de bannière de paix restent exécutés avant de placer le boss.

CléValeursDéfaut
earliestTimeLong0
Exemple
earliestTime: 0

latestTime​

Définit l'heure maximale en jeu pour le spawn, incluse. Elle doit être supérieure ou égale à earliestTime.

CléValeursDéfaut
latestTimeLong24000
Exemple
latestTime: 24000

moonPhase​

Définit la phase lunaire requise pour que le spawn personnalisé se produise.

CléValeursDéfaut
moonPhaseSpécial [1]aucun
Exemple
moonPhase: FULL_MOON

Spécial [1]

Déplier le Tableau
Moon PhaseAperçu
NEW_MOON🌑
WAXING_CRESCENT🌒
FIRST_QUARTER🌓
WAXING_GIBBOUS🌔
FULL_MOON🌕
WANING_GIBBOUS🌖
WANING_CRESCENT🌘
LAST_QUARTER🌗

bypassWorldGuard​

Vise à faire contourner au spawn personnalisé les systèmes de protection tels que WorldGuard.

Ce paramètre ne fait actuellement rien. EliteMobs lit la clé dans votre fichier de spawn mais n'en tient jamais compte : les flags WorldGuard sont toujours vérifiés, quelle que soit la valeur définie ici. Pour permettre à un spawn de se produire à l'intérieur d'une région protégée, définissez plutôt les flags WorldGuard adéquats sur cette région.

CléValeursDéfaut
bypassWorldGuardBooleanfalse

canSpawnInLight​

Contrôle la vérification de lumière lors du choix de l'emplacement. Avec false, la lumière combinée du bloc, y compris celle du ciel, doit être de 8 ou moins. Avec true, ce contrôle est ignoré.

CléValeursDéfaut
canSpawnInLightBooleanfalse
Exemple
canSpawnInLight: false

isSurfaceSpawn​

Définit si le spawn personnalisé ne peut se produire qu'à la surface d'un monde.

CléValeursDéfaut
isSurfaceSpawnBooleanfalse
Exemple
isSurfaceSpawn: false

isUndergroundSpawn​

Définit si le spawn personnalisé ne peut se produire que sous terre.

CléValeursDéfaut
isUndergroundSpawnBooleanfalse
Exemple
isUndergroundSpawn: false

Comment un emplacement de spawn est choisi​

EliteMobs ne parcourt pas le monde à la recherche d'un endroit. Il choisit un joueur en ligne au hasard et se décale à partir de lui :

  1. Un joueur éligible est choisi au hasard. Il est ignoré si ses données EliteMobs ne sont pas chargées, si son monde n'est pas dans ValidWorlds.yml, s'il est dans une région d'instance de donjon, d'arène ou d'épreuve de classe, si son monde interdit l'apparition des mobs ou si validWorlds / validWorldEnvironments l'excluent. Les événements chronométrés excluent aussi les joueurs des mondes de donjon EliteMobs. Le mode de jeu n'exclut pas un joueur.
  2. Le candidat utilise des décalages de 24 à 127 blocs en X et Z, avec un signe indépendant pour chaque axe. Les chunks non chargés sont rejetés ; la recherche ne charge pas de chunks.
  3. Y est déterminé par isSurfaceSpawn, isUndergroundSpawn ou, si aucun n'est activé, par une recherche ascendante de deux blocs d'air au-dessus d'un bloc non traversable.
  4. Le candidat passe ensuite par les validations ci-dessous.

Les renforts globaux utilisent tous les joueurs du monde de l'invocateur au lieu de la liste filtrée de l'étape 1. Ils ignorent donc les contrôles de données chargées, de monde, d'environnement, d'instance et de règle d'apparition des mobs de cette étape. Leurs candidats restent soumis aux contrôles de biome, de hauteur, de proximité, de lumière et de WorldGuard.

Jusqu'à 100 candidats sont essayés, un par tick. Si aucun ne convient, EliteMobs attend une minute et réessaie. Le Y initial est tiré de 0 à 255. La recherche ascendante générique part de ce tirage et s'arrête à highestYLevel ou deux blocs sous la limite de construction du monde, selon la valeur la plus basse. La recherche souterraine descendante s'arrête à Y=-63 même si lowestYLevel est inférieur. Les modes surface et souterrain ont leurs propres recherches ; la surface est prioritaire si les deux sont activés.

Comportement de Validation du Spawn​

EliteMobs vérifie les candidats pendant la recherche, puis effectue le test final du zombie et le contrôle de bannière de paix lorsque l'heure et la lune permettent le spawn :

  • Proximité des joueurs : Les candidats à moins de 24 blocs d'un joueur sont rejetés, selon la distance tridimensionnelle
  • Plafond du Nether : Les spawns au-dessus de Y=127 sont bloqués dans la dimension du Nether
  • Sécurité des blocs : La recherche souterraine exige un sol solide ; la recherche ascendante générique exige un bloc non traversable. Les deux exigent deux blocs d'air au-dessus. Le mode surface utilise le bloc le plus haut de la colonne plus un, sans les mêmes contrôles d'espace libre.
  • Niveau Y : L'emplacement final doit se situer entre lowestYLevel et highestYLevel
  • Règles du jeu : La sélection normale des joueurs respecte la règle d'apparition des mobs du monde (spawnMobs depuis Minecraft 1.21.11, doMobSpawning auparavant). Les renforts globaux ignorent ce contrôle de sélection.
  • Flags WorldGuard : Vérifie les flags elitemobs-events, elitemob-spawning ainsi que le flag mob-spawning propre à WorldGuard
  • Bannières de paix : Avec suppressEvents activé dans PeaceBanner.yml, comme par défaut, un emplacement protégé annule cette tentative. Un événement chronométré programme son prochain événement ; ce contrôle ne relance pas la recherche pour la tentative actuelle.
  • Test d'apparition final : Juste avant l'apparition du boss, EliteMobs fait apparaître puis retire immédiatement un simple zombie vanilla à cet emplacement. Si un autre plugin de protection bloque ce zombie, l'emplacement est écarté et la recherche recommence

Ces contrôles sont automatiques. La lumière et la bannière de paix ont les options décrites plus haut ; bypassWorldGuard ne désactive pas les contrôles WorldGuard.