Aller au contenu principal

Créer des Boss

webapp_banner.jpg

Créer des boss personnalisés

Avant de commencer

Où placer les fichiers de boss ?

Les fichiers de boss vont dans le dossier de configuration ~/plugins/EliteMobs/custombosses.

Il est possible de créer des sous-dossiers, comme ~/plugins/EliteMobs/custombosses/mybosses. C'est recommandé pour garder les choses bien organisées.

Un fichier définit un boss, même s'il est possible de faire apparaître le même boss plusieurs fois et même de définir plusieurs emplacements d'apparition pour un même fichier de boss.

Il est possible d'utiliser la webapp pour créer rapidement et facilement des boss personnalisés et bien plus encore.

Configuration minimale possible

Le plus petit fichier de configuration possible pour un Boss Personnalisé est :

Remarquez qu'il s'agit simplement d'un fichier vide. Cela fera malgré tout apparaître un boss personnalisé de type zombie avec un nom personnalisé, car ce sont les valeurs par défaut. Tout ce qui figure sur cette page est optionnel !

Exemple de boss

Voyons à quoi ressemble un fichier de boss.

Exemple
isEnabled: true
entityType: ZOMBIE
name: '&eTest boss'
level: dynamic
timeout: 10
isPersistent: false
healthMultiplier: 2.0
damageMultiplier: 0.5
helmet: GOLDEN_HELMET
chestplate: IRON_CHESTPLATE
leggings: LEATHER_LEGGINGS
boots: CHAINMAIL_BOOTS
mainHand: GOLDEN_AXE
offHand: SHIELD
isBaby: false
powers:
- invulnerability_knockback.lua
spawnMessage: A test boss has been spawned!
deathMessage: A test boss has been slain by $players!
escapeMessage: A test boss entity has escaped!
locationMessage: 'Test entity: $location'
uniqueLootList:
- magmaguys_toothpick.yml:1
dropsEliteMobsLoot: true
dropsVanillaLoot: true
trails:
- BARRIER
onDamageMessages:
- "I've hit you!"
onDamagedMessages:
- "I've been hit!"

Paramètres de base

isEnabled

Définit si le boss est activé.

CléValeursDéfaut
isEnabledtrue / falsetrue
Exemple
isEnabled: true

entityType

Définit le type d'entité du boss.

CléValeursDéfaut
entityTypeÀ choisir ici.
La valeur doit également être présente dans le dossier ~plugins/EliteMobs/mobproperties.
ZOMBIE
Cubes de magma et Slimes

Comme ces types d'entités n'attaquent pas directement les joueurs mais infligent des dégâts par contact, cela peut provoquer de fortes rafales de dégâts en très peu de temps. Pour cette raison, nous déconseillons généralement de les utiliser fréquemment comme mobs Elite. Toutefois, si vous souhaitez malgré tout les utiliser, nous suggérons de régler damageMultiplier autour de 0.1.

Nous recommandons également d'utiliser l'EliteScript suivant pour empêcher les Cubes de magma ou les Slimes de bloquer les joueurs en stun-lock :

eliteScript:
NerfDamage:
Events:
- ZoneEnterEvent
- ZoneLeaveEvent
Zone:
shape: SPHERE
radius: 1
Target:
targetType: SELF
Actions:
- action: SET_MOB_AI
Target:
targetType: SELF
bValue: false
duration: 10
Exemple
entityType: ZOMBIE

name

Définit le nom du boss.

CléValeursDéfaut
nameString, accepte les color codes et les espaces réservés listés ci-dessous"Default Name"
Exemple
name: "$normalLevel &cCool boss!"

create_boss_name_pic_no_level.jpg

Si vous souhaitez inclure le niveau du boss dans son champ de nom, utilisez simplement l'un des espaces réservés suivants.

Espace réservéDescriptionExempleRésultat (pour un boss de niveau 10)
$levelRemplacé par le niveau"$level Cool boss"10 Cool boss
$normalLevelRemplacé par le niveau, conçu pour les mobs normaux"$normalLevel Cool boss"[10] Cool boss
$minibossLevelRemplacé par le niveau, conçu pour les mini-boss"$minibossLevel Cool boss"〖10〗 Cool boss
$bossLevelRemplacé par le niveau, conçu pour les boss"$bossLevel Cool boss"『10』 Cool boss
$reinforcementLevelRemplacé par le niveau, conçu pour les renforts"$reinforcementLevel Cool boss"〔10〕 Cool Boss
$eventBossLevelRemplacé par le niveau, conçu pour les boss d'événement"$eventBossLevel Cool boss"「10」 Cool boss
Exemple
name: "$normalLevel &cCool boss!"

create_boss_name_pic.jpg


level

Définit le niveau du boss.

CléValeursDéfaut
levelNombres Integer positifs ou dynamicdynamic

dynamic est utilisé pour les événements et s'ajuste au niveau des joueurs à proximité au moment de l'apparition du boss. Ce n'est pas recommandé pour les boss régionaux.

Exemple
level: 1

scale

Définit l'échelle (la taille) du boss.

CléValeursDéfaut
scaleMultiplier1.0

Lors de la mise à l'échelle, 1.0 représente la taille par défaut. Pour agrandir l'entité, augmentez la valeur (par exemple 1.2). Pour la rétrécir, diminuez la valeur (par exemple 0.8).

Exemple
scale: 1.2

bossType

Définit le type du boss. Cela sert à afficher les barres de vie de boss et d'autres fonctionnalités.

CléValeursDéfaut
bossTypeNORMAL, MINIBOSS, BOSS, REINFORCEMENT, EVENTNORMAL

MINIBOSS, BOSS et EVENT feront afficher au plugin des barres de vie lorsque les joueurs affrontent ces types de boss.

Note : REINFORCEMENT est généralement attribué automatiquement aux mobs de renfort invoqués, mais peut être défini manuellement si nécessaire.

