Lua events: Difference between revisions

From Wiki G1R-MP G1 Remake Multiplayer
Jump to navigation Jump to search
Document Protocol 23 voice and player presentation APIs
List the NPC ID visibility event planned for G1R:MP update 0.1.2
Line 1: Line 1:
__NOTOC__
__NOTOC__
= Lua events =
= 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.
Lua events notify resources about authoritative gameplay, world, networking, and client UI changes. The catalog below lists event names and argument lists verified against the current runtime.


== Handling an event ==
== Handling an event ==
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 '''80 public events'''.
The current reference documents '''80 public events''' plus '''1 event planned for update 0.1.2'''.


== Resource events ==
== Resource events ==
Line 210: Line 210:
|-
|-
| [[onNpcEquipmentChange]] || server-side || Triggered after a scripted NPC's equipped weapon changes.
| [[onNpcEquipmentChange]] || server-side || Triggered after a scripted NPC's equipped weapon changes.
|-
| [[onNpcIdVisibilityChange]] <span style="color:#c62828; font-weight:bold;">(coming in update 0.1.2)</span> || server-side || Triggered after a resource shows or hides the numeric identifier in a scripted NPC's nameplate.
|-
|-
| [[onNpcNameChange]] || server-side || Triggered after a resource changes a scripted NPC's validated display name.
| [[onNpcNameChange]] || server-side || Triggered after a resource changes a scripted NPC's validated display name.

Revision as of 17:33, 2 September 2026

Lua events

Lua events notify resources about authoritative gameplay, world, networking, and client UI changes. The catalog below lists 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 80 public events plus 1 event planned for update 0.1.2.

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 the legacy authoritative body/face profile has changed.
onPlayerFaceChange server-side Triggered after a validated authoritative GTO face profile 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.
onPlayerNameplateChange server-side Triggered after a player's authoritative overhead nameplate text or visibility changes.
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.

Voice events

Event Side Description
onPlayerStartTalking server-side Triggered when the server accepts the start of a player's voice transmission.
onPlayerStopTalking server-side Triggered when an active player voice transmission ends or times out.
onPlayerVoiceStart server-side Compatibility alias triggered when the server accepts the start of a player's voice transmission.
onPlayerVoiceStateChange server-side Triggered after a player's authoritative voice-routing or capture policy changes.
onPlayerVoiceStop server-side Compatibility alias triggered when a player's active voice transmission ends.

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.
onNpcIdVisibilityChange (coming in update 0.1.2) server-side Triggered after a resource shows or hides the numeric identifier in a scripted NPC's nameplate.
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.