AOS REVIVALJoin Discord
Packet ID0130x0D
Players // wire record

SetClassLoadout

Submits a class, equipment list, prefab selection, and optional UGC tools as one life-boundary loadout transaction.

C→SHandledLive-verifiedVariable: 6 + L + ΣS + optional (1 + U)
Exact field order

Packet 13 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 13 SetClassLoadout fields in byte order
#FieldEncodingBytesPurpose
0packet_idu81Always 13 (0x0D).
1player_idu81Compact player-slot identifier.
2class_idu81Selected character class identifier.
3instantboolean u81Boolean-like byte requesting immediate application.
4loadout_countu81L: number of one-byte tool IDs.
5loadout[]L × u8LOrdered equipment/tool IDs.
6prefab_countu81Number of NUL-terminated prefab names.
7prefabs[]repeated NUL stringsΣSSelected prefab names; each consumes its UTF-8 length plus one terminator byte.
8ugc_tool_countu81U: optional trailing count; retail may omit it when zero.When: Present only when bytes remain.
9ugc_tools[]U × u8UUGC tool IDs.When: Only after ugc_tool_count.
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.