Skip to content

Game Messages ​

This page describes the structure and purpose of Teeworlds 0.6 game messages. Client IDs range from 0 to 15.

Message IDName
0Unused
1NETMSGTYPE_SV_MOTD
2NETMSGTYPE_SV_BROADCAST
3NETMSGTYPE_SV_CHAT
4NETMSGTYPE_SV_KILLMSG
5NETMSGTYPE_SV_SOUNDGLOBAL
6NETMSGTYPE_SV_TUNEPARAMS
7Unused
8NETMSGTYPE_SV_READYTOENTER
9NETMSGTYPE_SV_WEAPONPICKUP
10NETMSGTYPE_SV_EMOTICON
11NETMSGTYPE_SV_VOTECLEAROPTIONS
12NETMSGTYPE_SV_VOTEOPTIONLISTADD
13NETMSGTYPE_SV_VOTEOPTIONADD
14NETMSGTYPE_SV_VOTEOPTIONREMOVE
15NETMSGTYPE_SV_VOTESET
16NETMSGTYPE_SV_VOTESTATUS
17NETMSGTYPE_CL_SAY
18NETMSGTYPE_CL_SETTEAM
19NETMSGTYPE_CL_SETSPECTATORMODE
20NETMSGTYPE_CL_STARTINFO
21NETMSGTYPE_CL_CHANGEINFO
22NETMSGTYPE_CL_KILL
23NETMSGTYPE_CL_EMOTICON
24NETMSGTYPE_CL_VOTE
25NETMSGTYPE_CL_CALLVOTE

INFO

  • SV : Server sending to client
  • CL : Client sending to server

1 - NETMSGTYPE_SV_MOTD ​

This message sends the server message of the day to a client.

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

Structure:

FieldTypeDescription
MessageStringThe message of the day text, usually taken from the server configuration.

2 - NETMSGTYPE_SV_BROADCAST ​

This message sends a broadcast message to a specific client.

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

Structure:

FieldTypeDescription
MessageStringThe broadcast text shown to the client.

3 - NETMSGTYPE_SV_CHAT ​

This message sends a public or team chat line to the client.

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

Structure:

FieldTypeDescription
TeamInteger0 for public chat; 1 for team chat.
Client IDIntegerThe sender's client ID (0 to 15), or -1 for server messages.
MessageStringThe chat text.

4 - NETMSGTYPE_SV_KILLMSG ​

This message informs clients about a player death and the source of the kill.

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

Structure:

FieldTypeDescription
KillerIntegerClient ID of the killer (0 to 15). For self-kills and world deaths, this is the victim's client ID.
VictimIntegerClient ID of the player that died (0 to 15).
WeaponIntegerWeapon ID (0 to 5), or -3 for game/team changes, -2 for self-kills, and -1 for world deaths.
Mode SpecialIntegerExtra mode-specific value used by the client to render the kill message.

5 - NETMSGTYPE_SV_SOUNDGLOBAL ​

This message tells the client to play a global sound.

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

Structure:

FieldTypeDescription
Sound IDIntegerSound ID to play globally.

6 - NETMSGTYPE_SV_TUNEPARAMS ​

This message sends tuning parameters so the client can match the server physics settings. It contains 33 integers in the order below. Each value is scaled by 100; the descriptions refer to the decoded values.

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

Structure:

