AOS REVIVALJoin Discord
Packet ID0490x31
Interface // wire record

ChatMessage

Carries player chat and server announcements. Types 0/1 are player channels, type 2 is a private system reply, and type 3 is the global top-screen CHAT_BIG presentation.

BothHandled + sentLive-verifiedVariable: 4 + text bytes
Exact field order

Packet 49 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 49 ChatMessage fields in byte order
#FieldEncodingBytesPurpose
0packet_idu81Always 49 (0x31).
1player_idu81Compact player-slot identifier.
2chat_typeu81chat type value.
3valueNUL-terminated UTF-8 stringN + 1Chat or announcement text.
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.