Skip to content

networkbasetypes.proto

Foundational proto-type definitions shared across all CS2 network and game-event messages. Provides compact vector, angle, quaternion, colour, and player-info structs used as fields in higher-level messages.

CS2 build 25218825 · Steam date 2026-09-09 · platform windows-x86_64 · schema format 2.2

Group: CS2 wire formatMessages: 24 top-level, 27 totalEnums: 3 top-level, 3 total

Imports: valveextensions.proto, google/protobuf/descriptor.proto, network_connection.proto

Wire ids

Every message in this file that a wire-id enum constant maps to, by the join rule described on the Protobufs index.

Enums

SignonState_t

Schema entity: SignonState_t

NameNumberMessage
SIGNONSTATE_NONE0
SIGNONSTATE_CHALLENGE1
SIGNONSTATE_CONNECTED2
SIGNONSTATE_NEW3
SIGNONSTATE_PRESPAWN4
SIGNONSTATE_SPAWN5
SIGNONSTATE_FULL6
SIGNONSTATE_CHANGELEVEL7

NET_Messages

Schema entity: NET_Messages

NameNumberMessage
net_NOP0CNETMsg_NOP
net_Disconnect_Legacy1
net_SplitScreenUser3CNETMsg_SplitScreenUser
net_Tick4CNETMsg_Tick
net_StringCmd5CNETMsg_StringCmd
net_SetConVar6CNETMsg_SetConVar
net_SignonState7CNETMsg_SignonState
net_SpawnGroup_Load8CNETMsg_SpawnGroup_Load
net_SpawnGroup_ManifestUpdate9CNETMsg_SpawnGroup_ManifestUpdate
net_SpawnGroup_SetCreationTick11CNETMsg_SpawnGroup_SetCreationTick
net_SpawnGroup_Unload12CNETMsg_SpawnGroup_Unload
net_SpawnGroup_LoadCompleted13CNETMsg_SpawnGroup_LoadCompleted
net_DebugOverlay15CNETMsg_DebugOverlay

SpawnGroupFlags_t

Schema entity: SpawnGroupFlags_t

NameNumberMessage
SPAWN_GROUP_LOAD_ENTITIES_FROM_SAVE1
SPAWN_GROUP_DONT_SPAWN_ENTITIES2
SPAWN_GROUP_SYNCHRONOUS_SPAWN4
SPAWN_GROUP_IS_INITIAL_SPAWN_GROUP8
SPAWN_GROUP_CREATE_CLIENT_ONLY_ENTITIES16
SPAWN_GROUP_BLOCK_UNTIL_LOADED64
SPAWN_GROUP_LOAD_STREAMING_DATA128
SPAWN_GROUP_CREATE_NEW_SCENE_WORLD256

Messages

CMsgVector

Compact three-component world-space position or direction vector transmitted over the CS2 network. Used for shot origins, positions, normals, etc.

Referenced by (54): CCLCMsg_HltvFixupOperatorTick, CCSPredictionEvent_PlayerTeleport, CCSUsrMsg_Damage, CCSUsrMsg_DamagePrediction, CCSUsrMsg_ShootInfo, CEntityMessageDoSpark, CEntityMessagePropagateForce, CMsgClothEffectAnimEvent, CMsgEffectData, CMsgPlaceDecalEvent, CMsgPlayerBulletHit, CMsgTEArmorRicochet, CMsgTEBeamEntPoint, CMsgTEBeamPoints, CMsgTEBloodStream, CMsgTEBubbleTrail, CMsgTEBubbles, CMsgTEDecal, CMsgTEDust, CMsgTEEnergySplash, CMsgTEExplosion, CMsgTEFireBullets, CMsgTEGlowSprite, CMsgTEImpact, CMsgTELargeFunnel, CMsgTEMuzzleFlash, CMsgTEPhysicsProp, CMsgTEShatterSurface, CMsgTESmoke, CMsgTESparks, CMsgTEWorldDecal, CMsgTransform, CNETMsg_DebugOverlay, CNETMsg_SpawnGroup_Load, CP2P_VRAvatarPosition.COrientation, CSGOInputHistoryEntryPB, CSVCMsg_BSPDecal, CUserMessageScreenTilt, CUserMessageShakeDir, CUserMessage_PlayResponseConditional, CUserMsg_ParticleManager.AddFan, CUserMsg_ParticleManager.CreateParticle, CUserMsg_ParticleManager.SetParticleClusterGrowth, CUserMsg_ParticleManager.SetParticleNamedValueContext.TransformContextValue, CUserMsg_ParticleManager.SetParticleNamedValueContext.VectorContextValue, CUserMsg_ParticleManager.UpdateEntityPosition, CUserMsg_ParticleManager.UpdateFan, CUserMsg_ParticleManager.UpdateParticleEnt, CUserMsg_ParticleManager.UpdateParticleFallback, CUserMsg_ParticleManager.UpdateParticleFwd_OBSOLETE, CUserMsg_ParticleManager.UpdateParticleOffset, CUserMsg_ParticleManager.UpdateParticleOrient_OBSOLETE, CUserMsg_ParticleManager.UpdateParticleTransform, CUserMsg_ParticleManager.UpdateParticle_OBSOLETE

