Saltar al contenido principal

Referencia de la API Lua

Referencia completa de métodos para la API de scripting Lua. Todos los métodos se llaman mediante la sintaxis context.table:method().

Los métodos Globales (marcados con GLOBAL) provienen de Magmacore, la biblioteca central compartida — funcionan de forma idéntica en scripts de EliteMobs y FreeMinecraftModels.

Los métodos de EliteMobs (marcados con ELITEMOBS) son específicos de los scripts de poderes de jefes de EliteMobs.

Los métodos de FMM (marcados con FMM) son específicos de los scripts de items y props de FreeMinecraftModels.

Cuando un método requiere un enum de Bukkit (Sound, Particle, Material, etc.), consulta los Javadocs de Spigot para valores válidos. Los nombres de enum se pasan como cadenas en mayúsculas (ej., "DIAMOND_SWORD", "ENTITY_ARROW_SHOOT").


Tabla de Entidad GLOBAL

Campos base presentes en todas las tablas de entidad — jugadores, mobs, props, cualquier cosa.

Propiedades

CampoTipoDescripción
uuidstringUUID de la entidad
entity_typestringTipo de entidad (minúsculas)
is_validboolLa entidad aún existe en el mundo
is_deadboolLa entidad está muerta
is_playerboolEs un jugador
is_hostileboolEs un monstruo
is_passiveboolEs un animal
is_eliteboolEs una entidad de EliteMobs
is_custom_bossboolEs un jefe personalizado de EliteMobs
is_significant_bossboolJefe personalizado con multiplicador de salud superior a 1 (encuentro diseñado)
is_modeledboolTiene un modelo FMM
is_propboolEs un prop de FMM
current_locationlocationPosición de la entidad (x, y, z, yaw, pitch, world)
worldstringNombre del mundo

Métodos

MétodoArgsRetornaDescripción
teleport(location)location tablenilTeletransportar entidad
remove()nilEliminar entidad del mundo
set_silent(enabled)boolnilEstablecer silencio
set_invulnerable(enabled)boolnilEstablecer invulnerabilidad
set_gravity(enabled)boolnilEstablecer gravedad
set_glowing(enabled)boolnilEstablecer brillo

Puente: entity.elite

Solo presente cuando is_elite es true. Se rellena mediante reflexión — no requiere dependencia de EliteMobs.

CampoTipoDescripción
levelintNivel del mob elite
namestringNombre visible del elite
healthdoubleSalud actual
max_healthdoubleSalud máxima
is_custom_bossboolEs un jefe personalizado (también disponible en el nivel superior)
health_multiplierdoubleMultiplicador de salud definido en la configuración
damage_multiplierdoubleMultiplicador de daño definido en la configuración
remove()methodEliminar la entidad elite

Puente: entity.model

Solo presente cuando is_modeled es true. Se rellena mediante reflexión — no requiere dependencia de FMM.

CampoTipoDescripción
model_idstringNombre del modelo base
play_animation(name, blend?, loop?)methodReproducir animación. blend por defecto false, loop por defecto false
stop_animations()methodDetener todas las animaciones
remove()methodEliminar la entidad modelada

Tabla de Entidad Viviente GLOBAL

Extiende la Tabla de Entidad. Se aplica a todas las entidades vivientes (mobs y jugadores).

Propiedades

CampoTipoDescripción
healthdoubleSalud actual
maximum_healthdoubleSalud máxima
namestringNombre visible de la entidad
is_aliveboolLa entidad no está muerta

Métodos

MétodoArgsRetornaDescripción
damage(amount)doublenilInfligir daño a la entidad
push(x, y, z)double, double, doublenilAñadir vector de velocidad
set_facing(x, y, z)double, double, doublenilEstablecer dirección de la mirada
add_potion_effect(type, duration, amplifier)string (PotionEffectType), int, intnilAplicar efecto de poción por nombre
remove_potion_effect(type)string (PotionEffectType)nilEliminar efecto de poción por nombre

context.player GLOBAL

Tabla de entidad de jugador. Hereda todos los campos de Entidad y Entidad Viviente.

Propiedades

CampoTipoDescripción
game_modestringsurvival, creative, adventure, spectator

Métodos

