Skip to content

System Messages ​

This page describes the structure and purpose of Teeworlds 0.6 system messages.

Message IDName
0Unused
1NETMSG_INFO
2NETMSG_MAP_CHANGE
3NETMSG_MAP_DATA
4NETMSG_CON_READY
5NETMSG_SNAP
6NETMSG_SNAPEMPTY
7NETMSG_SNAPSINGLE
8Unused
9NETMSG_INPUTTIMING
10NETMSG_RCON_AUTH_STATUS
11NETMSG_RCON_LINE
12Unused
13Unused
14NETMSG_READY
15NETMSG_ENTERGAME
16NETMSG_INPUT
17NETMSG_RCON_CMD
18NETMSG_RCON_AUTH
19NETMSG_REQUEST_MAP_DATA
20Unused
21Unused
22NETMSG_PING
23NETMSG_PING_REPLY
24Unused
25NETMSG_RCON_CMD_ADD
26NETMSG_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:

FieldTypeDescription
VersionStringThe network version string used to check protocol compatibility.
PasswordStringThe server password, if needed. May be empty.

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:

FieldTypeDescription
Map NameStringThe name of the map.
Map CRCIntegerCRC32 of the complete original .map file, represented as a signed 32-bit integer.
Map SizeIntegerTotal original file size in bytes.

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:

FieldTypeDescription
LastBoolean1 if this is the final map chunk; otherwise 0. Packed as an integer.
Map CRCIntegerThe same map CRC announced in NETMSG_MAP_CHANGE.
ChunkIntegerZero-based index of this map chunk.
Chunk SizeIntegerNumber of raw bytes in Data.
DataBinaryExactly Chunk Size bytes from the original .map file.

Each request receives one map chunk containing up to 896 bytes. Its file offset is Chunk * 896. Last is set to 1 when the chunk reaches the end of the file, including when the final chunk contains a full 896 bytes.

The first four fields use variable-length integer encoding. Data contains the bytes of the requested file slice. Packet-level compression is decoded before reassembling the file; zlib-compressed blocks inside the map remain part of the downloaded file.

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 one part of a snapshot delta split across multiple chunks.

  • 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 reports that the snapshot has no changes from its baseline. The client keeps the baseline items and advances to the current tick.

  • 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 snapshot delta in a single chunk. Without a baseline, the delta contains the full item state.

  • 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 ​

Sent by the server when it receives input for a newer prediction tick. It reports the time left until that tick, in milliseconds.

  • Vital : ❌
  • Instant Sending : ❌
  • Sending Path : Server -> Client

Structure:

FieldTypeDescription
Intended TickIntegerThe game tick the client intended its input for.
Time LeftIntegerTime 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_STATUS ​

Sent by the server to update the client's rcon authentication and command-list state.

  • Vital : ✅
  • Instant Sending : ❌
  • Sending Path : Server -> Client

Structure:

FieldTypeDescription
AuthenticatedBoolean1 if authenticated; 0 otherwise.
Use Command ListBoolean1 to use the server-provided rcon command list; 0 to clear and disable it.

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:

FieldTypeDescription
LineStringThe 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:

FieldTypeDescription
Ack Game TickIntegerThe last acknowledged server game tick.
Prediction TickIntegerThe game tick the client is predicting with this input.
Input SizeIntegerInput size before integer packing: 40 bytes for the 10 player-input integers.
Input -> DirectionIntegerDirection the player is moving: -1 = left, 0 = neutral, 1 = right.
Input -> Target XIntegerHorizontal aim offset relative to the character.
Input -> Target YIntegerVertical aim offset relative to the character.
Input -> JumpIntegerJump input state.
Input -> FireIntegerFire input state.
Input -> HookIntegerHook input state.
Input -> PlayerFlagsIntegerPlayer flags for this input (e.g. chatting, scoreboard).
Input -> WantedWeaponIntegerDirect weapon slot selection. 0 = no desired weapon, 1+weapon = desired weapon.
Input -> NextWeaponIntegerNext weapon cycle input.
Input -> PrevWeaponIntegerPrevious weapon cycle input.

Input Size counts the 32-bit input values before packing, so it can differ from the encoded payload length. Normal input is sent with immediate flushing; direct input can also be sent without flushing.

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:

FieldTypeDescription
CommandStringThe command to be executed.

18 - NETMSG_RCON_AUTH ​

Sent by the client to authenticate for rcon access and request the available command list.

  • Vital : ✅
  • Instant Sending : ❌
  • Sending Path : Client -> Server

Structure:

FieldTypeDescription
Login NameStringLogin name. The server reads this field but does not use it for authentication.
PasswordStringThe rcon password used to authenticate.
Send Command ListBooleanWhether the client requests the available rcon commands after authentication.

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:

FieldTypeDescription
ChunkIntegerZero-based map chunk index being requested, starting at 0.

The client requests successive indices until NETMSG_MAP_DATA has Last set to 1. Each index selects a file slice starting at Chunk * 896. Reassemble the raw slices in order and verify the complete file against the announced size and CRC.

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:

FieldTypeDescription
NameStringCommand name.
HelpStringHelp text describing the command.
ParamsStringParameter 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:

FieldTypeDescription
NameStringName of the command to remove.