Reference complete des methodes de l'API de script Lua. Toutes les methodes sont appelees via la syntaxe context.table:method().
Les methodes globales (marquees GLOBAL) proviennent de Magmacore, la bibliotheque de base partagee -- elles fonctionnent de maniere identique dans les scripts EliteMobs et FreeMinecraftModels.
Les methodes EliteMobs (marquees ELITEMOBS) sont specifiques aux scripts de pouvoir de boss EliteMobs.
Les methodes FMM (marquees FMM) sont specifiques aux scripts d'objets et de props FreeMinecraftModels.
Lorsqu'une methode necessite un enum Bukkit (Sound, Particle, Material, etc.), consultez les Javadocs Spigot pour les valeurs valides. Les noms d'enum sont passes sous forme de strings en majuscules (par exemple, "DIAMOND_SWORD", "ENTITY_ARROW_SHOOT").
Table d'entite GLOBAL
Champs de base presents sur toutes les tables d'entites -- joueurs, mobs, props, tout.
Proprietes
| Champ | Type | Description |
|---|
uuid | string | UUID de l'entite |
entity_type | string | Type d'entite (minuscules) |
is_valid | bool | L'entite existe toujours dans le monde |
is_dead | bool | L'entite est morte |
is_player | bool | Est un joueur |
is_hostile | bool | Est un monstre |
is_passive | bool | Est un animal |
is_elite | bool | Est une entite EliteMobs |
is_custom_boss | bool | Est un boss personnalise EliteMobs |
is_significant_boss | bool | Boss personnalise avec un multiplicateur de sante superieur a 1 (rencontre concue) |
is_modeled | bool | A un modele FMM |
is_prop | bool | Est un prop FMM |
current_location | location | Position de l'entite (x, y, z, yaw, pitch, world) |
world | string | Nom du monde |
Methodes
| Methode | Args | Retourne | Description |
|---|
teleport(location) | table location | nil | Teleporter l'entite |
remove() | -- | nil | Supprimer l'entite du monde |
set_silent(enabled) | bool | nil | Rendre silencieux |
set_invulnerable(enabled) | bool | nil | Rendre invulnerable |
set_gravity(enabled) | bool | nil | Definir la gravite |
set_glowing(enabled) | bool | nil | Definir le contour lumineux |
Bridge : entity.elite
Present uniquement lorsque is_elite est true. Rempli par reflexion -- aucune dependance EliteMobs requise.
| Champ | Type | Description |
|---|
level | int | Niveau du mob elite |
name | string | Nom d'affichage de l'elite |
health | double | Sante actuelle |
max_health | double | Sante maximale |
is_custom_boss | bool | Est un boss personnalise (egalement disponible au niveau superieur) |
health_multiplier | double | Multiplicateur de sante defini en config |
damage_multiplier | double | Multiplicateur de degats defini en config |
remove() | methode | Supprimer l'entite elite |
Bridge : entity.model
Present uniquement lorsque is_modeled est true. Rempli par reflexion -- aucune dependance FMM requise.
| Champ | Type | Description |
|---|
model_id | string | Nom du blueprint du modele |
play_animation(name, blend?, loop?) | methode | Jouer une animation. blend par defaut a false, loop par defaut a false |
stop_animations() | methode | Arreter toutes les animations |
remove() | methode | Supprimer l'entite modelee |
Table d'entite vivante GLOBAL
Etend la Table d'entite. Appliquee a toutes les entites vivantes (mobs et joueurs).
Proprietes
| Champ | Type | Description |
|---|
health | double | Sante actuelle |
maximum_health | double | Sante maximale |
name | string | Nom d'affichage de l'entite |
is_alive | bool | L'entite n'est pas morte |
Methodes
| Methode | Args | Retourne | Description |
|---|
damage(amount) | double | nil | Infliger des degats a l'entite |
push(x, y, z) | double, double, double | nil | Ajouter un vecteur de velocite |
set_facing(x, y, z) | double, double, double | nil | Definir la direction du regard |
add_potion_effect(type, duration, amplifier) | string (PotionEffectType), int, int | nil | Appliquer un effet de potion par nom |
remove_potion_effect(type) | string (PotionEffectType) | nil | Supprimer un effet de potion par nom |
context.player GLOBAL
Table d'entite joueur. Herite de tous les champs Entite et Entite vivante.
Proprietes
| Champ | Type | Description |
|---|
game_mode | string | survival, creative, adventure, spectator |
Methodes
| Methode | Args | Retourne | Description |
|---|
send_message(text) | string | nil | Envoyer un message de chat. Supporte les codes couleur |
get_held_item() | -- | table ou nil | Retourne les champs type, amount, display_name, ou nil si main vide |
consume_held_item(amount?) | int (defaut 1) | nil | Reduire la pile de l'objet en main |
has_item(material, amount?) | string (Material), int (defaut 1) | bool | Verifier l'inventaire pour un materiau |
get_target_entity(range?) | num (defaut 50) | entity ou nil | Raycast vers l'entite que le joueur regarde |
get_eye_location() | -- | location | Position des yeux du joueur |
get_look_direction() | -- | vector | Vecteur de direction unitaire |
send_block_change(x, y, z, material, ticks?) | int, int, int, string (Material), int (optionnel) | bool | Envoyer un faux bloc. Se reinitialise apres les ticks si specifie |
reset_block(x, y, z) | int, int, int | bool | Reinitialiser un faux bloc au reel |
sleep(x, y, z) | num, num, num | nil | Animation de sommeil dans un lit a l'emplacement |
wake_up() | -- | nil | Reveiller du sommeil |
show_boss_bar(text, color?, progress, ticks?) | string, string (BarColor, defaut WHITE), num, int (optionnel) | nil | Afficher la barre de boss. Se masque apres les ticks. Supporte les codes couleur |
hide_boss_bar() | -- | nil | Supprimer la barre de boss |
show_action_bar(text, ticks?) | string, int (optionnel) | nil | Afficher la barre d'action. Repete si ticks superieur a 0. Supporte les codes couleur |
show_title(title, subtitle?, fadeIn, stay, fadeOut) | string, string (defaut vide), int, int, int | nil | Afficher l'ecran titre. Supporte les codes couleur |
context.world GLOBAL
Operations sur le monde. Disponible dans tous les types de script.
Proprietes
| Champ | Type | Description |
|---|
name | string | Nom du monde |
Methodes
| Methode | Args | Retourne | Description |
|---|
get_block_at(x, y, z) | int, int, int | string | Nom de Material (minuscules) |
set_block_at(x, y, z, material) | int, int, int, string (Material) | bool | Placer un bloc |
get_highest_block_y(x, z) | int, int | int | Y 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?=0 | nil | Faire apparaitre un effet de particule |
play_sound(sound, x, y, z, volume?, pitch?) | string (Sound), num, num, num, float?=1, float?=1 | nil | Jouer un son |
strike_lightning(x, y, z) | num, num, num | nil | Faire tomber la foudre |
get_time() | -- | int | Heure du monde en ticks |
set_time(ticks) | long | nil | Definir l'heure du monde |
get_nearby_entities(x, y, z, radius) | num, num, num, num | table | Tableau de tables d'entites |
get_nearby_players(x, y, z, radius) | num, num, num, num | table | Tableau de tables d'entites joueurs |
spawn_entity(type, x, y, z) | string (EntityType), num, num, num | entity | Faire apparaitre une entite vanilla |
raycast(fx, fy, fz, dx, dy, dz, max?) | num, num, num, num, num, num, num?=50 | table | Retourne 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?=false | bool | Placer un bloc qui se restaure automatiquement apres les ticks |
drop_item(x, y, z, material, amount?) | num, num, num, string (Material), int?=1 | entity | Lacher naturellement une entite objet a l'emplacement |
spawn_firework(x, y, z, colors, type?, power?) | num, num, num, table, string (FireworkEffect.Type)?=BALL, int?=1 | nil | Faire apparaitre un feu d'artifice |
context.boss ELITEMOBS
Table d'entite boss pour les scripts de pouvoir Lua EliteMobs. Herite de toutes les methodes Entite vivante EliteMobs. Les proprietes se rafraichissent via des getters dedies.
Proprietes
| Champ | Type | Description |
|---|
name | string | Nom d'affichage du boss |
uuid | string | UUID de l'entite elite |
health | double | Sante actuelle (instantane) |
maximum_health | double | Sante maximale (instantane) |
current_location | location | Position du boss (instantane) |
level | int | Niveau du boss |
damager_count | int | Nombre de joueurs ayant endommage ce boss |
is_in_combat | bool | Le boss est en combat |
exists | bool | L'entite boss existe |
Methodes
| Methode | Args | Retourne | Description |
|---|
is_alive() | -- | bool | Si l'entite boss est en vie (verification en direct) |
get_health() | -- | double | Sante actuelle (en direct) |
get_maximum_health() | -- | double | Sante maximale (en direct) |
get_location() | -- | location | Position actuelle (en direct) |
restore_health(amount) | double | nil | Soigner le boss |
despawn() | -- | nil | Supprimer l'entite boss |
get_damager_count() | -- | int | Compteur de joueurs ayant inflige des degats (en direct) |
add_tag(tag, ticks?) | string, int?=0 | nil | Ajouter un tag, suppression auto apres les ticks si defini |
remove_tag(tag) | string | nil | Supprimer un tag |
has_tag(tag) | string | bool | Verifier un tag |
reset_custom_name() | -- | nil | Reinitialiser le nom a la valeur par defaut de la config |
play_sound_at_self(sound, volume?, pitch?) | string (Sound), float?=1, float?=1 | nil | Jouer un son au boss |
play_sound_at_entity(sound, volume?, pitch?) | string (Sound), float?=1, float?=1 | nil | Jouer un son au boss (alias) |
spawn_particle_at_self(particle, count?) | string (Particle) ou table, int?=1 | nil | Faire apparaitre des particules au boss |
play_model_animation(name) | string | nil | Jouer une animation de modele FMM (necessite un modele FMM) |
navigate_to_location(location, speed?, force?, timeout?) | location, double?=1, bool?=false, int?=0 | nil | Pathfinding vers un emplacement |
send_message(text, range?) | string, double?=20 | nil | Envoyer un message aux joueurs proches. Supporte les codes couleur |
get_nearby_players(range) | double | table | Tableau de tables de joueurs a portee |
get_target_player() | -- | player ou nil | Cible actuelle du mob si c'est un joueur |
get_nearby_players_in_zone(zone) | table zone | table | Joueurs a l'interieur de la forme de zone |
get_ender_dragon_phase() | -- | string ou nil | Nom de EnderDragon.Phase |
set_ender_dragon_phase(phase) | string (EnderDragon.Phase) | nil | Definir la phase de l'ender dragon |
summon_reinforcement(file, zone?, level?) | string, zone ou nil, int?=0 | entity ou nil | Faire apparaitre un boss de renfort |
summon_projectile(type, origin, dest, speed?, options?) | string (EntityType), location, location, double?=1, table | entity | Faire apparaitre un projectile suivi |
Options de summon_projectile
| Option | Type | Defaut | Description |
|---|
custom_damage | number | -- | Remplacer les degats du projectile |
detonation_power | string | -- | Niveau de puissance d'explosion |
yield | number | -- | Rendement de la boule de feu |
incendiary | bool | true | La boule de feu met le feu |
gravity | bool | -- | Activer la gravite |
glowing | bool | false | Rendre lumineux |
invulnerable | bool | false | Rendre invulnerable |
persistent | bool | true | Rendre persistant |
duration | int | 0 | Suppression auto apres les ticks |
effect | string | -- | EntityEffect a jouer a l'apparition |
spawn_at_origin | bool | false | Apparaitre a l'origine au lieu de lancer depuis le boss |
direction_only | bool | false | Definir la direction sans velocite (boules de feu) |
track | bool | true | Enregistrer comme projectile elite |
on_land | function | -- | Callback quand le projectile atterrit : function(location, entity) |
max_ticks | int | 6000 | Ticks max avant le callback d'atterrissage force |
Methodes zone/particules
| Methode | Args | Retourne | Description |
|---|
spawn_particles_in_zone(zone, particle, ...) | zone, spec particule, coverage?=1.0 | nil | Remplir la zone de particules |
spawn_particles_in_zone_border(zone, particle, ...) | zone, spec particule, coverage?=1.0 | nil | Dessiner le contour de la zone avec des particules |
get_particles_from_self_toward_zone(zone, particle, speed?) | zone, string, double?=0.1 | table | Particules directionnelles du boss vers la zone |
get_particles_toward_self(zone, particle, speed?) | zone, string, double?=0.1 | table | Particules directionnelles de la zone vers le boss |
spawn_particles_with_vector(particles) | table | nil | Faire apparaitre un tableau de particules directionnelles |
Support de pouvoirs speciaux
| Methode | Args | Retourne | Description |
|---|
start_tracking_fireball_system(speed?) | double?=0.5 | nil | Demarrer l'IA de boule de feu pistee |
handle_spirit_walk_damage(cause) | string (DamageCause) | nil | Gerer les degats de marche spectrale par cause |
shield_wall_is_active() | -- | bool | Si le mur de bouclier est actif |
initialize_shield_wall(charges?) | int?=1 | nil | Activer le mur de bouclier |
shield_wall_absorb_damage(player, damage) | table entite, double | bool | Tenter d'absorber les degats |
deactivate_shield_wall() | -- | nil | Desactiver le mur de bouclier |
start_zombie_necronomicon(target, file) | table entite, string | nil | Demarrer le necronomicon sur la cible |
Table d'entite vivante EliteMobs ELITEMOBS
Les tables d'entites creees dans les scripts de pouvoir EliteMobs (depuis context.boss, les donnees d'evenement, les callbacks de zone et les requetes de monde) utilisent une table d'entite vivante etendue avec des methodes supplementaires au-dela de l'Entite vivante globale. context.boss herite de toutes celles-ci.
Proprietes
| Champ | Type | Description |
|---|
name | string | Nom d'affichage de l'entite |
uuid | string | UUID de l'entite |
entity_type | string | Nom du type d'entite |
is_player | bool | Est un joueur |
is_monster | bool | Est un monstre |
is_elite | bool | Est une entite EliteMobs |
is_valid | bool | L'entite existe toujours |
health | double | Sante actuelle (instantane) |
maximum_health | double | Sante maximale (instantane) |
current_location | location | Position de l'entite (instantane) |
game_mode | string | Mode de jeu (joueurs uniquement) |
Methodes
| Methode | Args | Retourne | Description |
|---|
is_alive() | -- | bool | Si l'entite est en vie (verification en direct) |
is_ai_enabled() | -- | bool | Si l'IA est activee |
is_frozen() | -- | bool | Si le boss est gele (CustomBossEntity uniquement) |
is_on_ground() | -- | bool | Si l'entite est au sol |
is_healing() | -- | bool | Si l'elite est en train de se soigner |
get_location() | -- | location | Position actuelle (en direct) |
get_eye_location() | -- | location | Position des yeux (en direct) |
get_height() | -- | double | Hauteur de l'entite |
get_health() | -- | double | Sante actuelle (en direct) |
get_maximum_health() | -- | double | Sante maximale (en direct) |
get_velocity() | -- | vector | Vecteur de velocite actuel |
deal_damage(amount) | double | nil | Infliger des degats generiques |
deal_custom_damage(amount) | double | nil | Infliger des degats d'attaque de boss personnalise du boss du pouvoir |
deal_damage_from_boss(amount) | double | nil | Infliger des degats attribues a l'entite boss du pouvoir |
restore_health(amount) | double | nil | Soigner l'entite (utilise le soin EliteMobs si elite) |
play_sound_at_entity(sound, volume?, pitch?) | string (Sound), float?=1, float?=1 | nil | Jouer un son a l'entite |
play_sound_at_self(sound, volume?, pitch?) | string (Sound), float?=1, float?=1 | nil | Jouer un son a l'entite (alias) |
spawn_particle_at_self(particle, count?) | string (Particle) ou table, int?=1 | nil | Faire apparaitre des particules a l'entite |
spawn_particles_at_location(loc, particle, count?) | location, spec particule, int?=1 | nil | Faire apparaitre des particules a un emplacement |
teleport_to_location(location) | location | nil | Teleporter l'entite |
set_velocity_vector(vector) | vector | nil | Definir la velocite |
set_gravity(enabled) | bool | nil | Definir la gravite |
apply_push_vector(vector, additive?, delay?) | vector, bool?=false, int?=1 | nil | Appliquer la velocite apres un delai. additive ajoute a la velocite existante |
push_relative_to(location, force?, extraX?, extraY?, extraZ?) | location, double?=1, double?=0, double?=0, double?=0 | nil | Pousser l'entite loin de l'emplacement |
set_custom_name(name) | string | nil | Definir le nom d'affichage personnalise. Supporte les codes couleur |
reset_custom_name() | -- | nil | Reinitialiser le nom au defaut EliteMobs |
set_custom_name_visible(visible) | bool | nil | Basculer la visibilite du nom |
set_ai_enabled(enabled, duration?) | bool, int?=0 | nil | Definir l'etat de l'IA. Retour auto apres la duree en ticks |
set_awareness_enabled(enabled, duration?) | bool, int?=0 | nil | Definir la conscience du mob. Retour auto apres la duree en ticks |
face_direction_or_location(target) | vector ou location | nil | Faire face a une direction ou regarder vers un emplacement |
play_model_animation(name) | string | nil | Jouer une animation de modele FMM (necessite un modele FMM) |
set_scale(scale, duration?) | double, int?=0 | nil | Definir l'echelle de l'entite. Retour auto a 1.0 apres la duree en ticks |
set_invulnerable(enabled, duration?) | bool, int?=0 | nil | Rendre invulnerable. Retour auto apres la duree en ticks |
set_healing(enabled) | bool | nil | Definir l'etat de soin de l'elite |
navigate_to_location(location, speed?, force?, timeout?) | location, double?=1, bool?=false, int?=0 | nil | Pathfinding vers un emplacement (CustomBossEntity uniquement) |
add_tag(tag, ticks?) | string, int?=0 | nil | Ajouter un tag, suppression auto apres les ticks |
remove_tag(tag) | string | nil | Supprimer un tag |
has_tag(tag) | string | bool | Verifier un tag |
overlaps_box_at_location(center, halfX?, halfY?, halfZ?) | location, double?=0.5, double?=halfX, double?=halfX | bool | Si la boite englobante de l'entite chevauche une boite a l'emplacement |
remove_elite() | -- | nil | Supprimer via le pipeline de suppression EliteMobs |
apply_potion_effect(type, duration, amplifier?) | string (PotionEffectType), int, int?=0 | nil | Appliquer un effet de potion |
set_equipment(slot, material, options?) | string (EquipmentSlot), string (Material), table | nil | Definir l'objet d'un slot d'equipement |
set_fire_ticks(ticks) | int | nil | Definir les ticks de feu |
add_visual_freeze_ticks(ticks?) | int?=1 | nil | Ajouter des ticks visuels de gel |
place_temporary_block(material, ticks?, visual?) | string (Material), int?=0, bool?=false | nil | Placer un bloc temporaire a l'emplacement de l'entite |
Options de set_equipment
| Option | Type | Defaut | Description |
|---|
unbreakable | bool | false | Rendre l'objet incassable |
enchantments | table | -- | Tableau de tables {type = "ENCHANT_NAME", level = 1} |
Methodes de joueur EliteMobs
Les joueurs dans les scripts EliteMobs ont toutes les methodes d'entite vivante EliteMobs plus :
| Methode | Args | Retourne | Description |
|---|
send_message(text) | string | nil | Envoyer un message de chat. Supporte les codes couleur |
show_action_bar(text) | string | nil | Afficher du texte en barre d'action. Supporte les codes couleur |
show_title(title, subtitle?, fadeIn?, stay?, fadeOut?) | string, string?="", int?=10, int?=40, int?=10 | nil | Afficher l'ecran titre. Supporte les codes couleur |
show_boss_bar(title, color?, style?, duration?) | string, string (BarColor)?=WHITE, string (BarStyle)?=SOLID, int?=40 | nil | Afficher la barre de boss. Se masque apres la duree en ticks. Supporte les codes couleur |
run_command(command) | string | nil | Executer une commande en tant que joueur |
Table de reference d'entite EliteMobs
Les entites non vivantes (projectiles, blocs en chute, feux d'artifice) retournees par les methodes d'apparition EliteMobs obtiennent une table de reference legere :
| Champ / Methode | Args | Retourne | Description |
|---|
name | -- | string | Nom de l'entite |
uuid | -- | string | UUID de l'entite |
entity_type | -- | string | Nom du type d'entite |
is_player | -- | bool | Toujours false |
is_elite | -- | bool | Toujours false |
is_valid() | -- | bool | Si l'entite est toujours valide (verification en direct) |
current_location | -- | location | Position (instantane) |
get_location() | -- | location | Position actuelle (en direct) |
get_velocity() | -- | vector | Vecteur de velocite actuel |
is_on_ground() | -- | bool | Si l'entite est au sol |
teleport_to_location(location) | location | nil | Teleporter l'entite |
set_velocity_vector(vector) | vector | nil | Definir la velocite |
set_direction_vector(vector) | vector | nil | Definir la direction (boules de feu uniquement) |
set_yield(amount) | double | nil | Definir le rendement de la boule de feu |
set_gravity(enabled) | bool | nil | Definir la gravite |
detonate() | -- | nil | Detoner le feu d'artifice |
remove() | -- | nil | Supprimer l'entite |
unregister(reason?) | string?=OTHER | nil | Desenregistrer du tracker d'entites EliteMobs |
context.players ELITEMOBS
Table de requete de joueurs disponible dans les scripts de pouvoir EliteMobs. Fournit des methodes utilitaires pour trouver des joueurs par rapport au boss.
| Methode | Args | Retourne | Description |
|---|
current_target() | -- | player ou nil | Acteur de l'evenement si joueur, ou cible actuelle du mob si joueur |
nearby_players(radius) | double | table | Tableau de tables de joueurs dans le rayon autour du boss |
all_players_in_world() | -- | table | Tableau de toutes les tables de joueurs dans le monde du boss |
context.entities ELITEMOBS
Table de requete d'entites disponible dans les scripts de pouvoir EliteMobs. Fournit des methodes utilitaires pour trouver des entites par rapport au boss. Toutes les requetes excluent le boss lui-meme.
| Methode | Args | Retourne | Description |
|---|
get_nearby_entities(radius, filter?) | double, string?="living" | table | Entites dans le rayon. Filtre : "living", "all", "entities" |
get_entities_in_box(center, halfX, halfY, halfZ, filter?) | location, double, double, double, string?="living" | table | Entites a l'interieur d'une boite alignee sur les axes |
get_all_entities(filter?) | string?="living" | table | Toutes les entites dans le monde du boss |
get_direct_target_entity() | -- | entity ou nil | Entite cible directe de l'evenement declencheur |
get_boss_spawn_location() | -- | location | L'emplacement d'apparition original du boss |
context.vectors ELITEMOBS
Utilitaires de calcul vectoriel disponibles dans les scripts de pouvoir EliteMobs.
| Methode | Args | Retourne | Description |
|---|
get_vector_between_locations(from, to, options?) | location, location, table | vector | Vecteur de la source a la destination. Les options peuvent modifier le resultat |
rotate_vector(vector, pitch?, yaw?) | vector, double?=0, double?=0 | vector | Pivoter le vecteur par pitch et yaw (degres) |
normalize_vector(vector) | vector | vector | Normaliser a une longueur unitaire |
context.cooldowns GLOBAL
Gestion des temps de recharge. Les temps de recharge locaux sont par instance de script ; les temps de recharge globaux sont partages entre tous les scripts sur la meme entite/proprietaire. Si aucune cle n'est fournie, la valeur par defaut est le nom de fichier du script.
| Methode | Args | Retourne | Description |
|---|
local_ready(key?) | string (optionnel) | bool | Si le temps de recharge local a expire |
local_remaining(key?) | string (optionnel) | int | Ticks restants sur le temps de recharge local (0 si pret) |
check_local(key?, duration) | string (optionnel), int | bool | Si pret, demarre le temps de recharge et retourne true ; sinon false |
set_local(duration, key?) | long, string (optionnel) | nil | Definir le temps de recharge local pour une duree en ticks |
global_ready() | — | bool | Si le temps de recharge global a expire |
set_global(duration) | long | nil | Definir le temps de recharge global pour une duree en ticks |
Dans les scripts de pouvoir EliteMobs, les temps de recharge locaux sont partages entre tous les pouvoirs sur la meme entite boss, et les temps de recharge globaux utilisent le systeme de temps de recharge de pouvoir integre du boss.
context.scheduler GLOBAL
Planification de taches. Toutes les taches sont automatiquement annulees lorsque le script s'arrete.
Variante globale (Magmacore)
| Methode | Args | Retourne | Description |
|---|
run_later(ticks, callback) | int, function | int | Executer le callback apres un nombre de ticks. Retourne l'ID de la tache |
run_repeating(delay, interval, callback) | int, int, function | int | Executer le callback a chaque intervalle de ticks apres le delai initial. Retourne l'ID de la tache |
cancel(taskId) | int | nil | Annuler une tache planifiee |
Variante EliteMobs
| Methode | Args | Retourne | Description |
|---|
run_after(ticks, callback) | int, function | int | Executer le callback apres un nombre de ticks. Retourne l'ID de la tache |
run_every(ticks, callback) | int, function | int | Executer le callback tous les N ticks. Retourne l'ID de la tache |
cancel_task(taskId) | int | nil | Annuler une tache planifiee |
context.log GLOBAL
Utilitaires de journalisation pour le debogage des scripts.
| Methode | Args | Retourne | Description |
|---|
info(message) | string | nil | Journaliser un message d'information |
warn(message) | string | nil | Journaliser un message d'avertissement |
error(message) | string | nil | Journaliser un message d'erreur/avertissement |
debug(message) | string | nil | Journaliser un message de debogage (apparait comme info avec prefixe debug) |
context.zones GLOBAL
Creation et surveillance de zones. Disponible dans tous les types de scripts.
Variante globale (Magmacore)
| Methode | Args | Retourne | Description |
|---|
create_sphere(x, y, z, radius) | num, num, num, num | int | Creer une zone sphere, retourne un identifiant |
create_cylinder(x, y, z, radius, height) | num, num, num, num, num | int | Creer une zone cylindre, retourne un identifiant |
create_cuboid(x, y, z, xSize, ySize, zSize) | num, num, num, num, num, num | int | Creer une zone cuboide, retourne un identifiant |
watch(handle, on_enter?, on_leave?) | int, function, function | bool | Commencer a suivre les evenements d'entree/sortie des joueurs pour la zone |
unwatch(handle) | int | nil | Arreter le suivi de la zone |
Variante EliteMobs
| Methode | Args | Retourne | Description |
|---|
get_entities_in_zone(zone, options?) | zone table, table | table | Obtenir les entites dans la zone. Options : filter, mode |
get_locations_in_zone(zone, options?) | zone table, table | table | Obtenir les emplacements dans la zone. Options : coverage, mode |
zone_contains(zone, location, mode?) | zone table, location, string?="full" | bool | Si l'emplacement est dans la zone ("full" ou "border") |
watch_zone(zone, callbacks, mode?) | zone table, table, string?="full" | int | Surveiller la zone pour les entrees/sorties. Callbacks : {on_enter = fn, on_leave = fn} |
context.event GLOBAL
Table de donnees d'evenement pour le hook qui a declenche l'execution actuelle du script. Present uniquement lors des hooks pilotes par evenements (pas sur on_tick).
Variante globale (Magmacore)
| Champ / Methode | Type | Description |
|---|
is_cancelled | bool | Si l'evenement est actuellement annule |
cancel() | method | Annuler l'evenement |
uncancel() | method | Retablir l'evenement |
player | entity table | Joueur implique dans l'evenement (le cas echeant) |
Pour la table d'evenement EliteMobs (qui fournit les montants de degats, les causes de degats, etc.), voir Table d'evenement EliteMobs.
context.script ELITEMOBS
Pont vers le systeme Elite Script d'EliteMobs. Permet aux pouvoirs Lua d'utiliser les systemes de ciblage, de zone et de vecteur relatif bases sur YAML via des tables Lua avec les memes noms de champs que les configurations YAML d'Elite Script.
Methodes
| Methode | Args | Retourne | Description |
|---|
target(spec) | table | target handle | Creer un identifiant de cible a partir d'une table de specification de cible Elite Script |
zone(spec) | table | zone handle | Creer un identifiant de zone a partir d'une table de specification de zone Elite Script |
relative_vector(spec, location?, zone?) | table, location, zone handle | vector handle | Creer un vecteur relatif a partir d'une specification de vecteur Elite Script |
damage(target, amount?, multiplier?) | target handle, double?=0, double?=1 | nil | Infliger des degats a toutes les entites dans la cible |
push(target, vector, additive?) | target handle, vector ou vector handle, bool?=false | nil | Pousser les entites cibles avec une velocite |
set_facing(target, vector) | target handle, vector ou vector handle | nil | Definir la direction de regard des entites cibles |
spawn_particles(target, particles) | target handle, table ou string | nil | Faire apparaitre des particules aux emplacements cibles |
Target Handle
Retourne par context.script:target(spec). La table de specification utilise les memes cles que les configurations YAML de cible Elite Script (par ex., {targetType = "NEARBY_PLAYERS", range = 20}).
| Methode | Args | Retourne | Description |
|---|
entities() | — | table | Tableau d'entites a la cible |
locations() | — | table | Tableau d'emplacements a la cible |
first_entity() | — | entity ou nil | Premiere entite a la cible |
first_location() | — | location ou nil | Premier emplacement a la cible |
Zone Handle
Retourne par context.script:zone(spec). La table de specification utilise les memes cles que les configurations YAML de zone Elite Script (par ex., {shape = "SPHERE", radius = 5, target = {targetType = "SELF"}}).
| Methode | Args | Retourne | Description |
|---|
full_target(coverage?) | number | target handle | Identifiant de cible pour les emplacements interieurs de la zone |
border_target(coverage?) | number | target handle | Identifiant de cible pour les emplacements de bordure de la zone |
full_locations(coverage?) | number | table | Tableau des emplacements interieurs |
border_locations(coverage?) | number | table | Tableau des emplacements de bordure |
full_entities() | — | table | Entites a l'interieur de la zone |
border_entities() | — | table | Entites sur la bordure de la zone |
contains(location, mode?) | location, string?="full" | bool | Si l'emplacement est dans la zone |
watch(callbacks, mode?) | table, string?="full" | int | Surveiller les entrees/sorties. Retourne l'ID de la tache |
Vector Handle
Retourne par context.script:relative_vector(spec). La table de specification utilise les memes cles que les configurations YAML de vecteur relatif Elite Script.
| Methode | Args | Retourne | Description |
|---|
resolve() | — | vector | Calculer le vecteur pour le contexte actuel |
context.world (EliteMobs) ELITEMOBS
Table de monde etendue pour les scripts de pouvoir EliteMobs. Ajoute l'apparition specifique aux boss, les verifications de blocs et les effets par-dessus la table de monde globale.
Requetes de blocs
| Methode | Args | Retourne | Description |
|---|
get_block_type_at_location(loc) | location | string ou nil | Nom de Material |
get_highest_block_y_at_location(loc) | location | int ou nil | Y du bloc le plus haut |
get_blast_resistance_at_location(loc) | location | double | Valeur de resistance a l'explosion |
is_air_at_location(loc) | location | bool | Le bloc est de l'air |
is_passable_at_location(loc) | location | bool | Le bloc est traversable |
is_passthrough_at_location(loc) | location | bool | Le bloc n'est pas solide |
is_on_floor_at_location(loc) | location | bool | Air avec un bloc solide en dessous |
is_standing_on_material(loc, material) | location, string (Material) | bool | Le bloc en dessous correspond au materiau |
Manipulation de blocs
| Methode | Args | Retourne | Description |
|---|
set_block_at_location(loc, material, visual?) | location, string (Material), bool?=false | nil | Placer un bloc. visual=true pour un faux bloc |
place_temporary_block_at_location(loc, material, ticks?, visual?) | location, string, int?=0, bool?=false | nil | Placer un bloc, suppression auto apres les ticks |
Apparition
| Methode | Args | Retourne | Description |
|---|
spawn_boss_at_location(file, loc?, level?) | string, location?=loc boss, int?=niveau boss | entity ou nil | Faire apparaitre un boss personnalise |
spawn_custom_boss_at_location(file, loc, options?) | string, location, table | entity ou nil | Faire apparaitre un boss avec options (level, silent, add_as_reinforcement, velocity) |
spawn_entity_at_location(type, loc, options?) | string (EntityType), location, table | entity | Faire apparaitre une entite vanilla avec options (velocity, duration, effect, on_land, max_ticks) |
spawn_falling_block_at_location(loc, material, options?) | location, string (Material), table | entity | Faire apparaitre un bloc en chute (drop_item, hurt_entities, velocity, on_land) |
spawn_reinforcement_at_location(file, loc, level?, velocity?) | string, location, int?=0, vector | entity ou nil | Faire apparaitre un renfort lie au boss |
spawn_fireworks_at_location(loc, config) | location, table | entity ou nil | Faire apparaitre un feu d'artifice |
spawn_splash_potion_at_location(loc, config) | location, table | entity ou nil | Faire apparaitre une potion de lancer |
Effets et utilitaires
| Methode | Args | Retourne | Description |
|---|
play_sound_at_location(loc, sound, volume?, pitch?) | location, string (Sound), float?=1, float?=1 | nil | Jouer un son |
spawn_particle_at_location(loc, particle, count?) | location, string (Particle) ou table, int?=1 | nil | Faire apparaitre des particules |
strike_lightning_at_location(loc) | location | nil | Faire tomber la foudre (contourne la protection EM) |
run_empowered_lightning_task_at_location(loc) | location | nil | Effet de foudre amplifiee |
generate_fake_explosion(locations, center?) | table de locations, location | nil | Explosion visuelle sans degats |
spawn_fake_gold_nugget_at_location(loc, velocity, gravity?) | location, vector, bool?=false | faux projectile | Faire apparaitre un projectile visuel de pepite d'or |
run_fake_gold_nugget_damage(projectiles) | table | nil | Executer la verification de degats sur les faux projectiles |
set_world_time(time) or (loc, time) | long, ou location + long | nil | Definir l'heure du monde |
set_world_weather(weather, duration?) or (loc, weather, duration?) | string (CLEAR, RAIN, PRECIPITATION, THUNDER), int?=6000 | nil | Definir la meteo |
run_console_command(command) | string | nil | Executer une commande console |
generate_player_loot(level?) | int?=1 | nil | Generer du butin pour les attaquants |
drop_bonus_coins(multiplier?) | double?=2 | nil | Lacher des pieces bonus au boss |
context.settings (EliteMobs)
| Methode | Args | Retourne | Description |
|---|
warning_visual_effects_enabled() | -- | bool | Si les effets visuels d'avertissement sont actives dans la config |
Table d'evenement EliteMobs
La table context.event est passee aux hooks de degats et d'apparition. Les champs varient selon le type d'evenement.
| Champ / Methode | Type | Present quand | Description |
|---|
damage_amount | double | Evenements de degats | Montant de degats brut |
damage_cause | string | Evenements de degats | Nom de DamageCause |
damager | table entite | Evenements de degats par entite | Entite ayant inflige les degats |
projectile | table entite | Evenements de degats par projectile | Projectile ayant inflige les degats |
spawn_reason | string | Evenement d'apparition | Nom de la raison d'apparition |
entity | table entite | Evenements de mort/zone | Entite concernee |
cancel_event() | methode | La plupart des evenements | Annuler l'evenement |
set_damage_amount(amount) | methode (double) | Evenements de degats | Remplacer le montant de degats |
multiply_damage_amount(multiplier) | methode (double) | Evenements de degats | Multiplier les degats actuels |
context.item FMM
Accessible dans les scripts d'objets FMM. Resout l'objet scripte specifique a partir des slots equipes du joueur via le tag PDC.
Proprietes
| Champ | Type | Description |
|---|
id | string | Identifiant de script de l'objet |
Methodes
| Methode | Args | Retourne | Description |
|---|
material() | -- | string | Nom de Material |
get_amount() | -- | int | Taille de la pile |
set_amount(n) | int | nil | Definir la taille de la pile |
consume(n?) | int?=1 | nil | Decrementer la quantite de n, supprimer si zero |
get_uses() | -- | int | Compteur d'utilisation stocke en PDC |
set_uses(n) | int | nil | Definir le compteur d'utilisation PDC |
get_durability() | -- | table ou nil | Retourne les champs current et max, ou nil si pas de barre de durabilite |
get_durability_percentage() | -- | number ou nil | Fraction restante 0.0--1.0, ou nil |
use_durability(amount, can_break?) | int, bool?=false | nil | Reduire la durabilite d'un montant fixe. Si false, bloque a 1 restant |
use_durability_percentage(fraction, can_break?) | number, bool?=false | nil | Reduire la durabilite d'une fraction du max (0.0--1.0) |
get_name() | -- | string ou nil | Nom d'affichage |
set_name(s) | string | nil | Definir le nom d'affichage. Supporte les codes couleur |
get_lore() | -- | table | Tableau de strings de description |
set_lore(table) | table | nil | Definir la description depuis un tableau de strings |
context.prop FMM
Accessible dans les scripts de prop FMM. Herite de tous les champs Entite du support d'armure sous-jacent.
Proprietes
| Champ | Type | Description |
|---|
model_id | string | Nom du modele du blueprint |
current_location | location | Position actuelle du prop |
Methodes
| Methode | Args | Retourne | Description |
|---|
play_animation(name, blend?, loop?) | string, bool?=true, bool?=true | bool | Jouer une animation nommee |
stop_animation() | -- | nil | Arreter toutes les animations en cours |
hurt_visual() | -- | nil | Flash de teinte rouge, sans degats |
pickup() | -- | nil | Supprimer le prop et lacher l'objet de placement |
has_mount_points() | -- | bool | Si le prop a des os de point de montage |
mount(player) | table entite | bool | Monter le joueur sur le premier siege disponible |
dismount(player) | table entite | bool | Demonter le joueur |
get_passengers() | -- | table | Tableau de tables d'entites pour les joueurs montes |
spawn_elitemobs_boss(file, x, y, z) | string, num, num, num | entity ou nil | Faire apparaitre un boss EliteMobs (necessite EliteMobs) |
open_inventory(player, title, rows?) | table entite, string, int?=3 | bool | Ouvrir un inventaire coffre persistant (1--6 rangees). Le titre supporte les codes couleur |
place_book(player) | table entite | bool | Stocker le livre ecrit tenu par le joueur sur le prop |
read_book(player) | table entite | bool | Ouvrir le livre stocke pour la lecture |
take_book(player) | table entite | bool | Rendre le livre stocke au joueur |
has_book() | -- | bool | Si un livre est stocke |
drop_inventory() | -- | bool | Lacher tous les objets stockes et vider |
drop_book() | -- | bool | Lacher le livre stocke et vider |
is_viewing_inventory(player) | table entite | bool | Si le joueur a l'inventaire de ce prop ouvert |
set_persistent_data(key, value) | string, string | bool | Stocker un string dans le PDC du prop |
get_persistent_data(key) | string | string ou nil | Recuperer un string depuis le PDC du prop |
Codes couleur
Toutes les methodes marquees comme supportant les codes couleur utilisent le ChatColorConverter de Magmacore. Ces formats peuvent etre melanges librement dans n'importe quel string :
Codes heritage
Utilisez & suivi d'un caractere de couleur/format :
| Code | Couleur | Code | Format |
|---|
&0 | Noir | &l | Gras |
&1 | Bleu fonce | &m | Barre |
&2 | Vert fonce | &n | Souligne |
&3 | Cyan fonce | &o | Italique |
&4 | Rouge fonce | &r | Reinitialiser |
&5 | Violet fonce | | |
&6 | Or | | |
&7 | Gris | | |
&8 | Gris fonce | | |
&9 | Bleu | | |
&a | Vert | | |
&b | Cyan | | |
&c | Rouge | | |
&d | Violet clair | | |
&e | Jaune | | |
&f | Blanc | | |
Couleurs hexadecimales
Couleur RGB exacte en hexadecimal a 6 chiffres :
&#FF5500 -- ampersand prefix
<#FF5500> -- tag syntax
Degrades
Interpolation fluide entre deux couleurs ou plus a 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 maniere identique a gradient. Vous pouvez chainer autant de points de couleur que vous le souhaitez.
Arc-en-ciel
Cycle a travers le spectre de teinte complet. Saturation optionnelle (0--100) :
<rainbow>Full rainbow text</rainbow>
<r:50>Pastel rainbow (50% saturation)</r>
Types communs
location
{ x = number, y = number, z = number, yaw = number, pitch = number, world = string }
vector
{ x = number, y = number, z = number }
table d'entite
Toute table avec un champ uuid. Les tables de joueur et d'entite du contexte fonctionnent directement :
context.player -- valid entity table
context.world:get_nearby_entities(x,y,z,r) -- returns array of entity tables