AOS REVIVALJoin Discord
Packet ID0390x27
Building // wire record

ServerBlockAction

A server-authored batch of compact block items. The recovered retail client path is currently a no-op stub.

InactivePlannedProvisional5 + N × (7 or 10) bytes in generated writer
Exact field order

Packet 39 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 39 ServerBlockAction fields in byte order
#FieldEncodingBytesPurpose
0packet_idu81Always 39 (0x27).
1record_counti32 LE4record count value.
2records[].has_colorboolean u81Whether a three-byte BGR colour follows the packed coordinates.
3records[].coordinates3 × packed i16 LE6X/Y low components plus packed Z and high-coordinate bits.
4records[].colorBGR8883Optional explicit colour.When: has_color = 1
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.