Skip to main content

Lua API Reference

Complete method reference for the Lua scripting API. All methods are called via context.table:method() syntax.

Global methods (marked GLOBAL) come from Magmacore, the shared core library — they work identically in EliteMobs and FreeMinecraftModels scripts.

EliteMobs methods (marked ELITEMOBS) are specific to EliteMobs boss power scripts.

FMM methods (marked FMM) are specific to FreeMinecraftModels item and prop scripts.

Where a method requires a Bukkit enum (Sound, Particle, Material, etc.), see the Spigot Javadocs for valid values. Enum names are passed as uppercase strings (e.g., "DIAMOND_SWORD", "ENTITY_ARROW_SHOOT").


Entity Table GLOBAL

Base fields present on all entity tables — players, mobs, props, anything.

Properties

FieldTypeDescription
uuidstringEntity UUID
entity_typestringEntity type (lowercase)
is_validboolEntity still exists in the world
is_deadboolEntity is dead
is_playerboolIs a player
is_hostileboolIs a Monster
is_passiveboolIs an Animal
is_eliteboolIs an EliteMobs entity
is_custom_bossboolIs an EliteMobs custom boss
is_significant_bossboolCustom boss with health multiplier over 1 (designed encounter)
is_modeledboolHas an FMM model
is_propboolIs an FMM prop
current_locationlocationEntity position (x, y, z, yaw, pitch, world)
worldstringWorld name

Methods

MethodArgsReturnsDescription
teleport(location)location tablenilTeleport entity
remove()nilRemove entity from world
set_silent(enabled)boolnilSet silent
set_invulnerable(enabled)boolnilSet invulnerable
set_gravity(enabled)boolnilSet gravity
set_glowing(enabled)boolnilSet glowing

Bridge: entity.elite

Only present when is_elite is true. Populated via reflection — no EliteMobs dependency required.

FieldTypeDescription
levelintElite mob level
namestringElite display name
healthdoubleCurrent health
max_healthdoubleMax health
is_custom_bossboolIs a custom boss (also available at top level)
health_multiplierdoubleConfig-defined health multiplier
damage_multiplierdoubleConfig-defined damage multiplier
remove()methodRemove the elite entity

Bridge: entity.model

Only present when is_modeled is true. Populated via reflection — no FMM dependency required.

FieldTypeDescription
model_idstringModel blueprint name
play_animation(name, blend?, loop?)methodPlay animation. blend defaults to false, loop defaults to false
stop_animations()methodStop all animations
remove()methodRemove the modeled entity

Living Entity Table GLOBAL

Extends Entity Table. Applied to all living entities (mobs and players).

Properties

FieldTypeDescription
healthdoubleCurrent health
maximum_healthdoubleMax health
namestringEntity display name
is_aliveboolEntity is not dead

Methods

MethodArgsReturnsDescription
damage(amount)doublenilDeal damage to entity
push(x, y, z)double, double, doublenilAdd velocity vector
set_facing(x, y, z)double, double, doublenilSet look direction
add_potion_effect(type, duration, amplifier)string (PotionEffectType), int, intnilApply potion effect by name
remove_potion_effect(type)string (PotionEffectType)nilRemove potion effect by name
get_scale()numberCurrent entity scale (defaults to 1.0 on servers without generic.scale attribute)
set_scale(value)doublenilSet entity scale via generic.scale attribute (no-op on servers before 1.20.5)

context.player GLOBAL

Player entity table. Inherits all Entity and Living Entity fields.

Properties

FieldTypeDescription
game_modestringsurvival, creative, adventure, spectator

Methods

