Aller au contenu principal

Référence de l'API Lua

Référence complète des méthodes de l'API de script Lua. Toutes les méthodes sont appelées via la syntaxe context.table:method().

Les méthodes Global (marquées GLOBAL) proviennent de Magmacore, la bibliothèque centrale partagée. Elles s'appliquent aux scripts FreeMinecraftModels et aux autres consommateurs de ScriptInstance de MagmaCore. Les pouvoirs de boss EliteMobs réutilisent le même bac à sable Lua mais exposent des tables de contexte et des noms de méthodes spécifiques aux boss ; les scripts de PNJ EliteMobs s'exécutent sur le même runtime MagmaCore et reçoivent l'intégralité du contexte partagé plus la table context.npc réservée aux PNJ. Consultez les sections EliteMobs ci-dessous et Scripts de PNJ pour ces variantes.

Les méthodes EliteMobs (marquées ELITEMOBS) sont spécifiques aux scripts de pouvoir de boss et aux scripts de PNJ EliteMobs.

Les méthodes FMM (marquées FMM) sont spécifiques aux scripts d'item et de prop FreeMinecraftModels.

Lorsqu'une méthode nécessite un enum Bukkit (Sound, Particle, Material, etc.), consultez les Javadocs Spigot pour les valeurs valides. Les noms d'enum sont passés sous forme de chaînes en majuscules (par exemple, "DIAMOND_SWORD", "ENTITY_ARROW_SHOOT").


Entity Table GLOBAL

Champs de base présents sur toutes les tables d'entités — joueurs, mobs, props, n'importe quoi.

Propriétés

FieldTypeDescription
uuidstringUUID de l'entité
entity_typestringType d'entité (minuscules)
is_validboolL'entité existe encore dans le monde
is_deadboolL'entité est morte
is_playerboolEst un joueur
is_hostileboolEst un Monster
is_passiveboolEst un Animal
current_locationlocationPosition de l'entité (x, y, z, yaw, pitch, world)
worldstringNom du monde

Des enrichisseurs spécifiques aux plugins peuvent ajouter des champs supplémentaires au niveau supérieur lorsque le plugin concerné est installé. Consultez les sections de pont (bridge) ci-dessous pour les champs EliteMobs et FreeMinecraftModels.

Méthodes

MethodArgsReturnsDescription
teleport(location)location tablenilTéléporte l'entité
remove()nilRetire l'entité du monde
set_silent(enabled)boolnilActive/désactive le silence
set_invulnerable(enabled)boolnilDéfinit l'invulnérabilité
set_gravity(enabled)boolnilDéfinit la gravité
set_glowing(enabled)boolnilDéfinit l'effet de brillance

Bridge: entity.elite

Ajouté par l'enrichisseur d'entité d'EliteMobs lorsqu'EliteMobs est installé. L'enrichisseur ajoute ces drapeaux au niveau supérieur :

FieldTypeDescription
is_eliteboolEst une entité EliteMobs
is_custom_bossboolEst un boss personnalisé EliteMobs
is_significant_bossboolBoss personnalisé avec multiplicateur de santé supérieur à 1 (affrontement conçu)

entity.elite n'est présent que lorsque is_elite vaut true.

FieldTypeDescription
levelintNiveau du mob elite
namestringNom d'affichage de l'elite
healthdoubleSanté actuelle
max_healthdoubleSanté maximale
is_custom_bossboolEst un boss personnalisé (aussi disponible au niveau supérieur)
health_multiplierdoubleMultiplicateur de santé défini en config
damage_multiplierdoubleMultiplicateur de dégâts défini en config
remove()methodRetire l'entité elite

Bridge: entity.model

Ajouté par l'enrichisseur d'entité de FreeMinecraftModels lorsque FMM est installé. L'enrichisseur ajoute ces drapeaux au niveau supérieur :

FieldTypeDescription
is_modeledboolA un modèle FMM
is_propboolEst un prop FMM

entity.model n'est présent que lorsque is_modeled vaut true.

FieldTypeDescription
model_idstringNom du blueprint de modèle
is_dynamicboolS'il s'agit d'une FMM DynamicEntity (true) ou d'un prop statique (false)
play_animation(name, blend?, loop?)methodJoue l'animation. blend vaut false par défaut, loop vaut false par défaut
stop_animations()methodArrête toutes les animations
remove()methodRetire l'entité modélisée

Bridge: permissions du joueur

Ajouté par l'enrichisseur d'entité de FreeMinecraftModels lorsque FMM est installé. Ces champs n'apparaissent que sur les tables d'entité joueur :

Field / MethodArgsReturnsDescription
has_permission(node)stringboolSi le joueur possède le nœud de permission donné
is_opboolSi le joueur est un opérateur du serveur

Living Entity Table GLOBAL

Étend Entity Table. Appliqué à toutes les entités vivantes (mobs et joueurs).

Propriétés

FieldTypeDescription
healthdoubleSanté actuelle
maximum_healthdoubleSanté maximale
namestringNom d'affichage de l'entité
is_aliveboolL'entité n'est pas morte

Méthodes

MethodArgsReturnsDescription
damage(amount)doublenilInflige des dégâts à l'entité
push(x, y, z)double, double, doublenilAjoute un vecteur de vélocité
set_facing(x, y, z)double, double, doublenilDéfinit la direction du regard
add_potion_effect(type, duration, amplifier)string (PotionEffectType), int, intnilApplique un effet de potion par nom
remove_potion_effect(type)string (PotionEffectType)nilRetire un effet de potion par nom
get_scale()numberÉchelle actuelle de l'entité (1.0 par défaut sur les serveurs sans l'attribut generic.scale)
set_scale(value)doublenilDéfinit l'échelle de l'entité via l'attribut generic.scale (sans effet sur les serveurs antérieurs à 1.20.5)

context.player GLOBAL

Table d'entité joueur. Hérite de tous les champs Entity et Living Entity.

Propriétés

FieldTypeDescription
game_modestringsurvival, creative, adventure, spectator

Méthodes

