System Messages
This page describes the system messages structure, all kind of system messages available and its purpose.
| Message ID | Name |
|---|---|
| 0 | Unused |
| 1 | NETMSG_INFO |
| 2 | NETMSG_MAP_CHANGE |
| 3 | NETMSG_MAP_DATA |
| 4 | NETMSG_CON_READY |
| 5 | NETMSG_SNAP |
| 6 | NETMSG_SNAPEMPTY |
| 7 | NETMSG_SNAPSINGLE |
| 8 | Unused |
| 9 | NETMSG_INPUTTIMING |
| 10 | NETMSG_RCON_AUTH_ON |
| 11 | NETMSG_RCON_LINE |
| 12 | Unused |
| 13 | Unused |
| 14 | NETMSG_READY |
| 15 | NETMSG_ENTERGAME |
| 16 | NETMSG_INPUT |
| 17 | NETMSG_RCON_CMD |
| 18 | NETMSG_RCON_AUTH |
| 19 | NETMSG_REQUEST_MAP_DATA |
| 20 | Unused |
| 21 | Unused |
| 22 | NETMSG_PING |
| 23 | NETMSG_PING_REPLY |
| 24 | Unused |
| 25 | NETMSG_RCON_CMD_ADD |
| 26 | NETMSG_RCON_CMD_REM |
1 - NETMSG_INFO
The first message sent by the client. It gives the server the client's version and optional password.
- Vital : ✅
- Instant Sending : ✅
- Sending Path : Client -> Server
Structure:
| Field | Type | Description |
|---|---|---|
| Version | String | The client version string. |
| Password | String | The server password, if needed. May be empty. |
| Client Version | Integer | A numeric client version identifier. |
2 - NETMSG_MAP_CHANGE
Sent by the server when the client should switch to a different map.
- Vital : ✅
- Instant Sending : ✅
- Sending Path : Server -> Client
Structure:
| Field | Type | Description |
|---|---|---|
| Map Name | String | The name of the map. |
| Map CRC | Integer | The CRC checksum of the map. |
| Map Size | Integer | Total map size in bytes. |
| Chunks Per Request | Integer | Number of map chunks the server sends per NETMSG_REQUEST_MAP_DATA request. |
| Chunk Size | Integer | Size of each map chunk in bytes. |
| Map SHA256 | Binary (32 bytes) | SHA256 digest of the map. |
3 - NETMSG_MAP_DATA
Sent by the server to transfer a raw chunk of the map file.
- Vital : ✅
- Instant Sending : ✅
- Sending Path : Server -> Client
Structure:
| Field | Type | Description |
|---|---|---|
| Data | Binary | Raw map chunk data. |
4 - NETMSG_CON_READY
Sent by the server when the connection is ready and the client should send its start info.
- Vital : ✅
- Instant Sending : ✅
- Sending Path : Server -> Client
Structure:
Empty payload
5 - NETMSG_SNAP
This message sends a slice of a snap with part of the items.
- Vital : ❌
- Instant Sending : ✅
- Sending Path : Server -> Client
INFO
Snap is a complex type of chunk. You can find more information about it on Snap Structure page.
6 - NETMSG_SNAPEMPTY
This message sends an empty snap with no items.
- Vital : ❌
- Instant Sending : ✅
- Sending Path : Server -> Client
INFO
Snap is a complex type of chunk. You can find more information about it on Snap Structure page.
7 - NETMSG_SNAPSINGLE
This message sends a full snap with all items in a single packet.
- Vital : ❌
- Instant Sending : ✅
- Sending Path : Server -> Client
INFO
Snap is a complex type of chunk. You can find more information about it on Snap Structure page.
9 - NETMSG_INPUTTIMING
This message is a response from the server to the client "INPUT" chunk, reporting how early or late the input was handled.
- Vital : ❌
- Instant Sending : ❌
- Sending Path : Server -> Client
Structure:
| Field | Type | Description |
|---|---|---|
| Intended Tick | Integer | The game tick the client intended its input for. |
| Time Left | Integer | Time left before the intended tick, in milliseconds. Negative values mean the input was late. |
INFO
Check the Input & Input Timing Chunks section for more information about this chunk.
10 - NETMSG_RCON_AUTH_ON
Sent by the server to indicate that the client has been authenticated for rcon.
- Vital : ✅
- Instant Sending : ❌
- Sending Path : Server -> Client
Structure:
Empty payload
11 - NETMSG_RCON_LINE
Sent by the server to print a line to the remote console on the client.
- Vital : ✅
- Instant Sending : ❌
- Sending Path : Server -> Client
Structure:
| Field | Type | Description |
|---|---|---|
| Line | String | The text line to print in the client's remote console. |
14 - NETMSG_READY
Sent by the client after it has loaded the map and is ready.
- Vital : ✅
- Instant Sending : ✅
- Sending Path : Client -> Server
Structure:
Empty payload
15 - NETMSG_ENTERGAME
Sent by the client to tell the server to start sending snapshots.
- Vital : ❌
- Instant Sending : ✅
- Sending Path : Client -> Server
Structure:
Empty payload
16 - NETMSG_INPUT
This message is sent by the client to the server with the player's input.
- Vital : ❌
- Instant Sending : ✅
- Sending Path : Client -> Server
Structure:
| Field | Type | Description |
|---|---|---|
| Ack Game Tick | Integer | The last acknowledged server game tick. |
| Prediction Tick | Integer | The game tick the client is predicting with this input. |
| Input Size | Integer | Total size of the raw input data in bytes. |
| Input -> Direction | Integer | Direction the player is moving: -1 = left, 0 = neutral, 1 = right. |
| Input -> Target X | Integer | X coordinate of the crosshair / target position. |
| Input -> Target Y | Integer | Y coordinate of the crosshair / target position. |
| Input -> Jump | Integer | Jump input state. |
| Input -> Fire | Integer | Fire input state. |
| Input -> Hook | Integer | Hook input state. |
| Input -> PlayerFlags | Integer | Player flags for this input (e.g. chatting, scoreboard). |
| Input -> WantedWeapon | Integer | Direct weapon slot selection. 0 = no desired weapon, 1+weapon = desired weapon. |
| Input -> NextWeapon | Integer | Next weapon cycle input. |
| Input -> PrevWeapon | Integer | Previous weapon cycle input. |
| Ping Correction | Integer | Client-reported ping correction for latency calculation. |
INFO
Check the Input & Input Timing Chunks section for more information about this chunk.
17 - NETMSG_RCON_CMD
Sent by the client to execute a command on the server through the remote console.
- Vital : ✅
- Instant Sending : ❌
- Sending Path : Client -> Server
Structure:
| Field | Type | Description |
|---|---|---|
| Command | String | The command to be executed. |
18 - NETMSG_RCON_AUTH
Sent by the client to authenticate for rcon access, containing the password.
- Vital : ✅
- Instant Sending : ❌
- Sending Path : Client -> Server
Structure:
| Field | Type | Description |
|---|---|---|
| Password | String | The rcon password used to authenticate. |
19 - NETMSG_REQUEST_MAP_DATA
Sent by the client to request the next chunk of map data.
- Vital : ✅
- Instant Sending : ✅
- Sending Path : Client -> Server
Structure:
| Field | Type | Description |
|---|---|---|
| Chunk | Integer | The map chunk index being requested. |
22 - NETMSG_PING
Sent by either side to request a pong response.
- Vital : ❌
- Instant Sending : ❌
- Sending Path : Both ways
Structure:
Empty payload
23 - NETMSG_PING_REPLY
Sent by either side as a reply to a NETMSG_PING.
- Vital : ❌
- Instant Sending : ❌
- Sending Path : Both ways
Structure:
Empty payload
25 - NETMSG_RCON_CMD_ADD
Sent by the server to inform an authenticated client about a newly available rcon command.
- Vital : ✅
- Instant Sending : ❌
- Sending Path : Server -> Client
Structure:
| Field | Type | Description |
|---|---|---|
| Name | String | Command name. |
| Help | String | Help text describing the command. |
| Params | String | Parameter format string for the command. |
26 - NETMSG_RCON_CMD_REM
Sent by the server to inform an authenticated client that a rcon command is no longer available.
- Vital : ✅
- Instant Sending : ❌
- Sending Path : Server -> Client
Structure:
| Field | Type | Description |
|---|---|---|
| Name | String | Name of the command to remove. |