MethodArgsReturnsDescription
send_message(text)stringnilSend chat message. Supports color codes
get_held_item()table or nilReturns type, amount, display_name fields, or nil if empty hand
consume_held_item(amount?)int (default 1)nilReduce held item stack by amount
has_item(material, amount?)string (Material), int (default 1)boolCheck inventory for material
get_target_entity(range?)num (default 50)entity or nilRaycast for entity player is looking at
get_eye_location()locationPlayer eye position
get_look_direction()vectorUnit direction vector
send_block_change(x, y, z, material, ticks?)int, int, int, string (Material), int (optional)boolSend fake block. Auto-resets after ticks if given
reset_block(x, y, z)int, int, intboolReset fake block to real
sleep(x, y, z)num, num, numnilBed sleep animation at location
wake_up()nilWake from sleep
show_boss_bar(text, color?, progress, ticks?)string, string (BarColor, default WHITE), num, int (optional)nilDisplay boss bar. Auto-hides after ticks. Supports color codes
hide_boss_bar()nilRemove boss bar
show_action_bar(text, ticks?)string, int (optional)nilShow action bar. Repeats if ticks greater than 0. Supports color codes
show_title(title, subtitle?, fadeIn, stay, fadeOut)string, string (default empty), int, int, intnilShow title screen. Supports color codes

context.world GLOBAL

World operations. Available in all script types.

Properties

FieldTypeDescription
namestringWorld name

Methods

MethodArgsReturnsDescription
get_block_at(x, y, z)int, int, intstringMaterial name (lowercase)
set_block_at(x, y, z, material)int, int, int, string (Material)boolPlace block
get_highest_block_y(x, z)int, intintY of highest non-air block
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?=0nilSpawn particle effect
play_sound(sound, x, y, z, volume?, pitch?)string (Sound), num, num, num, float?=1, float?=1nilPlay sound
strike_lightning(x, y, z)num, num, numnilStrike lightning
get_time()intWorld time in ticks
set_time(ticks)longnilSet world time
get_nearby_entities(x, y, z, radius)num, num, num, numtableArray of entity tables
get_nearby_players(x, y, z, radius)num, num, num, numtableArray of player entity tables
spawn_entity(type, x, y, z)string (EntityType), num, num, numentitySpawn vanilla entity
raycast(fx, fy, fz, dx, dy, dz, max?)num, num, num, num, num, num, num?=50tableReturns hit_entity, hit_location, hit_block fields
place_temporary_block(x, y, z, material, ticks?, require_air?)int, int, int, string (Material), int?=0, bool?=falseboolPlace block that auto-reverts after ticks
drop_item(x, y, z, material, amount?)num, num, num, string (Material), int?=1entityDrop item entity naturally at location
spawn_firework(x, y, z, colors, type?, power?)num, num, num, table, string (FireworkEffect.Type)?=BALL, int?=1nilSpawn firework

context.boss ELITEMOBS

Boss entity table for EliteMobs Lua power scripts. Inherits all EliteMobs Living Entity methods. Properties refresh via dedicated getters.

Properties

FieldTypeDescription
namestringBoss display name
uuidstringElite entity UUID
healthdoubleCurrent health (snapshot)
maximum_healthdoubleMax health (snapshot)
current_locationlocationBoss position (snapshot)
levelintBoss level
damager_countintNumber of players who damaged this boss
is_in_combatboolBoss is in combat
existsboolBoss entity exists

Methods

MethodArgsReturnsDescription
is_alive()boolWhether boss entity is alive (live check)
get_health()doubleCurrent health (live)
get_maximum_health()doubleMax health (live)
get_location()locationCurrent position (live)
restore_health(amount)doublenilHeal the boss
despawn()nilRemove boss entity
get_damager_count()intLive damager count
add_tag(tag, ticks?)string, int?=0nilAdd tag, auto-remove after ticks if set
remove_tag(tag)stringnilRemove tag
has_tag(tag)stringboolCheck tag
reset_custom_name()nilReset name to config default
play_sound_at_self(sound, volume?, pitch?)string (Sound), float?=1, float?=1nilPlay sound at boss
play_sound_at_entity(sound, volume?, pitch?)string (Sound), float?=1, float?=1nilPlay sound at boss (alias)
spawn_particle_at_self(particle, count?)string (Particle) or table, int?=1nilSpawn particle at boss
play_model_animation(name)stringnilPlay FMM model animation (requires FMM model)
navigate_to_location(location, speed?, force?, timeout?)location, double?=1, bool?=false, int?=0nilPathfind to location
send_message(text, range?)string, double?=20nilSend message to nearby players. Supports color codes
get_nearby_players(range)doubletableArray of player tables within range
get_target_player()player or nilCurrent mob target if it's a player
get_nearby_players_in_zone(zone)zone tabletablePlayers inside the zone shape
get_ender_dragon_phase()string or nilEnderDragon.Phase name
set_ender_dragon_phase(phase)string (EnderDragon.Phase)nilSet ender dragon phase
summon_reinforcement(file, zone?, level?)string, zone or nil, int?=0entity or nilSpawn reinforcement boss
summon_projectile(type, origin, dest, speed?, options?)string (EntityType), location, location, double?=1, tableentitySpawn tracked projectile

