Aller au contenu principal

Créer du Contenu EliteMobs

EliteMobs utilise YAML pour les boss, objets, quêtes et autres définitions, et Lua pour les pouvoirs, scripts de PNJ et comportements natifs. Placez chaque fichier dans son dossier de contenu sous plugins/EliteMobs/.

Types de contenu​

Cet aperçu couvre huit types de contenu principaux, ainsi que les définitions et scripts complémentaires ci-dessous :

  1. Boss personnalisés - Créez des créatures élites uniques avec des pouvoirs, un équipement et des capacités personnalisés
  2. Objets personnalisés - Concevez des armes, des armures et des objets personnalisés avec des enchantements
  3. Quêtes personnalisées - Construisez des chaînes de quêtes avec des objectifs et des récompenses
  4. Événements personnalisés - Mettez en place des événements de boss déclenchés par le temps ou par une action
  5. PNJ personnalisés - Ajoutez des donneurs de quêtes, des boutiques et des PNJ interactifs
  6. Coffres au trésor - Placez des coffres de butin avec des récompenses personnalisées et des mécaniques de mimique
  7. Arènes - Concevez des défis de combat par vagues avec des rencontres de boss
  8. Trous de ver - Créez des portails de téléportation entre les emplacements

Chaque type de contenu a son propre dossier de configuration et sa propre structure de champs.

Démarrage rapide​

Pour une définition de contenu YAML :

  1. Créez un fichier YAML avec l'extension .yml
  2. Nommez-le au format lowercase_with_underscores.yml
  3. Placez-le dans le dossier approprié
  4. Configurez le contenu à l'aide des champs YAML
  5. Rechargez EliteMobs ou redémarrez le serveur

Emplacements des fichiers​

Chaque type de contenu est stocké dans son propre dossier :

  • Boss personnalisés : ~/plugins/EliteMobs/custombosses/
  • Objets personnalisés : ~/plugins/EliteMobs/customitems/
  • Quêtes personnalisées : ~/plugins/EliteMobs/customquests/
  • Événements personnalisés : ~/plugins/EliteMobs/customevents/
  • PNJ personnalisés : ~/plugins/EliteMobs/npcs/
  • Coffres au trésor : ~/plugins/EliteMobs/customtreasurechests/
  • Arènes : ~/plugins/EliteMobs/customarenas/
  • Trous de ver : ~/plugins/EliteMobs/wormholes/

Le contenu complémentaire utilise d'autres dossiers :

  • Pouvoirs : ~/plugins/EliteMobs/powers/
  • Apparitions personnalisées : ~/plugins/EliteMobs/customspawns/
  • Scripts Lua de PNJ : ~/plugins/EliteMobs/npc_scripts/
  • Comportements Lua natifs : ~/plugins/EliteMobs/behaviors/
  • Itinéraires de transport : ~/plugins/EliteMobs/transport_routes/
  • Définitions d'enchantements et Lua : ~/plugins/EliteMobs/enchantments/
  • Paquets de donjons : ~/plugins/EliteMobs/content_packages/
  • Modèles de mondes instanciés : ~/plugins/EliteMobs/world_blueprints/

Le dossier scripts/ d'un paquet appartient à FreeMinecraftModels. Ce n'est pas le dossier des scripts de PNJ ou des comportements d'EliteMobs ; voir le routage des dossiers de paquet.

Outils de création de contenu​

La WebApp EliteMobs fournit une interface visuelle pour générer des configurations. Vérifiez le résultat avec la référence actuelle du type de contenu ; les champs récents et les scripts Lua peuvent nécessiter une édition manuelle.

Configuration YAML manuelle​

Pour les utilisateurs avancés, créez les fichiers YAML manuellement pour un contrôle complet sur tous les champs et options disponibles.

Format de fichier YAML​

Ces règles concernent les définitions YAML. Les pouvoirs Lua, scripts de PNJ et comportements sont des fichiers .lua séparés :

  • Utilisez des espaces, pas des tabulations, pour l'indentation
  • Entourez de guillemets les textes commençant par un code de couleur ; les guillemets simples conviennent au texte littéral
  • Les listes utilisent le format avec tiret ou le format avec crochets
  • isEnabled contrôle l'activation d'une définition YAML. La valeur par défaut dépend du type et de la définition préconçue ; indiquez-la explicitement dans les nouveaux fichiers et consultez la référence correspondante
  • Les noms de fichiers devraient utiliser le format lowercase_with_underscores.yml

Pour une aide détaillée sur la syntaxe YAML, consultez le Guide du fichier de configuration.

Aperçu des types de contenu​

Boss personnalisés​