MétodoArgsRetornaDescripción
send_message(text)stringnilEnviar mensaje de chat. Soporta códigos de color
get_held_item()table o nilDevuelve los campos type, amount, display_name, o nil si la mano está vacía
consume_held_item(amount?)int (por defecto 1)nilReducir la pila del item en mano por la cantidad indicada
has_item(material, amount?)string (Material), int (por defecto 1)boolVerificar material en el inventario
get_target_entity(range?)num (por defecto 50)entity o nilRaycast hacia la entidad que el jugador está mirando
get_eye_location()locationPosición de los ojos del jugador
get_look_direction()vectorVector de dirección unitario
send_block_change(x, y, z, material, ticks?)int, int, int, string (Material), int (opcional)boolEnviar bloque falso. Se reinicia automáticamente después de los ticks si se especifica
reset_block(x, y, z)int, int, intboolReiniciar bloque falso al real
sleep(x, y, z)num, num, numnilAnimación de dormir en cama en la ubicación
wake_up()nilDespertar del sueño
show_boss_bar(text, color?, progress, ticks?)string, string (BarColor, por defecto WHITE), num, int (opcional)nilMostrar barra de jefe. Se oculta automáticamente después de los ticks. Soporta códigos de color
hide_boss_bar()nilEliminar barra de jefe
show_action_bar(text, ticks?)string, int (opcional)nilMostrar barra de acción. Se repite si los ticks son mayores que 0. Soporta códigos de color
show_title(title, subtitle?, fadeIn, stay, fadeOut)string, string (por defecto vacío), int, int, intnilMostrar pantalla de título. Soporta códigos de color

context.world GLOBAL

Operaciones del mundo. Disponible en todos los tipos de script.

Propiedades

CampoTipoDescripción
namestringNombre del mundo

Métodos

MétodoArgsRetornaDescripción
get_block_at(x, y, z)int, int, intstringNombre de Material (minúsculas)
set_block_at(x, y, z, material)int, int, int, string (Material)boolColocar bloque
get_highest_block_y(x, z)int, intintY del bloque más alto que no es aire
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?=0nilGenerar efecto de partículas
play_sound(sound, x, y, z, volume?, pitch?)string (Sound), num, num, num, float?=1, float?=1nilReproducir sonido
strike_lightning(x, y, z)num, num, numnilLanzar rayo
get_time()intTiempo del mundo en ticks
set_time(ticks)longnilEstablecer tiempo del mundo
get_nearby_entities(x, y, z, radius)num, num, num, numtableArray de tablas de entidad
get_nearby_players(x, y, z, radius)num, num, num, numtableArray de tablas de entidad de jugador
spawn_entity(type, x, y, z)string (EntityType), num, num, numentityGenerar entidad vanilla
raycast(fx, fy, fz, dx, dy, dz, max?)num, num, num, num, num, num, num?=50tableDevuelve los campos hit_entity, hit_location, hit_block
place_temporary_block(x, y, z, material, ticks?, require_air?)int, int, int, string (Material), int?=0, bool?=falseboolColocar bloque que se revierte automáticamente después de los ticks
drop_item(x, y, z, material, amount?)num, num, num, string (Material), int?=1entitySoltar item de forma natural en la ubicación
spawn_firework(x, y, z, colors, type?, power?)num, num, num, table, string (FireworkEffect.Type)?=BALL, int?=1nilGenerar fuego artificial

context.boss ELITEMOBS

Tabla de entidad de jefe para scripts de poderes Lua de EliteMobs. Hereda todos los métodos de Entidad Viviente de EliteMobs. Las propiedades se actualizan mediante getters dedicados.

Propiedades

CampoTipoDescripción
namestringNombre visible del jefe
uuidstringUUID de la entidad elite
healthdoubleSalud actual (instantánea)
maximum_healthdoubleSalud máxima (instantánea)
current_locationlocationPosición del jefe (instantánea)
levelintNivel del jefe
damager_countintNúmero de jugadores que dañaron a este jefe
is_in_combatboolEl jefe está en combate
existsboolLa entidad del jefe existe

Métodos

MétodoArgsRetornaDescripción
is_alive()boolSi la entidad del jefe está viva (verificación en vivo)
get_health()doubleSalud actual (en vivo)
get_maximum_health()doubleSalud máxima (en vivo)
get_location()locationPosición actual (en vivo)
restore_health(amount)doublenilCurar al jefe
despawn()nilEliminar entidad del jefe
get_damager_count()intConteo de atacantes en vivo
add_tag(tag, ticks?)string, int?=0nilAñadir etiqueta, se elimina automáticamente después de los ticks si se establece
remove_tag(tag)stringnilEliminar etiqueta
has_tag(tag)stringboolVerificar etiqueta
reset_custom_name()nilReiniciar nombre al predeterminado de configuración
play_sound_at_self(sound, volume?, pitch?)string (Sound), float?=1, float?=1nilReproducir sonido en el jefe
play_sound_at_entity(sound, volume?, pitch?)string (Sound), float?=1, float?=1nilReproducir sonido en el jefe (alias)
spawn_particle_at_self(particle, count?)string (Particle) o table, int?=1nilGenerar partículas en el jefe
play_model_animation(name)stringnilReproducir animación de modelo FMM (requiere modelo FMM)
navigate_to_location(location, speed?, force?, timeout?)location, double?=1, bool?=false, int?=0nilBuscar camino hacia la ubicación
send_message(text, range?)string, double?=20nilEnviar mensaje a jugadores cercanos. Soporta códigos de color
get_nearby_players(range)doubletableArray de tablas de jugador dentro del rango
get_target_player()player o nilObjetivo actual del mob si es un jugador
get_nearby_players_in_zone(zone)zone tabletableJugadores dentro de la forma de la zona
get_ender_dragon_phase()string o nilNombre de EnderDragon.Phase
set_ender_dragon_phase(phase)string (EnderDragon.Phase)nilEstablecer fase del ender dragon
summon_reinforcement(file, zone?, level?)string, zone o nil, int?=0entity o nilGenerar jefe de refuerzo
summon_projectile(type, origin, dest, speed?, options?)string (EntityType), location, location, double?=1, tableentityGenerar proyectil rastreado

