OnPlayerQuit: Difference between revisions
Jump to navigation
Jump to search
Update Lua event reference |
Document Lua events available or improved from G1R:MP 0.1.2 |
||
| Line 1: | Line 1: | ||
= onPlayerQuit = | = onPlayerQuit = | ||
Triggered | <div style="background:#fff5f5; border:1px solid #d13b3b; border-left:5px solid #d13b3b; color:#111111; padding:0.85rem 1rem; margin:0.75rem 0 1rem;"> | ||
<div style="color:#111111; font-weight:bold; letter-spacing:0.04em;">IMPROVED FROM UPDATE 0.1.2</div> | |||
<div style="color:#111111; margin-top:0.25rem;">This event is available in earlier releases and has corrected or expanded behavior in G1R:MP 0.1.2 and later. The contract below describes the updated behavior.</div> | |||
</div> | |||
Triggered synchronously while an authenticated player's disconnect is being finalized. | |||
== Availability == | == Availability == | ||
| Line 27: | Line 31: | ||
== Notes == | == Notes == | ||
* | * The player is already offline for lifecycle and mutation purposes: <code>isPlayerConnected(playerId)</code> returns <code>false</code>, <code>getPlayers()</code> excludes the ID, and player mutators reject it. | ||
* Read-only getters backed by cached authoritative player state remain available only while synchronous <code>onPlayerQuit</code> handlers are running. Read and persist every required final value before the callback returns; deferred work cannot query the removed session. | |||
* Use this event to save final authoritative state and clean up player-owned script data, but do not rely on it as the only crash-safety mechanism. No quit callback is guaranteed if the server process ends in a hard crash or forced termination. | |||
[[Category:Lua Events]] | [[Category:Lua Events]] | ||
[[Category:Server Events]] | [[Category:Server Events]] | ||
[[Category:Player Events]] | [[Category:Player Events]] | ||
Latest revision as of 18:41, 3 September 2026
onPlayerQuit
IMPROVED FROM UPDATE 0.1.2
This event is available in earlier releases and has corrected or expanded behavior in G1R:MP 0.1.2 and later. The contract below describes the updated behavior.
Triggered synchronously while an authenticated player's disconnect is being finalized.
Availability
This event is available in server-side scripts.
Callback signature
onPlayerQuit(playerId)
Parameters
| Name | Type | Description |
|---|---|---|
playerId |
int |
The ID of the player that left. |
Examples
Handle the event:
addEventHandler("onPlayerQuit", root, function(playerId)
outputDebugString("Player " .. playerId .. " left")
end)
Notes
- The player is already offline for lifecycle and mutation purposes:
isPlayerConnected(playerId)returnsfalse,getPlayers()excludes the ID, and player mutators reject it. - Read-only getters backed by cached authoritative player state remain available only while synchronous
onPlayerQuithandlers are running. Read and persist every required final value before the callback returns; deferred work cannot query the removed session. - Use this event to save final authoritative state and clean up player-owned script data, but do not rely on it as the only crash-safety mechanism. No quit callback is guaranteed if the server process ends in a hard crash or forced termination.