Team Fortress 2/Scripting/Game Events

This article lists game events in Team Fortress 2. These were retrieved from serverevents.res, gameevents.res, modevents.res and replayevents.res in the resource folder.
== achievement_earned ==
* player (byte) - entindex of the player
* achievement (short) - achievement ID
== achievement_earned_local ==
* achievement (short)
== achievement_event ==
* achievement_name (string) - non-localized name of achievement
* cur_val (short) - # of steps toward achievement
* max_val (short) - total # of steps in achievement
== achievement_increment ==
* achievement_id (long) - ID of achievement that went up
* cur_val (short) - # of steps toward achievement
* max_val (short) - total # of steps in achievement
== air_dash ==
* player (byte)
== ammo_pickup ==
* ammo_index (long)
* amount (long)
* total (long)
== arena_match_maxstreak ==
* team (byte)
* streak (byte)
== arena_player_notification ==
* player (byte)
* message (byte)
== arena_round_start ==
called when round is active, players can move
== arena_win_panel ==
* panel_style (byte) - for client to determine layout
* winning_team (byte)
* winreason (byte) - the reason the team won
* cappers (string) - string where each character is a player index of someone that capped
* flagcaplimit (short) - if win reason was flag cap limit, the value of the flag cap limit
* blue_score (short) - red team score
* red_score (short) - blue team score
* blue_score_prev (short) - previous red team score
* red_score_prev (short) - previous blue team score
* round_complete (short) - is this a complete round, or the end of a mini-round
* player_1 (short)
* player_1_damage (short)
* player_1_healing (short)
* player_1_lifetime (short)
* player_1_kills (short)
* player_2 (short)
* player_2_damage (short)
* player_2_healing (short)
* player_2_lifetime (short)
* player_2_kills (short)
* player_3 (short)
* player_3_damage (short)
* player_3_healing (short)
* player_3_lifetime (short)
* player_3_kills (short)
* player_4 (short)
* player_4_damage (short)
* player_4_healing (short)
* player_4_lifetime (short)
* player_4_kills (short)
* player_5 (short)
* player_5_damage (short)
* player_5_healing (short)
* player_5_lifetime (short)
* player_5_kills (short)
* player_6 (short)
* player_6_damage (short)
* player_6_healing (short)
* player_6_lifetime (short)
* player_6_kills (short)
== arrow_impact ==
* attachedEntity (short)
* shooter (short)
* boneIndexAttached (short)
* bonePositionX (float)
* bonePositionY (float)
* bonePositionZ (float)
* boneAnglesX (float)
* boneAnglesY (float)
* boneAnglesZ (float)
* projectileType (short)
* isCrit (bool)
== base_player_teleported ==
* entindex (short)
== bonus_updated ==
* numadvanced (short)
* numbronze (short)
* numsilver (short)
* numgold (short)
== break_breakable ==
* entindex (long)
* userid (short)
* material (byte) - BREAK_GLASS, BREAK_WOOD, etc
== break_prop ==
* entindex (long)
* userid (short)
== browse_replays ==
== building_healed ==
* building (short)
* healer (short)
* amount (short)
== building_info_changed ==
* building_type (byte)
* object_mode (byte)
* remove (byte)
== cart_updated ==
== christmas_gift_grab ==
* userid (short)
== cl_drawline ==
* player (byte) - index of the player
* panel (byte) - type of panel
* line (byte) - type of line
* x (float)
* y (float)
== client_beginconnect ==
client tries to connect to server
* address (string) - Name we used to connect to the server
* ip (long)
* port (short) - server port
* source (string) - what caused us to attempt this connection? (blank for general command line, "serverbrowser", "quickplay", etc)
== client_connected ==
client has completed the challenge / handshake process and is in SIGNONSTATE_CONNECTED
* address (string) - Name we used to connect to the server
* ip (long)
* port (short) - server port
== client_disconnect ==
client side disconnect message
* message (string) - Why are we disconnecting? This could be a localization token or an English-language string
== client_fullconnect ==
* address (string) - Name we used to connect to the server
* ip (long)
* port (short) - server port
== competitive_stats_update ==
* index (short) - entindex of the player
* kills_rank (byte) - num std deviations above
* score_rank (byte)
* damage_rank (byte)
* healing_rank (byte)
* support_rank (byte)
== competitive_victory ==
== conga_kill ==
* index (short) - entindex of the player
== controlpoint_endtouch ==
* player (short) - entindex of the player
* area (short) - index of the control point area
== controlpoint_fake_capture ==
* player (short) - entindex of the player
* int_data (short)
== controlpoint_fake_capture_mult ==
* player (short) - entindex of the player
* int_data (short)
== controlpoint_initialized ==
== controlpoint_pulse_element ==
* player (short) - entindex of the player
== controlpoint_starttouch ==
* player (short) - entindex of the player
* area (short) - index of the control point area
== controlpoint_timer_updated ==
* index (short) - index of the cap being updated
* time (float) - time
== controlpoint_unlock_updated ==
* index (short) - index of the cap being updated
* time (float) - time
== controlpoint_updatecapping ==
* index (short) - index of the cap being updated
== controlpoint_updateimages ==
* index (short) - index of the cap being updated
== controlpoint_updatelayout ==
* index (short) - index of the cap being updated
== controlpoint_updateowner ==
* index (short) - index of the cap being updated
== cross_spectral_bridge ==
* player (short) - userid of the player that crossed
== crossbow_heal ==
* healer (byte) - userid of the Healer
* target (byte) - userid of the player that got hit
* amount (short) - amount that was healed
== ctf_flag_captured ==
* capping_team (short)
* capping_team_score (short)
== damage_mitigated ==
* mitigator (byte) - userid of the player who provided the mitigation
* damaged (byte) - userid of the player who took the damage
* amount (short) - amount that was mitigated
* itemdefindex (short) - defindex of the item that provided the mitigation
== damage_prevented ==
* preventor (short) - Who prevented the damage
* victim (short) - Who took the damage that was prevented
* amount (short) - How much got prevented
* condition (short) - Which condition did the preventing
== damage_resisted ==
* entindex (byte)
== deadringer_cheat_death ==
* spy (byte) - userid of the Spy that cheat the death
* attacker (byte) - userid of the player that caused the cheat death to happen
== demoman_det_stickies ==
* player (short) - entindex of the detonating player
== deploy_buff_banner ==
* buff_type (byte) - type of buff (skin index)
* buff_owner (short) - user ID of the person who gets the banner
== doomsday_rocket_open ==
* team (byte) - which team opened the rocket
== duck_xp_level_up ==
* level (short) - leveled up to what
== duel_status ==
* killer (short)
* score_type (short)
* initiator (short)
* target (short)
* initiator_score (short)
* target_score (short)
== econ_inventory_connected ==
== enter_vehicle ==
* vehicle (long) - entindex of the vehicle
== entered_performance_mode ==
== entity_killed ==
* entindex_killed (long)
* entindex_attacker (long)
* entindex_inflictor (long)
* damagebits (long)
== environmental_death ==
* killer (byte) - index of the killer
* victim (byte) - index of the victim
== escape_hell ==
* player (short) - userid of the player that escaped
== escaped_loot_island ==
* player (short) - userid of the escaping player
== escort_progress ==
* team (byte) - which team
* progress (float)
* reset (bool)
== escort_recede ==
* team (byte) - which team
* recedetime (float)
== escort_speed ==
* team (byte) - which team
* speed (byte)
* players (byte)
== eyeball_boss_escape_imminent ==
* level (short)
* time_remaining (byte)
== eyeball_boss_escaped ==
* level (short)
== eyeball_boss_killed ==
* level (short)
== eyeball_boss_killer ==
* level (short)
* player_entindex (byte)
== eyeball_boss_stunned ==
* level (short)
* player_entindex (byte)
== eyeball_boss_summoned ==
* level (short)
== fish_notice ==
* userid (short) - user ID who died
* victim_entindex (long)
* inflictor_entindex (long) - ent index of inflictor (a sentry, for example)
* attacker (short) - user ID who killed
* weapon (string) - weapon name killer used
* weaponid (short) - ID of weapon killed used
* damagebits (long) - bits of type of damage
* customkill (short) - type of custom kill
* assister (short) - user ID of assister
* weapon_logclassname (string) - weapon name that should be printed on the log
* stun_flags (short) - victim's stun flags at the moment of death
* death_flags (short) - death flags.
* silent_kill (bool)
* assister_fallback (string) - contains a string to use if "assister" is -1
== fish_notice__arm ==
* userid (short) - user ID who died
* victim_entindex (long)
* inflictor_entindex (long) - ent index of inflictor (a sentry, for example)
* attacker (short) - user ID who killed
* weapon (string) - weapon name killer used
* weaponid (short) - ID of weapon killed used
* damagebits (long) - bits of type of damage
* customkill (short) - type of custom kill
* assister (short) - user ID of assister
* weapon_logclassname (string) - weapon name that should be printed on the log
* stun_flags (short) - victim's stun flags at the moment of death
* death_flags (short) - death flags.
* silent_kill (bool)
* assister_fallback (string) - contains a string to use if "assister" is -1
== flag_carried_in_detection_zone ==
== flagstatus_update ==
* userid (short) - user ID of the player who now has the flag
* entindex (long) - ent index of flag
== flare_ignite_npc ==
* entindex (long) - entity ignited
== freezecam_started ==
== game_end ==
a game ended
* winner (byte) - winner team/user id
== game_init ==
sent when a new game is started
== game_message ==
a message send by game logic to everyone
* target (byte) - 0 = console, 1 = HUD
* text (string) - the message text
== game_newmap ==
send when new map is completely loaded
* mapname (string) - map name
== game_start ==
a new game starts
* roundslimit (long) - max round
* timelimit (long) - time limit
* fraglimit (long) - frag limit
* objective (string) - round objective
== gameui_activate ==
== gameui_activated ==
== gameui_hidden ==
== gameui_hide ==
== gc_lost_session ==
== gc_new_session ==
== halloween_boss_killed ==
* boss (short) - 1=HHH 2=Monoculus 3=Merasmus
* killer (short) - userid of the killing player
== halloween_duck_collected ==
* collector (short) - userid of the collecting player
== halloween_pumpkin_grab ==
* userid (short)
== halloween_skeleton_killed ==
* player (short) - userid of the player that killed the skeleton
== halloween_soul_collected ==
* intended_target (byte) - userid of the intended target
* collecting_player (byte) - userid of the player who picked up the soul
* soul_count (byte) - number of souls collected (gift boxes)
== helicopter_grenade_punt_miss ==
== hide_annotation ==
* id (long)
== hide_freezepanel ==
== hltv_changed_mode ==
* oldmode (short)
* newmode (short)
* obs_target (short)
== hltv_changed_target ==
* mode (short)
* old_target (short)
* obs_target (short)
== host_quit ==
== intro_finish ==
* player (short) - entindex of the player
== intro_nextcamera ==
* player (short) - entindex of the player
== inventory_updated ==
== item_found ==
* player (byte) - entindex of the player
* quality (byte) - quality of the item
* method (byte) - method by which we acquired the item
* itemdef (long) - the item definition index
* isstrange (byte)
* isunusual (byte)
* wear (float)
== item_pickup ==
* userid (short)
* item (string)
== item_schema_initialized ==
== items_acknowledged ==
* blocker (short) - entindex of the blocker
* victim (short) - entindex of the victim
== kill_in_hell ==
* killer (short) - userid of the killer
* victim (short) - userid of the victim
== kill_refills_meter ==
* index (short) - entindex of the player
== killed_capping_player ==
* cp (byte) - index of the point
* killer (byte) - index of the killer
* victim (byte) - index of the victim
* assister (byte) - index of the assister
== landed ==
* player (byte)
== leave_vehicle ==
* vehicle (long) - entindex of the vehicle
== lobby_updated ==
== localplayer_becameobserver ==
== localplayer_builtobject ==
* object (short) - type of object built
* object_mode (short) - used for teleporters: entrance vs. exit
* index (short) - index of the object
== localplayer_changeclass ==
== localplayer_changedisguise ==
* disguised (bool)
== localplayer_changeteam ==
== localplayer_chargeready ==
local player has full medic charge
== localplayer_healed ==
* amount (short)
== localplayer_pickup_weapon ==
== localplayer_respawn ==
== localplayer_score_changed ==
* score (short)
== localplayer_winddown ==
local player minigun winddown
== mainmenu_stabilized ==
* attacker (short)
* victim (short)
* assister (short)
== match_invites_updated ==
== medic_death ==
* userid (short) - user ID who died
* attacker (short) - user ID who killed
* healing (short) - amount healed in this life
* charged (bool) - had a full ubercharge?
== medic_defended ==
* userid (short)
* medic (short)
== medigun_shield_blocked_damage ==
* userid (short) - user ID of the player using the shield
* damage (float) - damage that was blocked
== merasmus_escape_warning ==
* level (short)
* time_remaining (byte)
== merasmus_escaped ==
* level (short)
== merasmus_killed ==
* level (short)
== merasmus_prop_found ==
* player (short) - userid of the player that found the prop Merasmus was hiding in
== merasmus_stunned ==
* player (short) - userid of the stunning player
== merasmus_summoned ==
* level (short)
== minigame_win ==
* team (byte) - which team won the minigame
* type (byte) - what type of minigame was won
== minigame_won ==
* player (short) - userid of the winning player
* game (short) - index of the game
== mvm_adv_wave_complete_no_gates ==
* index (short) - wave index
== mvm_adv_wave_killed_stun_radio ==
== mvm_begin_wave ==
* wave_index (short)
* max_waves (short)
* advanced (short)
== mvm_bomb_alarm_triggered ==
== mvm_bomb_carrier_killed ==
* level (short) - upgrade level of the carrier
== mvm_bomb_deploy_reset_by_player ==
* player (short)
== mvm_bomb_reset_by_player ==
* player (short)
== mvm_creditbonus_all ==
== mvm_creditbonus_all_advanced ==
== mvm_creditbonus_wave ==
== mvm_kill_robot_delivering_bomb ==
* player (short) - entindex of the player
== mvm_mannhattan_pit ==
== mvm_medic_powerup_shared ==
* player (short) - entindex of the player
== mvm_mission_complete ==
* mission (string)
== mvm_mission_update ==
* class (short)
* count (short)
== mvm_pickup_currency ==
* player (short) - entindex of the player
* currency (short)
== mvm_quick_sentry_upgrade ==
* player (short) - entindex of the player
== mvm_reset_stats ==
== mvm_scout_marked_for_death ==
* player (short) - entindex of the player
== mvm_sentrybuster_detonate ==
* player (short) - entindex of the target player
* det_x (float) - origin of the sentry buster
* det_y (float)
* det_z (float)
== mvm_sentrybuster_killed ==
* sentry_buster (short) - entindex
== mvm_sniper_headshot_currency ==
* userid (short) - user ID of the player
* currency (short) - currency collected
== mvm_tank_destroyed_by_players ==
== mvm_wave_complete ==
* advanced (bool) - is this an advanced popfile
== mvm_wave_failed ==
== nav_blocked ==
* area (long)
* blocked (bool)
== npc_hurt ==
Fired when an Engineer building (obj_sentrygun, obj_dispenser, obj_teleporter), base_boss, MvM tank (tank_boss) or Halloween enemy (headless_hatman, eyeball_boss, merasmus, tf_zombie) is damaged.
* entindex (short)
* health (short)
* attacker_player (short)
* weaponid (short)
* damageamount (short)
* crit (bool)
* boss (short) - 1=HHH 2=Monoculus 3=Merasmus
== num_cappers_changed ==
* index (short) - index of the trigger
* count (byte) - number of cappers (-1 for blocked)
== object_deflected ==
* userid (short) - player who deflected the object
* ownerid (short) - owner of the object
* weaponid (short) - weapon id (0 means the player in ownerid was pushed)
* object_entindex (short) - entindex of the object that got deflected
== object_destroyed ==
* userid (short) - user ID who died
* attacker (short) - user ID who killed
* assister (short) - user ID of assister
* weapon (string) - weapon name killer used
* weaponid (short) - id of the weapon used
* objecttype (short) - type of object destroyed
* index (short) - index of the object destroyed
* was_building (bool) - object was being built when it died
* team (short) - building's team
== object_detonated ==
* userid (short) - user ID of the object owner
* objecttype (short) - type of object removed
* index (short) - index of the object removed
== object_removed ==
* userid (short) - user ID of the object owner
* objecttype (short) - type of object removed
* index (short) - index of the object removed
== overtime_nag ==
== parachute_deploy ==
* index (short) - entindex of the player
== parachute_holster ==
* index (short) - entindex of the player
== party_chat ==
* steamid (string) - steamID (64-bit value converted to string) of user who said or did the thing. May be
* text (string) - The message. May have different meaning for some types
* type (short) - What sort of message? ETFPartyChatType enum
== party_criteria_changed ==
== party_invites_changed ==
== party_member_join ==
* steamid (string) - steamID (64-bit value converted to string) of joined
== party_member_leave ==
* steamid (string) - steamID (64-bit value converted to string) of leaver
== party_pref_changed ==
== party_queue_state_changed ==
* matchgroup (short) - ETFMatchGroup
== party_updated ==
== pass_ball_blocked ==
* owner (short)
* blocker (short)
== pass_ball_stolen ==
* victim (short)
* attacker (short)
== pass_free ==
* owner (short)
* attacker (short)
== pass_get ==
* owner (short)
* team (short)
== pass_pass_caught ==
* passer (short)
* catcher (short)
* dist (float)
* duration (float)
== pass_score ==
* scorer (short)
* assister (short)
* points (byte)
== path_track_passed ==
* index (short) - entity handle of the node being passed (not the index!)
== payload_pushed ==
* pusher (byte) - userid of the player who pushed
* distance (short) - how far they pushed
== physgun_pickup ==
* entindex (long) - entity picked up
== player_abandoned_match ==
* game_over (bool)
== player_account_changed ==
* old_value (short)
* new_value (short)
== player_activate ==
* userid (short) - user ID on server
== player_askedforball ==
* userid (short)
== player_bonuspoints ==
* points (short)
* player_entindex (short)
* source_entindex (short)
== player_buff ==
* userid (short) - user ID of the player the buff is being applied to
* buff_owner (short) - user ID of the player with the banner
* buff_type (byte) - type of buff
== player_builtobject ==
* userid (short) - user ID of the builder
* object (short) - type of object built
* index (short) - index of the object
== player_buyback ==
* player (short)
* cost (short)
== player_calledformedic ==
* userid (short)
== player_carryobject ==
* userid (short) - user ID of the builder
* object (short) - type of object built
* index (short) - index of the object
== player_changeclass ==
* userid (short) - user ID who changed class
* class (short) - class that they changed to
== player_changename ==
* userid (short) - user ID on server
* oldname (string) - players old (current) name
* newname (string) - players new name
== player_chargedeployed ==
* userid (short) - user ID of medic who deployed charge
* targetid (short) - user ID of who the medic charged
== player_chat ==
a public player chat
* teamonly (bool) - true if team only chat
* userid (short) - chatting player
* text (string) - chat text
== player_class ==
a player changed his class
* userid (short) - user ID on server
* class (string) - new player class / model
== player_connect ==
A new client has connected. This does NOT fire between level changes as the player is already connected. Use player_spawn instead if you need to catch every player entity that is created.
* name (string) - player name
* index (byte) - player slot (entity index-1)
* userid (short) - user ID on server (unique on server)
* networkid (string) - player network (i.e steam) id
* address (string) - ip:port
* bot (short) - is a bot
== player_connect_client ==
a new client connected
* name (string) - player name
* index (byte) - player slot (entity index-1)
* userid (short) - user ID on server (unique on server)
* networkid (string) - player network (i.e steam) id
* bot (short) - is a bot
== player_currency_changed ==
* currency (short)
== player_damage_dodged ==
* damage (short)
== player_damaged ==
* amount (short)
* type (long)
== player_death ==
Fired when a player dies. This shows up in the kill feed.
* userid (short) - user ID who died
* victim_entindex (long)
* inflictor_entindex (long) - ent index of inflictor (a sentry, for example)
* attacker (short) - user ID who killed
* weapon (string) - weapon name killer used
* weaponid (short) - ID of weapon killer used
* damagebits (long) - bits of type of damage
* customkill (short) - type of custom kill
* assister (short) - user ID of assister
* weapon_logclassname (string) - weapon name that should be printed on the log
* stun_flags (short) - victim's stun flags at the moment of death
* death_flags (short) - death flags
* silent_kill (bool)
* playerpenetratecount (short)
* assister_fallback (string) - contains a string to use if "assister" is -1
* kill_streak_total (short) - Kill streak count (level)
* kill_streak_wep (short) - Kill streak for killing weapon
* kill_streak_assist (short) - Kill streak for assister count
* kill_streak_victim (short) - Victims kill streak
* ducks_streaked (short) - Duck streak increment from this kill
* duck_streak_total (short) - Duck streak count for attacker
* duck_streak_assist (short) - Duck streak count for assister
* duck_streak_victim (short) - (former) duck streak count for victim
* rocket_jump (bool) - was the victim rocket jumping
* weapon_def_index (long) - item def index of weapon killer used
* crit_type (short) - Crit type of kill. 0: None 1: Mini 2: Full
* dominated (short) - did killer dominate victim with this kill
* assister_dominated (short) - did assister dominate victim with this kill
* revenge (short) - did killer get revenge on victim with this kill
* assister_revenge (short) - did assister get revenge on victim with this kill
* first_blood (bool) - was this a first blood kill
* feign_death (bool) - the victim is feign death
== player_destroyed_pipebomb ==
* userid (short)
== player_directhit_stun ==
* attacker (short) - entindex of the attacker
* victim (short) - entindex of the victim
== player_disconnect ==
A client has disconnected. The player handle and script scope still exists when this event fires, as it persists for a frame after disconnect.
* userid (short) - user ID on server
* reason (string) - "self", "kick", "ban", "cheat", "error"
* name (string) - player name
* networkid (string) - player network (i.e steam) id
* bot (short) - is a bot
== player_domination ==
* dominator (short) - userID of who gained domination
* dominated (short) - userID of who got dominated
* dominations (short) - Number of dominations this dominator has
== player_dropobject ==
* userid (short) - user ID of the builder
* object (short) - type of object built
* index (short) - index of the object
== player_escort_score ==
* player (byte)
* points (byte)
== player_extinguished ==
sent when a burning player is extinguished by a medic
* victim (byte) - entindex of the player that was extinguished
* healer (byte) - entindex of the player who did the extinguishing
* itemdefindex (short) - item defindex that did the extinguishing
== player_healed ==
* patient (short)
* healer (short)
* amount (short)
== player_healedbymedic ==
* medic (byte)
== player_healedmediccall ==
local player heals someone who called for medic.
* userid (short) - userid of person who got healed
== player_healonhit ==
* amount (short)
* entindex (byte)
* weapon_def_index (long) - item def index of the healing weapon
== player_highfive_cancel ==
* entindex (byte)
== player_highfive_start ==
* entindex (byte)
== player_highfive_success ==
* initiator_entindex (byte)
* partner_entindex (byte)
== player_hintmessage ==
* hintmessage (string) - localizable string of a hint
== player_hurt ==
* userid (short)
* health (short) - if <= 0, then this will play the killsound
* attacker (short)
* damageamount (short)
* custom (short)
* showdisguisedcrit (bool) - if our attribute specifically crits disguised enemies we need to show it on the client
* crit (bool) - legacy only, use bonuseffect
* minicrit (bool) - legacy only, use bonuseffect
* allseecrit (bool)
* weaponid (short)
* bonuseffect (byte) - type of damage effect, see constants page.
== player_ignited ==
sent when a player is ignited, only to the two players involved
* pyro_entindex (byte) - entindex of the pyro who ignited the victim
* victim_entindex (byte) - entindex of the player ignited by the pyro
* weaponid (byte) - weaponid of the weapon used
== player_ignited_inv ==
sent when a player is ignited by a pyro who is being invulned, only to the medic who's doing the invulning
* pyro_entindex (byte) - entindex of the pyro who ignited the victim
* victim_entindex (byte) - entindex of the player ignited by the pyro
* medic_entindex (byte) - entindex of the medic releasing the invuln
== player_info ==
a player changed his name
* name (string) - player name
* index (byte) - player slot (entity index-1)
* userid (short) - user ID on server (unique on server)
* networkid (string) - player network (i.e steam) id
* bot (bool) - true if player is a AI bot
== player_initial_spawn ==
* index (short) - entindex of the player
== player_invulned ==
* userid (short)
* medic_userid (short)
== player_jarated ==
sent when a player is jarated, only to the two players involved
* thrower_entindex (byte) - entindex of the player who threw the jarate
* victim_entindex (byte) - entindex of the player receiving it
== player_jarated_fade ==
sent when a player is jarated, only to the two players involved
* thrower_entindex (byte) - entindex of the player who threw the jarate
* victim_entindex (byte) - entindex of the player receiving it
== player_killed_achievement_zone ==
* attacker (short) - entindex of the attacker
* victim (short) - entindex of the victim
* zone_id (short) - type of area (0 for general, 1 for capture zone)
== player_mvp ==
* player (short)
== player_pinned ==
* pinned (byte)
== player_regenerate ==
== player_rocketpack_pushed ==
* pusher (short) - userID of who pushed
* pushed (short) - userID of who got pushed
== player_sapped_object ==
* userid (short) - user ID of the spy
* ownerid (short) - user ID of the building owner
* object (byte)
* sapperid (short) - index of the sapper
== player_say ==
* userid (short) - user ID on server
* text (string) - the say text
== player_score ==
players scores changed
* userid (short) - user ID on server
* kills (short) - # of kills
* deaths (short) - # of deaths
* score (short) - total game score
== player_score_changed ==
* player (byte)
* delta (short)
== player_shield_blocked ==
sent when a player is jarated, only to the two players involved
* attacker_entindex (byte) - entindex of the player who threw the jarate
* blocker_entindex (byte) - entindex of the player receiving it
== player_shoot ==
* userid (short) - user ID on server
* weapon (byte) - weapon ID
* mode (byte) - weapon mode
== player_spawn ==
This event will be sent once when the player entity is created, i.e. they joined the server or they are loading in after a map change. In this case, team is equal to 0 (unassigned). Each time afterwards, the event will only be fired when the player spawns alive on red or blue team. This is also fired once when SourceTV is loaded in. 
* userid (short) - user ID who spawned
* team (short) - team they spawned on
* class (short) - class they spawned as
== player_stats_updated ==
* forceupload (bool)
== player_stealsandvich ==
* owner (short)
* target (short)
== player_stunned ==
* stunner (short) 
* victim (short)
* victim_capping (bool)
* big_stun (bool)
== player_team ==
Fired when player joins a team.
* userid (short) - user ID on server
* team (byte) - team id
* oldteam (byte) - old team id
* disconnect (bool) - team change because player disconnects
* autoteam (bool) - true if the player was auto assigned to the team
* silent (bool) - if true wont print the team join messages
* name (string) - player's name
== player_teleported ==
* userid (short) - userid of the player
* builderid (short) - userid of the player who built the teleporter
* dist (float) - distance the player was teleported
== player_turned_to_ghost ==
* userid (short) - user ID of the player who changed to a ghost
== player_upgraded ==
== player_upgradedobject ==
* userid (short) - user ID of the builder
* object (short) - type of object built
* index (short) - index of the object
* isbuilder (bool)
== player_use ==
* userid (short) - user ID on server
* entity (short) - entity used by player
== player_used_powerup_bottle ==
* player (short)
* type (short)
* time (float)
== playing_commentary ==
== post_inventory_application ==
Fired when the player has items resupplied, i.e. when the player spawns or touches resupply (func_regenerate).
* userid (short)
== projectile_direct_hit ==
* attacker (byte) - index of the player who shot the projectile
* victim (byte) - index of the player who got direct-ht
* weapon_def_index (long) - defindex of the direct hitting weapon
== projectile_removed ==
* attacker (byte)
* weapon_def_index (long)
* num_hit (byte)
* num_direct_hit (byte)
== pumpkin_lord_killed ==
== pumpkin_lord_summoned ==
== pve_win_panel ==
* panel_style (byte) - for client to determine layout
* winning_team (byte)
* winreason (byte) - the reason the team won
== quest_map_data_changed ==
* igniter (short) - entindex of the igniter
* douser (short) - entindex of the douser
* victim (short) - entindex of the victim
== quest_objective_completed ==
For prediction
* quest_item_id_low (long)
* quest_item_id_hi (long)
* quest_objective_id (long)
* scorer_user_id (short)
== quest_progress ==
* owner (short)
* scorer (short)
* type (byte)
* completed (bool)
* quest_defindex (long)
== quest_request ==
* request (long)
* msg (string) - Protobuf serialized to a string
== quest_response ==
* request (long)
* success (bool)
* msg (string) - Protobuf serialized to a string
== quest_turn_in_state ==
* state (short) - Maps to EQuestTurnInState
== questlog_opened ==
== ragdoll_dissolved ==
* entindex (long)
== raid_spawn_mob ==
== raid_spawn_squad ==
== rd_player_score_points ==
* player (short)
* method (short)
* amount (short)
== rd_robot_impact ==
* entindex (short)
* impulse_x (float)
* impulse_y (float)
* impulse_z (float)
== rd_robot_killed ==
* userid (short) - user ID who died
* victim_entindex (long)
* inflictor_entindex (long) - ent index of inflictor (a sentry, for example)
* attacker (short) - user ID who killed
* weapon (string) - weapon name killer used
* weaponid (short) - ID of weapon killed used
* damagebits (long) - bits of type of damage
* customkill (short) - type of custom kill
* weapon_logclassname (string) - weapon name that should be printed on the log
== rd_rules_state_changed ==
== rd_team_points_changed ==
* points (short)
* team (byte)
* method (byte)
== recalculate_holidays ==
== recalculate_truce ==
== rematch_failed_to_create ==
* map_index (byte) - what they voted for
* vote (byte) - what the vote was
== remove_nemesis_relationships ==
* player (short) - entindex of the player who should reset
== replay_endrecord ==
== replay_replaysavailable ==
== replay_saved ==
== replay_servererror ==
* error (string)
== replay_sessioninfo ==
Sent when the server begins recording, or when a client first connects - only sent once per recording session
* sn (string) - session name
* di (byte) - dump interval
* cb (long) - current block
* st (long) - session start tick
== replay_startrecord ==
Sent when the server begins recording - only used to display UI
== replay_youtube_stats ==
* views (long)
* likes (long)
* favorited (long)
== respawn_ghost ==
* reviver (short) - userid of the reviving player
* ghost (short) - userid of the player that got revived
== restart_timer_time ==
* time (byte) - How much time is left
== revive_player_complete ==
* entindex (short) - entindex of the medic
== revive_player_notify ==
* entindex (short)
* marker_entindex (short)
== revive_player_stopped ==
* entindex (short)
== rocket_jump ==
* userid (short)
* playsound (bool)
== rocket_jump_landed ==
* userid (short)
== rocketpack_landed ==
* userid (short)
== rocketpack_launch ==
* userid (short)
* playsound (bool)
== round_end ==
* winner (byte) - winner team/user i
* reason (byte) - reson why team won
* message (string) - end round message
== round_start ==
* timelimit (long) - round time limit in seconds
* fraglimit (long) - frag limit in seconds
* objective (string) - round objective
== rps_taunt_event ==
* winner (short) - entindex of the winning player
* winner_rps (byte) - winner's selection
* loser (short) - entindex of the losing player
* loser_rps (byte) - loser's selection
== schema_updated ==
== scorestats_accumulated_reset ==
Fired when round resets due to mp_restartgame.
== scorestats_accumulated_update ==
Fired right before map entities are cleaned up for a round restart. 
This event is not fired in Mann Vs Machine mode. For MvM, use recalculate_holidays and check if GetRoundState() == 3 is true, which indicates a mission reset.
== scout_grand_slam ==
* scout_id (short)
* target_id (short)
== scout_slamdoll_landed ==
* target_index (short)
* x (float)
* y (float)
* z (float)
== sentry_on_go_active ==
* index (short)
== server_addban ==
* name (string) - player name
* userid (short) - user ID on server
* networkid (string) - player network (i.e steam) id
* ip (string) - IP address
* duration (string) - length of the ban
* by (string) - banned by...
* kicked (bool) - whether the player was also kicked
== server_changelevel_failed ==
* levelname (string) - The level name that failed changelevel
== server_cvar ==
a server console var has changed
* cvarname (string) - cvar name, eg "mp_roundtime"
* cvarvalue (string) - new cvar value
== server_message ==
a generic server message
* text (string) - the message text
== server_removeban ==
* networkid (string) - player network (i.e steam) id
* ip (string) - IP address
* by (string) - removed by...
== server_shutdown ==
server shut down
* reason (string) - reason why server was shut down
== server_spawn ==
send once a server starts
* hostname (string) - public host name
* address (string) - hostame, IP or DNS name
* ip (long)
* port (short) - server port
* game (string) - game dir
* mapname (string) - map name
* maxplayers (long) - max players
* os (string) - WIN32, LINUX
* dedicated (bool) - true if dedicated server
* password (bool) - true if password protected
== show_annotation ==
* worldPosX (float)
* worldPosY (float)
* worldPosZ (float)
* worldNormalX (float)
* worldNormalY (float)
* worldNormalZ (float)
* id (long)
* text (string) - name (unlocalized)
* lifetime (float)
* visibilityBitfield (long) - bitfield of the players that can see this. If 0, everyone can see it
* follow_entindex (long) - if this is set, follow this entity
* show_distance (bool)
* play_sound (string)
* show_effect (bool)
== show_class_layout ==
* show (bool)
== show_freezepanel ==
* killer (short) - entindex of the killer entity
== show_match_summary ==
* success (bool)
== show_vs_panel ==
* show (bool)
== single_player_death ==
== skeleton_killed_quest ==
* player (short) - userid of the player that killed the skeleton
== skeleton_king_killed_quest ==
* player (short) - userid of the player that killed the skeleton
== slap_notice ==
* userid (short) - user ID who died
* victim_entindex (long)
* inflictor_entindex (long) - ent index of inflictor (a sentry, for example)
* attacker (short) - user ID who killed
* weapon (string) - weapon name killer used
* weaponid (short) - ID of weapon killed used
* damagebits (long) - bits of type of damage
* customkill (short) - type of custom kill
* assister (short) - user ID of assister
* weapon_logclassname (string) - weapon name that should be printed on the log
* stun_flags (short) - victim's stun flags at the moment of death
* death_flags (short) - death flags.
* silent_kill (bool)
* assister_fallback (string) - contains a string to use if "assister" is -1
== spec_target_updated ==
== special_score ==
* player (byte) - index of the scorer
== spy_pda_reset ==
== stats_resetround ==
== sticky_jump ==
* userid (short)
* playsound (bool)
== sticky_jump_landed ==
* userid (short)
== store_pricesheet_updated ==
== tagged_player_as_it ==
* player (short) - userid of the tagging player
== take_armor ==
* amount (long)
* total (long)
== take_health ==
* amount (long)
* total (long)
== team_info ==
info about team
* teamid (byte) - unique team id
* teamname (string) - team name eg "Team Blue"
== team_leader_killed ==
* killer (byte) - index of the killer
* victim (byte) - index of the victim
== team_score ==
team score changed
* teamid (byte) - team id
* score (short) - total team score
== teamplay_alert ==
* alert_type (short) - which alert type is this (scramble, etc)?
== teamplay_broadcast_audio ==
* team (byte) - which team should hear the broadcast. 0 will make everyone hear it.
* sound (string) - sound to play
* additional_flags (short) - additional sound flags to pass through to sound system
* player (short) - entindex of the player source or -1
== teamplay_capture_blocked ==
* cp (byte) - index of the point that was blocked
* cpname (string) - name of the point
* blocker (byte) - index of the player that blocked the cap
* victim (byte) - index of the player that died, causing the block
== teamplay_capture_broken ==
* cp (byte)
* cpname (string)
* time_remaining (float)
== teamplay_flag_event ==
* player (short) - player this event involves
* carrier (short) - the carrier if needed
* eventtype (short) - pick up, capture, defend, dropped
* home (byte) - whether or not the flag was home (only set for TF_FLAGEVENT_PICKUP)
* team (byte) - which team the flag belongs to
== teamplay_game_over ==
* reason (string) - why the game is over ( timelimit, winlimit )
== teamplay_map_time_remaining ==
* seconds (short)
== teamplay_overtime_begin ==
== teamplay_overtime_end ==
== teamplay_point_captured ==
* cp (byte) - index of the point that was captured
* cpname (string) - name of the point
* team (byte) - which team capped
* cappers (string) - string where each character is a player index of someone that capped
== teamplay_point_locked ==
* cp (byte) - index of the point being captured
* cpname (string) - name of the point
* team (byte) - which team currently owns the point
== teamplay_point_startcapture ==
* cp (byte) - index of the point being captured
* cpname (string) - name of the point
* team (byte) - which team currently owns the point
* capteam (byte) - which team is capping
* cappers (string) - string where each character is a player index of someone capping
* captime (float) - time between when this cap started and when the point last changed hands
== teamplay_point_unlocked ==
* cp (byte) - index of the point being captured
* cpname (string) - name of the point
* team (byte) - which team currently owns the point
== teamplay_pre_round_time_left ==
* time (short)
== teamplay_ready_restart ==
== teamplay_restart_round ==
== teamplay_round_active ==
called when round is active, players can move
== teamplay_round_restart_seconds ==
* seconds (short)
== teamplay_round_selected ==
* round (string) - name of the round selected
== teamplay_round_stalemate ==
* reason (byte) - why the stalemate is occuring
== teamplay_round_start ==
round restart
* full_reset (bool) - is this a full reset of the map
== teamplay_round_win ==
* team (byte) - which team won the round
* winreason (byte) - the reason the team won
* flagcaplimit (short) - if win reason was flag cap limit, the value of the flag cap limit
* full_round (short) - was this a full round or a mini-round
* round_time (float) - elapsed time of this round
* losing_team_num_caps (short) - # of caps this round by losing team
* was_sudden_death (byte) - did a team win this after entering sudden death
== teamplay_setup_finished ==
== teamplay_suddendeath_begin ==
== teamplay_suddendeath_end ==
== teamplay_team_ready ==
* team (byte) - which team is ready
== teamplay_teambalanced_player ==
* player (short) - entindex of the player
* team (byte) - which team the player is being moved to
== teamplay_timer_flash ==
* time_remaining (short) - how many seconds until the round ends
== teamplay_timer_time_added ==
* timer (short) - entindex of the timer
* seconds_added (short) - how many seconds were added to the round timer
== teamplay_update_timer ==
== teamplay_waiting_abouttoend ==
== teamplay_waiting_begins ==
== teamplay_waiting_ends ==
== teamplay_win_panel ==
* panel_style (byte) - for client to determine layout
* winning_team (byte)
* winreason (byte) - the reason the team won
* cappers (string) - string where each character is a player index of someone that capped
* flagcaplimit (short) - if win reason was flag cap limit, the value of the flag cap limit
* blue_score (short) - red team score
* red_score (short) - blue team score
* blue_score_prev (short) - previous red team score
* red_score_prev (short) - previous blue team score
* round_complete (short) - is this a complete round, or the end of a mini-round
* rounds_remaining (short) - # of rounds remaining for wining team, if mini-round
* player_1 (short)
* player_1_points (short)
* player_2 (short)
* player_2_points (short)
* player_3 (short)
* player_3_points (short)
* killstreak_player_1 (short)
* killstreak_player_1_count (short)
* game_over (byte)
== teams_changed ==
== tf_game_over ==
* reason (string) - why the game is over ( timelimit, winlimit )
== tf_map_time_remaining ==
* seconds (long)
== throwable_hit ==
* userid (short) - user ID who died
* victim_entindex (long)
* inflictor_entindex (long) - ent index of inflictor (a sentry, for example)
* attacker (short) - user ID who killed
* weapon (string) - weapon name killer used
* weaponid (short) - ID of weapon killed used
* damagebits (long) - bits of type of damage
* customkill (short) - type of custom kill
* assister (short) - user ID of assister
* weapon_logclassname (string) - weapon name that should be printed on the log
* stun_flags (short) - victim's stun flags at the moment of death
* death_flags (short) - death flags.
* silent_kill (bool)
* assister_fallback (string) - contains a string to use if "assister" is -1
* totalhits (short) - Number of hits his player has done
== tournament_enablecountdown ==
== tournament_stateupdate ==
* userid (short) - user ID on server
* namechange (bool)
* readystate (short)
* newname (string) - players new name
== training_complete ==
* next_map (string) - next map (if any)
* map (string) - the name of the map this screen is on.
* text (string) - text to show
== update_status_item ==
* index (byte)
* object (byte)
== upgrades_file_changed ==
* path (string)
== user_data_downloaded ==
fired when achievements/stats are downloaded from Steam or XBox Live
== vote_cast ==
* vote_option (byte) - which option the player voted on
* team (short)
* entityid (long) - entity id of the voter
* voteidx (long)
== vote_changed ==
* vote_option1 (byte)
* vote_option2 (byte)
* vote_option3 (byte)
* vote_option4 (byte)
* vote_option5 (byte)
* potentialVotes (byte)
* voteidx (long)
== vote_ended ==
== vote_failed ==
* team (byte)
* voteidx (long)
== vote_maps_changed ==
* type (byte)
* defindex (long)
* created (bool)
* deleted (bool)
* erase_history (bool)
== vote_options ==
* count (byte) - Number of options - up to MAX_VOTE_OPTIONS
* option1 (string)
* option2 (string)
* option3 (string)
* option4 (string)
* option5 (string)
* voteidx (long)
== vote_passed ==
* details (string)
* param1 (string)
* team (byte)
* voteidx (long)
== vote_started ==
* issue (string)
* param1 (string)
* team (byte)
* initiator (long) - entity id of the player who initiated the vote
* voteidx (long)
== weapon_equipped ==
* class (string)
* entindex (long)
== winlimit_changed ==
* delay (float)