Opciones de summon_projectile

OpciónTipoPor defectoDescripción
custom_damagenumberSobrescribir daño del proyectil
detonation_powerstringNivel de poder explosivo
yieldnumberRendimiento de bola de fuego
incendiarybooltrueLa bola de fuego prende fuego
gravityboolHabilitar gravedad
glowingboolfalseEstablecer brillo
invulnerableboolfalseEstablecer invulnerabilidad
persistentbooltrueEstablecer persistente
durationint0Eliminar automáticamente después de ticks
effectstringEntityEffect a reproducir al generarse
spawn_at_originboolfalseGenerar en el origen en lugar de lanzar desde el jefe
direction_onlyboolfalseEstablecer dirección sin velocidad (bolas de fuego)
trackbooltrueRegistrar como proyectil elite
on_landfunctionCallback cuando el proyectil aterriza: function(location, entity)
max_ticksint6000Ticks máximos antes de forzar callback de aterrizaje

Métodos de Zona/Partículas

MétodoArgsRetornaDescripción
spawn_particles_in_zone(zone, particle, ...)zone, particle spec, coverage?=1.0nilRellenar zona con partículas
spawn_particles_in_zone_border(zone, particle, ...)zone, particle spec, coverage?=1.0nilDelinear zona con partículas
get_particles_from_self_toward_zone(zone, particle, speed?)zone, string, double?=0.1tablePartículas direccionales del jefe a la zona
get_particles_toward_self(zone, particle, speed?)zone, string, double?=0.1tablePartículas direccionales de la zona al jefe
spawn_particles_with_vector(particles)tablenilGenerar array de partículas direccionales

Soporte de Poderes Especiales

MétodoArgsRetornaDescripción
start_tracking_fireball_system(speed?)double?=0.5nilIniciar IA de rastreo de bolas de fuego
handle_spirit_walk_damage(cause)string (DamageCause)nilManejar daño de caminata espiritual por causa
shield_wall_is_active()boolSi el muro de escudos está activo
initialize_shield_wall(charges?)int?=1nilActivar muro de escudos
shield_wall_absorb_damage(player, damage)entity table, doubleboolIntentar absorber daño
deactivate_shield_wall()nilDesactivar muro de escudos
start_zombie_necronomicon(target, file)entity table, stringnilIniciar necronomicón en el objetivo

Tabla de Entidad Viviente de EliteMobs ELITEMOBS

Las tablas de entidad creadas dentro de scripts de poderes de EliteMobs (desde context.boss, datos de eventos, callbacks de zonas y consultas del mundo) usan una tabla de entidad viviente extendida con métodos adicionales más allá de la Entidad Viviente global. context.boss hereda todos estos.

Propiedades

CampoTipoDescripción
namestringNombre visible de la entidad
uuidstringUUID de la entidad
entity_typestringNombre del tipo de entidad
is_playerboolEs un jugador
is_monsterboolEs un monstruo
is_eliteboolEs una entidad de EliteMobs
is_validboolLa entidad aún existe
healthdoubleSalud actual (instantánea)
maximum_healthdoubleSalud máxima (instantánea)
current_locationlocationPosición de la entidad (instantánea)
game_modestringModo de juego (solo jugadores)

Métodos