MethodArgsReturnsDescription
send_message(text)stringnilEnvoie un message de chat. Prend en charge les codes couleur
get_held_item()table or nilRetourne les champs type, amount, display_name, ou nil si la main est vide. type est un nom de Material Bukkit en majuscules
consume_held_item(amount?)int (default 1)nilRéduit la pile de l'item tenu de amount
has_item(material, amount?)string (Material), int (default 1)boolVérifie l'inventaire pour le matériau
get_target_entity(range?)num (default 50)entity or nilRaycast pour l'entité que le joueur regarde
get_eye_location()locationPosition des yeux du joueur
get_look_direction()vectorVecteur de direction unitaire
send_block_change(x, y, z, material, ticks?)int, int, int, string (Material), int (optional)boolEnvoie un faux bloc. Se réinitialise automatiquement après ticks si fourni
reset_block(x, y, z)int, int, intboolRéinitialise le faux bloc au vrai
sleep(x, y, z)num, num, numnilAnimation de sommeil dans un lit à l'emplacement
wake_up()nilRéveille du sommeil
show_boss_bar(text, color?, progress, ticks?)string, string (BarColor, default WHITE), num, int (optional)nilAffiche la barre de boss. Se cache automatiquement après ticks. Prend en charge les codes couleur
hide_boss_bar()nilRetire la barre de boss
show_action_bar(text, ticks?)string, int (optional)nilAffiche l'action bar. Répète si ticks supérieur à 0. Prend en charge les codes couleur
show_title(title, subtitle?, fadeIn, stay, fadeOut)string, string (default empty), int, int, intnilAffiche l'écran de titre. Prend en charge les codes couleur

context.world GLOBAL

Opérations sur le monde pour les scripts FreeMinecraftModels et les autres runtimes ScriptInstance adossés à Magmacore. Les pouvoirs de boss EliteMobs partent de cette même table de base et y superposent les ajouts et surcharges context.world d'EliteMobs listés ci-dessous.

Les méthodes context.world existent sous deux formes interchangeables : la forme par coordonnées (x, y, z) et la forme par table de localisation (les variantes *_at_location). Les deux formes sont disponibles sur les surfaces génériques, et les pouvoirs de boss EliteMobs conservent les méthodes de base partagées tout en ajoutant des helpers par table de localisation spécifiques aux boss.

Propriétés

FieldTypeDescription
namestringNom du monde

Méthodes

MethodArgsReturnsDescription
get_block_at(x, y, z)int, int, intstringNom du Material (minuscules). Retourne "air" si le chunk n'est pas chargé
set_block_at(x, y, z, material)int, int, int, string (Material)boolMet en file le placement du bloc si le matériau est valide ; les chunks non chargés sont ignorés
get_highest_block_y(x, z)int, intintY du bloc non-air le plus haut
spawn_particle(particle, x, y, z, count?, dx?, dy?, dz?, speed?)string (Particle), num, num, num, int?=1, num?=0, num?=0, num?=0, num?=0nilFait apparaître un effet de particule
play_sound(sound, x, y, z, volume?, pitch?)string (Sound), num, num, num, float?=1, float?=1nilJoue un son
strike_lightning(x, y, z)num, num, numnilFrappe la foudre
get_time()intTemps du monde en ticks
set_time(ticks)longnilDéfinit le temps du monde
get_nearby_entities(x, y, z, radius)num, num, num, numtableTableau de tables d'entités
get_nearby_players(x, y, z, radius)num, num, num, numtableTableau de tables d'entités joueur
spawn_entity(type, x, y, z)string (EntityType), num, num, numentity or nilFait apparaître une entité vanilla ; retourne nil si le type d'entité est invalide
raycast(fx, fy, fz, dx, dy, dz, max?)num, num, num, num, num, num, num?=50tableRetourne les champs hit_entity, hit_location, hit_block
place_temporary_block(x, y, z, material, ticks?, require_air?)int, int, int, string (Material), int?=0, bool?=falseboolMet en file un remplacement de bloc qui revient automatiquement après ticks. Retourne false si le matériau est invalide ou si le chunk n'est pas chargé
drop_item(x, y, z, material, amount?)num, num, num, string (Material), int?=1entity or nilLâche une entité item naturellement à l'emplacement ; retourne nil si le matériau est invalide
spawn_firework(x, y, z, colors, type?, power?)num, num, num, table, string (FireworkEffect.Type)?=BALL, int?=1nilFait apparaître un feu d'artifice
strike_lightning_at_location(loc)locationnilFrappe la foudre
play_sound_at_location(loc, sound, volume?, pitch?)location, string (Sound), float?=1, float?=1nilJoue un son
spawn_particle_at_location(loc, particle, count?, dx?, dy?, dz?, speed?)location, string (Particle), int?=1, num?=0, num?=0, num?=0, num?=0nilFait apparaître un effet de particule
get_block_at_location(loc)locationstringNom du Material (minuscules). Retourne "air" si le chunk n'est pas chargé
set_block_at_location(loc, material)location, string (Material)boolMet en file le placement du bloc si le matériau est valide ; les chunks non chargés sont ignorés
place_temporary_block_at_location(loc, material, ticks?, require_air?)location, string (Material), int?=0, bool?=falseboolMet en file un remplacement de bloc qui revient automatiquement après ticks. Retourne false si le matériau est invalide ou si le chunk n'est pas chargé
get_highest_block_y_at_location(loc)locationint or nilY du bloc non-air le plus haut

em helpers GLOBAL

Constructeurs utilitaires globaux exposés sur la table em dans tous les runtimes Lua MagmaCore.

Constructeurs

MethodArgsReturnsDescription
em.create_location(x, y, z, world?, yaw?, pitch?)num, num, num, string?, num?, num?locationTable de localisation avec x, y, z, optionnellement world, yaw, pitch, et une méthode add(dx, dy, dz) qui modifie sur place
em.create_vector(x, y, z)num, num, numvectorTable de vecteur avec x, y, z

Constructeurs de zone

Les constructeurs de zone retournent de simples tables de définition de zone. Les sphères, dômes, cylindres et cuboïdes incluent :set_center(location). Les cônes et les zones de rayon incluent :set_origin(location) et :set_destination(location).

MethodArgsReturnsDescription
em.zone.create_sphere_zone(radius)numzone{ kind = "sphere", radius = ... }
em.zone.create_dome_zone(radius)numzone{ kind = "dome", radius = ... }
em.zone.create_cylinder_zone(radius, height)num, numzone{ kind = "cylinder", radius = ..., height = ... }
em.zone.create_cuboid_zone(x, y, z)num, num, numzoneDemi-étendues du cuboïde
em.zone.create_cone_zone(length, radius)num, numzoneDéfinition de cône avec setters d'origine/destination
em.zone.create_static_ray_zone(length, thickness)num, numzoneDéfinition de rayon statique
em.zone.create_rotating_ray_zone(length, point_radius, animation_duration)num, num, numzoneDéfinition de rayon rotatif
em.zone.create_translating_ray_zone(length, point_radius, animation_duration)num, num, numzoneDéfinition de rayon en translation

em.location GLOBAL