summon_projectile options

OptionTypeDefaultDescription
custom_damagenumberOverride projectile damage
detonation_powerstringExplosive power level
yieldnumberFireball yield
incendiarybooltrueFireball sets fire
gravityboolEnable gravity
glowingboolfalseSet glowing
invulnerableboolfalseSet invulnerable
persistentbooltrueSet persistent
durationint0Auto-remove after ticks
effectstringEntityEffect to play on spawn
spawn_at_originboolfalseSpawn at origin instead of launching from boss
direction_onlyboolfalseSet direction without velocity (fireballs)
trackbooltrueRegister as elite projectile
on_landfunctionCallback when projectile lands: function(location, entity)
max_ticksint6000Max ticks before forced landing callback

Zone/Particle Methods

MethodArgsReturnsDescription
spawn_particles_in_zone(zone, particle, ...)zone, particle spec, coverage?=1.0nilFill zone with particles
spawn_particles_in_zone_border(zone, particle, ...)zone, particle spec, coverage?=1.0nilOutline zone with particles
get_particles_from_self_toward_zone(zone, particle, speed?)zone, string, double?=0.1tableDirectional particles from boss to zone
get_particles_toward_self(zone, particle, speed?)zone, string, double?=0.1tableDirectional particles from zone to boss
spawn_particles_with_vector(particles)tablenilSpawn directional particle array

Special Power Support

MethodArgsReturnsDescription
start_tracking_fireball_system(speed?)double?=0.5nilStart tracking fireball AI
handle_spirit_walk_damage(cause)string (DamageCause)nilHandle spirit walk damage by cause
shield_wall_is_active()boolWhether shield wall is active
initialize_shield_wall(charges?)int?=1nilActivate shield wall
shield_wall_absorb_damage(player, damage)entity table, doubleboolAttempt to absorb damage
deactivate_shield_wall()nilDeactivate shield wall
start_zombie_necronomicon(target, file)entity table, stringnilStart necronomicon on target

EliteMobs Living Entity Table ELITEMOBS

Entity tables created inside EliteMobs power scripts (from context.boss, event data, zone callbacks, and world queries) use an extended living entity table with additional methods beyond the global Living Entity. context.boss inherits all of these.

Properties

FieldTypeDescription
namestringEntity display name
uuidstringEntity UUID
entity_typestringEntity type name
is_playerboolIs a player
is_monsterboolIs a Monster
is_eliteboolIs an EliteMobs entity
is_validboolEntity still exists
healthdoubleCurrent health (snapshot)
maximum_healthdoubleMax health (snapshot)
current_locationlocationEntity position (snapshot)
game_modestringGame mode (UPPERCASE in EliteMobs: SURVIVAL, CREATIVE, ADVENTURE, SPECTATOR)

Methods