FieldNumberLabelTypeDefaultDescription
x1optionalfloatX component of the vector (world units).
y2optionalfloatY component of the vector (world units).
z3optionalfloatZ component of the vector (world units, positive = up).
w4optionalfloat

CMsgVector2D

Two-component vector for screen-space or 2D positions.

Referenced by (1): CCSUsrMsg_HudMsg

FieldNumberLabelTypeDefaultDescription
x1optionalfloatX component.
y2optionalfloatY component.

CMsgQAngle

Euler angle triplet (pitch, yaw, roll) used to represent orientations in CS2 network messages. Pitch = up/down, Yaw = left/right, Roll = tilt.

Referenced by (20): CBaseUserCmdPB, CCLCMsg_HltvFixupOperatorTick, CCSPredictionEvent_PlayerTeleport, CCSUsrMsg_DamagePrediction, CCSUsrMsg_ShootInfo, CEntityMessageFixAngle, CMsgEffectData, CMsgTEFireBullets, CMsgTEFireBullets.Extra, CMsgTEMuzzleFlash, CMsgTEPhysicsProp, CMsgTEShatterSurface, CNETMsg_SpawnGroup_Load, CP2P_VRAvatarPosition.COrientation, CSGOInputHistoryEntryPB, CSVCMsg_CrosshairAngle, CSVCMsg_FixAngle, CUserMsg_ParticleManager.SetParticleNamedValueContext.TransformContextValue, CUserMsg_ParticleManager.UpdateParticleEnt, CUserMsg_ParticleManager.UpdateParticleOffset

FieldNumberLabelTypeDefaultDescription
x1optionalfloatPitch angle in degrees (positive = look down).
y2optionalfloatYaw angle in degrees (positive = turn left).
z3optionalfloatRoll angle in degrees.

CMsgQuaternion

Unit quaternion representation of a 3D rotation, used when higher precision or gimbal-lock avoidance is needed.

Referenced by (2): CMsgTransform, CUserMsg_ParticleManager.UpdateParticleTransform

FieldNumberLabelTypeDefaultDescription
x1optionalfloatQuaternion X component.
y2optionalfloatQuaternion Y component.
z3optionalfloatQuaternion Z component.
w4optionalfloatQuaternion W (scalar) component.

CMsgTransform

Combined position and orientation transform message.

Referenced by (1): CCSUsrMsg_ShootInfo

FieldNumberLabelTypeDefaultDescription
position1optionalCMsgVectorWorld-space translation vector.
scale2optionalfloat
orientation3optionalCMsgQuaternionRotation quaternion.

CMsgRGBA

32-bit RGBA colour value transmitted as four separate byte-range integers.

Referenced by (3): CCSUsrMsg_Fade, CCSUsrMsg_HudMsg, CNETMsg_DebugOverlay

FieldNumberLabelTypeDefaultDescription
r1optionalint32Red channel (0–255).
g2optionalint32Green channel (0–255).
b3optionalint32Blue channel (0–255).
a4optionalint32Alpha channel (0 = fully transparent, 255 = fully opaque).

CMsgPlayerInfo

Compact player-identification record stored in the 'userinfo' string table. Every connected client has an entry here; used to resolve entity handles to Steam IDs and display names in demo parsers.

FieldNumberLabelTypeDefaultDescription
name1optionalstringSteam display name of the player (UTF-8, up to 32 bytes).
xuid2optionalfixed64Steam's internal 64-bit XUID (may differ from SteamID64 for certain account types).
userid3optionalint32Session-scoped integer user ID assigned by the server (unique per connection).
steamid4optionalfixed6464-bit SteamID64 of the player.
fakeplayer5optionalboolTrue when this slot is occupied by a bot rather than a human player.
ishltv6optionalboolTrue when this slot is a GOTV/HLTV proxy connection.