Helpers de requête de localisation exposés sur la table globale em. Soutenus par le LocationQueryRegistry et le service LocationOwnership de Magmacore, qui collectent les résultats des fournisseurs enregistrés (régions de donjon/world-package EliteMobs, WorldGuard, GriefPrevention, etc.). Toutes les fonctions acceptent une table de localisation ({x, y, z, world}) et retournent des valeurs par défaut sûres si la localisation est invalide.

MethodArgsReturnsDescription
em.location.is_in_dungeon(loc)locationboolSi la localisation est à l'intérieur d'une région de donjon enregistrée
em.location.is_protected(loc)locationboolSi un fournisseur signale la localisation comme protégée (WorldGuard, GriefPrevention, régions EM, etc.)
em.location.owned_by(loc, namespace)location, stringboolSi l'espace de noms donné possède la localisation (par exemple "EliteMobs")
em.location.owners(loc)locationtableTableau des chaînes d'espace de noms qui revendiquent la propriété de cette localisation
em.location.kinds_at(loc)locationtableTableau des étiquettes de type à cette localisation (par exemple "elitemobs", "world_package", "open_world_dungeon", catégorie de taille de donjon)
em.location.has_kind(loc, kind)location, stringboolSi la localisation possède l'étiquette de type donnée

context.boss ELITEMOBS

Table d'entité boss pour les scripts de pouvoir Lua EliteMobs. Hérite de toutes les méthodes de EliteMobs Living Entity. Les propriétés se rafraîchissent via des getters dédiés.

Propriétés

FieldTypeDescription
namestringNom d'affichage du boss
uuidstringUUID de l'entité elite
healthdoubleSanté actuelle (snapshot)
maximum_healthdoubleSanté maximale (snapshot)
current_locationlocationPosition du boss (snapshot)
levelintNiveau du boss
damager_countintNombre de joueurs ayant infligé des dégâts à ce boss
is_in_combatboolLe boss est en combat
existsboolL'entité boss existe

Méthodes

MethodArgsReturnsDescription
is_alive()boolSi l'entité boss est en vie (vérification live)
get_health()doubleSanté actuelle (live)
get_maximum_health()doubleSanté maximale (live)
get_location()locationPosition actuelle (live)
restore_health(amount)doublenilSoigne le boss
despawn()nilRetire l'entité boss
get_damager_count()intNombre de damagers en direct
add_tag(tag, ticks?)string, int?=0nilAjoute un tag, retiré automatiquement après ticks si défini
remove_tag(tag)stringnilRetire un tag
has_tag(tag)stringboolVérifie la présence d'un tag
reset_custom_name()nilRéinitialise le nom à la valeur par défaut de la config
play_sound_at_self(sound, volume?, pitch?)string (clé de son Minecraft, par exemple "entity.wither.spawn"), float?=1, float?=1nilJoue un son au niveau du boss
play_sound_at_entity(sound, volume?, pitch?)string (clé de son Minecraft, par exemple "entity.wither.spawn"), float?=1, float?=1nilJoue un son au niveau du boss (alias)
spawn_particle_at_self(particle, count?)string (Particle) or table, int?=1nilFait apparaître des particules au niveau du boss
play_model_animation(name)stringnilJoue l'animation du modèle FMM (nécessite un modèle FMM)
has_mount()-boolSi ce boss chevauche une entité monture
get_mount()-entity or nilRéférence de l'entité monture actuelle, marquée avec is_mount = true
set_mount(entity)entity tableboolFait chevaucher l'entité donnée par le boss
clear_mount()-boolFait quitter au boss son véhicule actuel
dismount()-boolAlias de clear_mount()
navigate_to_location(location, speed?, force?, timeout?)location, double?=1, bool?=false, int?=0nilPathfinding vers la localisation
send_message(text, range?)string, double?=20nilEnvoie un message aux joueurs proches. Prend en charge les codes couleur
get_nearby_players(range)doubletableTableau de tables joueur dans le rayon
get_target_player()player or nilCible actuelle du mob si c'est un joueur
get_nearby_players_in_zone(zone)zone tabletableJoueurs à l'intérieur de la forme de zone
get_ender_dragon_phase()string or nilNom de EnderDragon.Phase
set_ender_dragon_phase(phase)string (EnderDragon.Phase)nilDéfinit la phase d'ender dragon
summon_reinforcement(file, zone?, level?)string, zone or nil, int?=0entity or nilFait apparaître un boss de renfort
summon_projectile(type, origin, dest, speed?, options?)string (EntityType), location, location, double?=1, tableentity or nilFait apparaître un projectile tracké ; retourne nil si le type ou les localisations sont invalides

options de summon_projectile

OptionTypeDefaultDescription
custom_damagenumberRemplace les dégâts du projectile
detonation_powerstringNiveau de puissance explosive
yieldnumberRendement de la fireball
incendiarybooltrueLa fireball met le feu
gravityboolActive la gravité
glowingboolfalseActive la brillance
invulnerableboolfalseDéfinit invulnérable
persistentbooltrueDéfinit persistant
durationint0Retire automatiquement après ticks
effectstringEntityEffect à jouer à l'apparition
spawn_at_originboolfalseApparaît à l'origine au lieu d'être lancé depuis le boss
direction_onlyboolfalseDéfinit la direction sans vélocité (fireballs)
trackbooltrueEnregistre comme projectile d'elite
on_landfunctionCallback à l'atterrissage du projectile : function(location, entity)
max_ticksint6000Ticks max avant callback d'atterrissage forcé

Méthodes Zone/Particle

MethodArgsReturnsDescription
spawn_particles_in_zone(zone, particle, ...)zone, particle spec, coverage?=1.0nilRemplit la zone de particules
spawn_particles_in_zone_border(zone, particle, ...)zone, particle spec, coverage?=1.0nilTrace le contour de la zone avec des particules
get_particles_from_self_toward_zone(zone, particle, speed?)zone, string, double?=0.1tableParticules directionnelles du boss vers la zone
get_particles_toward_self(zone, particle, speed?)zone, string, double?=0.1tableParticules directionnelles de la zone vers le boss
spawn_particles_with_vector(particles)tablenilFait apparaître un tableau de particules directionnelles

Prise en charge des pouvoirs spéciaux

MethodArgsReturnsDescription
start_tracking_fireball_system(speed?)double?=0.5nilDémarre l'IA de tracking de fireball
handle_spirit_walk_damage(cause)string (DamageCause)nilGère les dégâts de spirit walk par cause
shield_wall_is_active()boolSi le shield wall est actif
initialize_shield_wall(charges?)int?=1nilActive le shield wall
shield_wall_absorb_damage(player, damage)entity table, doubleboolTente d'absorber les dégâts
deactivate_shield_wall()nilDésactive le shield wall
start_zombie_necronomicon(target, file)entity table, stringnilDémarre le necronomicon sur la cible

