cs_gameevents.proto
CS2-specific game event protobuf messages. These are temporary entity (TE) events and game events broadcast from the server to clients that are within the relevant PVS or listening for the event type. Identified by the ECsgoGameEvents enum (450–453).
CS2 build 25218825 · Steam date 2026-09-09 · platform windows-x86_64 · schema format 2.2
Group: Game eventsMessages: 4 top-level, 5 totalEnums: 1 top-level, 1 total
Imports: networkbasetypes.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.
| Message | Enum constant | Value |
|---|---|---|
| CMsgPlayerBulletHit | ECsgoGameEvents.GE_PlayerBulletHitId | 453 |
Enums
ECsgoGameEvents
Schema entity: ECsgoGameEvents
| Name | Number | Message |
|---|---|---|
GE_PlayerAnimEventId | 450 | |
GE_RadioIconEventId | 451 | |
GE_FireBulletsId | 452 | |
GE_PlayerBulletHitId | 453 | CMsgPlayerBulletHit |
Messages
CMsgTEPlayerAnimEvent
Temporary entity event that triggers a networked animation event on a player's animation graph (jumps, land, crouch transitions, etc.).
| Field | Number | Label | Type | Default | Description |
|---|---|---|---|---|---|
player | 1 | optional | fixed32 | 16777215 | Entity handle (packed as fixed32) of the player triggering the animation event. |
event | 2 | optional | uint32 | Animation event ID matching an entry in the player's animation graph. | |
data | 3 | optional | int32 | Optional integer payload passed to the animation event handler. |
CMsgTERadioIcon
Triggers the radio-icon animation above a player's head when they use a radio command, showing team-mates which player is communicating.
| Field | Number | Label | Type | Default | Description |
|---|---|---|---|---|---|
player | 1 | optional | fixed32 | 16777215 | Entity handle (packed as fixed32) of the player using the radio command. |
CMsgTEFireBullets
Temporary entity event broadcast when a player fires a weapon. Received by all clients within PVS range of the shooter's origin.
The seed field allows clients to reproduce the exact bullet spread using the same PRNG as the server, enabling accurate hit-registration replay in demo parsers.
| Field | Number | Label | Type | Default | Description |
|---|---|---|---|---|---|
origin | 1 | optional | CMsgVector | World-space muzzle position from which the bullet was fired. | |
angles | 2 | optional | CMsgQAngle | Aim angles (pitch, yaw) at the moment of fire. | |
weapon_id | 3 | optional | uint32 | 16777215 | Item definition index (item_definition_index_t) of the weapon fired. Maps to entries in items_game.txt. |
mode | 4 | optional | uint32 | Fire mode – 0 for primary, 1 for secondary/burst. | |
seed | 5 | optional | uint32 | PRNG seed used to reproduce the bullet spread trajectory. | |
player | 6 | optional | fixed32 | 16777215 | Entity handle of the player who fired (packed as fixed32). |
inaccuracy | 7 | optional | float | Inaccuracy value at time of fire, affecting spread cone. | |
recoil_index | 8 | optional | float | Recoil accumulator index used for kick-back calculations. | |
spread | 9 | optional | float | Weapon spread value at time of fire. | |
sound_type | 10 | optional | int32 | Sound type index controlling which fire-sound variant plays. | |
item_def_index | 11 | optional | uint32 | Item definition index of the firing weapon (same as weapon_id for most weapons). | |
sound_dsp_effect | 12 | optional | fixed32 | DSP (digital signal processing) effect hash applied to the fire sound. | |
ent_origin | 13 | optional | CMsgVector | World-space origin of the firing entity (may differ from muzzle origin for some weapon types). | |
num_bullets_remaining | 14 | optional | uint32 | Clip ammo remaining after this shot. | |
attack_type | 15 | optional | uint32 | Attack type identifier (0 = primary, other values for special modes). | |
extra | 16 | optional | CMsgTEFireBullets.Extra | Optional nested Extra message with additional precision data for demo analysis. | |
player_inair | 17 | optional | bool | True when the player was airborne at the moment of firing. | |
player_scoped | 18 | optional | bool | True when the player was zoomed/scoped at the moment of firing. | |
tick | 19 | optional | int32 | Server tick on which the shot was fired. |
CMsgTEFireBullets.Extra
Referenced by (1): CMsgTEFireBullets
| Field | Number | Label | Type | Default | Description |
|---|---|---|---|---|---|
aim_punch | 1 | optional | CMsgQAngle | ||
attack_tick_count | 2 | optional | int32 | ||
attack_tick_frac | 3 | optional | float | ||
render_tick_count | 4 | optional | int32 | ||
render_tick_frac | 5 | optional | float | ||
inaccuracy_move | 6 | optional | float | ||
inaccuracy_air | 7 | optional | float | ||
type | 8 | optional | int32 |
CMsgPlayerBulletHit
Sent to the attacker (and optionally team) when a bullet registers a hit. Used by the client to display hit-marker feedback and play hit sounds.
Wire id: ECsgoGameEvents.GE_PlayerBulletHitId = 453
| Field | Number | Label | Type | Default | Description |
|---|---|---|---|---|---|
attacker_slot | 1 | optional | int32 | -1 | Player slot index of the shooter. |
victim_slot | 2 | optional | int32 | -1 | Player slot index of the entity that was hit. |
victim_pos | 3 | optional | CMsgVector | World-space position of the victim at the moment of impact. | |
hit_group | 4 | optional | int32 | Hit-group constant (head=1, chest=2, stomach=3, leftarm=4, rightarm=5, leftleg=6, rightleg=7). | |
damage | 5 | optional | int32 | Raw damage dealt before armour reduction. | |
penetration_count | 6 | optional | int32 | Number of surfaces the bullet penetrated before this hit. | |
is_kill | 7 | optional | bool | True if this hit resulted in the victim's death. | |
through_smoke | 8 | optional | bool |
Reference graph
Message reference graph (5 edges)
flowchart LR
n0["CMsgTEFireBullets"]
n1["CMsgVector"]
n0 --> n1
n2["CMsgQAngle"]
n0 --> n2
n3["CMsgTEFireBullets.Extra"]
n0 --> n3
n3 --> n2
n4["CMsgPlayerBulletHit"]
n4 --> n1