Exemple
bossType: MINIBOSS

silent

Définit si les sons du boss doivent être coupés.

CléValeursDéfaut
silentBooleanfalse

Lorsque cette option est réglée sur true, elle coupe tous les sons de mobs par défaut de Minecraft, si bien que le boss ne produit plus aucun son.

Exemple
silent: true

healthMultiplier

Définit les points de vie du boss. La valeur de ce paramètre détermine également le type de barre de vie affichée pendant le combat. Des valeurs plus élevées afficheront une barre de vie de mini-boss ou de boss complet.

CléValeursDéfaut
healthMultiplierMultiplier1.0
Boss health is hard-capped, boss damage is not

Les points de vie finaux valent baseHealth × healthMultiplier, et ce produit est plafonné à la valeur settings.attribute.maxHealth.max du serveur définie dans spigot.yml. EliteMobs relève cette valeur à 2048 au démarrage si elle est inférieure, mais jamais au-delà : 2048 est donc le plafond effectif sur un serveur par défaut.

Les points de vie de base suivent la formule 2.1875 × 2^(level / 5), ils doublent donc tous les 5 niveaux. Combiné au plafonnement, chaque healthMultiplier possède un niveau au-delà duquel le boss cesse totalement de gagner des points de vie alors que ses dégâts continuent d'augmenter :

healthMultiplierLes points de vie cessent d'augmenter au niveau
1.050
2.045
5.038
7.036
10.033
20.028
40.023

Au-delà de ce niveau, le boss devient plus fragile par rapport à ses propres dégâts à mesure que vous montez : le joueur le tue en autant de coups, mais meurt plus vite. Lorsque le plafonnement se déclenche, EliteMobs consigne un avertissement nommant le boss, son niveau et le multiplicateur — surveillez la console lorsque vous réglez des boss de haut niveau.

Si vous avez réellement besoin de plus de 2048 PV, augmentez vous-même settings.attribute.maxHealth.max dans spigot.yml ; le plafonnement lit la valeur active du serveur, et non une constante codée en dur.

Exemple
healthMultiplier: 1.5

damageMultiplier

Définit le multiplicateur de dégâts du boss.

CléValeursDéfaut
damageMultiplierMultiplier1.0
Exemple
damageMultiplier: 1.5

isBaby

Définit si le boss utilise la variante bébé du mob. Ne peut s'appliquer qu'aux mobs disposant d'une variante bébé. Si vous souhaitez déguiser le boss tout en le gardant bébé sous son déguisement (assurez-vous que l'entité de déguisement prend également en charge la variante bébé), vous pouvez utiliser ce paramètre :

disguise: HOGLIN:baby
CléValeursDéfaut
isBabytrue / falsefalse
Exemple
isBaby: true

helmet/chestplate/leggings/boots/mainhand/offhand

Définit l'armure du boss. Tous les modèles Minecraft ne sont pas capables d'afficher une armure. L'armure du boss est purement cosmétique et n'affecte pas le gameplay.

CléValeursDéfaut
helmetMaterial, UUIDaucun
chestplateMaterialaucun
leggingsMaterialaucun
bootsMaterialaucun
mainHandMaterialaucun
offHandMaterialaucun

Note : Ce champ vous permet également de définir des modèles personnalisés pour les objets. Pour définir l'ID du modèle personnalisé, ajoutez l'ID après le type de matériau en suivant ce format : ITEM_MATERIAL:ID. Exemple : DIAMOND_SWORD:1 fait porter au boss une épée en diamant avec le modèle personnalisé n°1 de votre pack de textures.

Note 2 : Ce champ vous permet également de définir des couleurs de cuir personnalisées avec le format ITEM_MATERIAL:CODE, où le code est la représentation hexadécimale de la couleur. Exemple : LEATHER_LEGGINGS:ffa500 créerait des jambières orange. Vous pouvez utiliser des codes hexadécimaux, il suffit de retirer le # du code. Vous pouvez obtenir des codes hexadécimaux ici.

Note 3 : Le champ helmet vous permet aussi de faire porter des têtes de joueur aux mobs. Récupérez simplement l'UUID de la tête de joueur que vous souhaitez utiliser et saisissez-le dans le champ helmet. Le joueur doit être en ligne pour que cela fonctionne, sinon la tête sera remplacée par une tête MineCraft générique. Vous pouvez obtenir les UUID des joueurs ici.

Exemple
helmet: 198c4123-cafc-45df-ba79-02a421eb8ce7
chestplate: DIAMOND_CHESTPLATE:1
leggings: LEATHER_LEGGINGS:ffa500
boots: NETHERITE_BOOTS
mainHand: DIAMOND_SWORD
offHand: SHIELD

create_boss_armor.jpg


powers

Définit les pouvoirs dont dispose le boss.

CléValeursDéfaut
powersReportez-vous à la liste ci-dessousaucun
Exemple
powers:
- hyper_loot.lua
- attack_arrow.lua
- mycoolpower.lua

Note : vous pouvez consulter cette page si vous souhaitez voir une liste des pouvoirs préfabriqués que vous pouvez utiliser.

Note : les pouvoirs peuvent être des fichiers .yml (EliteScript) ou .lua (scripts Lua). Les deux types sont pris en charge et peuvent être mélangés librement dans la liste powers. Presque tous les pouvoirs préfabriqués sont désormais en .lua.

Old .yml power names still work

Si un pouvoir .lua existe avec le même nom de base, EliteMobs résout automatiquement une demande .yml vers celui-ci. Les configurations de boss écrites avant la migration vers Lua continuent de fonctionner sans modification — attack_arrow.yml charge de façon transparente attack_arrow.lua. Les nouvelles configurations devraient nommer directement le fichier .lua.


Configuration intermédiaire - Faire apparaître des renforts

Les renforts entrent également dans la catégorie des pouvoirs, en utilisant les paramètres suivants :