MethodArgsReturnsDescription
is_alive()boolWhether entity is alive (live check)
is_ai_enabled()boolWhether AI is enabled
is_frozen()boolWhether boss is frozen (CustomBossEntity only)
is_on_ground()boolWhether entity is on the ground
is_healing()boolWhether elite is healing
get_location()locationCurrent position (live)
get_eye_location()locationEye position (live)
get_height()doubleEntity height
get_health()doubleCurrent health (live)
get_maximum_health()doubleMax health (live)
get_velocity()vectorCurrent velocity vector
deal_damage(amount)doublenilDeal generic damage
deal_custom_damage(amount)doublenilDeal custom boss attack damage from the power's boss
deal_damage_from_boss(amount)doublenilDeal damage attributed to the power's boss entity
restore_health(amount)doublenilHeal entity (uses EliteMobs heal if elite)
play_sound_at_entity(sound, volume?, pitch?)string (Sound), float?=1, float?=1nilPlay sound at entity
play_sound_at_self(sound, volume?, pitch?)string (Sound), float?=1, float?=1nilPlay sound at entity (alias)
spawn_particle_at_self(particle, count?)string (Particle) or table, int?=1nilSpawn particle at entity
spawn_particles_at_location(loc, particle, count?)location, particle spec, int?=1nilSpawn particles at location
teleport_to_location(location)locationnilTeleport entity
set_velocity_vector(vector)vectornilSet velocity
set_gravity(enabled)boolnilSet gravity
apply_push_vector(vector, additive?, delay?)vector, bool?=false, int?=1nilApply velocity after delay. additive adds to existing velocity
push_relative_to(location, force?, extraX?, extraY?, extraZ?)location, double?=1, double?=0, double?=0, double?=0nilPush entity away from location
set_custom_name(name)stringnilSet custom display name. Supports color codes
reset_custom_name()nilReset name to EliteMobs default
set_custom_name_visible(visible)boolnilToggle name visibility
set_ai_enabled(enabled, duration?)bool, int?=0nilSet AI state. Auto-reverts after duration ticks
set_awareness_enabled(enabled, duration?)bool, int?=0nilSet mob awareness. Auto-reverts after duration ticks
face_direction_or_location(target)vector or locationnilFace a direction or look toward a location
play_model_animation(name)stringnilPlay FMM model animation (requires FMM model)
set_scale(scale, duration?)double, int?=0nilSet entity scale. Auto-reverts to 1.0 after duration ticks
set_invulnerable(enabled, duration?)bool, int?=0nilSet invulnerable. Auto-reverts after duration ticks
set_healing(enabled)boolnilSet elite healing state
navigate_to_location(location, speed?, force?, timeout?)location, double?=1, bool?=false, int?=0nilPathfind to location (CustomBossEntity only)
add_tag(tag, ticks?)string, int?=0nilAdd tag, auto-remove after ticks
remove_tag(tag)stringnilRemove tag
has_tag(tag)stringboolCheck tag
overlaps_box_at_location(center, halfX?, halfY?, halfZ?)location, double?=0.5, double?=halfX, double?=halfXboolWhether entity bounding box overlaps a box at location
remove_elite()nilRemove via EliteMobs removal pipeline
apply_potion_effect(type, duration, amplifier?)string (PotionEffectType), int, int?=0nilApply potion effect
set_equipment(slot, material, options?)string (EquipmentSlot), string (Material), tablenilSet equipment slot item
set_fire_ticks(ticks)intnilSet fire ticks
add_visual_freeze_ticks(ticks?)int?=1nilAdd freeze visual ticks
place_temporary_block(material, ticks?, visual?)string (Material), int?=0, bool?=falsenilPlace temporary block at entity location

set_equipment options

OptionTypeDefaultDescription
unbreakableboolfalseMake item unbreakable
enchantmentstableArray of {type = "ENCHANT_NAME", level = 1} tables

EliteMobs Player Methods

Players in EliteMobs scripts have all EliteMobs living entity methods plus:

MethodArgsReturnsDescription
send_message(text)stringnilSend chat message. Supports color codes
show_action_bar(text)stringnilShow action bar text. Supports color codes
show_title(title, subtitle?, fadeIn?, stay?, fadeOut?)string, string?="", int?=10, int?=40, int?=10nilShow title screen. Supports color codes
show_boss_bar(title, color?, style?, duration?)string, string (BarColor)?=WHITE, string (BarStyle)?=SOLID, int?=40nilShow boss bar. Auto-hides after duration ticks. Supports color codes
run_command(command)stringnilRun command as player

EliteMobs Entity Reference Table

Non-living entities (projectiles, falling blocks, fireworks) returned from EliteMobs spawn methods get a lightweight reference table:

