Skip to content

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.

Enums

ECsgoGameEvents

Schema entity: ECsgoGameEvents

NameNumberMessage
GE_PlayerAnimEventId450
GE_RadioIconEventId451
GE_FireBulletsId452
GE_PlayerBulletHitId453CMsgPlayerBulletHit

Messages

CMsgTEPlayerAnimEvent

Temporary entity event that triggers a networked animation event on a player's animation graph (jumps, land, crouch transitions, etc.).

FieldNumberLabelTypeDefaultDescription
player1optionalfixed3216777215Entity handle (packed as fixed32) of the player triggering the animation event.
event2optionaluint32Animation event ID matching an entry in the player's animation graph.
data3optionalint32Optional 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.

FieldNumberLabelTypeDefaultDescription
player1optionalfixed3216777215Entity 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.

FieldNumberLabelTypeDefaultDescription
origin1optionalCMsgVectorWorld-space muzzle position from which the bullet was fired.
angles2optionalCMsgQAngleAim angles (pitch, yaw) at the moment of fire.
weapon_id3optionaluint3216777215Item definition index (item_definition_index_t) of the weapon fired. Maps to entries in items_game.txt.
mode4optionaluint32Fire mode – 0 for primary, 1 for secondary/burst.
seed5optionaluint32PRNG seed used to reproduce the bullet spread trajectory.
player6optionalfixed3216777215Entity handle of the player who fired (packed as fixed32).
inaccuracy7optionalfloatInaccuracy value at time of fire, affecting spread cone.
recoil_index8optionalfloatRecoil accumulator index used for kick-back calculations.
spread9optionalfloatWeapon spread value at time of fire.
sound_type10optionalint32Sound type index controlling which fire-sound variant plays.
item_def_index11optionaluint32Item definition index of the firing weapon (same as weapon_id for most weapons).
sound_dsp_effect12optionalfixed32DSP (digital signal processing) effect hash applied to the fire sound.
ent_origin13optionalCMsgVectorWorld-space origin of the firing entity (may differ from muzzle origin for some weapon types).
num_bullets_remaining14optionaluint32Clip ammo remaining after this shot.
attack_type15optionaluint32Attack type identifier (0 = primary, other values for special modes).
extra16optionalCMsgTEFireBullets.ExtraOptional nested Extra message with additional precision data for demo analysis.
player_inair17optionalboolTrue when the player was airborne at the moment of firing.
player_scoped18optionalboolTrue when the player was zoomed/scoped at the moment of firing.
tick19optionalint32Server tick on which the shot was fired.

CMsgTEFireBullets.Extra

Referenced by (1): CMsgTEFireBullets

FieldNumberLabelTypeDefaultDescription
aim_punch1optionalCMsgQAngle
attack_tick_count2optionalint32
attack_tick_frac3optionalfloat
render_tick_count4optionalint32
render_tick_frac5optionalfloat
inaccuracy_move6optionalfloat
inaccuracy_air7optionalfloat
type8optionalint32

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

FieldNumberLabelTypeDefaultDescription
attacker_slot1optionalint32-1Player slot index of the shooter.
victim_slot2optionalint32-1Player slot index of the entity that was hit.
victim_pos3optionalCMsgVectorWorld-space position of the victim at the moment of impact.
hit_group4optionalint32Hit-group constant (head=1, chest=2, stomach=3, leftarm=4, rightarm=5, leftleg=6, rightleg=7).
damage5optionalint32Raw damage dealt before armour reduction.
penetration_count6optionalint32Number of surfaces the bullet penetrated before this hit.
is_kill7optionalboolTrue if this hit resulted in the victim's death.
through_smoke8optionalbool

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