MétodoArgsRetornaDescripción
is_alive()boolSi la entidad está viva (verificación en vivo)
is_ai_enabled()boolSi la IA está habilitada
is_frozen()boolSi el jefe está congelado (solo CustomBossEntity)
is_on_ground()boolSi la entidad está en el suelo
is_healing()boolSi el elite se está curando
get_location()locationPosición actual (en vivo)
get_eye_location()locationPosición de los ojos (en vivo)
get_height()doubleAltura de la entidad
get_health()doubleSalud actual (en vivo)
get_maximum_health()doubleSalud máxima (en vivo)
get_velocity()vectorVector de velocidad actual
deal_damage(amount)doublenilInfligir daño genérico
deal_custom_damage(amount)doublenilInfligir daño de ataque de jefe personalizado desde el jefe del poder
deal_damage_from_boss(amount)doublenilInfligir daño atribuido a la entidad jefe del poder
restore_health(amount)doublenilCurar entidad (usa curación de EliteMobs si es elite)
play_sound_at_entity(sound, volume?, pitch?)string (Sound), float?=1, float?=1nilReproducir sonido en la entidad
play_sound_at_self(sound, volume?, pitch?)string (Sound), float?=1, float?=1nilReproducir sonido en la entidad (alias)
spawn_particle_at_self(particle, count?)string (Particle) o table, int?=1nilGenerar partículas en la entidad
spawn_particles_at_location(loc, particle, count?)location, particle spec, int?=1nilGenerar partículas en la ubicación
teleport_to_location(location)locationnilTeletransportar entidad
set_velocity_vector(vector)vectornilEstablecer velocidad
set_gravity(enabled)boolnilEstablecer gravedad
apply_push_vector(vector, additive?, delay?)vector, bool?=false, int?=1nilAplicar velocidad después de un retraso. additive añade a la velocidad existente
push_relative_to(location, force?, extraX?, extraY?, extraZ?)location, double?=1, double?=0, double?=0, double?=0nilEmpujar entidad lejos de la ubicación
set_custom_name(name)stringnilEstablecer nombre personalizado. Soporta códigos de color
reset_custom_name()nilReiniciar nombre al predeterminado de EliteMobs
set_custom_name_visible(visible)boolnilAlternar visibilidad del nombre
set_ai_enabled(enabled, duration?)bool, int?=0nilEstablecer estado de IA. Se revierte automáticamente después de los ticks de duración
set_awareness_enabled(enabled, duration?)bool, int?=0nilEstablecer conciencia del mob. Se revierte automáticamente después de los ticks de duración
face_direction_or_location(target)vector o locationnilMirar hacia una dirección o ubicación
play_model_animation(name)stringnilReproducir animación de modelo FMM (requiere modelo FMM)
set_scale(scale, duration?)double, int?=0nilEstablecer escala de la entidad. Se revierte automáticamente a 1.0 después de los ticks de duración
set_invulnerable(enabled, duration?)bool, int?=0nilEstablecer invulnerabilidad. Se revierte automáticamente después de los ticks de duración
set_healing(enabled)boolnilEstablecer estado de curación del elite
navigate_to_location(location, speed?, force?, timeout?)location, double?=1, bool?=false, int?=0nilBuscar camino hacia la ubicación (solo CustomBossEntity)
add_tag(tag, ticks?)string, int?=0nilAñadir etiqueta, se elimina automáticamente después de los ticks
remove_tag(tag)stringnilEliminar etiqueta
has_tag(tag)stringboolVerificar etiqueta
overlaps_box_at_location(center, halfX?, halfY?, halfZ?)location, double?=0.5, double?=halfX, double?=halfXboolSi la caja de colisión de la entidad se superpone con una caja en la ubicación
remove_elite()nilEliminar mediante el pipeline de eliminación de EliteMobs
apply_potion_effect(type, duration, amplifier?)string (PotionEffectType), int, int?=0nilAplicar efecto de poción
set_equipment(slot, material, options?)string (EquipmentSlot), string (Material), tablenilEstablecer item en ranura de equipamiento
set_fire_ticks(ticks)intnilEstablecer ticks de fuego
add_visual_freeze_ticks(ticks?)int?=1nilAñadir ticks visuales de congelación
place_temporary_block(material, ticks?, visual?)string (Material), int?=0, bool?=falsenilColocar bloque temporal en la ubicación de la entidad

Opciones de set_equipment

OpciónTipoPor defectoDescripción
unbreakableboolfalseHacer el item irrompible
enchantmentstableArray de tablas {type = "ENCHANT_NAME", level = 1}

Métodos de Jugador de EliteMobs

Los jugadores en scripts de EliteMobs tienen todos los métodos de entidad viviente de EliteMobs más:

MétodoArgsRetornaDescripción
send_message(text)stringnilEnviar mensaje de chat. Soporta códigos de color
show_action_bar(text)stringnilMostrar texto en barra de acción. Soporta códigos de color
show_title(title, subtitle?, fadeIn?, stay?, fadeOut?)string, string?="", int?=10, int?=40, int?=10nilMostrar pantalla de título. Soporta códigos de color
show_boss_bar(title, color?, style?, duration?)string, string (BarColor)?=WHITE, string (BarStyle)?=SOLID, int?=40nilMostrar barra de jefe. Se oculta automáticamente después de los ticks de duración. Soporta códigos de color
run_command(command)stringnilEjecutar comando como jugador

Tabla de Referencia de Entidad de EliteMobs

Las entidades no vivientes (proyectiles, bloques cayendo, fuegos artificiales) devueltas por los métodos de generación de EliteMobs obtienen una tabla de referencia ligera:

Campo / MétodoArgsRetornaDescripción
namestringNombre de la entidad
uuidstringUUID de la entidad
entity_typestringNombre del tipo de entidad
is_playerboolSiempre false
is_eliteboolSiempre false
is_valid()boolSi la entidad aún es válida (verificación en vivo)
current_locationlocationPosición (instantánea)
get_location()locationPosición actual (en vivo)
get_velocity()vectorVector de velocidad actual
is_on_ground()boolSi la entidad está en el suelo
teleport_to_location(location)locationnilTeletransportar entidad
set_velocity_vector(vector)vectornilEstablecer velocidad
set_direction_vector(vector)vectornilEstablecer dirección (solo bolas de fuego)
set_yield(amount)doublenilEstablecer rendimiento de bola de fuego
set_gravity(enabled)boolnilEstablecer gravedad
detonate()nilDetonar fuego artificial
remove()nilEliminar entidad
unregister(reason?)string?=OTHERnilDesregistrar del rastreador de entidades de EliteMobs

context.players ELITEMOBS

Tabla de consulta de jugadores disponible en scripts de poderes de EliteMobs. Proporciona métodos auxiliares para encontrar jugadores relativos al jefe.

MétodoArgsRetornaDescripción
current_target()player o nilActor del evento si es jugador, o el objetivo actual del mob del jefe si es jugador
nearby_players(radius)doubletableArray de tablas de jugador dentro del radio del jefe
all_players_in_world()tableArray de todas las tablas de jugador en el mundo del jefe

context.entities ELITEMOBS

Tabla de consulta de entidades disponible en scripts de poderes de EliteMobs. Proporciona métodos auxiliares para encontrar entidades relativas al jefe. Todas las consultas excluyen al jefe mismo.

MétodoArgsRetornaDescripción
get_nearby_entities(radius, filter?)double, string?="living"tableEntidades dentro del radio. Filtro: "living", "all", "entities"
get_entities_in_box(center, halfX, halfY, halfZ, filter?)location, double, double, double, string?="living"tableEntidades dentro de una caja alineada a los ejes
get_all_entities(filter?)string?="living"tableTodas las entidades en el mundo del jefe
get_direct_target_entity()entity o nilEntidad objetivo directa del evento desencadenante
get_boss_spawn_location()locationUbicación de generación original del jefe

context.vectors ELITEMOBS

Utilidades de matemáticas vectoriales disponibles en scripts de poderes de EliteMobs.

MétodoArgsRetornaDescripción
get_vector_between_locations(from, to, options?)location, location, tablevectorVector desde el origen al destino. Las opciones pueden modificar el resultado
rotate_vector(vector, pitch?, yaw?)vector, double?=0, double?=0vectorRotar vector por pitch y yaw (grados)
normalize_vector(vector)vectorvectorNormalizar a longitud unitaria

context.cooldowns GLOBAL

Gestión de tiempos de reutilización. Los cooldowns locales son por instancia de script; los cooldowns globales se comparten entre todos los scripts de la misma entidad/propietario. Si no se proporciona una clave, se usa por defecto el nombre de archivo del script.

MétodoArgsRetornaDescripción
local_ready(key?)string (opcional)boolSi el cooldown local ha expirado
local_remaining(key?)string (opcional)intTicks restantes del cooldown local (0 si está listo)
check_local(key?, duration)string (opcional), intboolSi está listo, inicia el cooldown y devuelve true; de lo contrario false
set_local(duration, key?)long, string (opcional)nilEstablecer cooldown local por la duración en ticks
global_ready()boolSi el cooldown global ha expirado
set_global(duration)longnilEstablecer cooldown global por la duración en ticks

En los scripts de poderes de EliteMobs, los cooldowns locales se comparten entre todos los poderes de la misma entidad jefe, y los cooldowns globales usan el sistema de cooldown de poderes integrado del jefe.


context.scheduler GLOBAL

Programación de tareas. Todas las tareas se cancelan automáticamente cuando el script se detiene.

Variante Global (Magmacore)

MétodoArgsRetornaDescripción
run_later(ticks, callback)int, functionintEjecutar callback después de los ticks. Devuelve ID de tarea
run_repeating(delay, interval, callback)int, int, functionintEjecutar callback cada intervalo de ticks después del retraso inicial. Devuelve ID de tarea
cancel(taskId)intnilCancelar una tarea programada

Variante EliteMobs

MétodoArgsRetornaDescripción
run_after(ticks, callback)int, functionintEjecutar callback después de los ticks. Devuelve ID de tarea
run_every(ticks, callback)int, functionintEjecutar callback cada N ticks. Devuelve ID de tarea
cancel_task(taskId)intnilCancelar una tarea programada

context.log GLOBAL

Utilidades de registro para depuración de scripts.