Field / MethodArgsReturnsDescription
namestringEntity name
uuidstringEntity UUID
entity_typestringEntity type name
is_playerboolAlways false
is_eliteboolAlways false
is_valid()boolWhether entity is still valid (live check)
current_locationlocationPosition (snapshot)
get_location()locationCurrent position (live)
get_velocity()vectorCurrent velocity vector
is_on_ground()boolWhether entity is on the ground
teleport_to_location(location)locationnilTeleport entity
set_velocity_vector(vector)vectornilSet velocity
set_direction_vector(vector)vectornilSet direction (fireballs only)
set_yield(amount)doublenilSet fireball yield
set_gravity(enabled)boolnilSet gravity
detonate()nilDetonate firework
remove()nilRemove entity
unregister(reason?)string?=OTHERnilUnregister from EliteMobs entity tracker

context.players ELITEMOBS

Player query table available in EliteMobs power scripts. Provides helper methods to find players relative to the boss.

MethodArgsReturnsDescription
current_target()player or nilEvent actor if player, or boss's current mob target if player
nearby_players(radius)doubletableArray of player tables within radius of boss
all_players_in_world()tableArray of all player tables in the boss's world

context.entities ELITEMOBS

Entity query table available in EliteMobs power scripts. Provides helper methods to find entities relative to the boss. All queries exclude the boss itself.

MethodArgsReturnsDescription
get_nearby_entities(radius, filter?)double, string?="living"tableEntities within radius. Filter: "living", "all", "entities"
get_entities_in_box(center, halfX, halfY, halfZ, filter?)location, double, double, double, string?="living"tableEntities inside an axis-aligned box
get_all_entities(filter?)string?="living"tableAll entities in the boss's world
get_direct_target_entity()entity or nilDirect target entity from the triggering event
get_boss_spawn_location()locationThe boss's original spawn location

context.vectors ELITEMOBS

Vector math utilities available in EliteMobs power scripts.

MethodArgsReturnsDescription
get_vector_between_locations(from, to, options?)location, location, tablevectorVector from source to destination. Options can modify the result
rotate_vector(vector, pitch?, yaw?)vector, double?=0, double?=0vectorRotate vector by pitch and yaw (degrees)
normalize_vector(vector)vectorvectorNormalize to unit length

context.state GLOBAL

A plain Lua table that persists for the script instance's entire lifetime. Use it to store flags, counters, task IDs, toggle states, and any data you need to share between hooks. Unlike all other context tables, context.state is not rebuilt each hook call — it survives from script creation to destruction.

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

context.cooldowns GLOBAL

Cooldown management. Local cooldowns are per-script-instance; global cooldowns are shared across all scripts on the same entity/owner. If no key is provided, defaults to the script's filename.

MethodArgsReturnsDescription
local_ready(key?)string (optional)boolWhether the local cooldown has expired
local_remaining(key?)string (optional)intRemaining ticks on local cooldown (0 if ready)
check_local(key?, duration)string (optional), intboolIf ready, starts cooldown and returns true; otherwise false
set_local(duration, key?)long, string (optional)nilSet local cooldown for duration ticks
global_ready()boolWhether the global cooldown has expired
set_global(duration)longnilSet global cooldown for duration ticks

In EliteMobs power scripts, local cooldowns are shared across all powers on the same boss entity, and global cooldowns use the boss's built-in power cooldown system.


context.scheduler GLOBAL

Task scheduling. All tasks are automatically cancelled when the script shuts down.

Global (Magmacore) variant

MethodArgsReturnsDescription
run_later(ticks, callback)int, functionintRun callback after ticks. Returns task ID
run_repeating(delay, interval, callback)int, int, functionintRun callback every interval ticks after initial delay. Returns task ID
cancel(taskId)intnilCancel a scheduled task

EliteMobs variant

MethodArgsReturnsDescription
run_after(ticks, callback)int, functionintRun callback after ticks. Returns task ID
run_every(ticks, callback)int, functionintRun callback every N ticks. Returns task ID
cancel_task(taskId)intnilCancel a scheduled task