Note : les renforts se configurent dans la section powers de votre fichier de configuration de boss, et non dans une section distincte.

Paramètres des renforts
CléDescriptionValeursDéfaut
summonTypeCe qui déclenche l'apparition du renfort. Obligatoire.Reportez-vous à la liste ci-dessousaucun
filenameNom du fichier du boss à faire apparaître comme renfort. Obligatoire.Stringaucun
chanceProbabilité d'apparition du renfort. Optionnel.Double1.0
amountDéfinit le nombre de renforts à faire apparaître. Optionnel.Integer1
inheritAggroFait hériter au renfort l'aggro du boss. Optionnel.true / falsefalse
spawnNearbyFait apparaître les renforts dans un rayon de 30 blocs autour du boss. Optionnel.true / falsefalse
inheritLevelFait hériter au renfort le niveau du boss. Optionneltrue / falsefalse
customSpawnFait apparaître le renfort via le système de spawns personnalisés. Utilisé uniquement pour summonType: GLOBALNom de fichier du Spawn Personnaliséaucun
locationEmplacement d'apparition. Optionnel.world_name,x,y,z ou x,y,z pour un emplacement relatif au boss. Le décalage est relatif à l'emplacement d'apparition pour les boss régionaux. Vous pouvez aussi utiliser same_as_boss pour faire apparaître les renforts dans le même monde que le boss.aucun
lightningRodParamètre spécial pour summonType: ON_COMBAT_ENTER_PLACE_CRYSTAL. Fait apparaître des éclairs autour des cristaux de l'End. Optionnel.true / falseaucun

Les types d'invocation définissent les conditions d'apparition des renforts. Voici la liste des types d'invocation valides :

Types d'invocation
ValeurDescription
ONCEFait apparaître les renforts une seule fois, la première fois que le boss subit des dégâts.
ON_HITFait apparaître les renforts à chaque coup reçu.
ON_COMBAT_ENTERFait apparaître les renforts lorsque le boss entre en combat.
ON_DEATHFait apparaître les renforts lorsque le boss meurt.
GLOBALFait apparaître un renfort pour chaque joueur en ligne. Nécessite que la clé customSpawn ait un spawn personnalisé valide.
ON_COMBAT_ENTER_PLACE_CRYSTALPlace des renforts de type cristal de l'End à l'entrée en combat, à utiliser uniquement avec des combats de dragon personnalisés.

Notez qu'il est également possible de faire apparaître des renforts via les Elite Scripts, ce qui offre des méthodes d'apparition encore plus personnalisables.

Exemple
powers:
- summonType: ON_COMBAT_ENTER
filename: test_boss.yml
chance: 0.5
amount: 5
inheritAggro: true
spawnNearby: true
inheritLevel: true
location: same_as_boss,10,20,30
lightningRod: false

Configuration experte - Créer vos propres pouvoirs

Il est possible de créer vos propres pouvoirs, soit dans le fichier du boss lui-même, soit dans un nouveau fichier de configuration placé dans le dossier des pouvoirs. Vous pouvez en apprendre davantage ici.

Note : vous pouvez également définir les comportements du boss directement dans le fichier de configuration du boss à l'aide du champ eliteScript. Pour la documentation complète sur l'utilisation des Elite Scripts, consultez le guide des pouvoirs.

En alternative à EliteScript, vous pouvez aussi écrire des pouvoirs à l'aide de scripts Lua. Les pouvoirs Lua sont placés dans le dossier des pouvoirs avec l'extension .lua et référencés par leur nom de fichier dans la liste powers. Consultez le guide Lua Getting Started pour plus d'informations.

Limiter les pouvoirs selon la difficulté d'un donjon instancié

Les donjons instanciés peuvent avoir des réglages de difficulté, et il est possible de faire en sorte qu'un pouvoir donné ne soit activé que pour certaines difficultés.

Options de limitation des pouvoirs
CléDescriptionValeursDéfaut
filenameNom du fichier du pouvoir.Stringaucun
difficultyIDNom de la difficulté, correspondant au nom de la difficulté dans le pack de donjon.Stringaucun

Cela ne s'applique qu'aux donjons instanciés.

Exemple
powers:
- filename: movement_speed.lua
difficultyID:
- myDifficultyName1
- myDifficultyName2
- myDifficultyName3

spawnMessage

Définit le message à envoyer lorsque le boss apparaît. Nécessite la configuration de announcementPriority.

CléValeursDéfaut
spawnMessageStrings et color codesaucun
Exemple
announcementPriority: 3
spawnMessage: I rise once more!

create_boss_spawn_message.jpg


deathMessages

Définit la liste des messages à envoyer lorsque le boss meurt. Nécessite la configuration de announcementPriority.

CléValeursDéfaut
deathMessagesStrings, color codes et les espaces réservés ci-dessousaucun
Exemple
announcementPriority: 3
deathMessages:
- '&e&l---------------------------------------------'
- '&4The Test Boss has been killed!'
- '&c&l 1st Damager: $damager1name &cwith $damager1damage damage!'
- '&6&l 2nd Damager: $damager2name &6with $damager2damage damage!'
- '&e&l 3rd Damager: $damager3name &ewith $damager3damage damage!'
- '&4Slayers: $players'
- '&e&l---------------------------------------------'

create_boss_death_message.jpg

Les messages de mort utilisent les espaces réservés suivants :

Espaces réservés
ValeurDescription
$damager1nameLe nom du principal attaquant
$damager2nameLe nom du deuxième plus gros attaquant
$damager3nameLe nom du troisième plus gros attaquant
$damager1damageLa quantité de dégâts du principal attaquant
$damager2damageLa quantité de dégâts du deuxième plus gros attaquant
$damager3damageLa quantité de dégâts du troisième plus gros attaquant
$playersAffiche la liste de tous les attaquants

deathMessage