MétodoArgsRetornaDescripción
info(message)stringnilRegistrar mensaje informativo
warn(message)stringnilRegistrar mensaje de advertencia
error(message)stringnilRegistrar mensaje de error/advertencia
debug(message)stringnilRegistrar mensaje de depuración (aparece como info con prefijo debug)

context.zones GLOBAL

Creación y monitoreo de zonas. Disponible en todos los tipos de script.

Variante Global (Magmacore)

MétodoArgsRetornaDescripción
create_sphere(x, y, z, radius)num, num, num, numintCrear zona esférica, devuelve handle
create_cylinder(x, y, z, radius, height)num, num, num, num, numintCrear zona cilíndrica, devuelve handle
create_cuboid(x, y, z, xSize, ySize, zSize)num, num, num, num, num, numintCrear zona cuboide, devuelve handle
watch(handle, on_enter?, on_leave?)int, function, functionboolComenzar a rastrear eventos de entrada/salida de jugadores en la zona
unwatch(handle)intnilDejar de rastrear la zona

Variante EliteMobs

MétodoArgsRetornaDescripción
get_entities_in_zone(zone, options?)zone table, tabletableObtener entidades dentro de la zona. Opciones: filter, mode
get_locations_in_zone(zone, options?)zone table, tabletableObtener ubicaciones dentro de la zona. Opciones: coverage, mode
zone_contains(zone, location, mode?)zone table, location, string?="full"boolSi la ubicación está dentro de la zona ("full" o "border")
watch_zone(zone, callbacks, mode?)zone table, table, string?="full"intVigilar zona para entrada/salida. Callbacks: {on_enter = fn, on_leave = fn}

context.event GLOBAL

Tabla de datos del evento para el hook que activó la ejecución actual del script. Solo presente durante hooks activados por eventos (no en on_tick).

Variante Global (Magmacore)

Campo / MétodoTipoDescripción
is_cancelledboolSi el evento está actualmente cancelado
cancel()methodCancelar el evento
uncancel()methodDescancelar el evento
playerentity tableJugador involucrado en el evento (si hay alguno)

Para la tabla de eventos de EliteMobs (que proporciona cantidades de daño, causas de daño, etc.), consulta la Tabla de Eventos de EliteMobs.


context.script ELITEMOBS

Puente al sistema de Elite Script de EliteMobs. Permite que los poderes Lua usen los sistemas de targeting, zonas y vectores relativos basados en YAML mediante tablas Lua con los mismos nombres de campo que las configuraciones YAML de Elite Script.

Métodos

MétodoArgsRetornaDescripción
target(spec)tabletarget handleCrear un handle de objetivo desde una tabla de especificación de objetivo de Elite Script
zone(spec)tablezone handleCrear un handle de zona desde una tabla de especificación de zona de Elite Script
relative_vector(spec, location?, zone?)table, location, zone handlevector handleCrear un vector relativo desde una especificación de vector de Elite Script
damage(target, amount?, multiplier?)target handle, double?=0, double?=1nilInfligir daño a todas las entidades en el objetivo
push(target, vector, additive?)target handle, vector o vector handle, bool?=falsenilEmpujar entidades objetivo con velocidad
set_facing(target, vector)target handle, vector o vector handlenilEstablecer dirección de las entidades objetivo
spawn_particles(target, particles)target handle, table o stringnilGenerar partículas en las ubicaciones del objetivo

Target Handle

Devuelto por context.script:target(spec). La tabla de especificación usa las mismas claves que las configuraciones YAML de objetivo de Elite Script (ej., {targetType = "NEARBY_PLAYERS", range = 20}).

MétodoArgsRetornaDescripción
entities()tableArray de tablas de entidad en el objetivo
locations()tableArray de tablas de ubicación en el objetivo
first_entity()entity o nilPrimera entidad en el objetivo
first_location()location o nilPrimera ubicación en el objetivo

Zone Handle

Devuelto por context.script:zone(spec). La tabla de especificación usa las mismas claves que las configuraciones YAML de zona de Elite Script (ej., {shape = "SPHERE", radius = 5, target = {targetType = "SELF"}}).

MétodoArgsRetornaDescripción
full_target(coverage?)numbertarget handleHandle de objetivo para ubicaciones interiores de la zona
border_target(coverage?)numbertarget handleHandle de objetivo para ubicaciones del borde de la zona
full_locations(coverage?)numbertableArray de ubicaciones interiores
border_locations(coverage?)numbertableArray de ubicaciones del borde
full_entities()tableEntidades dentro de la zona
border_entities()tableEntidades en el borde de la zona
contains(location, mode?)location, string?="full"boolSi la ubicación está en la zona
watch(callbacks, mode?)table, string?="full"intVigilar entrada/salida. Devuelve ID de tarea

Vector Handle

Devuelto por context.script:relative_vector(spec). La tabla de especificación usa las mismas claves que las configuraciones YAML de vectores relativos de Elite Script.