Les boss personnalisés sont des créatures élites dotées de capacités améliorées, d'équipements personnalisés et de pouvoirs spéciaux. Le système de boss prend en charge plus de 60 champs de configuration, dont :

  • Type d'entité et niveau
  • Multiplicateurs de points de vie et de dégâts
  • Équipement (armures et armes)
  • Pouvoirs et capacités d'élite
  • Tables de butin et drops
  • Messages et commandes d'apparition/de mort
  • Mécaniques multi-phases
  • Modèles personnalisés et déguisements

Exemple de boss basique :

isEnabled: true
entityType: ZOMBIE
name: '&e Test Boss'
level: dynamic
healthMultiplier: 2.0
damageMultiplier: 0.5
helmet: GOLDEN_HELMET
chestplate: IRON_CHESTPLATE
mainHand: GOLDEN_AXE
powers:
- invulnerability_knockback.lua
spawnMessage: A test boss has been spawned!
deathMessage: A test boss has been slain by $players!

Objets personnalisés​

Les objets personnalisés permettent de créer des armes, armures et outils avec des enchantements et effets. Le système comprend :

  • Type de matériau
  • Nom d'affichage et lore
  • Liste d'enchantements
  • Effets de potion
  • ID de modèles personnalisés
  • Poids de drop et mise à l'échelle
  • Réglages de niveau et de lien d'âme (soulbound)

Exemple d'objet basique :

isEnabled: true
material: DIAMOND_SWORD
name: '&4Legendary Blade'
lore:
- '&7A powerful weapon'
- '&7forged in dragon fire'
enchantments:
- DAMAGE_ALL,5
- FIRE_ASPECT,2
level: 10
soulbound: true

Quêtes personnalisées​

Les quêtes personnalisées définissent des objectifs avec des récompenses à leur achèvement. Le système comprend :

  • Objectifs et types de quête
  • Récompenses (objets, argent, permissions)
  • Dialogue d'acceptation/d'achèvement
  • Exigences de remise à un PNJ
  • Minuteurs de verrouillage de quête
  • Suivi et sons

Événements personnalisés​

Les événements personnalisés déclenchent des apparitions de boss selon le temps, le hasard ou d'autres conditions. Le système comprend :

  • Type d'événement et liste de boss
  • Chance et poids de déclenchement
  • Messages et commandes de début/fin
  • Minuteurs de temps de recharge (local et global)
  • Nombre minimum de joueurs
  • Durée de l'événement

PNJ personnalisés​

Les PNJ personnalisés sont des personnages interactifs pour les quêtes, boutiques et arènes. Le système comprend :

  • Nom, rôle et profession du PNJ
  • Emplacements d'apparition
  • Dialogue (salutations, dialogue, adieu)
  • Types d'interaction
  • Références de quêtes et d'arènes
  • Modèles personnalisés et déguisements
  • Hooks Lua de PNJ et itinéraires de patrouille

Coffres au trésor​

Les coffres au trésor fournissent du butin avec des délais de réapprovisionnement et des mécaniques de mimique personnalisables. Le système comprend :

  • Type et orientation du coffre
  • Coordonnées d'emplacement
  • Table de butin
  • Minuteurs de réapprovisionnement
  • Chance de mimique et liste de boss
  • Styles de drop pour un seul joueur ou par joueur en groupe

Arènes​

Les arènes proposent des combats par vagues avec des boss. Le système comprend :

  • Limites de l'arène (corner1, corner2)
  • Nombre de vagues et délais
  • Liste de boss et points d'apparition
  • Récompenses et limites de joueurs
  • Messages d'arène
  • Vagues d'intermède

Trous de ver​

Les trous de ver créent des portails entre deux emplacements. Le système comprend :

  • Deux points d'extrémité d'emplacement
  • Texte d'affichage pour chaque emplacement
  • Style visuel et couleurs de particules
  • Coût en pièces et permissions
  • Effet de cécité et multiplicateur de taille
  • Modèles d'entité facultatifs à chaque extrémité

Schémas courants​

Référencer du contenu​

Les types de contenu se référencent mutuellement à l'aide de noms de fichiers :

  • Référencer des pouvoirs dans les boss : power_name.lua (une référence héritée power_name.yml est automatiquement résolue vers le pouvoir .lua du même nom)
  • Référencer des objets dans le butin : filename: item_name.yml (consultez le format des Tables de butin pour la chance, la quantité et plus)
  • Référencer des boss dans les événements : boss_filename.yml
  • Référencer des quêtes dans les PNJ : quest_filename.yml

Réutiliser des définitions​

Les fichiers de boss personnalisés, de PNJ et d'itinéraires de transport peuvent partir d'un autre fichier du même type avec extends: base_file.yml et ne remplacer que les clés qui diffèrent. Les placements et isEnabled ne sont jamais hérités. Consultez Réutiliser un autre fichier de boss et Réutiliser un autre fichier de PNJ pour les règles complètes.