context.log GLOBAL

Logging utilities for debugging scripts.

Global (Magmacore / FMM) variant

MethodArgsReturnsDescription
info(message)stringnilLog info message
warn(message)stringnilLog warning message
error(message)stringnilLog error/warning message

EliteMobs variant

MethodArgsReturnsDescription
info(message)stringnilLog info message
warn(message)stringnilLog warning message
debug(message)stringnilLog debug message (appears as info with debug prefix)

context.zones GLOBAL

Zone creation and monitoring. Available in all script types.

Global (Magmacore) variant

MethodArgsReturnsDescription
create_sphere(x, y, z, radius)num, num, num, numintCreate sphere zone, returns handle
create_cylinder(x, y, z, radius, height)num, num, num, num, numintCreate cylinder zone, returns handle
create_cuboid(x, y, z, xSize, ySize, zSize)num, num, num, num, num, numintCreate cuboid zone, returns handle
watch(handle, on_enter?, on_leave?)int, any, anyboolEnable zone tracking. Non-nil values enable on_zone_enter / on_zone_leave hooks (callbacks are not invoked directly)
unwatch(handle)intnilStop tracking zone

EliteMobs variant

MethodArgsReturnsDescription
get_entities_in_zone(zone, options?)zone table, tabletableGet entities inside zone. Options: filter, mode
get_locations_in_zone(zone, options?)zone table, tabletableGet locations inside zone. Options: coverage, mode
zone_contains(zone, location, mode?)zone table, location, string?="full"boolWhether location is inside zone ("full" or "border")
watch_zone(zone, callbacks, mode?)zone table, table, string?="full"nilWatch zone for enter/leave. Callbacks: {on_enter = fn, on_leave = fn}

context.event GLOBAL

Event data table for the hook that triggered the current script execution. Only present during event-driven hooks (not on_tick).

Global (Magmacore) variant

Field / MethodTypeDescription
is_cancelledboolWhether event is currently cancelled
cancel()methodCancel the event
uncancel()methodUn-cancel the event
playerentity tablePlayer involved in the event (if any)

For the EliteMobs event table (which provides damage amounts, damage causes, etc.), see EliteMobs Event Table.


context.script ELITEMOBS

Bridge to the EliteMobs Elite Script system. Lets Lua powers use the YAML-based targeting, zone, and relative vector systems via Lua tables with the same field names as Elite Script YAML configs.

Methods

MethodArgsReturnsDescription
target(spec)tabletarget handleCreate a target handle from an Elite Script target spec table
zone(spec)tablezone handleCreate a zone handle from an Elite Script zone spec table
relative_vector(spec, location?, zone?)table, location, zone handlevector handleCreate a relative vector from an Elite Script vector spec
damage(target, amount?, multiplier?)target handle, double?=0, double?=1nilDeal damage to all entities in target
push(target, vector, additive?)target handle, vector or vector handle, bool?=falsenilPush target entities with velocity
set_facing(target, vector)target handle, vector or vector handlenilSet target entities facing direction
spawn_particles(target, particles)target handle, table or stringnilSpawn particles at target locations

Target Handle

Returned by context.script:target(spec). The spec table uses the same keys as Elite Script YAML target configs (e.g., {targetType = "NEARBY_PLAYERS", range = 20}).

MethodArgsReturnsDescription
entities()tableArray of entity tables at target
locations()tableArray of location tables at target
first_entity()entity or nilFirst entity at target
first_location()location or nilFirst location at target

Zone Handle

Returned by context.script:zone(spec). The spec table uses the same keys as Elite Script YAML zone configs (e.g., {shape = "SPHERE", radius = 5, target = {targetType = "SELF"}}).

MethodArgsReturnsDescription
full_target(coverage?)numbertarget handleTarget handle for zone interior locations
border_target(coverage?)numbertarget handleTarget handle for zone border locations
full_locations(coverage?)numbertableArray of interior locations
border_locations(coverage?)numbertableArray of border locations
full_entities()tableEntities inside zone
border_entities()tableEntities on zone border
contains(location, mode?)location, string?="full"boolWhether location is in zone
watch(callbacks, mode?)table, string?="full"intWatch for enter/leave. Returns task ID

