OnWorldItemDrop

From Wiki G1R-MP G1 Remake Multiplayer
Revision as of 20:00, 19 October 2026 by QCherry (talk | contribs) (Document upcoming 0.1.9 custom native keys, shared doors, server Lua callbacks and persistence; not a release)
Jump to navigation Jump to search

onWorldItemDrop

AVAILABLE FROM UPDATE 0.1.2
This event is available in G1R:MP 0.1.2 and later. The contract below includes the compatibility guarantees introduced in that update.

Triggered for public server resources after a player-initiated world-item drop is durably committed and published. From 0.1.9, custom keys use this event as a pre-commit request to their defining resource instead; observers use onWorldItemDropCommitted. Read the custom-key contract below before handling those items.

Availability

This event is available in server-side scripts.

Callback signature

onWorldItemDrop(objectId, playerId, itemKey, quantity, serverTimeMs)

Parameters

Name Type Description
objectId int The positive server-assigned 64-bit ID of the published dropped item.
playerId int The player whose inventory supplied the dropped item.
itemKey string The stable inventory and world-item definition key.
quantity int The committed quantity removed from inventory and published in the world.
serverTimeMs int Server timestamp recorded when the accepted drop intent created the quarantined item.

Examples

Handle the event:

addEventHandler("onWorldItemDrop", root, function(objectId, playerId, itemKey, quantity, serverTimeMs)
    outputDebugString("Player " .. playerId .. " dropped " .. quantity .. "x " .. itemKey)
end)

Notes

  • The runtime first quarantines the new object and removes the quantity from the authoritative inventory cache. The bundled GothicRP resource persists that change before confirming the transaction.
  • Only a successful durable confirmation publishes the item and emits this callback to public resources. A failed or rolled-back drop publishes no public onWorldItemDrop event and restores the authoritative inventory state when the session is still connected.
  • The active item is broadcast reliably before public callbacks run and is then included in late-join state. This is an observation event: do not remove the inventory quantity a second time.
  • Player-initiated drops emit this event instead of onWorldItemSpawn.

Available from 0.1.9 (upcoming; not yet publicly released). Not included in public 0.1.8. Use matching updated server and clients.

Custom-key pending drop requests

Signature remains (objectId, playerId, item, quantity, serverTimeMs). For custom keys, only the defining resource receives this pre-commit persistence request. The quantity is already deducted; object publication/pickup is quarantined until completeWorldItemDrop. Other resources should use onWorldItemDropCommitted for custom-key observation. Existing ordinary-item GothicRP/observer behavior is preserved. See full contract.