Définit un message unique à envoyer lorsque le boss meurt. C'est une alternative à deathMessages lorsque vous n'avez besoin que d'un seul message de mort plutôt que d'une liste. Nécessite la configuration de announcementPriority.

CléValeursDéfaut
deathMessageString, color codes et les mêmes espaces réservés que deathMessagesaucun
Exemple
announcementPriority: 3
deathMessage: '&4The Test Boss has been killed by $players!'

onKillMessage

Définit le message à envoyer lorsque le boss tue un joueur. Nécessite la configuration de announcementPriority.

CléValeursDéfaut
onKillMessageStrings et color codesaucun

Espaces réservés :

ValeurDescription
$playerLe nom d'affichage du joueur qui a été tué
$playerNameLe pseudo du joueur qui a été tué
Exemple
announcementPriority: 3
onKillMessage: I win, you lose!

create_boss_spawn_message.jpg


slimeSize

Définit la taille du boss slime, mais ne fonctionne que pour les Slimes et les Cubes de magma.

CléValeursDéfaut
slimeSizeInteger4
Exemple
slimeSize: 5

neutral

Définit si le boss apparaîtra en tant que mob neutre ou non. Cela ne s'applique qu'aux types d'entités pouvant être neutres, comme les Loups ou les Golems de fer.

CléValeursDéfaut
neutralBooleanfalse
Exemple
neutral: true

Paramètres avancés

timeout

Définit la durée, en minutes, avant que le Boss Personnalisé ne disparaisse.

CléValeursDéfaut
timeoutDurée (en minutes) Integer0
Exemple
timeout: 20

Fait s'échapper le boss au bout de 20 minutes.


isPersistent

Définit si le boss peut survivre au déchargement d'un chunk. Recommandé uniquement pour les boss d'événement, en raison de l'impact potentiel sur les performances lié au chargement persistant des chunks et au suivi des entités entre les redémarrages du serveur.

CléValeursDéfaut
isPersistenttrue / falsefalse
Exemple

Exemple :

isPersistent: true

damageModifiers

Définit les armes contre lesquelles les boss peuvent être résistants ou vulnérables.

CléValeursDéfaut
damageModifiersMaterialaucun
Exemple
damageModifiers:
- material:DIAMOND_SWORD,multiplier:0.8
- material:TRIDENT,multiplier:2.0

Dans cet exemple, les boss ne subiront que 80 % des dégâts des épées en diamant (soit 20 % de moins), mais subiront 200 % des dégâts des tridents (soit 2 fois plus).


normalizedCombat

Modifie les dégâts et les points de vie maximum du boss pour correspondre aux valeurs de l'entité normalisée dans ~/plugins/EliteMobs/mobproperties. C'est la valeur par défaut pour les boss régionaux, afin de garantir une courbe de difficulté régulière.

CléValeursDéfaut
normalizedCombattrue / falsefalse
Exemple

Exemple :

normalizedCombat: true

scaledCombat

Définit si le boss utilise le système de combat mis à l'échelle. Lorsqu'il est activé, le boss simule d'être du même niveau que le joueur qui l'affronte : les dégâts, la mise à l'échelle des points de vie et le butin s'adaptent tous au niveau de progression du joueur plutôt qu'au niveau enregistré du boss. L'affrontement paraît ainsi tout aussi équitable pour tous les joueurs, quelle que soit leur progression.

Le combat mis à l'échelle est principalement conçu pour les boss d'événement du monde normal et les boss personnalisés qui doivent rester accessibles aux joueurs de tous niveaux. Pour du contenu de donjon avec une difficulté fixe voulue, utilisez plutôt normalizedCombat.

Lorsque scaledCombat: true est défini, il est prioritaire même si le boss utiliserait autrement le combat normalisé. Les mobs elite apparus naturellement utilisent le combat mis à l'échelle par défaut (contrôlé par le paramètre useScaledCombatForNaturalElites dans MobCombatSettings.yml).

Consultez la page Damage System pour tous les détails sur le fonctionnement du combat mis à l'échelle.

CléValeursDéfaut
scaledCombattrue / falsefalse
Exemple
scaledCombat: true

escapeMessage

Définit le message diffusé aux joueurs lorsque le boss s'échappe via le mécanisme de timeout. Nécessite que announcementPriority soit configuré.

CléValeursDéfaut
escapeMessageStringaucun
Exemple
announcementPriority: 3
timeout: 60
escapeMessage: "Sayonara!"

create_boss_escape_message.jpg


locationMessage

Définit le message affiché dans la barre de boss. Cela sert à suivre à la fois les points de vie du Boss Personnalisé et sa position sur le serveur. Nécessite que announcementPriority soit configuré.

CléValeursDéfaut
locationMessageString, Color codes et les espaces réservés listés ci-dessousaucun

Espaces réservés :

ValeurDescription
$distanceRemplacé par la distance séparant le joueur du Boss Personnalisé. C'est l'option à privilégier.
$locationRemplacé par les coordonnées x y z du Boss Personnalisé
Exemple
announcementPriority: 3
locationMessage: "&4Cool boss: At $location only $distance blocks away!"

create_boss_location_message.jpg

Cela afficherait quelque chose comme Cool boss: At 414,55,347 only 10 blocks away!


uniqueLootList

Définit les Objets Personnalisés que le boss laisse tomber.

CléValeursDéfaut
uniqueLootListListaucun

Les entrées de butin du Butin Personnalisé suivent le format des Tables de Butin. Plus d'informations ici ! Notez que certains fichiers plus anciens peuvent utiliser des tables de butin obsolètes, dont l'aspect diffère de l'exemple.

Exemple
uniqueLootList:
- filename: magmaguys_toothpick.yml
chance: 0.02
- minecraft:type=DIAMOND:amount=1:chance=0.9
- magmaguys_toothpick.yml:0.5:elitemobs.*

dropsEliteMobsLoot