Vector Handle

Returned by context.script:relative_vector(spec). The spec table uses the same keys as Elite Script YAML relative vector configs.

MethodArgsReturnsDescription
resolve()vectorCompute the vector for the current context

context.world (EliteMobs) ELITEMOBS

Extended world table for EliteMobs power scripts. Adds boss-specific spawning, block checks, and effects on top of the global world table.

Block Queries

MethodArgsReturnsDescription
get_block_type_at_location(loc)locationstring or nilMaterial name
get_highest_block_y_at_location(loc)locationint or nilHighest block Y
get_blast_resistance_at_location(loc)locationdoubleBlast resistance value
is_air_at_location(loc)locationboolBlock is air
is_passable_at_location(loc)locationboolBlock is passable
is_passthrough_at_location(loc)locationboolBlock is not solid
is_on_floor_at_location(loc)locationboolAir with solid block below
is_standing_on_material(loc, material)location, string (Material)boolBlock below matches material

Block Manipulation

MethodArgsReturnsDescription
set_block_at_location(loc, material, visual?)location, string (Material), bool?=falsenilPlace block. visual=true for fake block
place_temporary_block_at_location(loc, material, ticks?, visual?)location, string, int?=0, bool?=falsenilPlace block, auto-remove after ticks

Spawning

MethodArgsReturnsDescription
spawn_boss_at_location(file, loc?, level?)string, location?=boss loc, int?=boss levelentity or nilSpawn custom boss
spawn_custom_boss_at_location(file, loc, options?)string, location, tableentity or nilSpawn boss with options (level, silent, add_as_reinforcement, velocity)
spawn_entity_at_location(type, loc, options?)string (EntityType), location, tableentitySpawn vanilla entity with options (velocity, duration, effect, on_land, max_ticks)
spawn_falling_block_at_location(loc, material, options?)location, string (Material), tableentitySpawn falling block (drop_item, hurt_entities, velocity, on_land)
spawn_reinforcement_at_location(file, loc, level?, velocity?)string, location, int?=0, vectorentity or nilSpawn reinforcement tied to boss
spawn_fireworks_at_location(loc, config)location, tableentity or nilSpawn firework
spawn_splash_potion_at_location(loc, config)location, tableentity or nilSpawn splash potion

Effects and Utility

MethodArgsReturnsDescription
play_sound_at_location(loc, sound, volume?, pitch?)location, string (Sound), float?=1, float?=1nilPlay sound
spawn_particle_at_location(loc, particle, count?)location, string (Particle) or table, int?=1nilSpawn particles
strike_lightning_at_location(loc)locationnilStrike lightning (bypasses EM protection)
run_empowered_lightning_task_at_location(loc)locationnilEmpowered lightning effect
generate_fake_explosion(locations, center?)table of locations, locationnilVisual explosion without damage
spawn_fake_gold_nugget_at_location(loc, velocity, gravity?)location, vector, bool?=falsefake projectileSpawn visual gold nugget projectile
run_fake_gold_nugget_damage(projectiles)tablenilRun damage check on fake projectiles
set_world_time(time) or (loc, time)long, or location + longnilSet world time
set_world_weather(weather, duration?) or (loc, weather, duration?)string (CLEAR, RAIN, PRECIPITATION, THUNDER), int?=6000nilSet weather
run_console_command(command)stringnilExecute console command
generate_player_loot(level?)int?=1nilGenerate loot for damagers
drop_bonus_coins(multiplier?)double?=2nilDrop bonus coins at boss

context.settings (EliteMobs)

MethodArgsReturnsDescription
warning_visual_effects_enabled()boolWhether warning VFX are enabled in config

EliteMobs Event Table

The context.event table is passed to damage and spawn hooks. Fields vary by event type.