MétodoArgsRetornaDescripción
resolve()vectorCalcular el vector para el contexto actual

context.world (EliteMobs) ELITEMOBS

Tabla de mundo extendida para scripts de poderes de EliteMobs. Añade generación específica de jefes, verificaciones de bloques y efectos sobre la tabla de mundo global.

Consultas de Bloques

MétodoArgsRetornaDescripción
get_block_type_at_location(loc)locationstring o nilNombre de Material
get_highest_block_y_at_location(loc)locationint o nilY del bloque más alto
get_blast_resistance_at_location(loc)locationdoubleValor de resistencia a explosiones
is_air_at_location(loc)locationboolEl bloque es aire
is_passable_at_location(loc)locationboolEl bloque es transitable
is_passthrough_at_location(loc)locationboolEl bloque no es sólido
is_on_floor_at_location(loc)locationboolAire con bloque sólido debajo
is_standing_on_material(loc, material)location, string (Material)boolEl bloque debajo coincide con el material

Manipulación de Bloques

MétodoArgsRetornaDescripción
set_block_at_location(loc, material, visual?)location, string (Material), bool?=falsenilColocar bloque. visual=true para bloque falso
place_temporary_block_at_location(loc, material, ticks?, visual?)location, string, int?=0, bool?=falsenilColocar bloque, se elimina automáticamente después de los ticks

Generación

MétodoArgsRetornaDescripción
spawn_boss_at_location(file, loc?, level?)string, location?=boss loc, int?=boss levelentity o nilGenerar jefe personalizado
spawn_custom_boss_at_location(file, loc, options?)string, location, tableentity o nilGenerar jefe con opciones (level, silent, add_as_reinforcement, velocity)
spawn_entity_at_location(type, loc, options?)string (EntityType), location, tableentityGenerar entidad vanilla con opciones (velocity, duration, effect, on_land, max_ticks)
spawn_falling_block_at_location(loc, material, options?)location, string (Material), tableentityGenerar bloque cayendo (drop_item, hurt_entities, velocity, on_land)
spawn_reinforcement_at_location(file, loc, level?, velocity?)string, location, int?=0, vectorentity o nilGenerar refuerzo vinculado al jefe
spawn_fireworks_at_location(loc, config)location, tableentity o nilGenerar fuego artificial
spawn_splash_potion_at_location(loc, config)location, tableentity o nilGenerar poción de salpicadura

Efectos y Utilidades

MétodoArgsRetornaDescripción
play_sound_at_location(loc, sound, volume?, pitch?)location, string (Sound), float?=1, float?=1nilReproducir sonido
spawn_particle_at_location(loc, particle, count?)location, string (Particle) o table, int?=1nilGenerar partículas
strike_lightning_at_location(loc)locationnilLanzar rayo (ignora protección de EM)
run_empowered_lightning_task_at_location(loc)locationnilEfecto de rayo potenciado
generate_fake_explosion(locations, center?)table of locations, locationnilExplosión visual sin daño
spawn_fake_gold_nugget_at_location(loc, velocity, gravity?)location, vector, bool?=falsefake projectileGenerar proyectil visual de pepita de oro
run_fake_gold_nugget_damage(projectiles)tablenilEjecutar verificación de daño en proyectiles falsos
set_world_time(time) or (loc, time)long, o location + longnilEstablecer tiempo del mundo
set_world_weather(weather, duration?) or (loc, weather, duration?)string (CLEAR, RAIN, PRECIPITATION, THUNDER), int?=6000nilEstablecer clima
run_console_command(command)stringnilEjecutar comando de consola
generate_player_loot(level?)int?=1nilGenerar botín para atacantes
drop_bonus_coins(multiplier?)double?=2nilSoltar monedas bonus en el jefe

context.settings (EliteMobs)

MétodoArgsRetornaDescripción
warning_visual_effects_enabled()boolSi los efectos visuales de advertencia están habilitados en la configuración

Tabla de Eventos de EliteMobs

La tabla context.event se pasa a los hooks de daño y generación. Los campos varían según el tipo de evento.

Campo / MétodoTipoPresente cuandoDescripción
damage_amountdoubleEventos de dañoCantidad de daño bruto
damage_causestringEventos de dañoNombre de DamageCause
damagerentity tableEventos de daño por entidadEntidad que infligió el daño
projectileentity tableEventos de daño por proyectilProyectil que infligió el daño
spawn_reasonstringEvento de generaciónNombre de la razón de generación
entityentity tableEventos de muerte/zonaEntidad relevante
cancel_event()methodLa mayoría de eventosCancelar el evento
set_damage_amount(amount)method (double)Eventos de dañoSobrescribir cantidad de daño
multiply_damage_amount(multiplier)method (double)Eventos de dañoMultiplicar daño actual

context.item FMM