CEntityMsg

Wrapper that targets an entity-specific message to a specific entity handle.

Referenced by (5): CEntityMessageDoSpark, CEntityMessageFixAngle, CEntityMessagePlayJingle, CEntityMessagePropagateForce, CEntityMessageScreenOverlay

FieldNumberLabelTypeDefaultDescription
target_entity1optionaluint3216777215Packed entity handle of the target entity (0xFFFFFF = broadcast).

CMsg_CVars

List of convar name–value pairs, used to synchronise convar state between client and server (e.g. in CNETMsg_SetConVar).

Referenced by (1): CNETMsg_SetConVar

FieldNumberLabelTypeDefaultDescription
cvars1repeatedCMsg_CVars.CVar

CMsg_CVars.CVar

Referenced by (1): CMsg_CVars

FieldNumberLabelTypeDefaultDescription
name1optionalstring
value2optionalstring

CNETMsg_NOP

No-operation message; sent as a heartbeat or padding packet.

Wire id: NET_Messages.net_NOP = 0

(no fields)

CNETMsg_SplitScreenUser

Wire id: NET_Messages.net_SplitScreenUser = 3

FieldNumberLabelTypeDefaultDescription
slot1optionalint32

CNETMsg_Tick

Per-tick synchronisation heartbeat sent from the server to all clients. Carries host-performance metrics alongside the current tick number.

Wire id: NET_Messages.net_Tick = 4

FieldNumberLabelTypeDefaultDescription
tick1optionaluint32Current server tick number.
host_computationtime4optionaluint32Server computation time for this tick in microseconds.
host_computationtime_std_deviation5optionaluint32Standard deviation of recent computation times in microseconds.
legacy_host_loss7optionaluint32
host_unfiltered_frametime8optionaluint32Unsmoothed frame time in microseconds.
hltv_replay_flags9optionaluint32GOTV replay control flags.
expected_long_tick10optionaluint32Tick number that is expected to take longer than usual (pre-warned to clients).
expected_long_tick_reason11optionalstring
host_frame_dropped_pct_x1012optionaluint32Percentage of server frames dropped, multiplied by 10 (e.g. 15 = 1.5%).
host_frame_irregular_arrival_pct_x1013optionaluint32

CNETMsg_StringCmd

Client→Server string command (e.g. 'joingame', 'spectate', 'changeteam'). The server whitelists valid commands; arbitrary console commands are not accepted.

Wire id: NET_Messages.net_StringCmd = 5

FieldNumberLabelTypeDefaultDescription
command1optionalstring
prediction_sync2optionaluint32

CNETMsg_SetConVar

Pushes a list of convar values from the server to the client (or from client to server when the client is reporting user settings).

Wire id: NET_Messages.net_SetConVar = 6

FieldNumberLabelTypeDefaultDescription
convars1optionalCMsg_CVars

CNETMsg_SignonState

Reports the current connection stage of the client or server during the multi-step sign-on sequence.

Wire id: NET_Messages.net_SignonState = 7

FieldNumberLabelTypeDefaultDescription
signon_state1optionalSignonState_tSIGNONSTATE_NONESignonState_t enum: NONE=0, CHALLENGE=1, CONNECTED=2, NEW=3, PRESPAWN=4, SPAWN=5, FULL=6, CHANGELEVEL=7.
spawn_count2optionaluint32Incremented each map load; used to detect map changes.
num_server_players3optionaluint32Number of player slots currently occupied on the server.
players_networkids4repeatedstringList of SteamID strings for currently connected players.
map_name5optionalstringCurrent map name.
addons6optionalstringComma-separated list of workshop addons loaded on this server.

CSVCMsg_GameEvent

Referenced by (1): CSVCMsgList_GameEvents.event_t

FieldNumberLabelTypeDefaultDescription
event_name1optionalstring
eventid2optionalint32
keys3repeatedCSVCMsg_GameEvent.key_t

CSVCMsg_GameEvent.key_t

Referenced by (1): CSVCMsg_GameEvent

FieldNumberLabelTypeDefaultDescription
type1optionalint32
val_string2optionalstring
val_float3optionalfloat
val_long4optionalint32
val_short5optionalint32
val_byte6optionalint32
val_bool7optionalbool
val_uint648optionaluint64

CSVCMsgList_GameEvents