Espaces réservés (placeholders)​

Les espaces réservés dépendent du champ qui les lit ; ils ne sont pas remplacés dans tous les messages :

  • $players - Noms affichés des attaquants participants dans les annonces de mort du boss
  • $distance - Distance jusqu'au boss suivi dans locationMessage
  • $eventBossLevel - Niveau mis en forme dans les noms de boss ; l'aperçu peut afficher ? si le niveau est inconnu

Codes de couleur​

Utilisez les codes de couleur Minecraft dans les noms et messages. Entourez tout le texte de guillemets s'il commence par un code de couleur. Les guillemets simples gardent les barres obliques inverses littérales ; les guillemets doubles YAML sont aussi valides.

Codes de couleur standard de Minecraft :

  • &0 - Noir
  • &1 - Bleu foncé
  • &2 - Vert foncé
  • &3 - Cyan foncé
  • &4 - Rouge foncé
  • &5 - Violet foncé
  • &6 - Or
  • &7 - Gris
  • &8 - Gris foncé
  • &9 - Bleu
  • &a - Vert
  • &b - Cyan
  • &c - Rouge
  • &d - Violet clair
  • &e - Jaune
  • &f - Blanc

Codes de formatage :

  • &l - Gras
  • &m - Barré
  • &n - Souligné
  • &o - Italique
  • &r - Réinitialisation

Système de pouvoirs d'élite​

EliteMobs livre 71 pouvoirs d'élite. 68 d'entre eux sont des fichiers Lua (*.lua) et seuls bonus_coins.yml, custom_summon.yml et elite_script.yml sont encore adossés à du YAML. Les pouvoirs sont référencés par nom de fichier dans les configurations de boss, et une référence .yml héritée se résout automatiquement vers le pouvoir .lua du même nom. Voir Créer des pouvoirs.

Catégories de pouvoirs​

La catégorie à laquelle appartient un pouvoir est son powerType, qui détermine également si les élites naturelles peuvent le tirer.

Offensifs : arrow_fireworks, arrow_rain, attack_arrow, attack_fire, attack_fireball, attack_freeze, attack_gravity, attack_lightning, attack_poison, attack_push, attack_vacuum, attack_wither, fireworks_barrage, lightning_bolts, taze

Défensifs : invulnerability_arrow, invulnerability_fall_damage, invulnerability_fire, invulnerability_fireworks, invulnerability_knockback, shield_wall

Divers : attack_blinding, attack_confusing, attack_weakness, attack_web, bonus_loot, channel_healing, corpse, frost_walker, ground_pound, implosion, invisibility, moonwalk, movement_speed, taunt

