Lua events: Difference between revisions
Jump to navigation
Jump to search
Update Lua API navigation and catalogs |
Add player appearance change events |
||
| Line 12: | Line 12: | ||
Use <code>root</code> for global runtime events and <code>resourceRoot</code> for events owned by the current resource. Each event page specifies its execution side, exact callback signature, parameters, and delivery rules. | Use <code>root</code> for global runtime events and <code>resourceRoot</code> for events owned by the current resource. Each event page specifies its execution side, exact callback signature, parameters, and delivery rules. | ||
The current reference documents ''' | The current reference documents '''73 public events'''. | ||
== Resource events == | == Resource events == | ||
| Line 32: | Line 32: | ||
{| class="wikitable" style="width:100%;" | {| class="wikitable" style="width:100%;" | ||
! Event !! Side !! Description | ! Event !! Side !! Description | ||
|- | |||
| [[onPlayerBodyChange]] || server-side || Triggered after a validated authoritative full-body identity preset has changed. | |||
|- | |||
| [[onPlayerHeadChange]] || server-side || Triggered after a validated independent Nameless Hero head option has changed. | |||
|- | |- | ||
| [[onPlayerJoin]] || server-side || Triggered after a client has joined the server and received its authoritative player ID. | | [[onPlayerJoin]] || server-side || Triggered after a client has joined the server and received its authoritative player ID. | ||
| Line 187: | Line 191: | ||
|- | |- | ||
| [[onNpcEquipmentChange]] || server-side || Triggered after a scripted NPC's equipped weapon changes. | | [[onNpcEquipmentChange]] || server-side || Triggered after a scripted NPC's equipped weapon changes. | ||
|- | |||
| [[onNpcNameChange]] || server-side || Triggered after a resource changes a scripted NPC's validated display name. | |||
|- | |- | ||
| [[onNpcRouteComplete]] || server-side || Triggered when a non-looping scripted NPC route finishes. | | [[onNpcRouteComplete]] || server-side || Triggered when a non-looping scripted NPC route finishes. | ||
Revision as of 18:58, 15 August 2026
Lua events
Lua events notify resources about authoritative gameplay, world, networking, and client UI changes. The catalog below is generated from event names and argument lists verified against the current runtime.
Handling an event
addEventHandler("onPlayerJoin", root, function(playerId)
outputChatBox("Welcome!", playerId, 225, 195, 110)
end)
Use root for global runtime events and resourceRoot for events owned by the current resource. Each event page specifies its execution side, exact callback signature, parameters, and delivery rules.
The current reference documents 73 public events.
Resource events
| Event | Side | Description |
|---|---|---|
| onClientResourceStart | client-side | Triggered after the current client resource has started and its client scripts are ready. |
| onClientResourceStop | client-side | Triggered immediately before the current client resource is stopped. |
| onResourceStart | server-side | Triggered after the current server resource has started and its scripts are ready. |
| onResourceStop | server-side | Triggered immediately before the current server resource is stopped. |
| onServerShutdown | server-side | Triggered while the multiplayer server is beginning an orderly shutdown. |
Player events
| Event | Side | Description |
|---|---|---|
| onPlayerBodyChange | server-side | Triggered after a validated authoritative full-body identity preset has changed. |
| onPlayerHeadChange | server-side | Triggered after a validated independent Nameless Hero head option has changed. |
| onPlayerJoin | server-side | Triggered after a client has joined the server and received its authoritative player ID. |
| onPlayerNameChange | server-side | Triggered after an authoritative player name change has been accepted. |
| onPlayerQuit | server-side | Triggered when a player disconnects or is removed from the server. |
| onPlayerSkinChange | server-side | Triggered after a validated authoritative player appearance preset has changed. |
| onPlayerSpawn | server-side | Triggered after the server authoritatively spawns a player in the game world. |
| onPlayerTeleport | server-side | Triggered after the server authoritatively teleports an existing player. |
Chat events
| Event | Side | Description |
|---|---|---|
| onPlayerChat | server-side | Triggered when a player submits a normal chat message. |
| onPlayerChatReady | server-side | Triggered by the bundled chat resource when a player's client chat UI reports that it is ready. |
| onPlayerCommand | server-side | Triggered when a player submits a slash command that was not consumed before event dispatch. |
Combat events
| Event | Side | Description |
|---|---|---|
| onPlayerHit | server-side | Triggered after the server validates that one player hit another player. |
Life State events
| Event | Side | Description |
|---|---|---|
| onPlayerDamage | server-side | Triggered after authoritative damage changes a player's health. |
| onPlayerDead | server-side | Compatibility alias triggered together with onPlayerDeath when health reaches zero. |
| onPlayerDeath | server-side | Triggered when a player's authoritative health reaches zero. |
| onPlayerDowned | server-side | Triggered after a player enters the authoritative downed state. |
| onPlayerLifeStateChange | server-side | Triggered whenever the authoritative life state changes between alive, downed, and dead. |
| onPlayerRevived | server-side | Triggered after a downed or dead player is authoritatively returned to the alive state. |
Magic events
| Event | Side | Description |
|---|---|---|
| onPlayerConsumableUse | server-side | Triggered after the server accepts or rejects a consumable-use request. |
| onPlayerSpellCastCancel | server-side | Triggered when an active spell cast is cancelled. |
| onPlayerSpellCastComplete | server-side | Triggered when an authoritative spell cast completes. |
| onPlayerSpellCastRejected | server-side | Triggered when the server rejects a requested spell-cast transition. |
| onPlayerSpellCastStart | server-side | Triggered when the server accepts the start of a spell cast. |
| onPlayerSpellCastState | server-side | Triggered for every authoritative spell-cast phase transition. |
| onPlayerSpellEquip | server-side | Triggered when the authoritative equipped or in-hand state of a spell changes. |
| onPlayerSpellImpact | server-side | Triggered when an authoritative spell projectile impacts a player or the world. |
| onPlayerSpellProjectileCreate | server-side | Triggered when the server creates an authoritative spell projectile. |
| onPlayerSpellProjectileDestroy | server-side | Triggered when an authoritative spell projectile is removed. |
| onPlayerSpellRelease | server-side | Triggered when the casting player releases an accepted spell. |
Ranged events
| Event | Side | Description |
|---|---|---|
| onPlayerRangedImpact | server-side | Triggered when an authoritative arrow or bolt impacts a player or the world. |
| onPlayerRangedProjectileDestroy | server-side | Triggered when an authoritative arrow or bolt projectile is removed. |
| onPlayerRangedShot | server-side | Triggered when the server creates an authoritative arrow or bolt projectile. |
| onPlayerRangedState | server-side | Triggered when the authoritative bow or crossbow action state changes. |
Interaction events
| Event | Side | Description |
|---|---|---|
| onPlayerInteractionStart | server-side | Triggered when a replicated general interaction begins. |
| onPlayerInteractionState | server-side | Triggered for every replicated general interaction-state update. |
| onPlayerInteractionStop | server-side | Triggered when a replicated general interaction ends. |
| onPlayerMiningStart | server-side | Triggered when synchronized ore mining begins. |
| onPlayerMiningState | server-side | Triggered for every replicated mining-state update. |
| onPlayerMiningStop | server-side | Triggered when synchronized ore mining ends. |
| onPlayerSittingStart | server-side | Triggered when synchronized sitting begins. |
| onPlayerSittingState | server-side | Triggered for every replicated sitting-state update. |
| onPlayerSittingStop | server-side | Triggered when synchronized sitting ends. |
World events
| Event | Side | Description |
|---|---|---|
| onMinuteDurationChange | server-side | Triggered after the server changes how long one in-game minute lasts. |
| onTimeChange | server-side | Triggered after the server changes the authoritative world clock. |
| onWeatherChange | server-side | Triggered after the server accepts an authoritative weather transition. |
| onWorldItemPickup | server-side | Triggered after the server validates a synchronized world-item pickup. |
| onWorldItemSpawn | server-side | Triggered when the server creates a synchronized pickup item in the world. |
| onWorldObjectStateChange | server-side | Triggered when a synchronized usable world object changes state. |
Monster events
| Event | Side | Description |
|---|---|---|
| onMonsterAttack | server-side | Triggered when server-owned monster AI begins an authoritative attack against a player. |
| onMonsterDamage | server-side | Triggered after authoritative damage changes a monster's health. |
| onMonsterDeath | server-side | Triggered when a synchronized monster's authoritative health reaches zero. |
| onMonsterDestroy | server-side | Triggered after a synchronized monster is removed from the server world. |
| onMonsterSpawn | server-side | Triggered after the server creates a synchronized monster. |
| onMonsterTargetChange | server-side | Triggered when server-owned monster AI changes its player target. |
NPC events
| Event | Side | Description |
|---|---|---|
| onNpcAppearanceChange | server-side | Triggered after a scripted NPC's skin or armor changes. |
| onNpcDestroy | server-side | Triggered after a resource-owned scripted NPC is removed. |
| onNpcEquipmentChange | server-side | Triggered after a scripted NPC's equipped weapon changes. |
| onNpcNameChange | server-side | Triggered after a resource changes a scripted NPC's validated display name. |
| onNpcRouteComplete | server-side | Triggered when a non-looping scripted NPC route finishes. |
| onNpcRoutePoint | server-side | Triggered when a scripted NPC reaches a route point. |
| onNpcRouteStart | server-side | Triggered after a complete scripted NPC route has been validated and started. |
| onNpcSpawn | server-side | Triggered after a resource creates a synchronized scripted human NPC. |
GUI events
| Event | Side | Description |
|---|---|---|
| onClientChatClose | client-side | Triggered when the built-in client chat input is closed. |
| onClientChatOpen | client-side | Triggered when the built-in client chat input becomes active. |
| onClientGuiChange | client-side | Triggered when a supported RmlUi input value changes. |
| onClientGuiClick | client-side | Triggered when a clickable element in a resource-owned RmlUi document is activated. |
| onClientGuiEscape | client-side | Triggered when Escape is pressed while a resource-owned RmlUi document owns UI input. |
| onClientGuiSubmit | client-side | Triggered when a resource-owned RmlUi form or input is submitted. |