Skip to main content

Global API

These symbols are available in all script phases (startup, server, and client).


onEvent(eventId, fn)

Registers a Lua function as a callback for a named event. When the event fires, fn is called with an event context table.

onEvent("player.join", function(e)
e.player.tell("Welcome, " .. e.player.name .. "!")
end)
ParameterTypeDescription
eventIdstringThe event identifier (see event list below)
fnfunctionCallback function, receives an event context table

Built-in Event IDs

Event IDPhaseContext fields
player.joinServerplayer table
player.leaveServerplayer table
player.deathServerplayer table
player.respawnServerplayer table
block.placeServerplayer, block, pos {x,y,z}
block.breakServerplayer, block, pos {x,y,z}
recipesServerRecipe event context (see Recipes)
loot.modifyServertableId, addDrop(itemId, count)
mob_effect.registryStartupcreate(id, settings)

print(...)

Logs one or more values to the mod logger at INFO level. Multiple arguments are joined with a tab character, matching standard Lua behaviour.

print("Hello", "world")      -- logs: Hello	world
print("Player count: " .. server.getPlayerCount())

logger

A structured logger table with three log-level functions. All output is prefixed with [Lua] in the server log.

logger.info("Script loaded successfully")
logger.warn("Config value missing, using default")
logger.error("Something went very wrong: " .. msg)
MethodLevel
logger.info(msg)INFO
logger.warn(msg)WARN
logger.error(msg)ERROR