AOS REVIVALJoin Discord
Packet ID0160x10
Entities // wire record

ChangeEntity

Applies one server-owned entity mutation: state, position, velocity, carrier, forward vector, target, fuse, or ammo.

S→CSentImplementation-backed5–10 bytes
Exact field order

Packet 16 wire layout

The first byte is the application packet ID. The rows after it appear in decode order. Sizes exclude ENet headers, the outer wrapper prefix, LZF chunk framing, and compression effects.

Packet 16 ChangeEntity fields in byte order
#FieldEncodingBytesPurpose
0packet_idu81Always 16 (0x10).
1entity_idi16 LE2Scene-local entity identifier.
2actionu810 state, 1 position, 2 velocity, 3 player, 4 forward vector, 5 target, 6 fuse, 7 ammo.
3stateu81Entity or gameplay state value.When: action = 0
4position3 × fixed16 LE6X, Y, and Z components at 1/64-unit precision.When: action = 1
5velocity3 × fixed16 LE6X, Y, and Z components at 1/64-unit precision.When: action = 2
6player_idu81Compact player-slot identifier.When: action = 3
7forward3 × fixed16 LE6X, Y, and Z components at 1/64-unit precision.When: action = 4
8target_idi81Signed player target; -1 means no target.When: action = 5
9fusesign-magnitude fixed16 LE (1/64)2fuse value.When: action = 6
10ammosign-magnitude fixed16 LE (1/64)2ammo value.When: action = 7
Protocol convention

How to read this layout

  • LE means least-significant byte first.
  • fixed16 is two-byte sign-magnitude at 1/64 precision.
  • orientation16 uses the measured 1/8192 orientation mapping.
  • NUL strings consume their encoded byte length plus one 00 terminator.
  • Counted arrays repeat immediately in the order shown.