FieldNumberLabelTypeDefaultDescription
events1repeatedCSVCMsgList_GameEvents.event_t

CSVCMsgList_GameEvents.event_t

Referenced by (1): CSVCMsgList_GameEvents

FieldNumberLabelTypeDefaultDescription
tick1optionalint32
event2optionalCSVCMsg_GameEvent

CNETMsg_SpawnGroup_Load

Wire id: NET_Messages.net_SpawnGroup_Load = 8

FieldNumberLabelTypeDefaultDescription
worldname1optionalstring
entitylumpname2optionalstring
entityfiltername3optionalstring
spawngrouphandle4optionaluint32
spawngroupownerhandle5optionaluint32
world_offset_pos6optionalCMsgVector
world_offset_angle7optionalCMsgQAngle
spawngroupmanifest8optionalbytes
flags9optionaluint32
tickcount10optionalint32
manifestincomplete11optionalbool
localnamefixup12optionalstring
parentnamefixup13optionalstring
manifestloadpriority14optionalint32
worldgroupid15optionaluint32
creationsequence16optionaluint32
savegamefilename17optionalstring
spawngroupparenthandle18optionaluint32
leveltransition19optionalbool
worldgroupname20optionalstring

CNETMsg_SpawnGroup_ManifestUpdate

Wire id: NET_Messages.net_SpawnGroup_ManifestUpdate = 9

FieldNumberLabelTypeDefaultDescription
spawngrouphandle1optionaluint32
spawngroupmanifest2optionalbytes
manifestincomplete3optionalbool

CNETMsg_SpawnGroup_SetCreationTick

Wire id: NET_Messages.net_SpawnGroup_SetCreationTick = 11

FieldNumberLabelTypeDefaultDescription
spawngrouphandle1optionaluint32
tickcount2optionalint32
creationsequence3optionaluint32

CNETMsg_SpawnGroup_Unload

Wire id: NET_Messages.net_SpawnGroup_Unload = 12

FieldNumberLabelTypeDefaultDescription
spawngrouphandle1optionaluint32
flags2optionaluint32
tickcount3optionalint32

CNETMsg_SpawnGroup_LoadCompleted

Wire id: NET_Messages.net_SpawnGroup_LoadCompleted = 13

FieldNumberLabelTypeDefaultDescription
spawngrouphandle1optionaluint32

CSVCMsg_GameSessionConfiguration

Referenced by (1): CSVCMsg_ServerInfo

FieldNumberLabelTypeDefaultDescription
is_multiplayer1optionalbool
is_loadsavegame2optionalbool
is_background_map3optionalbool
is_headless4optionalbool
min_client_limit5optionaluint32
max_client_limit6optionaluint32
max_clients7optionaluint32
tick_interval8optionalfixed32
hostname9optionalstring
savegamename10optionalstring
s1_mapname11optionalstring
gamemode12optionalstring
server_ip_address13optionalstring
data14optionalbytes
is_localonly15optionalbool
is_transition16optionalbool
previouslevel17optionalstring
landmarkname18optionalstring
no_steam_server19optionalbool

CNETMsg_DebugOverlay

Wire id: NET_Messages.net_DebugOverlay = 15

FieldNumberLabelTypeDefaultDescription
etype1optionalint32
vectors2repeatedCMsgVector
colors3repeatedCMsgRGBA
dimensions4repeatedfloat
times5repeatedfloat
bools6repeatedbool
uint64s7repeateduint64
strings8repeatedstring

Reference graph

Message reference graph (11 edges)
flowchart LR
    n0["CMsgTransform"]
    n1["CMsgVector"]
    n0 --> n1
    n2["CMsgQuaternion"]
    n0 --> n2
    n3["CMsg_CVars"]
    n4["CMsg_CVars.CVar"]
    n3 --> n4
    n5["CNETMsg_SetConVar"]
    n5 --> n3
    n6["CSVCMsg_GameEvent"]
    n7["CSVCMsg_GameEvent.key_t"]
    n6 --> n7
    n8["CSVCMsgList_GameEvents"]
    n9["CSVCMsgList_GameEvents.event_t"]
    n8 --> n9
    n9 --> n6
    n10["CNETMsg_SpawnGroup_Load"]
    n10 --> n1
    n11["CMsgQAngle"]
    n10 --> n11
    n12["CNETMsg_DebugOverlay"]
    n12 --> n1
    n13["CMsgRGBA"]
    n12 --> n13