Field / MethodTypePresent WhenDescription
damage_amountdoubleDamage eventsRaw damage amount
damage_causestringDamage eventsDamageCause name
damagerentity tableDamage-by-entity eventsEntity that dealt the damage
projectileentity tableProjectile damage eventsProjectile that dealt the damage
spawn_reasonstringSpawn eventSpawn reason name
entityentity tableDeath/zone eventsRelevant entity
cancel_event()methodMost eventsCancel the event
set_damage_amount(amount)method (double)Damage eventsOverride damage amount
multiply_damage_amount(multiplier)method (double)Damage eventsMultiply current damage

context.item FMM

Accessed in FMM item scripts. Resolves the specific scripted item from the player's equipped slots via PDC tag.

Properties

FieldTypeDescription
idstringItem's script identifier

Methods

MethodArgsReturnsDescription
material()stringMaterial name
get_amount()intStack size
set_amount(n)intnilSet stack size
consume(n?)int?=1nilDecrement amount by n, remove if zero
get_uses()intPDC-stored use counter
set_uses(n)intnilSet PDC use counter
get_durability()table or nilReturns current and max fields, or nil if no durability bar
get_durability_percentage()number or nil0.0--1.0 remaining fraction, or nil
use_durability(amount, can_break?)int, bool?=falsenilReduce durability by flat amount. When false, clamps to 1 remaining
use_durability_percentage(fraction, can_break?)number, bool?=falsenilReduce durability by fraction of max (0.0--1.0)
get_name()string or nilDisplay name
set_name(s)stringnilSet display name. Supports color codes
get_lore()tableArray of lore strings
set_lore(table)tablenilSet lore from array of strings

context.prop FMM

Accessed in FMM prop scripts. Inherits all Entity fields from the backing armor stand.

Properties

FieldTypeDescription
model_idstringBlueprint model name
current_locationlocationProp's current position

Methods

MethodArgsReturnsDescription
play_animation(name, blend?, loop?)string, bool?=true, bool?=trueboolPlay named animation
stop_animation()nilStop all current animations
hurt_visual()nilRed tint flash, no damage
pickup()nilRemove prop and drop placement item
has_mount_points()boolWhether prop has mount point bones
mount(player)entity tableboolMount player onto first available seat
dismount(player)entity tableboolDismount player
get_passengers()tableArray of entity tables for mounted players
spawn_elitemobs_boss(file, x, y, z)string, num, num, numentity or nilSpawn EliteMobs boss (requires EliteMobs)
open_inventory(player, title, rows?)entity table, string, int?=3boolOpen persistent chest inventory (1--6 rows). Title supports color codes
place_book(player)entity tableboolStore player's held written book on prop
read_book(player)entity tableboolOpen stored book for reading
take_book(player)entity tableboolReturn stored book to player
has_book()boolWhether a book is stored
drop_inventory()boolDrop all stored items and clear
drop_book()boolDrop stored book and clear
is_viewing_inventory(player)entity tableboolWhether player has this prop's inventory open
set_persistent_data(key, value)string, stringboolStore string in prop's PDC
get_persistent_data(key)stringstring or nilRetrieve string from prop's PDC

Color Codes

All methods marked as supporting color codes use Magmacore's ChatColorConverter. These formats can be mixed freely in any string:

Legacy codes

Use & followed by a color/format character:

CodeColorCodeFormat
&0Black&lBold
&1Dark Blue&mStrikethrough
&2Dark Green&nUnderline
&3Dark Aqua&oItalic
&4Dark Red&rReset
&5Dark Purple
&6Gold
&7Gray
&8Dark Gray
&9Blue
&aGreen
&bAqua
&cRed
&dLight Purple
&eYellow
&fWhite

Hex colors

Exact RGB color using 6-digit hex:

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

Gradients

Smoothly interpolate between two or more colors across the text:

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

The short form g works identically to gradient. You can chain as many color stops as you want.

Rainbow

Cycle through the full hue spectrum. Optional saturation (0--100):

<rainbow>Full rainbow text</rainbow>
<r:50>Pastel rainbow (50% saturation)</r>

Common Types

location

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

vector

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

entity table

Any table with a uuid field. Player and entity tables from context work directly:

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

Next Steps