Show Large Structure
FieldTypeDescription
Ground Control SpeedIntegerMaximum horizontal control speed while grounded.
Ground Control AccelerationIntegerHorizontal acceleration while grounded.
Ground FrictionIntegerFriction applied while grounded.
Ground Jump ImpulseIntegerVertical impulse applied by a ground jump.
Air Jump ImpulseIntegerVertical impulse applied by an air jump.
Air Control SpeedIntegerMaximum horizontal control speed while in the air.
Air Control AccelerationIntegerHorizontal acceleration while in the air.
Air FrictionIntegerFriction applied while in the air.
Hook LengthIntegerMaximum hook length.
Hook Fire SpeedIntegerSpeed at which the hook is fired.
Hook Drag AccelerationIntegerAcceleration used while dragging with the hook.
Hook Drag SpeedIntegerSpeed used while dragging with the hook.
GravityIntegerWorld gravity value.
Velramp StartIntegerStart of the velocity ramp.
Velramp RangeIntegerRange of the velocity ramp.
Velramp CurvatureIntegerCurvature of the velocity ramp.
Gun CurvatureIntegerProjectile curvature for the gun.
Gun SpeedIntegerProjectile speed for the gun.
Gun LifetimeIntegerLifetime in seconds for gun projectiles.
Shotgun CurvatureIntegerProjectile curvature for shotgun pellets.
Shotgun SpeedIntegerProjectile speed for shotgun pellets.
Shotgun SpeeddiffIntegerSpeed variation factor for shotgun spread.
Shotgun LifetimeIntegerLifetime in seconds for shotgun projectiles.
Grenade CurvatureIntegerProjectile curvature for grenades.
Grenade SpeedIntegerProjectile speed for grenades.
Grenade LifetimeIntegerLifetime in seconds for grenades.
Laser ReachIntegerMaximum laser reach.
Laser Bounce DelayIntegerDelay between laser bounces in milliseconds.
Laser Bounce NumIntegerNumber of laser bounces.
Laser Bounce CostIntegerExtra laser energy consumed per bounce, measured in world units of travel distance.
Laser DamageIntegerLaser damage value.
Player CollisionIntegerEnables or disables player collision.
Player HookingIntegerEnables or disables hooking players.
c
packed_value = truncate(value * 100)
value = packed_value / 100.0

For example, a Gun Lifetime value of 200 decodes to 2 seconds, or 100 ticks at 50 ticks per second. Enabled Player Collision and Player Hooking values are transmitted as 100; disabled values are 0.

8 - NETMSGTYPE_SV_READYTOENTER ​

This message tells the client that it may enter the game.

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

Structure:

Empty payload

9 - NETMSGTYPE_SV_WEAPONPICKUP ​

This message informs a client that it picked up a weapon.

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

Structure:

FieldTypeDescription
WeaponIntegerWeapon ID: 0 = hammer, 1 = gun, 2 = shotgun, 3 = grenade, 4 = rifle/laser, 5 = ninja.

10 - NETMSGTYPE_SV_EMOTICON ​

This message tells clients to display an emoticon above a player.

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

Structure:

FieldTypeDescription
Client IDIntegerThe client ID of the player showing the emoticon.
EmoticonIntegerEmoticon ID to display: 0 = oop, 1 = exclamation, 2 = hearts, 3 = drop, 4 = dotdot, 5 = music, 6 = sorry, 7 = ghost, 8 = sushi, 9 = splattee, 10 = deviltee, 11 = zomg, 12 = zzz, 13 = wtf, 14 = eyes, 15 = question.

11 - NETMSGTYPE_SV_VOTECLEAROPTIONS ​

This message clears the client-side vote option list.

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

Structure:

Empty payload

12 - NETMSGTYPE_SV_VOTEOPTIONLISTADD ​

This message adds a batch of vote options to the client-side vote option list.

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

Structure:

FieldTypeDescription
Num. OptionsIntegerNumber of active descriptions, from 1 to 15.
Description 0StringDescription slot 0.
Description 1StringDescription slot 1.
Description 2StringDescription slot 2.
Description 3StringDescription slot 3.
Description 4StringDescription slot 4.
Description 5StringDescription slot 5.
Description 6StringDescription slot 6.
Description 7StringDescription slot 7.
Description 8StringDescription slot 8.
Description 9StringDescription slot 9.
Description 10StringDescription slot 10.
Description 11StringDescription slot 11.
Description 12StringDescription slot 12.
Description 13StringDescription slot 13.
Description 14StringDescription slot 14.

All 15 strings are sent. The first Num. Options slots contain descriptions; unused slots are empty strings.

