-
Notifications
You must be signed in to change notification settings - Fork 7
File Formats: Network Packets
xmeadow edited this page Mar 13, 2026
·
1 revision
Notes by Aaron Bishop (Dunlar)
All packets share a 3-byte header: packet type, random encryption seed, checksum.
| Field | Size |
|---|---|
| Packet type (0) | 1 byte |
| Random encryption seed | 1 byte |
| Checksum | 1 byte |
| Speaker class | 1 byte |
| Speaker name | string |
| Message | string |
| Field | Size |
|---|---|
| Packet type (1) | 1 byte |
| Random encryption seed | 1 byte |
| Checksum | 1 byte |
| Room number | 2 bytes |
| Random map seed | 2 bytes |
| 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 |
| Field | Size |
|---|---|
| Packet type (3) | 1 byte |
| Random encryption seed | 1 byte |
| Checksum | 1 byte |
| TRUE if requesting full remote list | 1 byte |
| 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 |
See Development: ServerFu for the full server-side packet protocol (shard list, join, room handshake, heartbeat, etc.).