datanodes
Observe incoming data nodes and work with their copied payloads.
These APIs attach to Harmony's existing verified receive paths. They expose fixed incoming filters and deferred observations. They do not expose packet sending, a live node mutation interface, or Lua execution inside a network hook.
Data-node API
datanodes.available
Alias of clone/sync availability.
text
datanodes.available()Returns: Boolean
datanodes.block
Registers an incoming data-node filter.
text
datanodes.block(filter)Returns: RuleId
datanodes.unblock
Same script-owned rule removal as clone_sync.unblock.
text
datanodes.unblock(rule_id)Returns: Nothing
datanodes.on_receive
Sets this script's single node observer, replacing the previous callback.
text
datanodes.on_receive(callback)Returns: Nothing
datanodes.kind
Named node-kind constants.
text
datanodes.kindReturns: Table
datanodes.size
Known copied payload size, in bytes, for each corresponding kind name.
text
datanodes.sizeReturns: Table
Node-kind constants
Access kinds as datanodes.kind.Name and sizes as datanodes.size.Name. Use the runtime size table; do not invent field offsets or assume these layouts apply to another game build.
| Value | Name | Value | Name |
|---|---|---|---|
| 0 | PedCreation | 10 | VehicleAppearance |
| 1 | AnimalCreation | 11 | VehicleGadgets |
| 2 | VehicleCreation | 12 | PhysicalAttachment |
| 3 | PlayerCreation | 13 | PedAttachment |
| 4 | PlayerAppearance | 14 | ProjectileCreation |
| 5 | PedTasks | 15 | TrainState |
| 6 | PedTaskSpecific | 16 | PlayerWanted |
| 7 | PedTaskSequence | 17 | PropSetCreation |
| 8 | VehicleTask | 18 | PickupCreation |
| 9 | ObjectTask | 19 | ObjectCreation |