Pouvoirs majeurs (verrouillés par type d'entité) :

  • MAJOR_ZOMBIE : zombie_bloat, zombie_friends, zombie_necronomicon, zombie_parents
  • MAJOR_SKELETON : bullet_hell, skeleton_pillar, skeleton_tracking_arrow
  • MAJOR_BLAZE : firestorm, flame_pyre
  • MAJOR_ENDERMAN : plasma_blaster
  • MAJOR_GHAST : tracking_fireball

Uniques (appliqués uniquement lorsqu'un boss les demande nommément) : death_slice, flamethrower, frost_cone, gold_explosion, gold_shotgun, hyper_loot, meteor_shower, photon_ray, spirit_walk, summon_embers, summon_the_returned, thunderstorm, plus les dix pouvoirs du Dragon de l'Ender : ender_dragon_aimed_fireball, ender_dragon_arrow_bombardment, ender_dragon_disco_fireballs, ender_dragon_empowered_lightning, ender_dragon_ender_fireball_bombardment, ender_dragon_endermite_bombardment, ender_dragon_fireball_bombardment, ender_dragon_potion_bombardment, ender_dragon_shockwave, ender_dragon_tornado

Encore en YAML : bonus_coins.yml, custom_summon.yml (le système de renforts), elite_script.yml

Les pouvoirs sont ajoutés aux boss à l'aide du champ de liste powers :

powers:
- invulnerability_knockback.lua
- flame_pyre.lua
- spirit_walk.lua

Fonctionnalités avancées​

Boss multi-phases​

Les boss peuvent avoir plusieurs phases avec des fichiers de configuration distincts. Utilisez le champ phases pour référencer les fichiers de boss de phase, et phaseSpawnLocation pour définir où se produisent les transitions de phase.

Elite Scripts​

Les Elite Scripts offrent des actions, conditions et délais déclenchés par événements. EliteScript YAML utilise le champ eliteScript du boss. Les pouvoirs Lua sont des fichiers .lua séparés, référencés dans powers ; voir Créer des pouvoirs.

Modèles personnalisés​

Les boss et PNJ utilisent customModel pour les modèles d'entité. Les objets ont leurs propres champs, dont customModelV2, equipmentModelID et fmmItemModel ; voir Objets personnalisés. Les modèles d'entité et d'objet se configurent séparément.

Équipement de boss​

Les champs d'équipement des boss acceptent des noms de matériaux Minecraft. Ils ne chargent pas de fichiers d'objets personnalisés ni leurs statistiques EliteMobs :

helmet: DIAMOND_HELMET
chestplate: IRON_CHESTPLATE
leggings: LEATHER_LEGGINGS
boots: CHAINMAIL_BOOTS
mainHand: GOLDEN_AXE
offHand: SHIELD

Exécution de commandes​

Les boss peuvent exécuter des commandes lors d'événements spécifiques :

  • onSpawnCommands - Exécutées lorsque le boss apparaît
  • onDeathCommands - Exécutées lorsque le boss est vaincu
  • onCombatEnterCommands - Exécutées lorsque le combat commence
  • onCombatLeaveCommands - Exécutées lorsque le combat se termine

Messages de boss​

Personnalisez les annonces de boss :

  • spawnMessage - Diffusé lorsque le boss apparaît
  • deathMessage - Diffusé lorsque le boss est vaincu (prend en charge l'espace réservé $players)
  • escapeMessage - Diffusé lorsque le boss s'échappe
  • locationMessage - Affiche la distance jusqu'au boss (prend en charge l'espace réservé $distance)
  • deathMessages - Lignes envoyées dans l'ordre à la mort du boss si des attaquants sont enregistrés ; une liste non vide prime sur deathMessage. Ce n'est pas une sélection aléatoire

announcementPriority (0–3) contrôle la distribution des annonces, le suivi et le transfert vers DiscordSRV. À 0, les annonces de mort vont aux attaquants enregistrés ; les priorités positives les diffusent sur tout le serveur, et 3 les transmet aussi via l'intégration DiscordSRV configurée. Les annonces d'apparition et le suivi ont leurs propres règles.

Boss régionaux​

Les boss régionaux utilisent le champ isRegionalBoss et peuvent avoir un rayon de laisse, des restrictions d'apparition et des changements d'état de bloc :

  • leashRadius - Distance maximale par rapport au point d'apparition
  • onSpawnBlockStates - Changements de bloc lorsque le boss apparaît
  • onRemoveBlockStates - Changements de blocs à la défaite du boss ; les déchargements, disparitions et réinitialisations ordinaires n'appliquent pas l'état de défaite

Butin de classe automatique​

Le butin de classe fournit des récompenses adaptées au niveau et à la classe du joueur. Ses rangs de rencontre et budgets de difficulté règlent la qualité indépendamment de la santé et des dégâts du boss. Les familles d'objets personnalisés peuvent fournir des noms, matériaux, descriptions et modèles définis par l'auteur.

Configuration du butin​

Contrôlez les drops du boss :

  • dropsEliteMobsLoot - Active le traitement normal du butin généré et des pièces (true par défaut) ; ce n'est pas un interrupteur général du butin défini ou de classe
  • dropsVanillaLoot - Active les drops vanilla (true par défaut)
  • dropsRandomLoot - Active le butin généré aléatoire dans le traitement normal (true par défaut)
  • uniqueLootList - Entrées de butin définies, traitées séparément de ces interrupteurs
  • classLoot - Contrôle séparément le butin de classe automatique ; ses paramètres globaux et critères d'admissibilité restent applicables

Exemple :

uniqueLootList:
- filename=custom_sword.yml:chance=1.0
- filename=rare_helmet.yml:chance=0.05:amount=1

L'ancienne forme abrégée custom_sword.yml:1 est toujours analysée, mais le nombre après les deux-points est la chance de chute (1 = 100 %), et non la quantité. Utilisez amount= pour la quantité. Voir Tables de butin pour l'ensemble complet des options.

Contenu préconçu​

EliteMobs livre des configurations préconçues pour la plupart des types de contenu et les écrit directement dans les dossiers de contenu normaux au premier démarrage — il n'existe pas de dossier /premade/ distinct sur le disque. Les fichiers générés (boss dans custombosses/, objets dans customitems/, PNJ dans npcs/, etc.) sont du YAML ordinaire et servent d'exemples fonctionnels pour votre propre contenu.

Le plugin fournit aussi les définitions des paquets préconçus ; leurs mondes et contenus supplémentaires sont téléchargés et installés via /em setup. Voir Empaqueteur de donjons.

Obtenir de l'aide​

  • Consultez la barre latérale pour des guides de création de contenu spécifiques
  • Visitez le Discord d'EliteMobs pour le support communautaire
  • Consultez le Dépôt GitHub pour des exemples de code source