Définit si le boss laisse tomber du butin EliteMobs, hors objets de uniqueLootList. Cela inclut les pièces.

CléValeursDéfaut
dropsEliteMobsLoottrue / falsetrue

Il est recommandé de le régler sur false pour les mobs de renfort.

Exemple
dropsEliteMobsLoot: true

dropsVanillaLoot

Définit si le Boss Personnalisé laissera tomber le butin vanilla habituellement associé à son type de mob vanilla.

CléValeursDéfaut
dropsVanillaLoottrue / falsetrue
Exemple
dropsVanillaLoot: true

dropsRandomLoot

Définit si le Boss Personnalisé laissera tomber du butin généré de façon procédurale par EliteMobs. N'inclut pas les pièces elite.

CléValeursDéfaut
dropsRandomLoottrue / falsetrue
Exemple
dropsRandomLoot: true

dropsSkillXP

Définit si le boss laisse tomber de l'XP de compétence lorsqu'il est tué. L'XP de compétence est utilisée par le système de bonus de compétence d'arme.

CléValeursDéfaut
dropsSkillXPtrue / falsetrue

Il est recommandé de le régler sur false pour les mobs de renfort ou les boss qui ne doivent pas contribuer à la progression des compétences.

Exemple
dropsSkillXP: false

trails

Définit la traînée que le boss laisse derrière lui lorsqu'il se déplace.

CléValeursDéfaut
trailsParticles ou matériaux d'objetsaucun