context.npc ELITEMOBS NPC

Table de PNJ pour les scripts Lua de PNJ EliteMobs. Les scripts de PNJ se trouvent dans plugins/EliteMobs/npc_scripts/ et s'attachent via une liste scripts: dans la config d'un PNJ. Les scripts de PNJ s'exécutent sur le même runtime MagmaCore que toutes les autres surfaces et reçoivent l'intégralité du contexte partagé — context.world, context.zones, context.scheduler, context.cooldowns, context.log, context.event, context.player, context.state — plus la table context.npc réservée aux PNJ documentée ici.

Propriétés

FieldTypeDescription
namestringNom d'affichage du PNJ
filenamestringNom de fichier de la config du PNJ
uuidstringUUID du PNJ au runtime
activation_radiusdoubleRayon d'activation configuré
current_locationlocationLocalisation snapshot lorsque l'entité PNJ existe
entity_typestringType d'entité Bukkit lorsque l'entité PNJ existe

Méthodes

MethodArgsReturnsDescription
is_valid()-boolSi l'entité sous-jacente du PNJ est toujours valide
get_location()-locationLocalisation actuelle du PNJ, ou repli sur le point d'apparition
get_eye_location()-locationLocalisation des yeux actuelle, ou repli sur le point d'apparition
get_activation_radius()-doubleRayon d'activation configuré actuel
get_nearby_players(radius)doubletableTables joueur proches du PNJ
face_direction_or_location(target)vector or locationnilFait face à une direction ou regarde vers une localisation
say_greeting(player?)player, UUID, name, or nilnilEnvoie un message d'accueil configuré. Par défaut le joueur déclencheur lorsqu'il est disponible
say_dialog(player?)player, UUID, name, or nilnilEnvoie un dialogue configuré. Par défaut le joueur déclencheur lorsqu'il est disponible
say_farewell(player?)player, UUID, name, or nilnilEnvoie un texte d'adieu configuré. Par défaut le joueur déclencheur lorsqu'il est disponible
play_model_animation(name)stringnilJoue une animation de modèle personnalisée si disponible ; sans effet sinon

Les hooks spécifiques aux PNJ comprennent on_spawn, on_remove, on_game_tick, on_npc_interact, on_npc_proximity_enter et on_npc_proximity_leave. Consultez Scripts de PNJ EliteMobs pour le flux complet et les détails sur les cooldowns.


EliteMobs Living Entity Table ELITEMOBS