13 - NETMSGTYPE_SV_VOTEOPTIONADD ​

This message adds a single vote option to the client-side vote option list.

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

Structure:

FieldTypeDescription
DescriptionStringVote option description to add.

14 - NETMSGTYPE_SV_VOTEOPTIONREMOVE ​

This message removes a single vote option from the client-side vote option list.

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

Structure:

FieldTypeDescription
DescriptionStringVote option description to remove.

15 - NETMSGTYPE_SV_VOTESET ​

This message starts, updates, or ends a vote on the client.

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

Structure:

FieldTypeDescription
TimeoutIntegerRemaining vote timeout in seconds, or 0 when the vote is closed.
DescriptionStringVote description shown to the client. Empty when the vote is closed.
ReasonStringVote reason shown to the client. Empty when the vote is closed.

16 - NETMSGTYPE_SV_VOTESTATUS ​

This message updates the client with the current vote count.

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

Structure:

FieldTypeDescription
YesIntegerNumber of yes votes.
NoIntegerNumber of no votes.
PassIntegerNumber of players that have not voted.
TotalIntegerTotal number of eligible voters.

17 - NETMSGTYPE_CL_SAY ​

This message sends a chat message from the client to the server.

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

Structure:

FieldTypeDescription
TeamBoolean0 for public chat; 1 for team chat.
MessageStringChat text entered by the client.

18 - NETMSGTYPE_CL_SETTEAM ​

This message requests a team change from the client.

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

Structure:

FieldTypeDescription
TeamIntegerRequested team: -1 = spectators, 0 = red team, 1 = blue team.

19 - NETMSGTYPE_CL_SETSPECTATORMODE ​

This message changes how the client is spectating.

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

Structure:

FieldTypeDescription
Spectator IDIntegerClient ID being spectated, or -1 (SPEC_FREEVIEW) for free view mode.

20 - NETMSGTYPE_CL_STARTINFO ​

This message sends the player's initial information to the server.

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

Structure:

FieldTypeDescription
NameStringPlayer name.
ClanStringPlayer clan.
CountryIntegerCountry code for the player.
SkinStringSkin name.
Use Custom ColorBooleanWhether the player uses custom skin colors.
Color BodyIntegerBody color value.
Color FeetIntegerFeet color value.

21 - NETMSGTYPE_CL_CHANGEINFO ​

This message sends updated player information (name, clan, skin, colors) to the server.

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

Structure:

FieldTypeDescription
NameStringPlayer name.
ClanStringPlayer clan.
CountryIntegerCountry code for the player.
SkinStringSkin name.
Use Custom ColorBooleanWhether the player uses custom skin colors.
Color BodyIntegerBody color value.
Color FeetIntegerFeet color value.

22 - NETMSGTYPE_CL_KILL ​

This message requests the server to kill the client's current character.

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

Structure:

Empty payload

23 - NETMSGTYPE_CL_EMOTICON ​

This message sends an emoticon request from the client to the server.

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

Structure:

FieldTypeDescription
EmoticonIntegerEmoticon ID selected by the client: 0 = oop, 1 = exclamation, 2 = hearts, 3 = drop, 4 = dotdot, 5 = music, 6 = sorry, 7 = ghost, 8 = sushi, 9 = splattee, 10 = deviltee, 11 = zomg, 12 = zzz, 13 = wtf, 14 = eyes, 15 = question.

24 - NETMSGTYPE_CL_VOTE ​

This message sends the client's vote choice to the server.

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

Structure:

FieldTypeDescription
VoteIntegerVote choice: -1 = no, 0 = pass, 1 = yes.

25 - NETMSGTYPE_CL_CALLVOTE ​

This message requests the server to start a vote.

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

Structure:

FieldTypeDescription
TypeStringVote type: option, kick, or spectate.
ValueStringOption description, or a decimal client ID string for kick and spectate votes.
ReasonStringReason shown for the vote.

Authenticated clients perform forced actions through rcon commands.