Seules les particules ne nécessitant pas de données supplémentaires fonctionnent comme traînées de boss (c'est-à-dire toutes les « particules simples » de la liste des particules valides). Les particules comme BLOCK, DUST, ITEM, etc. sont ignorées silencieusement. Les noms de matériaux font apparaître à la place une traînée d'objets animée.

Exemple
trails:
- CLOUD

onDamageMessages

Définit le message que le Boss affiche lorsqu'il frappe un joueur. Il s'agit d'une liste, et le message utilisé est tiré au hasard dans cette liste.

CléValeursDéfaut
onDamageMessagesListaucun
Exemple
onDamageMessages:
- "I hit you!"
- "Haha I hit you!"

create_boss_damage_message.jpg


onDamagedMessages

Définit le message que le Boss affiche lorsqu'il subit des dégâts d'un joueur. Il s'agit d'une liste, et le message utilisé est tiré au hasard dans cette liste.

CléValeursDéfaut
onDamagedMessagesListaucun
Exemple
onDamagedMessages:
- "You hit me!"
- "I've been hit!"

create_boss_damaged_message.jpg


mountedEntity

Définit l'entité que le boss va chevaucher.

CléValeursDéfaut
mountedEntityFilename of the boss to mount ou type d'entitéaucun

N'essayez pas de faire chevaucher le boss par lui-même.

Exemple
mountedEntity: wild_wolf.yml

create_boss_mounted.jpg

Note : les boss régionaux partagent leur laisse avec l'entité qu'ils chevauchent, ce qui signifie que tous deux seront ramenés à l'emplacement d'apparition s'ils dépassent la distance autorisée par leur laisse.


announcementPriority

Définit le niveau de priorité des annonces. Les priorités basses signifient qu'aucune annonce n'est faite ; les priorités élevées permettent d'annoncer non seulement dans le chat, mais aussi sur Discord si celui-ci est configuré.

CléValeursDéfaut
announcementPriorityInteger0

Voici la liste de ce que font les différentes priorités :

ValeurDescription
0C'est la valeur par défaut. Le boss sera totalement silencieux, sans aucun message d'annonce.
1Les boss peuvent envoyer des messages dans le chat : message d'apparition, messages de mort et d'évasion. Le suivi du boss via le menu /em est également activé à ce niveau, si un locationMessage est défini.
2Identique à 1 pour les Boss Personnalisés — il n'existe pas de traitement distinct pour la priorité 2. (Les événements personnalisés traitent en revanche le 2 différemment ; voir Announcement Priority System.)
3En plus de ce que fait 1, les messages diffusés seront répercutés sur Discord s'il est configuré. Informations sur la configuration de Discord ici.

Voici un exemple de boss traçable, capable d'envoyer des messages d'apparition/de mort/d'évasion dans le chat et sur Discord :

Exemple
announcementPriority: 3

Note : vous devrez configurer le spawnMessage, le deathMessage/deathMessages et l'escapeMessage pour les annonces dans le chat et sur Discord, ainsi que le locationMessage pour la fonctionnalité de suivi, si vous souhaitez utiliser le niveau de Priorité d'Annonce correspondant.

Note : dès qu'un contenu d'annonce existe (spawnMessage, deathMessage, deathMessages, escapeMessage, etc.), announcementPriority prend automatiquement la valeur 1 s'il n'est pas défini explicitement.


followDistance

Définit la distance à laquelle les boss deviennent agressifs et entrent en combat. Mesurée depuis le mob lui-même.

CléValeursDéfaut
followDistanceInteger0

Note 1 : les boss régionaux ont un followDistance réduit de moitié hors combat. Cela évite qu'ils ne deviennent agressifs de trop loin, ce qui peut provoquer des problèmes de combat pénibles à cause des contraintes de laisse.

Note 2 : plus le followDistance est élevé, plus le boss est gourmand en CPU pour le serveur. À utiliser avec prudence et discernement !

Exemple
followDistance: 30

Définit une portée de 30 blocs : si un joueur s'approche du boss à cette distance, celui-ci se mettra à le poursuivre et à l'attaquer.


onDeathCommands

Définit la liste des commandes à exécuter à la mort d'un boss personnalisé.

CléValeursDéfaut
onDeathCommandsListaucun

La liste prend en charge les espaces réservés suivants :

ValeurDescription
$levelEspace réservé pour le niveau du boss.
$nameEspace réservé pour le nom du boss.
$chance=x$Fait en sorte qu'une commande n'ait qu'une certaine probabilité de s'exécuter.
$playersFait exécuter la commande une fois pour chaque joueur de la liste des attaquants, en la remplaçant à chaque fois par le pseudo d'un joueur différent de cette liste.
$locationXCoordonnée X du boss au moment de sa mort.
$locationYCoordonnée Y du boss au moment de sa mort.
$locationZCoordonnée Z du boss au moment de sa mort.
$damager1namePseudo du principal attaquant
$damager2namePseudo du deuxième plus gros attaquant
$damager3namePseudo du troisième plus gros attaquant

Consultez l'exemple ci-dessous pour mieux comprendre leur fonctionnement.

Exemple
onDeathCommands:
- "say $players has killed $name! That was level $level!"
- "$chance=0.5$ say What a kill!"

create_boss_mounted.jpg

Si Player1, Player2 et Player3 ont tous infligé des dégâts au boss avant de le tuer, voici ce que la commande produira dans la console :

say Player1 has killed CustomBossName! That was level X!
say Player2 has killed CustomBossName! That was level X!
say Player3 has killed CustomBossName! That was level X!

De plus, il y a 50 % de chances que le message suivant soit également affiché :

say What a kill!

onSpawnCommands

Définit la liste des commandes qui s'exécuteront à l'apparition du boss.

CléValeursDéfaut
onSpawnCommandsListaucun

Ceci utilise les mêmes espaces réservés que onDeathCommands ! Les espaces réservés liés aux attaquants ne s'appliqueront pas, puisqu'il n'y a aucun attaquant à ce moment-là.

Exemple
onSpawnCommands:
- say Boss has spawned!

create_boss_mounted.jpg


onCombatEnterCommands

Définit la liste des commandes qui s'exécuteront lorsque le boss entre en combat.

CléValeursDéfaut
onCombatEnterCommandsListaucun

Ceci utilise les mêmes espaces réservés que onDeathCommands ! Les espaces réservés liés aux attaquants ne s'appliqueront pas, puisqu'il n'y a aucun attaquant à ce moment-là.

Exemple
onCombatEnterCommands:
- say Boss has entered combat!

create_boss_mounted.jpg


onCombatLeaveCommands

Définit la liste des commandes à exécuter lorsque le boss quitte le combat.

CléValeursDéfaut
onCombatLeaveCommandsListaucun

Ceci utilise les mêmes espaces réservés que onDeathCommands !

Exemple
onCombatLeaveCommands:
- say Boss has left combat!

create_boss_mounted.jpg


disguise

Définit le déguisement LibsDisguises si ce plugin est activé. Plus d'informations ici.

CléValeursDéfaut
disguiseStringaucun
customDisguiseDataStringaucun
Exemple de déguisement
disguise: CHICKEN

create_boss_mounted.jpg

Exemple de déguisement personnalisé
disguise: custom:the_beast_sanctuary_beast
customDisguiseData: player the_beast_sanctuary_beast setskin {"id":"44e6d42b-bd8d-4e48-873b-fae7afed36e4","name":"Unknown","properties":[{"name":"textures","value":"ewogICJ0aW1lc3RhbXAiIDogMTY2NjcwNjYwODA1MCwKICAicHJvZmlsZUlkIiA6ICI3MmY5MTdjNWQyNDU0OTk0YjlmYzQ1YjVhM2YyMjIzMCIsCiAgInByb2ZpbGVOYW1lIiA6ICJUaGF0X0d1eV9Jc19NZSIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS82YmYyMTY4NmM1MGQ1ODhmZmExMDZhZDdjNmViZTk1ZWZiMjE2NDU5ODRjZDFjZWYwODkzNDc4NzMzNmI2YTI3IiwKICAgICAgIm1ldGFkYXRhIiA6IHsKICAgICAgICAibW9kZWwiIDogInNsaW0iCiAgICAgIH0KICAgIH0KICB9Cn0=","signature":"jSsQvpUeWVtyqjtnydPadormkrZLVihetiX4dFQb3+BF/1x6wOgsNKRnnwj6J1mfu2im79LYEJbL+fQ9p1SJIW1uZ6hV7vPSAGUopyXGHNibNXorfV/dGjM77S0t86Jls50XWgJAnLn5RdhQcHahDAHHZ8to6K0HW5gvKKSalR5X/myaiV0E5ujJ+LUFWIiuDmtsmyxTX1zsohyYrVMo/4sD0DpBN+as95wO476gLb5fDTDV569QwExlDOt60W8qSzPw6ncYsOKJIiRE3EddspUm3/NrfDiKApUh8UbzVtwu1XlVAxWNgYN3PkqhWKuE4kvORQuoSJzOgSHkiqdXsQOED2HXfOKdfsnpZUwjepIU5A+/mu0gc3mPQPToKSss2bC1nXn//0bOZZSuQRgTS6PkKDHIQ1nClSZQZlJIsiLmaaN2k1tIHTIlDquKN6G1Ta9c3t6G5kugjqRo78ebbt7l3e0Z3BcdOkuO2WbvBjIg5Uiqyf+cYDZedJ+OEOqL/U6VVlsmbw0rd5deHrbnPn9cRzmWGjrXnxIlAszl+0Uqabj/BrkWcbBCwZJEPaV1hHpC4nJX1m5xvKZHB2Bw0AYWaQ3f3tRBbCA/xqwCS0Px1QohzV0nvtiMbjB38ziT1M5DgLtAVLcHPio7THZMxXAi4IjEIMac9ODbh5OxthA="}],"legacy":false}

create_boss_mounted.jpg

Définit un déguisement personnalisé issu de skindex. Consultez cette page pour apprendre à formater correctement ces données.


customModel

Définit le modèle personnalisé à utiliser, si vous disposez d'un modèle personnalisé et des plugins FreeMinecraftModels ou ModelEngine. Plus d'informations sur la création et l'utilisation de modèles personnalisés ici.

CléValeursDéfaut
customModelStringaucun
Exemple
customModel: your_model

customModelMountPointID

Définit l'ID du point d'attache pour les modèles personnalisés lorsque le boss chevauche une autre entité ou est chevauché par elle.

CléValeursDéfaut
customModelMountPointIDStringaucun
Exemple
customModelMountPointID: your_mount_point_id


frozen

Définit si le boss peut se déplacer. Les boss figés peuvent toujours attaquer.
Note : cela peut ne pas fonctionner sur certaines entités.

CléValeursDéfaut
frozentrue / falsefalse
Exemple
frozen: true

ai

Définit si l'IA du boss est activée. Lorsque ce paramètre est réglé sur false, le boss ne se déplacera ni n'attaquera de lui-même. C'est utile pour les boss entièrement contrôlés par des Elite Scripts.

CléValeursDéfaut
aitrue / falsetrue
Exemple
ai: false

alwaysShowName

Définit si le boss affiche en permanence son étiquette de nom au-dessus de sa tête. Par défaut, les étiquettes de nom des boss ne s'affichent qu'en combat. Ce paramètre remplace ce comportement pour ce boss précis, rendant l'étiquette de nom toujours visible.

CléValeursDéfaut
alwaysShowNametrue / falsefalse
Exemple
alwaysShowName: true

reinforcement

Définit si le boss est un renfort. Les boss de renfort ne sont pas initialisés comme boss régionaux au démarrage et sont uniquement destinés à être invoqués comme renforts par d'autres boss.

CléValeursDéfaut
reinforcementtrue / falsefalse
Exemple
reinforcement: true

song

Définit la musique qu'un boss jouera, à partir de son apparition. Nécessite que le fichier .ogg de la musique soit présent dans le pack de ressources.

CléValeursDéfaut
songStringaucun

Note : le paramètre song requiert que followDistance soit défini, car followDistance détermine la portée à laquelle la musique commence à jouer. Consultez l'exemple pour savoir comment définir la length (en millisecondes) de la song.

Exemple

Il existe deux façons de configurer les musiques. Voici la première :

song: name=elitemobs:ice_queen.idle length=76370

Cela jouera la musique ice_queen.idle pendant 76370 millisecondes, puis la mettra en boucle. Notez que l'emplacement de la musique est déterminé par le pack de ressources.

Voici la seconde façon de configurer les musiques :

song: name=elitemobs:ice_queen.end_transition length=14328->name=elitemobs:ice_queen.end_loop length=28657

Cela jouera la musique ice_queen.end_transition pendant 14328 millisecondes, puis enchaînera sur ice_queen.end_loop pendant 28657 millisecondes, en mettant end_loop en boucle.

Cela permet aux boss d'avoir une musique d'« intro » ou de « transition », puis une piste principale qui tourne en boucle.


cullReinforcements

Définit si les renforts du boss seront supprimés à la mort de celui-ci.

CléValeursDéfaut
cullReinforcementstrue / falsetrue
Exemple
cullReinforcements: true

movementSpeedAttribute

Définit la vitesse de déplacement du boss.
Note : au-delà de 0.36, cela risque d'être trop rapide.

CléValeursDéfaut
movementSpeedAttributeDoubleaucun
Exemple
movementSpeedAttribute: 0.3

Phases de boss

Les boss peuvent avoir des phases qui changent lorsque le boss atteint un certain pourcentage de points de vie. Lorsque cela se produit, le boss se met à utiliser un fichier de configuration différent, ce qui signifie que tout peut changer chez le boss, y compris des éléments comme le type d'entité.
Pour en savoir plus sur les phases de boss, cliquez ici.

CléDescriptionValeursDéfaut
phasesDéfinit les phases que le boss aura. ObligatoireListaucun
phaseSpawnLocationDéfinit l'endroit où le boss de la phase apparaît. OptionnelStringaucun
Exemple

Pour cet exemple, nous allons montrer trois fichiers de configuration différents.

Premier fichier de configuration de boss : phase_1_boss.yml

name: "Phase 1"
entityType: ZOMBIE
phases:
- phase_2_boss.yml:0.60
- phase_3_boss.yml:0.30

Deuxième fichier de configuration de boss : phase_2_boss.yml

name: "Phase 2"
entityType: SKELETON

Troisième fichier de configuration de boss : phase_3_boss.yml

name: "Phase 3"
phaseSpawnLocation: same_as_boss,10,64,100,0,0
entityType: RAVAGER

Ce boss basculerait vers le fichier de configuration phase_2_boss.yml à 60 % de points de vie, puis vers le fichier de configuration phase_3_boss.yml à 30 % de points de vie, dans le même monde que la phase 2 et aux coordonnées x=10, y=64 et z=100. Le type d'entité et le nom du boss changeraient également.

Le format d'une entrée est filename:healthPercentage.

phaseSpawnLocation est optionnel ; s'il n'est pas défini, le boss changera de phase là où il se trouve.

Voici les points importants à connaître lors de la conception d'un boss à phases :

  • Le fichier de configuration de la première phase définit toutes les phases du boss.
  • La menace / les dégâts comptabilisés sont conservés d'une phase à l'autre pour les joueurs.
  • Le changement de phase repose sur le pourcentage de points de vie perdus, qui est conservé lors du passage à une autre phase. Cela signifie qu'augmenter ou diminuer le healthMultiplier entre les phases ne soignera ni ne blessera le boss : il changera toujours au même pourcentage, mais disposera de plus ou moins de points de vie pour cette phase.
  • Les boss à phases reviennent à la phase 1 s'ils sortent du combat.
  • Les boss à phases qui sont également des boss régionaux partagent le même rayon de laisse et le même mécanisme de timeout sur toutes les phases, et réapparaîtront en tant que boss de phase 1 une fois le minuteur écoulé.
  • Le fichier de configuration de la dernière phase définit le butin du boss.
  • Les phases ne peuvent pas être sautées : des dégâts excédentaires feront tout de même changer le boss de phase au pourcentage défini.
  • Les boss à phases qui ont des montures cessent d'être montés lors d'un changement de phase.

Boss régionaux

Les boss régionaux sont un type particulier de Boss Personnalisés qui apparaissent à un emplacement configuré précis et sont capables de réapparaître à cet emplacement après un délai. De plus, ils peuvent avoir des laisses qui garantissent qu'ils restent dans une zone donnée, entre autres fonctionnalités.

Ils sont utilisés pour tout le contenu de donjon. Pour en savoir plus sur les boss régionaux, cliquez ici.

CléDescriptionValeursDéfaut
isRegionalBossDéfinit si le boss est régional. Doit être true si vous voulez un boss régional.true / falsefalse
spawnLocationsDéfinit les emplacements d'apparition du boss.Ajoutez-les via la commande /em place boss [filename.yml] !aucun
spawnCooldownDéfinit le délai de réapparition du boss, en minutes.Integer0
leashRadiusDéfinit la distance que le boss peut parcourir depuis son point d'apparition avant d'être ramené en arrière. Mesurée depuis le point d'apparition.Doubleaucun
onSpawnBlockStatesDéfinit les blocs que le boss modifiera lorsqu'il apparaît.Voir les commandes ci-dessousaucun
onRemoveBlockStatesDéfinit les blocs que le boss modifiera lorsqu'il disparaît.Voir les commandes ci-dessousaucun

Comme indiqué, les Boss Régionaux peuvent avoir des onSpawnBlockStates et des onRemoveBlockStates.

C'est une fonctionnalité très utile pour modifier les arènes de combat pendant le combat, en particulier lorsqu'elle est combinée aux changements de phase, car il devient possible d'ouvrir et de fermer les arènes en modifiant les états des blocs.

Le format de ces données est trop complexe pour être écrit manuellement, c'est pourquoi quelques commandes existent pour vous aider à les configurer :

CommandeDescription
/em transitiveBlocks register [regional_boss_file.yml] [on_spawn/on_remove]Démarre l'enregistrement de sélections manuelles de blocs pour les états à l'apparition ou à la disparition.
/em transitiveBlocks edit [regional_boss_file.yml] [on_spawn/on_remove]Modifie les états de blocs à l'apparition ou à la disparition.
/em transitiveBlocks registerArea [regional_boss_file.yml] [on_spawn/on_remove]Permet aux administrateurs de sélectionner de grandes zones de blocs à enregistrer comme états.
/em transitiveBlocks editArea [regional_boss_file.yml] [on_spawn/on_remove]Permet aux administrateurs de modifier de grandes zones de blocs à enregistrer comme états.
Exemple d'utilisation :

Supposons que vous vouliez créer un combat où un boss apparaît dans une arène dotée d'une porte ouverte, et que vous souhaitiez que la porte se ferme au début du combat et se rouvre à la fin.

Pour cela, vous aurez besoin de deux phases de boss et devrez enregistrer trois jeux différents d'états de blocs. Pour cet exemple, je nommerai ces phases respectivement phase_1_boss.yml et phase_2_boss.yml.

  1. Utilisez /em transitiveBlocks register phase_1_boss.yml on_spawn ou /em transitiveBlocks edit phase_1_boss.yml on_spawn pour enregistrer les blocs de la porte dans leur état ouvert.

Cela revient à enregistrer les blocs d'air. La sélection par zone est recommandée ici.

C'est nécessaire pour garantir que la porte est ouverte à l'apparition du boss, afin que les joueurs aient assurément un moyen d'entrer.

  1. Utilisez /em transitiveBlocks register phase_2_boss.yml on_spawn ou /em transitiveBlocks edit phase_2_boss.yml on_spawn pour enregistrer les blocs de la porte dans leur état fermé.

Cela revient à enregistrer les blocs solides de la porte qui empêcheraient le joueur de sortir.

C'est nécessaire pour rendre la porte solide lorsque le boss entre en phase 2, empêchant ainsi les joueurs de sortir.

  1. Utilisez /em transitiveBlocks register phase_2_boss.yml on_remove ou /em transitiveBlocks edit phase_2_boss.yml on_remove pour enregistrer les blocs de la porte dans leur état ouvert.

Cela revient à enregistrer de nouveau les mêmes blocs qu'à la première étape (les blocs d'air).