Accesible en scripts de items de FMM. Resuelve el item con script específico desde las ranuras equipadas del jugador mediante etiqueta PDC.

Propiedades

CampoTipoDescripción
idstringIdentificador de script del item

Métodos

MétodoArgsRetornaDescripción
material()stringNombre de Material
get_amount()intTamaño de la pila
set_amount(n)intnilEstablecer tamaño de la pila
consume(n?)int?=1nilDecrementar cantidad en n, eliminar si llega a cero
get_uses()intContador de usos almacenado en PDC
set_uses(n)intnilEstablecer contador de usos en PDC
get_durability()table o nilDevuelve campos current y max, o nil si no hay barra de durabilidad
get_durability_percentage()number o nilFracción restante de 0.0 a 1.0, o nil
use_durability(amount, can_break?)int, bool?=falsenilReducir durabilidad por cantidad fija. Cuando es false, se limita a 1 restante
use_durability_percentage(fraction, can_break?)number, bool?=falsenilReducir durabilidad por fracción del máximo (0.0 a 1.0)
get_name()string o nilNombre visible
set_name(s)stringnilEstablecer nombre visible. Soporta códigos de color
get_lore()tableArray de cadenas de lore
set_lore(table)tablenilEstablecer lore desde array de cadenas

context.prop FMM

Accesible en scripts de props de FMM. Hereda todos los campos de Entidad del armor stand subyacente.

Propiedades

CampoTipoDescripción
model_idstringNombre del modelo base
current_locationlocationPosición actual del prop

Métodos

MétodoArgsRetornaDescripción
play_animation(name, blend?, loop?)string, bool?=true, bool?=trueboolReproducir animación nombrada
stop_animation()nilDetener todas las animaciones actuales
hurt_visual()nilDestello de tinte rojo, sin daño
pickup()nilEliminar prop y soltar item de colocación
has_mount_points()boolSi el prop tiene huesos de punto de montaje
mount(player)entity tableboolMontar jugador en el primer asiento disponible
dismount(player)entity tableboolDesmontar jugador
get_passengers()tableArray de tablas de entidad para jugadores montados
spawn_elitemobs_boss(file, x, y, z)string, num, num, numentity o nilGenerar jefe de EliteMobs (requiere EliteMobs)
open_inventory(player, title, rows?)entity table, string, int?=3boolAbrir inventario de cofre persistente (1 a 6 filas). El título soporta códigos de color
place_book(player)entity tableboolAlmacenar el libro escrito del jugador en el prop
read_book(player)entity tableboolAbrir libro almacenado para lectura
take_book(player)entity tableboolDevolver libro almacenado al jugador
has_book()boolSi hay un libro almacenado
drop_inventory()boolSoltar todos los items almacenados y limpiar
drop_book()boolSoltar libro almacenado y limpiar
is_viewing_inventory(player)entity tableboolSi el jugador tiene abierto el inventario de este prop
set_persistent_data(key, value)string, stringboolAlmacenar cadena en el PDC del prop
get_persistent_data(key)stringstring o nilRecuperar cadena del PDC del prop

Códigos de Color

Todos los métodos marcados como compatibles con códigos de color usan el ChatColorConverter de Magmacore. Estos formatos se pueden mezclar libremente en cualquier cadena:

Códigos legacy

Usa & seguido de un carácter de color/formato:

CódigoColorCódigoFormato
&0Negro&lNegrita
&1Azul Oscuro&mTachado
&2Verde Oscuro&nSubrayado
&3Aguamarina Oscuro&oCursiva
&4Rojo Oscuro&rReiniciar
&5Púrpura Oscuro
&6Oro
&7Gris
&8Gris Oscuro
&9Azul
&aVerde
&bAguamarina
&cRojo
&dPúrpura Claro
&eAmarillo
&fBlanco

Colores hex

Color RGB exacto usando hex de 6 dígitos:

&#FF5500          -- prefijo ampersand
<#FF5500> -- sintaxis de etiqueta

Gradientes

Interpolar suavemente entre dos o más colores a lo largo del texto:

<gradient:#FF0000:#0000FF>Este texto se difumina de rojo a azul</gradient>
<g:#FF0000:#00FF00:#0000FF>Gradiente de tres colores</g>

La forma corta g funciona de manera idéntica a gradient. Puedes encadenar tantos puntos de color como desees.

Arcoíris

Recorre todo el espectro de tonalidades. Saturación opcional (0--100):

<rainbow>Texto arcoíris completo</rainbow>
<r:50>Arcoíris pastel (50% de saturación)</r>

Tipos Comunes

location

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

vector

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

entity table

Cualquier tabla con un campo uuid. Las tablas de jugador y entidad del contexto funcionan directamente:

context.player                              -- tabla de entidad válida
context.world:get_nearby_entities(x,y,z,r) -- devuelve array de tablas de entidad