Skip to content

File Formats: Network Packets

xmeadow edited this page Mar 13, 2026 · 1 revision

Network Packet Format

Notes by Aaron Bishop (Dunlar)

All packets share a 3-byte header: packet type, random encryption seed, checksum.


PACKET_TYPE_CHAT (0)

Field Size
Packet type (0) 1 byte
Random encryption seed 1 byte
Checksum 1 byte
Speaker class 1 byte
Speaker name string
Message string

PACKET_TYPE_I_AM_HERE (1)

Field Size
Packet type (1) 1 byte
Random encryption seed 1 byte
Checksum 1 byte
Room number 2 bytes
Random map seed 2 bytes

PACKET_TYPE_ROOM_UPDATE (2)

Field Size
Packet type (2) 1 byte
Random encryption seed 1 byte
Checksum 1 byte
Room number 2 bytes
Random map seed 2 bytes
Door opened flags 1 byte
Number of characters 1 byte
For each character:
Local index number 1 byte
Script index 1 byte
Position modifiers (top 2=x, mid 2=y, low 4=z) 1 byte
X position 1 byte
Y position 1 byte
Facing 1 byte
Action (top bit = high-data / riding) 1 byte
Misc (team, poison, petrify, alpha, enchants) 1 byte
EqLeft 1 byte
EqRight 1 byte
EqCol01 1 byte
(if high-data character): EqCol23, EqSpec1, EqSpec2, EqHelm, EqBody, EqLegs, Class, Mount index 1 byte each

PACKET_TYPE_I_WANNA_PLAY (3)

Field Size
Packet type (3) 1 byte
Random encryption seed 1 byte
Checksum 1 byte
TRUE if requesting full remote list 1 byte

PACKET_TYPE_OKAY_YOU_CAN_PLAY (4)

Field Size
Packet type (4) 1 byte
Random encryption seed 1 byte
Checksum 1 byte
Random map seed 2 bytes
Number of remotes (0 if not requested) 2 bytes
IP address (per remote) 4 bytes each

ServerFu Packets

See Development: ServerFu for the full server-side packet protocol (shard list, join, room handshake, heartbeat, etc.).

Clone this wiki locally