AOS REVIVALJoin Discord
Packet ID0210x15
Entities // wire record

CreateEntity

Creates a map entity, light, deployable, pickup, or projectile. I and F are the integer- and fixed-property counts carried inside the record.

S→CSentLive-verified34 + 4I + 2F bytes
Exact field order

Packet 21 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 21 CreateEntity fields in byte order
#FieldEncodingBytesPurpose
0packet_idu81Always 21 (0x15).
1entity_idi16 LE2Scene-local entity identifier.
2entity_typeu81entity type value.
3stateu81Entity or gameplay state value.
4player_idi81Owning player, using the retail sentinel where applicable.
5position3 × fixed16 LE6X, Y, and Z components at 1/64-unit precision.
6velocity3 × fixed16 LE6X, Y, and Z components at 1/64-unit precision.
7yawsign-magnitude fixed16 LE (1/64)2yaw value.
8color_rsign-magnitude fixed16 LE (1/64)2color r value.
9color_gsign-magnitude fixed16 LE (1/64)2color g value.
10color_bsign-magnitude fixed16 LE (1/64)2color b value.
11radiussign-magnitude fixed16 LE (1/64)2radius value.
12faceu81Voxel face or placement orientation index.
13fusesign-magnitude fixed16 LE (1/64)2fuse value.
14int_property_countu81I: number of 4-byte integer properties.
15float_property_countu81F: number of fixed16 properties.
16ugc_modeu81ugc mode value.
17int_properties[]I × i32 LE4IEntity-type-specific integer properties.
18float_properties[]F × fixed16 LE2FEntity-type-specific scalar properties.
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.