C'est nécessaire pour ouvrir la porte à la mort du boss, permettant aux joueurs de quitter l'arène.


alert

Définit si le boss est en alerte. Par défaut, les Boss Régionaux sont ralentis et ont une distance d'agression réduite lorsqu'ils sont hors combat. Ce paramètre empêche les Boss Régionaux d'être ralentis et d'avoir une distance d'agression réduite hors combat : ils se comporteront donc toujours de la même manière, en combat comme hors combat.

CléValeursDéfaut
alertBooleanfalse
Exemple
alert: true

removeAfterDeath

Définit si le Boss Régional sera définitivement supprimé après avoir été tué. C'est ce que BetterStructures utilise pour les Sanctuaires, où le Boss Régional n'est conçu pour être affronté qu'une seule fois, puis plus jamais à cet emplacement.

CléValeursDéfaut
removeAfterDeathBooleanfalse
Exemple
removeAfterDeath: true

Boss instanciés

Les boss instanciés sont un sous-type de Boss Régionaux utilisé dans les Donjons Instanciés.

CléDescriptionValeursDéfaut
instancedRend le boss personnalisé instancié. Obligatoire.true / falsefalse

Régler les boss sur instanciés est obligatoire pour que les donjons instanciés fonctionnent correctement. Nous recommandons également de retirer les laisses de tous les boss instanciés.

Exemple
instanced: true