Les tables d'entités créées à l'intérieur des scripts de pouvoir EliteMobs (depuis context.boss, les données d'événement, les callbacks de zone et les requêtes sur le monde) utilisent une table d'entité vivante étendue avec des méthodes supplémentaires au-delà de la Living Entity globale. context.boss hérite de toutes ces méthodes.

Propriétés

FieldTypeDescription
namestringNom d'affichage de l'entité
uuidstringUUID de l'entité
entity_typestringNom du type d'entité
is_playerboolEst un joueur
is_monsterboolEst un Monster
is_eliteboolEst une entité EliteMobs
is_validboolL'entité existe encore
is_mountboolTrue lorsque cette table d'entité représente une monture de boss
healthdoubleSanté actuelle (snapshot)
maximum_healthdoubleSanté maximale (snapshot)
current_locationlocationPosition de l'entité (snapshot)
game_modestringMode de jeu (EN MAJUSCULES dans EliteMobs : SURVIVAL, CREATIVE, ADVENTURE, SPECTATOR)

Méthodes

MethodArgsReturnsDescription
is_alive()boolSi l'entité est en vie (vérification live)
is_ai_enabled()boolSi l'IA est activée
is_frozen()boolSi le boss est gelé (CustomBossEntity uniquement)
is_on_ground()boolSi l'entité est au sol
is_healing()boolSi l'elite est en train de se soigner
get_location()locationPosition actuelle (live)
get_eye_location()locationPosition des yeux (live)
get_height()doubleHauteur de l'entité
get_health()doubleSanté actuelle (live)
get_maximum_health()doubleSanté maximale (live)
get_velocity()vectorVecteur de vélocité actuel
deal_damage(amount)doublenilInflige des dégâts génériques
deal_custom_damage(amount)doublenilInflige des dégâts d'attaque de boss personnalisés depuis le boss du pouvoir
deal_damage_from_boss(amount)doublenilInflige des dégâts attribués à l'entité boss du pouvoir
restore_health(amount)doublenilSoigne l'entité (utilise le soin EliteMobs si elite)
play_sound_at_entity(sound, volume?, pitch?)string (clé de son Minecraft, par exemple "entity.ender_dragon.growl"), float?=1, float?=1nilJoue un son au niveau de l'entité
play_sound_at_self(sound, volume?, pitch?)string (clé de son Minecraft, par exemple "entity.ender_dragon.growl"), float?=1, float?=1nilJoue un son au niveau de l'entité (alias)
spawn_particle_at_self(particle, count?)string (Particle) or table, int?=1nilFait apparaître des particules au niveau de l'entité
spawn_particles_at_location(loc, particle, count?)location, particle spec, int?=1nilFait apparaître des particules à une localisation
teleport_to_location(location)locationnilTéléporte l'entité
set_velocity_vector(vector)vectornilDéfinit la vélocité
set_gravity(enabled)boolnilDéfinit la gravité
apply_push_vector(vector, additive?, delay?)vector, bool?=false, int?=1nilApplique une vélocité après un délai. additive l'ajoute à la vélocité existante
push_relative_to(location, force?, extraX?, extraY?, extraZ?)location, double?=1, double?=0, double?=0, double?=0nilPousse l'entité loin d'une localisation
set_custom_name(name)stringnilDéfinit le nom d'affichage personnalisé. Prend en charge les codes couleur
reset_custom_name()nilRéinitialise le nom à la valeur par défaut d'EliteMobs
set_custom_name_visible(visible)boolnilActive/désactive la visibilité du nom
set_ai_enabled(enabled, duration?)bool, int?=0nilDéfinit l'état de l'IA. Revient automatiquement après duration ticks
set_awareness_enabled(enabled, duration?)bool, int?=0nilDéfinit la conscience du mob. Revient automatiquement après duration ticks
face_direction_or_location(target)vector or locationnilFait face à une direction ou regarde vers une localisation
play_model_animation(name)stringnilJoue l'animation du modèle FMM (nécessite un modèle FMM)
is_inside_vehicle()-boolSi l'entité chevauche une autre entité
has_vehicle()-boolSi l'entité a un véhicule
get_vehicle()-entity or nilRéférence de l'entité véhicule actuelle
set_vehicle(entity)entity tableboolFait chevaucher le véhicule donné par cette entité
leave_vehicle()-boolFait quitter à cette entité son véhicule actuel
has_passengers()-boolSi cette entité a des passagers
get_passenger_count()-intNombre de passagers
get_passengers()-tableTableau de références d'entités passagères
add_passenger(entity)entity tableboolAjoute un passager à cette entité
remove_passenger(entity)entity tableboolRetire un passager de cette entité
eject_passengers()-boolÉjecte tous les passagers
set_scale(scale, duration?)double, int?=0nilDéfinit l'échelle de l'entité. Revient automatiquement à 1.0 après duration ticks
set_invulnerable(enabled, duration?)bool, int?=0nilDéfinit invulnérable. Revient automatiquement après duration ticks
set_healing(enabled)boolnilDéfinit l'état de soin de l'elite
navigate_to_location(location, speed?, force?, timeout?)location, double?=1, bool?=false, int?=0nilPathfinding vers la localisation (CustomBossEntity uniquement)
add_tag(tag, ticks?)string, int?=0nilAjoute un tag, retiré automatiquement après ticks
remove_tag(tag)stringnilRetire un tag
has_tag(tag)stringboolVérifie la présence d'un tag
overlaps_box_at_location(center, halfX?, halfY?, halfZ?)location, double?=0.5, double?=halfX, double?=halfXboolSi la boîte englobante de l'entité chevauche une boîte à la localisation
remove_elite()nilRetire via le pipeline de suppression EliteMobs
apply_potion_effect(type, duration, amplifier?)string (PotionEffectType), int, int?=0nilApplique un effet de potion
set_equipment(slot, material, options?)string (EquipmentSlot), string (Material), tablenilDéfinit l'item du slot d'équipement
set_fire_ticks(ticks)intnilDéfinit les ticks de feu
add_visual_freeze_ticks(ticks?)int?=1nilAjoute des ticks visuels de gel
place_temporary_block(material, ticks?, requireAir?)string (Material), int?=0, bool?=falsenilPlace un bloc temporaire à la localisation de l'entité

options de set_equipment

OptionTypeDefaultDescription
unbreakableboolfalseRend l'item incassable
enchantmentstableTableau de tables {type = "ENCHANT_NAME", level = 1}

Méthodes Joueur EliteMobs

Les joueurs dans les scripts EliteMobs ont toutes les méthodes d'entité vivante EliteMobs plus :

MethodArgsReturnsDescription
send_message(text)stringnilEnvoie un message de chat. Prend en charge les codes couleur
show_action_bar(text)stringnilAffiche le texte de l'action bar. Prend en charge les codes couleur
show_title(title, subtitle?, fadeIn?, stay?, fadeOut?)string, string?="", int?=10, int?=40, int?=10nilAffiche l'écran de titre. Prend en charge les codes couleur
show_boss_bar(title, color?, style?, duration?)string, string (BarColor)?=WHITE, string (BarStyle)?=SOLID, int?=40nilAffiche la barre de boss. Se cache automatiquement après duration ticks. Prend en charge les codes couleur
run_command(command)stringnilExécute une commande en tant que joueur

Table de référence d'entité EliteMobs

Les entités non vivantes (projectiles, blocs tombants, feux d'artifice) retournées par les méthodes de spawn EliteMobs obtiennent une table de référence légère :

Field / MethodArgsReturnsDescription
namestringNom de l'entité
uuidstringUUID de l'entité
entity_typestringNom du type d'entité
is_playerboolToujours false
is_eliteboolToujours false
is_valid()boolSi l'entité est toujours valide (vérification live)
current_locationlocationPosition (snapshot)
get_location()locationPosition actuelle (live)
get_velocity()vectorVecteur de vélocité actuel
is_on_ground()boolSi l'entité est au sol
teleport_to_location(location)locationnilTéléporte l'entité
set_velocity_vector(vector)vectornilDéfinit la vélocité
set_direction_vector(vector)vectornilDéfinit la direction (fireballs uniquement)
set_yield(amount)doublenilDéfinit le rendement de la fireball
set_gravity(enabled)boolnilDéfinit la gravité
detonate()nilDétone le feu d'artifice
remove()nilRetire l'entité
unregister(reason?)string?=OTHERnilDésenregistre du tracker d'entités EliteMobs

context.players ELITEMOBS

Table de requête sur les joueurs disponible dans les scripts de pouvoir EliteMobs. Fournit des méthodes utilitaires pour trouver des joueurs relatifs au boss.

MethodArgsReturnsDescription
current_target()player or nilActeur de l'événement si joueur, ou cible mob actuelle du boss si joueur
nearby_players(radius)doubletableTableau de tables joueur dans le rayon du boss
all_players_in_world()tableTableau de toutes les tables joueur dans le monde du boss

context.entities ELITEMOBS

Table de requête sur les entités disponible dans les scripts de pouvoir EliteMobs. Fournit des méthodes utilitaires pour trouver des entités relatives au boss. Toutes les requêtes excluent le boss lui-même.

MethodArgsReturnsDescription
get_nearby_entities(radius, filter?)double, string?="living"tableEntités dans le rayon. "all"/"entities" retourne toutes les entités (y compris non vivantes) ; toute autre valeur retourne les entités vivantes filtrées par catégorie : "player(s)", "elite(s)", "mob(s)", ou par défaut = toutes les vivantes
get_entities_in_box(center, halfX, halfY, halfZ, filter?)location, double, double, double, string?="living"tableEntités vivantes à l'intérieur d'une boîte alignée sur les axes (mêmes valeurs de filtre que ci-dessus ; modes non-all uniquement)
get_all_entities(filter?)string?="living"tableToutes les entités vivantes dans le monde du boss (mêmes valeurs de filtre)
get_direct_target_entity()entity or nilEntité cible directe de l'événement déclencheur
get_boss_spawn_location()locationEmplacement d'apparition d'origine du boss

context.vectors ELITEMOBS

Utilitaires de calcul vectoriel disponibles dans les scripts de pouvoir EliteMobs.

MethodArgsReturnsDescription
get_vector_between_locations(from, to, options?)location, location, tablevectorVecteur de la source vers la destination. Les options peuvent modifier le résultat
rotate_vector(vector, pitch?, yaw?)vector, double?=0, double?=0vectorFait pivoter le vecteur par pitch et yaw (degrés)
normalize_vector(vector)vectorvectorNormalise à la longueur unitaire

context.state GLOBAL

Une table Lua simple qui persiste pendant toute la durée de vie de l'instance de script. Utilisez-la pour stocker des drapeaux, des compteurs, des IDs de tâches, des états de bascule et toute donnée que vous souhaitez partager entre les hooks. context.state est la table persistante détenue par le script ; la plupart des autres tables de contexte sont reconstruites ou recréées paresseusement au besoin. FMM met context.prop en cache par prop pour des raisons de performance, mais ses champs live tels que current_location se rafraîchissent tout de même à la lecture.

context.state.counter = (context.state.counter or 0) + 1

context.cooldowns GLOBAL

Gestion des cooldowns. Les cooldowns locaux sont par instance de script ; les cooldowns globaux sont partagés entre tous les scripts sur la même entité/propriétaire. Si aucune clé n'est fournie, le nom de fichier du script est utilisé par défaut.

MethodArgsReturnsDescription
local_ready(key?)string (optional)boolSi le cooldown local a expiré
local_remaining(key?)string (optional)intTicks restants sur le cooldown local (0 si prêt)
check_local(key?, duration)string (optional), intboolSi prêt, démarre le cooldown et retourne true ; sinon false
set_local(duration, key?)long, string (optional)nilDéfinit le cooldown local pour duration ticks
global_ready()boolSi le cooldown global a expiré
set_global(duration)longnilDéfinit le cooldown global pour duration ticks

Dans les scripts de pouvoir EliteMobs, les cooldowns locaux sont partagés entre tous les pouvoirs sur la même entité boss, et les cooldowns globaux utilisent le système de cooldown de pouvoir intégré du boss.

Les scripts de PNJ EliteMobs utilisent l'ordre de cooldown partagé check_local(key?, duration) ; voir Scripts de PNJ.


context.scheduler GLOBAL

Planification de tâches. Toutes les tâches sont automatiquement annulées lorsque le script s'arrête.

Variante globale (Magmacore)

Les scripts FreeMinecraftModels et les scripts de PNJ EliteMobs utilisent cette variante partagée. Les noms de style EliteMobs ci-dessous sont des alias sur le même scheduler, de sorte que l'un ou l'autre style de nommage est valide sur les surfaces génériques.

MethodArgsReturnsDescription
run_later(ticks, callback)int, functionintExécute le callback après ticks. Retourne l'ID de tâche
run_repeating(delay, interval, callback)int, int, functionintExécute le callback toutes les interval ticks après le délai initial. Retourne l'ID de tâche
cancel(taskId)intnilAnnule une tâche planifiée

Variante EliteMobs

MethodArgsReturnsDescription
run_after(ticks, callback)int, functionintExécute le callback après ticks. Retourne l'ID de tâche
run_every(ticks, callback)int, functionintExécute le callback toutes les N ticks. Retourne l'ID de tâche
cancel_task(taskId)intnilAnnule une tâche planifiée

context.log GLOBAL

Utilitaires de journalisation pour le débogage des scripts.

Variante globale (Magmacore / FMM)

MethodArgsReturnsDescription
info(message)stringnilLog un message d'information
warn(message)stringnilLog un message d'avertissement
error(message)stringnilLog un message d'erreur/avertissement

Variante EliteMobs

MethodArgsReturnsDescription
info(message)stringnilLog un message d'information
warn(message)stringnilLog un message d'avertissement
debug(message)stringnilLog un message de débogage (apparaît comme info avec préfixe debug)

context.zones GLOBAL

Création et surveillance de zones pour les scripts FreeMinecraftModels et les autres runtimes ScriptInstance adossés à Magmacore. Les pouvoirs de boss EliteMobs utilisent la variante context.zones d'EliteMobs ci-dessous.

Variante globale (Magmacore)

MethodArgsReturnsDescription
create_sphere(x, y, z, radius)num, num, num, numintCrée une zone sphérique, retourne le handle
create_cylinder(x, y, z, radius, height)num, num, num, num, numintCrée une zone cylindrique, retourne le handle
create_cuboid(x, y, z, xSize, ySize, zSize)num, num, num, num, num, numintCrée une zone cuboïde, retourne le handle
watch(handle, on_enter?, on_leave?)int, function?, function?boolActive le tracking de zone. Les arguments de type fonction activent on_zone_enter / on_zone_leave ; les corps de fonction ne sont pas invoqués directement. Les hooks de zone reçoivent context.player / context.event.player pour le joueur ayant franchi la limite
unwatch(handle)intnilArrête le tracking de la zone

Variante EliteMobs

MethodArgsReturnsDescription
get_entities_in_zone(zone, options?)zone table, tabletableObtient les entités dans la zone. Options : filter, mode
get_locations_in_zone(zone, options?)zone table, tabletableObtient les localisations dans la zone. Options : coverage, mode
zone_contains(zone, location, mode?)zone table, location, string?="full"boolSi la localisation est dans la zone ("full" ou "border")
watch_zone(zone, callbacks, options?)zone table, table, table?nilSurveille la zone pour entrée/sortie. Callbacks : {on_enter = fn, on_leave = fn}. Les options prennent en charge filter et mode

context.event GLOBAL

Table de données d'événement pour le hook ayant déclenché l'exécution actuelle du script. Présent durant les hooks pilotés par événement et les hooks génériques d'entrée/sortie de zone MagmaCore qui fournissent un acteur joueur ; absent durant on_game_tick, les callbacks planifiés ou les hooks de cycle de vie sans joueur.

Variante globale (Magmacore)

Field / MethodTypeDescription
is_cancelledboolÉtat d'annulation lors de la construction du contexte ; pas rafraîchi après cancel() / uncancel()
cancel()methodAnnule l'événement lorsque l'événement Bukkit sous-jacent est annulable
uncancel()methodDésannule l'événement lorsque l'événement Bukkit sous-jacent est annulable
playerentity tableJoueur impliqué dans l'événement (le cas échéant)

Les hooks de zone génériques renseignent player mais ne sont pas adossés à un événement Bukkit annulable, de sorte que cancel() et uncancel() n'y sont pas présents.

Pour la table d'événement EliteMobs (qui fournit les quantités de dégâts, causes de dégâts, etc.), voir EliteMobs Event Table.


context.script ELITEMOBS

Bridge vers le système Elite Script d'EliteMobs. Permet aux pouvoirs Lua d'utiliser les systèmes de ciblage, de zone et de vecteurs relatifs basés sur YAML via des tables Lua avec les mêmes noms de champs que les configs YAML Elite Script.

Méthodes

MethodArgsReturnsDescription
target(spec)tabletarget handleCrée un handle de cible depuis une table de spec target Elite Script
zone(spec)tablezone handleCrée un handle de zone depuis une table de spec zone Elite Script
relative_vector(spec, location?, zone?)table, location, zone handlevector handleCrée un vecteur relatif depuis une spec de vecteur Elite Script
damage(target, amount?, multiplier?)target handle, double?=0, double?=1nilInflige des dégâts à toutes les entités de la cible
push(target, vector, additive?)target handle, vector or vector handle, bool?=falsenilPousse les entités cibles avec une vélocité
set_facing(target, vector)target handle, vector or vector handlenilDéfinit la direction du regard des entités cibles
spawn_particles(target, particles)target handle, table or stringnilFait apparaître des particules aux localisations cibles

Target Handle

Retourné par context.script:target(spec). La table de spec utilise les mêmes clés que les configs YAML Elite Script target (par exemple, {targetType = "NEARBY_PLAYERS", range = 20}).

MethodArgsReturnsDescription
entities()tableTableau de tables d'entités à la cible
locations()tableTableau de tables de localisations à la cible
first_entity()entity or nilPremière entité à la cible
first_location()location or nilPremière localisation à la cible

Zone Handle

Retourné par context.script:zone(spec). La table de spec utilise les mêmes clés que les configs YAML Elite Script zone (par exemple, {shape = "SPHERE", radius = 5, target = {targetType = "SELF"}}).

MethodArgsReturnsDescription
full_target(coverage?)numbertarget handleHandle de cible pour les localisations intérieures de la zone
border_target(coverage?)numbertarget handleHandle de cible pour les localisations sur la bordure de la zone
full_locations(coverage?)numbertableTableau de localisations intérieures
border_locations(coverage?)numbertableTableau de localisations sur la bordure
full_entities()tableEntités à l'intérieur de la zone
border_entities()tableEntités sur la bordure de la zone
contains(location, mode?)location, string?="full"boolSi la localisation est dans la zone
watch(callbacks, mode?)table, string?="full"intSurveille pour entrée/sortie. Retourne l'ID de tâche

Vector Handle

Retourné par context.script:relative_vector(spec). La table de spec utilise les mêmes clés que les configs YAML Elite Script de vecteurs relatifs.

MethodArgsReturnsDescription
resolve()vectorCalcule le vecteur pour le contexte actuel

context.world (EliteMobs) ELITEMOBS

Table world spécifique au boss pour les scripts de pouvoir EliteMobs. Les pouvoirs de boss partent de la table world générique MagmaCore, de sorte que les helpers par coordonnées tels que get_block_at(...), set_block_at(...) et spawn_particle(...) restent disponibles. Les méthodes ci-dessous sont des ajouts EliteMobs ou des surcharges spécifiques au boss, principalement les formes par table de localisation et les helpers de boss.

Requêtes de blocs

MethodArgsReturnsDescription
get_block_type_at_location(loc)locationstring or nilNom du Material
get_highest_block_y_at_location(loc)locationint or nilY du bloc le plus haut
get_blast_resistance_at_location(loc)locationdoubleValeur de résistance aux explosions
is_air_at_location(loc)locationboolLe bloc est de l'air
is_passable_at_location(loc)locationboolLe bloc est traversable
is_passthrough_at_location(loc)locationboolLe bloc n'est pas solide
is_on_floor_at_location(loc)locationboolAir avec bloc solide en dessous
is_standing_on_material(loc, material)location, string (Material)boolLe bloc en dessous correspond au matériau

Manipulation de blocs

MethodArgsReturnsDescription
set_block_at_location(loc, material, requireAir?)location, string (Material), bool?=falsenilPlace un bloc. Si requireAir est true, ne remplace que l'air
place_temporary_block_at_location(loc, material, ticks?, requireAir?)location, string, int?=0, bool?=falsenilPlace un bloc, retiré automatiquement après ticks. Si requireAir est true, ne remplace que l'air

Apparition (spawn)

MethodArgsReturnsDescription
spawn_boss_at_location(file, loc?, level?)string, location?=boss loc, int?=boss levelentity or nilFait apparaître un boss personnalisé
spawn_custom_boss_at_location(file, loc, options?)string, location, tableentity or nilFait apparaître un boss avec options (level, silent, add_as_reinforcement, velocity)
spawn_entity_at_location(type, loc, options?)string (EntityType), location, tableentity or nilFait apparaître une entité vanilla avec options (velocity, duration, effect, on_land, max_ticks)
spawn_falling_block_at_location(loc, material, options?)location, string (Material), tableentity or nilFait apparaître un bloc tombant (drop_item, hurt_entities, velocity, on_land)
spawn_reinforcement_at_location(file, loc, level?, velocity?)string, location, int?=0, vectorentity or nilFait apparaître un renfort lié au boss
spawn_fireworks_at_location(loc, config)location, tableentity or nilFait apparaître un feu d'artifice
spawn_splash_potion_at_location(loc, config)location, tableentity or nilFait apparaître une potion de splash

Effets et utilitaires

MethodArgsReturnsDescription
play_sound_at_location(loc, sound, volume?, pitch?)location, string (clé de son Minecraft, par exemple "entity.blaze.shoot"), float?=1, float?=1nilJoue un son
spawn_particle_at_location(loc, particle, count?)location, string (Particle) or table, int?=1nilFait apparaître des particules
strike_lightning_at_location(loc)locationnilFrappe la foudre (contourne la protection EM)
run_empowered_lightning_task_at_location(loc)locationnilEffet de foudre amplifiée
generate_fake_explosion(locations, center?)table of locations, locationnilExplosion visuelle sans dégâts
spawn_fake_gold_nugget_at_location(loc, velocity, gravity?)location, vector, bool?=falsefake projectile or nilFait apparaître un projectile visuel de pépite d'or
run_fake_gold_nugget_damage(projectiles)tablenilLance le check de dégâts sur les faux projectiles
set_world_time(time) or (loc, time)long, or location + longnilDéfinit le temps du monde
set_world_weather(weather, duration?) or (loc, weather, duration?)string (CLEAR, RAIN, PRECIPITATION, THUNDER), int?=6000nilDéfinit la météo
run_console_command(command)stringnilExécute une commande console
generate_player_loot(times?)int?=1nilEffectue ce nombre de tirages de loot joueur pour les damagers
drop_bonus_coins(multiplier?)double?=2nilLâche des pièces bonus au niveau du boss

context.settings (EliteMobs)

MethodArgsReturnsDescription
warning_visual_effects_enabled()boolSi les VFX d'avertissement sont activés dans la config

EliteMobs Event Table

La table context.event est transmise aux hooks de dégâts et de spawn. Les champs varient selon le type d'événement.

Field / MethodTypePresent WhenDescription
damage_amountdoubleÉvénements de dégâtsQuantité brute de dégâts
damage_causestringÉvénements de dégâtsNom de DamageCause
damagerentity tableÉvénements de dégâts par entitéEntité ayant infligé les dégâts
projectileentity tableÉvénements de dégâts par projectileProjectile ayant infligé les dégâts
spawn_reasonstringÉvénement de spawnNom de la raison du spawn
entityentity tableÉvénements de mort/zoneEntité concernée
cancel_event()methodLa plupart des événementsAnnule l'événement
set_damage_amount(amount)method (double)Événements de dégâtsRemplace la quantité de dégâts
multiply_damage_amount(multiplier)method (double)Événements de dégâtsMultiplie les dégâts actuels

context.item FMM

Accédé dans les scripts d'item FMM. Résout l'item scripté spécifique depuis les slots équipés du joueur via un tag PDC.

Les méthodes de lecture inspectent l'item correspondant actuellement équipé lors de l'appel. Les méthodes d'écriture mettent leur mutation en file sur le thread principal Bukkit et retournent nil.

Propriétés

FieldTypeDescription
idstringIdentifiant de script de l'item

Méthodes

MethodArgsReturnsDescription
material()stringNom du Material
get_amount()intTaille de la pile
set_amount(n)intnilMet en file la définition de la taille de la pile
consume(n?)int?=1nilMet en file la décrémentation de n, retire si zéro
get_uses()intCompteur d'utilisations stocké dans le PDC
set_uses(n)intnilMet en file la définition du compteur d'utilisations du PDC
get_durability()table or nilRetourne les champs current et max, ou nil si pas de barre de durabilité
get_durability_percentage()number or nilFraction restante 0.0--1.0, ou nil
use_durability(amount, can_break?)int, bool?=falsenilMet en file la réduction de la durabilité d'un montant plat. Si false, plafonne à 1 restant
use_durability_percentage(fraction, can_break?)number, bool?=falsenilMet en file la réduction de la durabilité d'une fraction du max (0.0--1.0)
get_name()string or nilNom d'affichage
set_name(s)stringnilMet en file la définition du nom d'affichage. Prend en charge les codes couleur
get_lore()tableTableau de chaînes de lore
set_lore(table)tablenilMet en file la définition du lore depuis un tableau de chaînes

context.prop FMM

Accédé dans les scripts de prop FMM. Hérite de tous les champs Entity de l'armor stand sous-jacent.

Propriétés

FieldTypeDescription
model_idstringNom du blueprint de modèle
current_locationlocationPosition actuelle du prop

Méthodes

MethodArgsReturnsDescription
play_animation(name, blend?, loop?)string, bool?=true, bool?=trueboolJoue une animation nommée
stop_animation()nilArrête toutes les animations en cours
hurt_visual()nilFlash de teinte rouge, sans dégâts
pickup()nilMet en file le retrait du prop et le lâcher de l'item de placement
has_mount_points()boolSi le prop possède des points de monture (mount point bones)
mount(player)entity tableboolMet en file une vérification de monte ; true signifie que les références de base étaient valides
dismount(player)entity tableboolMet en file une vérification de démonte ; true signifie que les références de base étaient valides
get_passengers()tableTableau de tables d'entités pour les joueurs montés
spawn_elitemobs_boss(file, x, y, z)string, num, num, numentity or nilFait apparaître un boss EliteMobs (nécessite EliteMobs)
open_inventory(player, title, rows?)entity table, string, int?=3boolMet en file l'ouverture d'un inventaire de coffre persistant (lignes plafonnées 1--6). Le titre prend en charge les codes couleur
place_book(player)entity tableboolMet en file le stockage du livre écrit/inscriptible tenu par le joueur sur le prop
read_book(player)entity tableboolMet en file l'ouverture du livre stocké pour lecture
take_book(player)entity tableboolMet en file le retour du livre stocké au joueur
has_book()boolSi un livre est stocké
drop_inventory()boolMet en file le lâcher de tous les items stockés et l'effacement du stockage
drop_book()boolMet en file le lâcher du livre stocké et l'effacement du stockage
is_viewing_inventory(player)entity tableboolSi le joueur a l'inventaire de ce prop ouvert
set_persistent_data(key, value)string, stringboolStocke une chaîne dans le PDC du prop
get_persistent_data(key)stringstring or nilRécupère une chaîne depuis le PDC du prop

Codes couleur

Toutes les méthodes marquées comme prenant en charge les codes couleur utilisent le ChatColorConverter de Magmacore. Ces formats peuvent être mélangés librement dans n'importe quelle chaîne :

Codes legacy

Utilisez & suivi d'un caractère de couleur/format :

CodeCouleurCodeFormat
&0Noir&lGras
&1Bleu foncé&mBarré
&2Vert foncé&nSouligné
&3Cyan foncé&oItalique
&4Rouge foncé&rRéinitialiser
&5Violet foncé
&6Or
&7Gris
&8Gris foncé
&9Bleu
&aVert
&bCyan
&cRouge
&dViolet clair
&eJaune
&fBlanc

Couleurs hexadécimales

Couleur RGB exacte en utilisant un hex à 6 chiffres :

&#FF5500          -- ampersand prefix
<#FF5500> -- tag syntax

Dégradés

Interpole en douceur entre deux couleurs ou plus à travers le texte :

<gradient:#FF0000:#0000FF>This text fades red to blue</gradient>
<g:#FF0000:#00FF00:#0000FF>Three-color gradient</g>

La forme courte g fonctionne de manière identique à gradient. Vous pouvez chaîner autant d'étapes de couleur que vous voulez.

Arc-en-ciel

Parcourt tout le spectre de teintes à pleine saturation. Un argument numérique optionnel décale la teinte de départ (décalage de phase) :

<rainbow>Full rainbow text</rainbow>
<r:0.5>Rainbow with a shifted starting hue</r>

Types courants

location

{ x = number, y = number, z = number, yaw = number, pitch = number, world = string }

vector

{ x = number, y = number, z = number }

entity table

Toute table avec un champ uuid. Les tables joueur et entité du contexte fonctionnent directement :

context.player                              -- valid entity table
context.world:get_nearby_entities(x,y,z,r) -- returns array of entity tables

Étapes suivantes