overlayed.sand.readyForGameEvents() must be called before any events will be emitted.
Each event is marked with its retention — see Retained vs transient.
logged_in
Retained
Menu
accountId and player_joined.playerId are different ids and never match. Use platformId to
tie the logged-in account to an in-match player.
game_state_changed
Retained
Menu
The expedition status. menu means no expedition is active.
party_changed
Retained
Menu
party_member_joined
Retained
Menu
Key: accountId
One per party member, including the local player. displayName can arrive empty; a later event for
the same accountId fills it in.
party_member_left
Transient
Releases: party_member_joined
storage_changed
Retained
Menu
A full storage snapshot. crowns, mechanicalParts, pneumaticParts, and computingModules
are totals for items that also appear in items — adding them to the items total double-counts.
storage_item_changed
Transient
tech_tree_changed
Retained
Menu
isAvailable means researchable right now, so an already-unlocked node reports it false.
tech_tree_item_unlocked
Transient
walker_changed
Retained
Menu
The walker the account has built. walkerId matches trampler_acquired.masterServerId.
match_started
Retained
Match
serverStartTime is when the match began, not when you joined it.
match_ended
Transient
Releases: all match-level events
world_time_changed
Retained
Match
player_joined
Retained
Match
Key: platformId
One per player on the player list, which keeps players after they disconnect — there is no leave
event. playerId never equals logged_in.accountId; correlate on platformId.
Retained
Match
Key: extractionId
Extractions can arrive throughout the match, not all at match_started.
Transient
Releases: extraction_added
storm_changed
Retained
Match
Emitted on stage and state transitions only.
inventory_changed
Retained
Match
Key: playerId
What a player is carrying right now, one event per party member. Only the local player and their
party are reported. playerId matches player_joined.playerId, not logged_in.accountId, which
is the master server’s id and a string.
Slots 0-15 are the fixed ones — 0 is the hand, 1 and 2 are weapons, 3 is armor, 4 is the backpack,
5-9 are tools and 10-15 are the belt. Anything higher is a grid slot. Empty slots are omitted, so
slotsUsed is the length of slots.
amount is the stack size for a stack but the loaded rounds for a weapon, and 0 for a container
the player is holding. What a carried container holds is not reported.
inventory_slot_changed
Transient
One slot of one party member changed. A slot that swapped what it holds reports the new stack
arriving rather than the old one growing, so delta equals amount in that case. An emptied slot
reports an empty definition, an amount of 0, and the negative of what it held.
inventory_equipped_changed
Retained
Match
Key: playerId
What a party member has in their hands. slot is the selected slot and definition is what sits
in it, which is empty when the slot is. A slot of 255 means the game has not reported a
selection yet.
trampler_acquired
Retained
Match
Key: tramplerId
masterServerId matches walker_changed.walkerId when non-zero. creatorPlayerId is the
blueprint’s author, not the driver, and matches player_joined.playerId.
trampler_changed
Retained
Match
Key: tramplerId
Emitted about every 10 seconds whether or not the trampler moved — a new event is not proof of
motion.
trampler_lost
Transient
Releases: trampler_acquired, trampler_changed