AOS REVIVALJoin Discord
Packet ID0220x16
Audio // wire record

CreateAmbientSound

Registers a map-owned ambient controller. Empty point lists create a global bed; authored points create local emitters.

S→CSentLive-verifiedVariable: 3 + name + 6P bytes
Exact field order

Packet 22 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 22 CreateAmbientSound fields in byte order
#FieldEncodingBytesPurpose
0packet_idu81Always 22 (0x16).
1nameNUL-terminated UTF-8 stringN + 1Validated retail sound asset name.
2loop_idu81loop id value.
3point_countu81P: emitter point count.
4points[]P × 3 × i16 LE6PRaw signed-short X/Y/Z emitter coordinates.
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.