Skip to content

Game Messages

This page describes the game messages structure, all kinds of game messages available, and their purpose.

Message IDName
0Unused
1NETMSGTYPE_SV_MOTD
2NETMSGTYPE_SV_BROADCAST
3NETMSGTYPE_SV_CHAT
4NETMSGTYPE_SV_KILLMSG
5NETMSGTYPE_SV_SOUNDGLOBAL (DDNet Only)
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 (DDNet Only)
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 chat line to the client. It supports all-chat, team chat, and whisper chat.

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

Structure:

FieldTypeDescription
ModeIntegerChat mode: 0 = no chat, 1 = all, 2 = team, 3 = whisper.
Client IDIntegerThe client ID of the player who sent the chat message. -1 is used for server/system chat.
Target IDIntegerThe whisper target client ID. -1 when the message is not a whisper.
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 63), or a special value when the kill has no normal source: -2 = self-kill by kill command, -1 = world/environment kill.
VictimIntegerClient ID of the player that died (0 to 63).
WeaponIntegerWeapon identifier (0 to 5) for the kill, or a special value: -3 = self-kill by kill command, -2 = world/environment kill, -1 = team-locked weapon.
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 to a client so the client can match the server physics settings.

  • 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 ticks, 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 ticks, for shotgun projectiles.
Grenade CurvatureIntegerProjectile curvature for grenades.
Grenade SpeedIntegerProjectile speed for grenades.
Grenade LifetimeIntegerLifetime, in ticks, for grenades.
Laser ReachIntegerMaximum laser reach.
Laser Bounce DelayIntegerDelay between laser bounces.
Laser Bounce NumIntegerNumber of laser bounces.
Laser Bounce CostIntegerAmmunition cost for each laser bounce.
Laser DamageIntegerLaser damage value.
Player CollisionIntegerEnables or disables player collision.
Player HookingIntegerEnables or disables hooking players.

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 that was picked up: 0 = hammer, 1 = gun, 2 = shotgun, 3 = grenade, 4 = laser.

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 vote option descriptions included in the message.
Description 0StringFirst vote option description.
.........
Description NStringLast vote option description.

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
Client IDIntegerClient ID that created the vote, or -1 when no creator should be shown.
TypeIntegerVote type: 0 = unknown, 1 = start option, 2 = start kick, 3 = start spectator, 4 = abort, 5 = pass, 6 = fail.
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
ModeIntegerChat mode: 0 = no chat, 1 = all, 2 = team, 3 = whisper.
TargetIntegerWhisper target client ID, or -1 when the message is not a whisper.
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 player information to the server.

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

Structure:

FieldTypeDescription
NameStringPlayer name.
ClanStringPlayer clan.
CountryIntegerCountry code for the player.
Skin Part 0StringBody skin part name.
Skin Part 1StringMarking skin part name.
Skin Part 2StringDecoration skin part name.
Skin Part 3StringHands skin part name.
Skin Part 4StringFeet skin part name.
Skin Part 5StringEyes skin part name.
Use Custom Color 0IntegerWhether the body skin part uses a custom color.
Use Custom Color 1IntegerWhether the marking skin part uses a custom color.
Use Custom Color 2IntegerWhether the decoration skin part uses a custom color.
Use Custom Color 3IntegerWhether the hands skin part uses a custom color.
Use Custom Color 4IntegerWhether the feet skin part uses a custom color.
Use Custom Color 5IntegerWhether the eyes skin part uses a custom color.
Skin Part Color 0IntegerBody skin part color.
Skin Part Color 1IntegerMarking skin part color.
Skin Part Color 2IntegerDecoration skin part color.
Skin Part Color 3IntegerHands skin part color.
Skin Part Color 4IntegerFeet skin part color.
Skin Part Color 5IntegerEyes skin part color.

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 ColorIntegerWhether 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 or force a vote.

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

Structure:

FieldTypeDescription
TypeStringVote type requested by the client.
ValueStringValue for the vote, such as a player name or team.
ReasonStringReason shown for the vote.
ForceIntegerWhether the vote should be forced by an authenticated client.