Team Fortress 2/Scripting/Game Events: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(Created page with "This article lists game events in Team Fortress 2. These were retrieved from <code>resource/modevents.res</code> and <code>resource/gameevents.res</code>. == achievement_...")
 
No edit summary
Line 1: Line 1:
This article lists game events in [[Team Fortress 2]]. These were retrieved from <code>resource/modevents.res</code> and <code>resource/gameevents.res</code>.
This article lists game events in [[Team Fortress 2]]. These were retrieved from <code>serverevents.res</code>, <code>gameevents.res</code>, <code>modevents.res</code> and <code>replayevents.res</code> in the <code>resource</code> folder.


== achievement_earned ==
== achievement_earned ==
* <b>player</b> <small>(byte)</small>
* <b>player</b> <small>(byte)</small> - entindex of the player
* <b>achievement</b> <small>(short)</small>
* <b>achievement</b> <small>(short)</small> - achievement ID


== achievement_earned_local ==
== achievement_earned_local ==
Line 9: Line 9:


== achievement_event ==
== achievement_event ==
* <b>achievement_name</b> <small>(string)</small>
* <b>achievement_name</b> <small>(string)</small> - non-localized name of achievement
* <b>cur_val</b> <small>(short)</small>
* <b>cur_val</b> <small>(short)</small> - # of steps toward achievement
* <b>max_val</b> <small>(short)</small>
* <b>max_val</b> <small>(short)</small> - total # of steps in achievement


== achievement_increment ==
== achievement_increment ==
* <b>achievement_id</b> <small>(long)</small>
* <b>achievement_id</b> <small>(long)</small> - ID of achievement that went up
* <b>cur_val</b> <small>(short)</small>
* <b>cur_val</b> <small>(short)</small> - # of steps toward achievement
* <b>max_val</b> <small>(short)</small>
* <b>max_val</b> <small>(short)</small> - total # of steps in achievement


== air_dash ==
== air_dash ==
Line 35: Line 35:


== arena_round_start ==
== arena_round_start ==
called when round is active, players can move


== arena_win_panel ==
== arena_win_panel ==
* <b>panel_style</b> <small>(byte)</small>
* <b>panel_style</b> <small>(byte)</small> - for client to determine layout
* <b>winning_team</b> <small>(byte)</small>
* <b>winning_team</b> <small>(byte)</small>
* <b>winreason</b> <small>(byte)</small>
* <b>winreason</b> <small>(byte)</small> - the reason the team won
* <b>cappers</b> <small>(string)</small>
* <b>cappers</b> <small>(string)</small> - string where each character is a player index of someone that capped
* <b>flagcaplimit</b> <small>(short)</small>
* <b>flagcaplimit</b> <small>(short)</small> - if win reason was flag cap limit, the value of the flag cap limit
* <b>blue_score</b> <small>(short)</small>
* <b>blue_score</b> <small>(short)</small> - red team score
* <b>red_score</b> <small>(short)</small>
* <b>red_score</b> <small>(short)</small> - blue team score
* <b>blue_score_prev</b> <small>(short)</small>
* <b>blue_score_prev</b> <small>(short)</small> - previous red team score
* <b>red_score_prev</b> <small>(short)</small>
* <b>red_score_prev</b> <small>(short)</small> - previous blue team score
* <b>round_complete</b> <small>(short)</small>
* <b>round_complete</b> <small>(short)</small> - is this a complete round, or the end of a mini-round
* <b>player_1</b> <small>(short)</small>
* <b>player_1</b> <small>(short)</small>
* <b>player_1_damage</b> <small>(short)</small>
* <b>player_1_damage</b> <small>(short)</small>
Line 93: Line 94:
== base_player_teleported ==
== base_player_teleported ==
* <b>entindex</b> <small>(short)</small>
* <b>entindex</b> <small>(short)</small>
== begin_xp_lerp ==


== bonus_updated ==
== bonus_updated ==
Line 105: Line 104:
* <b>entindex</b> <small>(long)</small>
* <b>entindex</b> <small>(long)</small>
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small>
* <b>material</b> <small>(byte)</small>
* <b>material</b> <small>(byte)</small> - BREAK_GLASS, BREAK_WOOD, etc


== break_prop ==
== break_prop ==
Line 122: Line 121:
* <b>object_mode</b> <small>(byte)</small>
* <b>object_mode</b> <small>(byte)</small>
* <b>remove</b> <small>(byte)</small>
* <b>remove</b> <small>(byte)</small>
== capper_killed ==
* <b>blocker</b> <small>(short)</small>
* <b>victim</b> <small>(short)</small>


== cart_updated ==
== cart_updated ==
Line 133: Line 128:


== cl_drawline ==
== cl_drawline ==
* <b>player</b> <small>(byte)</small>
* <b>player</b> <small>(byte)</small> - index of the player
* <b>panel</b> <small>(byte)</small>
* <b>panel</b> <small>(byte)</small> - type of panel
* <b>line</b> <small>(byte)</small>
* <b>line</b> <small>(byte)</small> - type of line
* <b>x</b> <small>(float)</small>
* <b>x</b> <small>(float)</small>
* <b>y</b> <small>(float)</small>
* <b>y</b> <small>(float)</small>


== competitive_state_changed ==
== client_beginconnect ==
client tries to connect to server
* <b>address</b> <small>(string)</small> - Name we used to connect to the server
* <b>ip</b> <small>(long)</small>
* <b>port</b> <small>(short)</small> - server port
* <b>source</b> <small>(string)</small> - 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
* <b>address</b> <small>(string)</small> - Name we used to connect to the server
* <b>ip</b> <small>(long)</small>
* <b>port</b> <small>(short)</small> - server port
 
== client_disconnect ==
client side disconnect message
* <b>message</b> <small>(string)</small> - Why are we disconnecting?  This could be a localization token or an English-language string
 
== client_fullconnect ==
* <b>address</b> <small>(string)</small> - Name we used to connect to the server
* <b>ip</b> <small>(long)</small>
* <b>port</b> <small>(short)</small> - server port


== competitive_stats_update ==
== competitive_stats_update ==
* <b>index</b> <small>(short)</small>
* <b>index</b> <small>(short)</small> - entindex of the player
* <b>kills_rank</b> <small>(byte)</small>
* <b>kills_rank</b> <small>(byte)</small> - num std deviations above
* <b>score_rank</b> <small>(byte)</small>
* <b>score_rank</b> <small>(byte)</small>
* <b>damage_rank</b> <small>(byte)</small>
* <b>damage_rank</b> <small>(byte)</small>
Line 152: Line 167:


== conga_kill ==
== conga_kill ==
* <b>index</b> <small>(short)</small>
* <b>index</b> <small>(short)</small> - entindex of the player


== controlpoint_endtouch ==
== controlpoint_endtouch ==
* <b>player</b> <small>(short)</small>
* <b>player</b> <small>(short)</small> - entindex of the player
* <b>area</b> <small>(short)</small>
* <b>area</b> <small>(short)</small> - index of the control point area


== controlpoint_fake_capture ==
== controlpoint_fake_capture ==
* <b>player</b> <small>(short)</small>
* <b>player</b> <small>(short)</small> - entindex of the player
* <b>int_data</b> <small>(short)</small>
* <b>int_data</b> <small>(short)</small>


== controlpoint_fake_capture_mult ==
== controlpoint_fake_capture_mult ==
* <b>player</b> <small>(short)</small>
* <b>player</b> <small>(short)</small> - entindex of the player
* <b>int_data</b> <small>(short)</small>
* <b>int_data</b> <small>(short)</small>


Line 169: Line 184:


== controlpoint_pulse_element ==
== controlpoint_pulse_element ==
* <b>player</b> <small>(short)</small>
* <b>player</b> <small>(short)</small> - entindex of the player


== controlpoint_starttouch ==
== controlpoint_starttouch ==
* <b>player</b> <small>(short)</small>
* <b>player</b> <small>(short)</small> - entindex of the player
* <b>area</b> <small>(short)</small>
* <b>area</b> <small>(short)</small> - index of the control point area


== controlpoint_timer_updated ==
== controlpoint_timer_updated ==
* <b>index</b> <small>(short)</small>
* <b>index</b> <small>(short)</small> - index of the cap being updated
* <b>time</b> <small>(float)</small>
* <b>time</b> <small>(float)</small> - time


== controlpoint_unlock_updated ==
== controlpoint_unlock_updated ==
* <b>index</b> <small>(short)</small>
* <b>index</b> <small>(short)</small> - index of the cap being updated
* <b>time</b> <small>(float)</small>
* <b>time</b> <small>(float)</small> - time


== controlpoint_updatecapping ==
== controlpoint_updatecapping ==
* <b>index</b> <small>(short)</small>
* <b>index</b> <small>(short)</small> - index of the cap being updated


== controlpoint_updateimages ==
== controlpoint_updateimages ==
* <b>index</b> <small>(short)</small>
* <b>index</b> <small>(short)</small> - index of the cap being updated


== controlpoint_updatelayout ==
== controlpoint_updatelayout ==
* <b>index</b> <small>(short)</small>
* <b>index</b> <small>(short)</small> - index of the cap being updated


== controlpoint_updateowner ==
== controlpoint_updateowner ==
* <b>index</b> <small>(short)</small>
* <b>index</b> <small>(short)</small> - index of the cap being updated


== cross_spectral_bridge ==
== cross_spectral_bridge ==
* <b>player</b> <small>(short)</small>
* <b>player</b> <small>(short)</small> - userid of the player that crossed


== crossbow_heal ==
== crossbow_heal ==
* <b>healer</b> <small>(byte)</small>
* <b>healer</b> <small>(byte)</small> - userid of the Healer
* <b>target</b> <small>(byte)</small>
* <b>target</b> <small>(byte)</small> - userid of the player that got hit
* <b>amount</b> <small>(short)</small>
* <b>amount</b> <small>(short)</small> - amount that was healed


== ctf_flag_captured ==
== ctf_flag_captured ==
Line 208: Line 223:


== damage_mitigated ==
== damage_mitigated ==
* <b>mitigator</b> <small>(byte)</small>
* <b>mitigator</b> <small>(byte)</small> - userid of the player who provided the mitigation
* <b>damaged</b> <small>(byte)</small>
* <b>damaged</b> <small>(byte)</small> - userid of the player who took the damage
* <b>amount</b> <small>(short)</small>
* <b>amount</b> <small>(short)</small> - amount that was mitigated
* <b>itemdefindex</b> <small>(short)</small>
* <b>itemdefindex</b> <small>(short)</small> - defindex of the item that provided the mitigation


== damage_prevented ==
== damage_prevented ==
* <b>preventor</b> <small>(short)</small>
* <b>preventor</b> <small>(short)</small> - Who prevented the damage
* <b>victim</b> <small>(short)</small>
* <b>victim</b> <small>(short)</small> - Who took the damage that was prevented
* <b>amount</b> <small>(short)</small>
* <b>amount</b> <small>(short)</small> - How much got prevented
* <b>condition</b> <small>(short)</small>
* <b>condition</b> <small>(short)</small> - Which condition did the preventing


== damage_resisted ==
== damage_resisted ==
Line 223: Line 238:


== deadringer_cheat_death ==
== deadringer_cheat_death ==
* <b>spy</b> <small>(byte)</small>
* <b>spy</b> <small>(byte)</small> - userid of the Spy that cheat the death
* <b>attacker</b> <small>(byte)</small>
* <b>attacker</b> <small>(byte)</small> - userid of the player that caused the cheat death to happen


== demoman_det_stickies ==
== demoman_det_stickies ==
* <b>player</b> <small>(short)</small>
* <b>player</b> <small>(short)</small> - entindex of the detonating player


== deploy_buff_banner ==
== deploy_buff_banner ==
* <b>buff_type</b> <small>(byte)</small>
* <b>buff_type</b> <small>(byte)</small> - type of buff (skin index)
* <b>buff_owner</b> <small>(short)</small>
* <b>buff_owner</b> <small>(short)</small> - user ID of the person who gets the banner


== doomsday_rocket_open ==
== doomsday_rocket_open ==
* <b>team</b> <small>(byte)</small>
* <b>team</b> <small>(byte)</small> - which team opened the rocket
 
== ds_screenshot ==
* <b>delay</b> <small>(float)</small>
 
== ds_stop ==


== duck_xp_level_up ==
== duck_xp_level_up ==
* <b>level</b> <small>(short)</small>
* <b>level</b> <small>(short)</small> - leveled up to what


== duel_status ==
== duel_status ==
Line 255: Line 265:


== enter_vehicle ==
== enter_vehicle ==
* <b>vehicle</b> <small>(long)</small>
* <b>vehicle</b> <small>(long)</small> - entindex of the vehicle


== entered_performance_mode ==
== entered_performance_mode ==
Line 266: Line 276:


== environmental_death ==
== environmental_death ==
* <b>killer</b> <small>(byte)</small>
* <b>killer</b> <small>(byte)</small> - index of the killer
* <b>victim</b> <small>(byte)</small>
* <b>victim</b> <small>(byte)</small> - index of the victim


== escape_hell ==
== escape_hell ==
* <b>player</b> <small>(short)</small>
* <b>player</b> <small>(short)</small> - userid of the player that escaped


== escaped_loot_island ==
== escaped_loot_island ==
* <b>player</b> <small>(short)</small>
* <b>player</b> <small>(short)</small> - userid of the escaping player


== escort_progress ==
== escort_progress ==
* <b>team</b> <small>(byte)</small>
* <b>team</b> <small>(byte)</small> - which team
* <b>progress</b> <small>(float)</small>
* <b>progress</b> <small>(float)</small>
* <b>reset</b> <small>(bool)</small>
* <b>reset</b> <small>(bool)</small>


== escort_recede ==
== escort_recede ==
* <b>team</b> <small>(byte)</small>
* <b>team</b> <small>(byte)</small> - which team
* <b>recedetime</b> <small>(float)</small>
* <b>recedetime</b> <small>(float)</small>


== escort_speed ==
== escort_speed ==
* <b>team</b> <small>(byte)</small>
* <b>team</b> <small>(byte)</small> - which team
* <b>speed</b> <small>(byte)</small>
* <b>speed</b> <small>(byte)</small>
* <b>players</b> <small>(byte)</small>
* <b>players</b> <small>(byte)</small>
== experience_changed ==


== eyeball_boss_escape_imminent ==
== eyeball_boss_escape_imminent ==
Line 313: Line 321:


== fish_notice ==
== fish_notice ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - user ID who died
* <b>victim_entindex</b> <small>(long)</small>
* <b>victim_entindex</b> <small>(long)</small>
* <b>inflictor_entindex</b> <small>(long)</small>
* <b>inflictor_entindex</b> <small>(long)</small> - ent index of inflictor (a sentry, for example)
* <b>attacker</b> <small>(short)</small>
* <b>attacker</b> <small>(short)</small> - user ID who killed
* <b>weapon</b> <small>(string)</small>
* <b>weapon</b> <small>(string)</small> - weapon name killer used
* <b>weaponid</b> <small>(short)</small>
* <b>weaponid</b> <small>(short)</small> - ID of weapon killed used
* <b>damagebits</b> <small>(long)</small>
* <b>damagebits</b> <small>(long)</small> - bits of type of damage
* <b>customkill</b> <small>(short)</small>
* <b>customkill</b> <small>(short)</small> - type of custom kill
* <b>assister</b> <small>(short)</small>
* <b>assister</b> <small>(short)</small> - user ID of assister
* <b>weapon_logclassname</b> <small>(string)</small>
* <b>weapon_logclassname</b> <small>(string)</small> - weapon name that should be printed on the log
* <b>stun_flags</b> <small>(short)</small>
* <b>stun_flags</b> <small>(short)</small> - victim's stun flags at the moment of death
* <b>death_flags</b> <small>(short)</small>
* <b>death_flags</b> <small>(short)</small> - death flags.
* <b>silent_kill</b> <small>(bool)</small>
* <b>silent_kill</b> <small>(bool)</small>
* <b>assister_fallback</b> <small>(string)</small>
* <b>assister_fallback</b> <small>(string)</small> - contains a string to use if "assister" is -1


== fish_notice__arm ==
== fish_notice__arm ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - user ID who died
* <b>victim_entindex</b> <small>(long)</small>
* <b>victim_entindex</b> <small>(long)</small>
* <b>inflictor_entindex</b> <small>(long)</small>
* <b>inflictor_entindex</b> <small>(long)</small> - ent index of inflictor (a sentry, for example)
* <b>attacker</b> <small>(short)</small>
* <b>attacker</b> <small>(short)</small> - user ID who killed
* <b>weapon</b> <small>(string)</small>
* <b>weapon</b> <small>(string)</small> - weapon name killer used
* <b>weaponid</b> <small>(short)</small>
* <b>weaponid</b> <small>(short)</small> - ID of weapon killed used
* <b>damagebits</b> <small>(long)</small>
* <b>damagebits</b> <small>(long)</small> - bits of type of damage
* <b>customkill</b> <small>(short)</small>
* <b>customkill</b> <small>(short)</small> - type of custom kill
* <b>assister</b> <small>(short)</small>
* <b>assister</b> <small>(short)</small> - user ID of assister
* <b>weapon_logclassname</b> <small>(string)</small>
* <b>weapon_logclassname</b> <small>(string)</small> - weapon name that should be printed on the log
* <b>stun_flags</b> <small>(short)</small>
* <b>stun_flags</b> <small>(short)</small> - victim's stun flags at the moment of death
* <b>death_flags</b> <small>(short)</small>
* <b>death_flags</b> <small>(short)</small> - death flags.
* <b>silent_kill</b> <small>(bool)</small>
* <b>silent_kill</b> <small>(bool)</small>
* <b>assister_fallback</b> <small>(string)</small>
* <b>assister_fallback</b> <small>(string)</small> - contains a string to use if "assister" is -1


== flag_carried_in_detection_zone ==
== flag_carried_in_detection_zone ==


== flagstatus_update ==
== flagstatus_update ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - user ID of the player who now has the flag
* <b>entindex</b> <small>(long)</small>
* <b>entindex</b> <small>(long)</small> - ent index of flag


== flare_ignite_npc ==
== flare_ignite_npc ==
* <b>entindex</b> <small>(long)</small>
* <b>entindex</b> <small>(long)</small> - entity ignited


== freezecam_started ==
== freezecam_started ==


== game_end ==
== game_end ==
* <b>winner</b> <small>(byte)</small>
a game ended
* <b>winner</b> <small>(byte)</small> - winner team/user id


== game_init ==
== game_init ==
sent when a new game is started


== game_message ==
== game_message ==
* <b>target</b> <small>(byte)</small>
a message send by game logic to everyone
* <b>text</b> <small>(string)</small>
* <b>target</b> <small>(byte)</small> - 0 = console, 1 = HUD
* <b>text</b> <small>(string)</small> - the message text


== game_newmap ==
== game_newmap ==
* <b>mapname</b> <small>(string)</small>
send when new map is completely loaded
* <b>mapname</b> <small>(string)</small> - map name


== game_start ==
== game_start ==
* <b>roundslimit</b> <small>(long)</small>
a new game starts
* <b>timelimit</b> <small>(long)</small>
* <b>roundslimit</b> <small>(long)</small> - max round
* <b>fraglimit</b> <small>(long)</small>
* <b>timelimit</b> <small>(long)</small> - time limit
* <b>objective</b> <small>(string)</small>
* <b>fraglimit</b> <small>(long)</small> - frag limit
* <b>objective</b> <small>(string)</small> - round objective


== gameui_activate ==
== gameui_activate ==
Line 380: Line 393:


== gameui_hide ==
== gameui_hide ==
== gas_doused_player_ignited ==
* <b>igniter</b> <small>(short)</small>
* <b>douser</b> <small>(short)</small>
* <b>victim</b> <small>(short)</small>


== gc_lost_session ==
== gc_lost_session ==


== gc_new_session ==
== gc_new_session ==
== global_war_data_updated ==


== halloween_boss_killed ==
== halloween_boss_killed ==
* <b>boss</b> <small>(short)</small>
* <b>boss</b> <small>(short)</small> - 1=HHH 2=Monoculus 3=Merasmus
* <b>killer</b> <small>(short)</small>
* <b>killer</b> <small>(short)</small> - userid of the killing player


== halloween_duck_collected ==
== halloween_duck_collected ==
* <b>collector</b> <small>(short)</small>
* <b>collector</b> <small>(short)</small> - userid of the collecting player


== halloween_pumpkin_grab ==
== halloween_pumpkin_grab ==
Line 403: Line 409:


== halloween_skeleton_killed ==
== halloween_skeleton_killed ==
* <b>player</b> <small>(short)</small>
* <b>player</b> <small>(short)</small> - userid of the player that killed the skeleton


== halloween_soul_collected ==
== halloween_soul_collected ==
* <b>intended_target</b> <small>(byte)</small>
* <b>intended_target</b> <small>(byte)</small> - userid of the intended target
* <b>collecting_player</b> <small>(byte)</small>
* <b>collecting_player</b> <small>(byte)</small> - userid of the player who picked up the soul
* <b>soul_count</b> <small>(byte)</small>
* <b>soul_count</b> <small>(byte)</small> - number of souls collected (gift boxes)


== helicopter_grenade_punt_miss ==
== helicopter_grenade_punt_miss ==
Line 426: Line 432:
* <b>old_target</b> <small>(short)</small>
* <b>old_target</b> <small>(short)</small>
* <b>obs_target</b> <small>(short)</small>
* <b>obs_target</b> <small>(short)</small>
== host_quit ==


== intro_finish ==
== intro_finish ==
* <b>player</b> <small>(short)</small>
* <b>player</b> <small>(short)</small> - entindex of the player


== intro_nextcamera ==
== intro_nextcamera ==
* <b>player</b> <small>(short)</small>
* <b>player</b> <small>(short)</small> - entindex of the player


== inventory_updated ==
== inventory_updated ==


== item_found ==
== item_found ==
* <b>player</b> <small>(byte)</small>
* <b>player</b> <small>(byte)</small> - entindex of the player
* <b>quality</b> <small>(byte)</small>
* <b>quality</b> <small>(byte)</small> - quality of the item
* <b>method</b> <small>(byte)</small>
* <b>method</b> <small>(byte)</small> - method by which we acquired the item
* <b>itemdef</b> <small>(long)</small>
* <b>itemdef</b> <small>(long)</small> - the item definition index
* <b>isstrange</b> <small>(byte)</small>
* <b>isstrange</b> <small>(byte)</small>
* <b>isunusual</b> <small>(byte)</small>
* <b>isunusual</b> <small>(byte)</small>
Line 451: Line 459:


== items_acknowledged ==
== items_acknowledged ==
* <b>blocker</b> <small>(short)</small> - entindex of the blocker
* <b>victim</b> <small>(short)</small> - entindex of the victim


== kill_in_hell ==
== kill_in_hell ==
* <b>killer</b> <small>(short)</small>
* <b>killer</b> <small>(short)</small> - userid of the killer
* <b>victim</b> <small>(short)</small>
* <b>victim</b> <small>(short)</small> - userid of the victim


== kill_refills_meter ==
== kill_refills_meter ==
* <b>index</b> <small>(short)</small>
* <b>index</b> <small>(short)</small> - entindex of the player
 
== killed_ball_carrier ==
* <b>attacker</b> <small>(short)</small>
* <b>victim</b> <small>(short)</small>
* <b>assister</b> <small>(short)</small>


== killed_capping_player ==
== killed_capping_player ==
* <b>cp</b> <small>(byte)</small>
* <b>cp</b> <small>(byte)</small> - index of the point
* <b>killer</b> <small>(byte)</small>
* <b>killer</b> <small>(byte)</small> - index of the killer
* <b>victim</b> <small>(byte)</small>
* <b>victim</b> <small>(byte)</small> - index of the victim
* <b>assister</b> <small>(byte)</small>
* <b>assister</b> <small>(byte)</small> - index of the assister


== landed ==
== landed ==
Line 474: Line 479:


== leave_vehicle ==
== leave_vehicle ==
* <b>vehicle</b> <small>(long)</small>
* <b>vehicle</b> <small>(long)</small> - entindex of the vehicle


== lobby_updated ==
== lobby_updated ==
Line 481: Line 486:


== localplayer_builtobject ==
== localplayer_builtobject ==
* <b>object</b> <small>(short)</small>
* <b>object</b> <small>(short)</small> - type of object built
* <b>object_mode</b> <small>(short)</small>
* <b>object_mode</b> <small>(short)</small> - used for teleporters: entrance vs. exit
* <b>index</b> <small>(short)</small>
* <b>index</b> <small>(short)</small> - index of the object


== localplayer_changeclass ==
== localplayer_changeclass ==
Line 493: Line 498:


== localplayer_chargeready ==
== localplayer_chargeready ==
local player has full medic charge


== localplayer_healed ==
== localplayer_healed ==
Line 505: Line 511:


== localplayer_winddown ==
== localplayer_winddown ==
local player minigun winddown


== mainmenu_stabilized ==
== mainmenu_stabilized ==
* <b>attacker</b> <small>(short)</small>
* <b>victim</b> <small>(short)</small>
* <b>assister</b> <small>(short)</small>


== match_invites_updated ==
== match_invites_updated ==
== matchmaker_stats_updated ==


== medic_death ==
== medic_death ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - user ID who died
* <b>attacker</b> <small>(short)</small>
* <b>attacker</b> <small>(short)</small> - user ID who killed
* <b>healing</b> <small>(short)</small>
* <b>healing</b> <small>(short)</small> - amount healed in this life
* <b>charged</b> <small>(bool)</small>
* <b>charged</b> <small>(bool)</small> - had a full ubercharge?


== medic_defended ==
== medic_defended ==
Line 523: Line 531:


== medigun_shield_blocked_damage ==
== medigun_shield_blocked_damage ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - user ID of the player using the shield
* <b>damage</b> <small>(float)</small>
* <b>damage</b> <small>(float)</small> - damage that was blocked


== merasmus_escape_warning ==
== merasmus_escape_warning ==
Line 537: Line 545:


== merasmus_prop_found ==
== merasmus_prop_found ==
* <b>player</b> <small>(short)</small>
* <b>player</b> <small>(short)</small> - userid of the player that found the prop Merasmus was hiding in


== merasmus_stunned ==
== merasmus_stunned ==
* <b>player</b> <small>(short)</small>
* <b>player</b> <small>(short)</small> - userid of the stunning player


== merasmus_summoned ==
== merasmus_summoned ==
Line 546: Line 554:


== minigame_win ==
== minigame_win ==
* <b>team</b> <small>(byte)</small>
* <b>team</b> <small>(byte)</small> - which team won the minigame
* <b>type</b> <small>(byte)</small>
* <b>type</b> <small>(byte)</small> - what type of minigame was won


== minigame_won ==
== minigame_won ==
* <b>player</b> <small>(short)</small>
* <b>player</b> <small>(short)</small> - userid of the winning player
* <b>game</b> <small>(short)</small>
* <b>game</b> <small>(short)</small> - index of the game
 
== mmstats_updated ==


== mvm_adv_wave_complete_no_gates ==
== mvm_adv_wave_complete_no_gates ==
* <b>index</b> <small>(short)</small>
* <b>index</b> <small>(short)</small> - wave index


== mvm_adv_wave_killed_stun_radio ==
== mvm_adv_wave_killed_stun_radio ==
Line 568: Line 574:


== mvm_bomb_carrier_killed ==
== mvm_bomb_carrier_killed ==
* <b>level</b> <small>(short)</small>
* <b>level</b> <small>(short)</small> - upgrade level of the carrier


== mvm_bomb_deploy_reset_by_player ==
== mvm_bomb_deploy_reset_by_player ==
Line 583: Line 589:


== mvm_kill_robot_delivering_bomb ==
== mvm_kill_robot_delivering_bomb ==
* <b>player</b> <small>(short)</small>
* <b>player</b> <small>(short)</small> - entindex of the player


== mvm_mannhattan_pit ==
== mvm_mannhattan_pit ==


== mvm_medic_powerup_shared ==
== mvm_medic_powerup_shared ==
* <b>player</b> <small>(short)</small>
* <b>player</b> <small>(short)</small> - entindex of the player


== mvm_mission_complete ==
== mvm_mission_complete ==
Line 598: Line 604:


== mvm_pickup_currency ==
== mvm_pickup_currency ==
* <b>player</b> <small>(short)</small>
* <b>player</b> <small>(short)</small> - entindex of the player
* <b>currency</b> <small>(short)</small>
* <b>currency</b> <small>(short)</small>


== mvm_quick_sentry_upgrade ==
== mvm_quick_sentry_upgrade ==
* <b>player</b> <small>(short)</small>
* <b>player</b> <small>(short)</small> - entindex of the player


== mvm_reset_stats ==
== mvm_reset_stats ==


== mvm_scout_marked_for_death ==
== mvm_scout_marked_for_death ==
* <b>player</b> <small>(short)</small>
* <b>player</b> <small>(short)</small> - entindex of the player


== mvm_sentrybuster_detonate ==
== mvm_sentrybuster_detonate ==
* <b>player</b> <small>(short)</small>
* <b>player</b> <small>(short)</small> - entindex of the target player
* <b>det_x</b> <small>(float)</small>
* <b>det_x</b> <small>(float)</small> - origin of the sentry buster
* <b>det_y</b> <small>(float)</small>
* <b>det_y</b> <small>(float)</small>
* <b>det_z</b> <small>(float)</small>
* <b>det_z</b> <small>(float)</small>


== mvm_sentrybuster_killed ==
== mvm_sentrybuster_killed ==
* <b>sentry_buster</b> <small>(short)</small>
* <b>sentry_buster</b> <small>(short)</small> - entindex


== mvm_sniper_headshot_currency ==
== mvm_sniper_headshot_currency ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - user ID of the player
* <b>currency</b> <small>(short)</small>
* <b>currency</b> <small>(short)</small> - currency collected


== mvm_tank_destroyed_by_players ==
== mvm_tank_destroyed_by_players ==


== mvm_wave_complete ==
== mvm_wave_complete ==
* <b>advanced</b> <small>(bool)</small>
* <b>advanced</b> <small>(bool)</small> - is this an advanced popfile


== mvm_wave_failed ==
== mvm_wave_failed ==
Line 640: Line 646:
* <b>damageamount</b> <small>(short)</small>
* <b>damageamount</b> <small>(short)</small>
* <b>crit</b> <small>(bool)</small>
* <b>crit</b> <small>(bool)</small>
* <b>boss</b> <small>(short)</small>
* <b>boss</b> <small>(short)</small> - 1=HHH 2=Monoculus 3=Merasmus


== num_cappers_changed ==
== num_cappers_changed ==
* <b>index</b> <small>(short)</small>
* <b>index</b> <small>(short)</small> - index of the trigger
* <b>count</b> <small>(byte)</small>
* <b>count</b> <small>(byte)</small> - number of cappers (-1 for blocked)


== object_deflected ==
== object_deflected ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - player who deflected the object
* <b>ownerid</b> <small>(short)</small>
* <b>ownerid</b> <small>(short)</small> - owner of the object
* <b>weaponid</b> <small>(short)</small>
* <b>weaponid</b> <small>(short)</small> - weapon id (0 means the player in ownerid was pushed)
* <b>object_entindex</b> <small>(short)</small>
* <b>object_entindex</b> <small>(short)</small> - entindex of the object that got deflected


== object_destroyed ==
== object_destroyed ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - user ID who died
* <b>attacker</b> <small>(short)</small>
* <b>attacker</b> <small>(short)</small> - user ID who killed
* <b>assister</b> <small>(short)</small>
* <b>assister</b> <small>(short)</small> - user ID of assister
* <b>weapon</b> <small>(string)</small>
* <b>weapon</b> <small>(string)</small> - weapon name killer used
* <b>weaponid</b> <small>(short)</small>
* <b>weaponid</b> <small>(short)</small> - id of the weapon used
* <b>objecttype</b> <small>(short)</small>
* <b>objecttype</b> <small>(short)</small> - type of object destroyed
* <b>index</b> <small>(short)</small>
* <b>index</b> <small>(short)</small> - index of the object destroyed
* <b>was_building</b> <small>(bool)</small>
* <b>was_building</b> <small>(bool)</small> - object was being built when it died
* <b>team</b> <small>(short)</small>
* <b>team</b> <small>(short)</small> - building's team


== object_detonated ==
== object_detonated ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - user ID of the object owner
* <b>objecttype</b> <small>(short)</small>
* <b>objecttype</b> <small>(short)</small> - type of object removed
* <b>index</b> <small>(short)</small>
* <b>index</b> <small>(short)</small> - index of the object removed


== object_removed ==
== object_removed ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - user ID of the object owner
* <b>objecttype</b> <small>(short)</small>
* <b>objecttype</b> <small>(short)</small> - type of object removed
* <b>index</b> <small>(short)</small>
* <b>index</b> <small>(short)</small> - index of the object removed


== overtime_nag ==
== overtime_nag ==


== parachute_deploy ==
== parachute_deploy ==
* <b>index</b> <small>(short)</small>
* <b>index</b> <small>(short)</small> - entindex of the player


== parachute_holster ==
== parachute_holster ==
* <b>index</b> <small>(short)</small>
* <b>index</b> <small>(short)</small> - entindex of the player


== party_chat ==
== party_chat ==
* <b>steamid</b> <small>(string)</small>
* <b>steamid</b> <small>(string)</small> - steamID (64-bit value converted to string) of user who said or did the thing.  May be
* <b>text</b> <small>(string)</small>
* <b>text</b> <small>(string)</small> - The message.  May have different meaning for some types
* <b>type</b> <small>(short)</small>
* <b>type</b> <small>(short)</small> - What sort of message?  ETFPartyChatType enum


== party_criteria_changed ==
== party_criteria_changed ==
Line 691: Line 697:


== party_member_join ==
== party_member_join ==
* <b>steamid</b> <small>(string)</small>
* <b>steamid</b> <small>(string)</small> - steamID (64-bit value converted to string) of joined


== party_member_leave ==
== party_member_leave ==
* <b>steamid</b> <small>(string)</small>
* <b>steamid</b> <small>(string)</small> - steamID (64-bit value converted to string) of leaver


== party_pref_changed ==
== party_pref_changed ==


== party_queue_state_changed ==
== party_queue_state_changed ==
* <b>matchgroup</b> <small>(short)</small>
* <b>matchgroup</b> <small>(short)</small> - ETFMatchGroup


== party_updated ==
== party_updated ==
Line 731: Line 737:


== path_track_passed ==
== path_track_passed ==
* <b>index</b> <small>(short)</small>
* <b>index</b> <small>(short)</small> - index of the node being passed


== payload_pushed ==
== payload_pushed ==
* <b>pusher</b> <small>(byte)</small>
* <b>pusher</b> <small>(byte)</small> - userid of the player who pushed
* <b>distance</b> <small>(short)</small>
* <b>distance</b> <small>(short)</small> - how far they pushed


== physgun_pickup ==
== physgun_pickup ==
* <b>entindex</b> <small>(long)</small>
* <b>entindex</b> <small>(long)</small> - entity picked up
 
== ping_updated ==


== player_abandoned_match ==
== player_abandoned_match ==
Line 748: Line 752:
* <b>old_value</b> <small>(short)</small>
* <b>old_value</b> <small>(short)</small>
* <b>new_value</b> <small>(short)</small>
* <b>new_value</b> <small>(short)</small>
== player_activate ==
* <b>userid</b> <small>(short)</small> - user ID on server


== player_askedforball ==
== player_askedforball ==
Line 758: Line 765:


== player_buff ==
== player_buff ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - user ID of the player the buff is being applied to
* <b>buff_owner</b> <small>(short)</small>
* <b>buff_owner</b> <small>(short)</small> - user ID of the player with the banner
* <b>buff_type</b> <small>(byte)</small>
* <b>buff_type</b> <small>(byte)</small> - type of buff


== player_builtobject ==
== player_builtobject ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - user ID of the builder
* <b>object</b> <small>(short)</small>
* <b>object</b> <small>(short)</small> - type of object built
* <b>index</b> <small>(short)</small>
* <b>index</b> <small>(short)</small> - index of the object


== player_buyback ==
== player_buyback ==
Line 775: Line 782:


== player_carryobject ==
== player_carryobject ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - user ID of the builder
* <b>object</b> <small>(short)</small>
* <b>object</b> <small>(short)</small> - type of object built
* <b>index</b> <small>(short)</small>
* <b>index</b> <small>(short)</small> - index of the object


== player_changeclass ==
== player_changeclass ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - user ID who changed class
* <b>class</b> <small>(short)</small>
* <b>class</b> <small>(short)</small> - class that they changed to


== player_changename ==
== player_changename ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - user ID on server
* <b>oldname</b> <small>(string)</small>
* <b>oldname</b> <small>(string)</small> - players old (current) name
* <b>newname</b> <small>(string)</small>
* <b>newname</b> <small>(string)</small> - players new name


== player_chargedeployed ==
== player_chargedeployed ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - user ID of medic who deployed charge
* <b>targetid</b> <small>(short)</small>
* <b>targetid</b> <small>(short)</small> - user ID of who the medic charged


== player_chat ==
== player_chat ==
* <b>teamonly</b> <small>(bool)</small>
a public player chat
* <b>userid</b> <small>(short)</small>
* <b>teamonly</b> <small>(bool)</small> - true if team only chat
* <b>text</b> <small>(string)</small>
* <b>userid</b> <small>(short)</small> - chatting player
* <b>text</b> <small>(string)</small> - chat text


== player_class ==
== player_class ==
* <b>userid</b> <small>(short)</small>
a player changed his class
* <b>class</b> <small>(string)</small>
* <b>userid</b> <small>(short)</small> - user ID on server
* <b>class</b> <small>(string)</small> - new player class / model
 
== player_connect ==
a new client connected - we should only really have server listeners for this, due to the IP being exposed
* <b>name</b> <small>(string)</small> - player name
* <b>index</b> <small>(byte)</small> - player slot (entity index-1)
* <b>userid</b> <small>(short)</small> - user ID on server (unique on server)
* <b>networkid</b> <small>(string)</small> - player network (i.e steam) id
* <b>address</b> <small>(string)</small> - ip:port
* <b>bot</b> <small>(short)</small> - is a bot
 
== player_connect_client ==
a new client connected
* <b>name</b> <small>(string)</small> - player name
* <b>index</b> <small>(byte)</small> - player slot (entity index-1)
* <b>userid</b> <small>(short)</small> - user ID on server (unique on server)
* <b>networkid</b> <small>(string)</small> - player network (i.e steam) id
* <b>bot</b> <small>(short)</small> - is a bot


== player_currency_changed ==
== player_currency_changed ==
Line 812: Line 838:


== player_death ==
== player_death ==
* <b>userid</b> <small>(short)</small>
a game event, name may be 32 charaters long
* <b>attacker</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - user ID who died
* <b>victim_entindex</b> <small>(long)</small>
* <b>inflictor_entindex</b> <small>(long)</small> - ent index of inflictor (a sentry, for example)
* <b>attacker</b> <small>(short)</small> - user ID who killed
* <b>weapon</b> <small>(string)</small> - weapon name killer used
* <b>weaponid</b> <small>(short)</small> - ID of weapon killer used
* <b>damagebits</b> <small>(long)</small> - bits of type of damage
* <b>customkill</b> <small>(short)</small> - type of custom kill
* <b>assister</b> <small>(short)</small> - user ID of assister
* <b>weapon_logclassname</b> <small>(string)</small> - weapon name that should be printed on the log
* <b>stun_flags</b> <small>(short)</small> - victim's stun flags at the moment of death
* <b>death_flags</b> <small>(short)</small> - death flags.
* <b>silent_kill</b> <small>(bool)</small>
* <b>playerpenetratecount</b> <small>(short)</small>
* <b>assister_fallback</b> <small>(string)</small> - contains a string to use if "assister" is -1
* <b>kill_streak_total</b> <small>(short)</small> - Kill streak count (level)
* <b>kill_streak_wep</b> <small>(short)</small> - Kill streak for killing weapon
* <b>kill_streak_assist</b> <small>(short)</small> - Kill streak for assister count
* <b>kill_streak_victim</b> <small>(short)</small> - Victims kill streak
* <b>ducks_streaked</b> <small>(short)</small> - Duck streak increment from this kill
* <b>duck_streak_total</b> <small>(short)</small> - Duck streak count for attacker
* <b>duck_streak_assist</b> <small>(short)</small> - Duck streak count for assister
* <b>duck_streak_victim</b> <small>(short)</small> - (former) duck streak count for victim
* <b>rocket_jump</b> <small>(bool)</small> - was the victim rocket jumping
* <b>weapon_def_index</b> <small>(long)</small> - item def index of weapon killer used
* <b>crit_type</b> <small>(short)</small> - Crit type of kill.  0: None 1: Mini 2: Full
* <b>//</b> <small>(dominated" "short)</small> - did killer dominate victim with this kill
* <b>//</b> <small>(assister_dominated" "short)</small> - did assister dominate victim with this kill
* <b>//</b> <small>(revenge" "short)</small> - did killer get revenge on victim with this kill
* <b>//</b> <small>(assister_revenge" "short)</small> - did assister get revenge on victim with this kill
* <b>//</b> <small>(first_blood" "bool)</small> - was this a first blood kill
* <b>//</b> <small>(feign_death" "bool)</small> - the victim is feign death


== player_destroyed_pipebomb ==
== player_destroyed_pipebomb ==
Line 819: Line 876:


== player_directhit_stun ==
== player_directhit_stun ==
* <b>attacker</b> <small>(short)</small>
* <b>attacker</b> <small>(short)</small> - entindex of the attacker
* <b>victim</b> <small>(short)</small>
* <b>victim</b> <small>(short)</small> - entindex of the victim
 
== player_disconnect ==
a client was disconnected
* <b>userid</b> <small>(short)</small> - user ID on server
* <b>reason</b> <small>(string)</small> - "self", "kick", "ban", "cheat", "error"
* <b>name</b> <small>(string)</small> - player name
* <b>networkid</b> <small>(string)</small> - player network (i.e steam) id
* <b>bot</b> <small>(short)</small> - is a bot


== player_domination ==
== player_domination ==
* <b>dominator</b> <small>(short)</small>
* <b>dominator</b> <small>(short)</small> - userID of who gained domination
* <b>dominated</b> <small>(short)</small>
* <b>dominated</b> <small>(short)</small> - userID of who got dominated
* <b>dominations</b> <small>(short)</small>
* <b>dominations</b> <small>(short)</small> - Number of dominations this dominator has


== player_dropobject ==
== player_dropobject ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - user ID of the builder
* <b>object</b> <small>(short)</small>
* <b>object</b> <small>(short)</small> - type of object built
* <b>index</b> <small>(short)</small>
* <b>index</b> <small>(short)</small> - index of the object


== player_escort_score ==
== player_escort_score ==
Line 837: Line 902:


== player_extinguished ==
== player_extinguished ==
* <b>victim</b> <small>(byte)</small>
sent when a burning player is extinguished by a medic
* <b>healer</b> <small>(byte)</small>
* <b>victim</b> <small>(byte)</small> - entindex of the player that was extinguished
* <b>itemdefindex</b> <small>(short)</small>
* <b>healer</b> <small>(byte)</small> - entindex of the player who did the extinguishing
* <b>itemdefindex</b> <small>(short)</small> - item defindex that did the extinguishing


== player_healed ==
== player_healed ==
Line 850: Line 916:


== player_healedmediccall ==
== player_healedmediccall ==
* <b>userid</b> <small>(short)</small>
local player heals someone who called for medic.
* <b>userid</b> <small>(short)</small> - userid of person who got healed


== player_healonhit ==
== player_healonhit ==
* <b>amount</b> <small>(short)</small>
* <b>amount</b> <small>(short)</small>
* <b>entindex</b> <small>(byte)</small>
* <b>entindex</b> <small>(byte)</small>
* <b>weapon_def_index</b> <small>(long)</small>
* <b>weapon_def_index</b> <small>(long)</small> - item def index of the healing weapon


== player_highfive_cancel ==
== player_highfive_cancel ==
Line 868: Line 935:


== player_hintmessage ==
== player_hintmessage ==
* <b>hintmessage</b> <small>(string)</small>
* <b>hintmessage</b> <small>(string)</small> - localizable string of a hint


== player_hurt ==
== player_hurt ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small>
* <b>health</b> <small>(short)</small>
* <b>attacker</b> <small>(short)</small>
* <b>attacker</b> <small>(short)</small>
* <b>health</b> <small>(byte)</small>
* <b>damageamount</b> <small>(short)</small>
* <b>custom</b> <small>(short)</small>
* <b>showdisguisedcrit</b> <small>(bool)</small> - if our attribute specifically crits disguised enemies we need to show it on the client
* <b>crit</b> <small>(bool)</small>
* <b>minicrit</b> <small>(bool)</small>
* <b>allseecrit</b> <small>(bool)</small>
* <b>weaponid</b> <small>(short)</small>
* <b>bonuseffect</b> <small>(byte)</small>


== player_ignited ==
== player_ignited ==
* <b>pyro_entindex</b> <small>(byte)</small>
sent when a player is ignited, only to the two players involved
* <b>victim_entindex</b> <small>(byte)</small>
* <b>pyro_entindex</b> <small>(byte)</small> - entindex of the pyro who ignited the victim
* <b>weaponid</b> <small>(byte)</small>
* <b>victim_entindex</b> <small>(byte)</small> - entindex of the player ignited by the pyro
* <b>weaponid</b> <small>(byte)</small> - weaponid of the weapon used


== player_ignited_inv ==
== player_ignited_inv ==
* <b>pyro_entindex</b> <small>(byte)</small>
sent when a player is ignited by a pyro who is being invulned, only to the medic who's doing the invulning
* <b>victim_entindex</b> <small>(byte)</small>
* <b>pyro_entindex</b> <small>(byte)</small> - entindex of the pyro who ignited the victim
* <b>medic_entindex</b> <small>(byte)</small>
* <b>victim_entindex</b> <small>(byte)</small> - entindex of the player ignited by the pyro
* <b>medic_entindex</b> <small>(byte)</small> - entindex of the medic releasing the invuln
 
== player_info ==
a player changed his name
* <b>name</b> <small>(string)</small> - player name
* <b>index</b> <small>(byte)</small> - player slot (entity index-1)
* <b>userid</b> <small>(short)</small> - user ID on server (unique on server)
* <b>networkid</b> <small>(string)</small> - player network (i.e steam) id
* <b>bot</b> <small>(bool)</small> - true if player is a AI bot


== player_initial_spawn ==
== player_initial_spawn ==
* <b>index</b> <small>(short)</small>
* <b>index</b> <small>(short)</small> - entindex of the player


== player_invulned ==
== player_invulned ==
Line 893: Line 978:


== player_jarated ==
== player_jarated ==
* <b>thrower_entindex</b> <small>(byte)</small>
sent when a player is jarated, only to the two players involved
* <b>victim_entindex</b> <small>(byte)</small>
* <b>thrower_entindex</b> <small>(byte)</small> - entindex of the player who threw the jarate
* <b>victim_entindex</b> <small>(byte)</small> - entindex of the player receiving it


== player_jarated_fade ==
== player_jarated_fade ==
* <b>thrower_entindex</b> <small>(byte)</small>
sent when a player is jarated, only to the two players involved
* <b>victim_entindex</b> <small>(byte)</small>
* <b>thrower_entindex</b> <small>(byte)</small> - entindex of the player who threw the jarate
* <b>victim_entindex</b> <small>(byte)</small> - entindex of the player receiving it


== player_killed_achievement_zone ==
== player_killed_achievement_zone ==
* <b>attacker</b> <small>(short)</small>
* <b>attacker</b> <small>(short)</small> - entindex of the attacker
* <b>victim</b> <small>(short)</small>
* <b>victim</b> <small>(short)</small> - entindex of the victim
* <b>zone_id</b> <small>(short)</small>
* <b>zone_id</b> <small>(short)</small> - type of area (0 for general, 1 for capture zone)


== player_mvp ==
== player_mvp ==
* <b>player</b> <small>(short)</small>
* <b>player</b> <small>(short)</small>
== player_next_map_vote_change ==
* <b>map_index</b> <small>(byte)</small>
* <b>vote</b> <small>(byte)</small>


== player_pinned ==
== player_pinned ==
Line 916: Line 999:


== player_regenerate ==
== player_regenerate ==
== player_rematch_change ==


== player_rocketpack_pushed ==
== player_rocketpack_pushed ==
* <b>pusher</b> <small>(short)</small>
* <b>pusher</b> <small>(short)</small> - userID of who pushed
* <b>pushed</b> <small>(short)</small>
* <b>pushed</b> <small>(short)</small> - userID of who got pushed


== player_sapped_object ==
== player_sapped_object ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - user ID of the spy
* <b>ownerid</b> <small>(short)</small>
* <b>ownerid</b> <small>(short)</small> - user ID of the building owner
* <b>object</b> <small>(byte)</small>
* <b>object</b> <small>(byte)</small>
* <b>sapperid</b> <small>(short)</small>
* <b>sapperid</b> <small>(short)</small> - index of the sapper
 
== player_say ==
* <b>userid</b> <small>(short)</small> - user ID on server
* <b>text</b> <small>(string)</small> - the say text


== player_score ==
== player_score ==
* <b>userid</b> <small>(short)</small>
players scores changed
* <b>kills</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - user ID on server
* <b>deaths</b> <small>(short)</small>
* <b>kills</b> <small>(short)</small> - # of kills
* <b>score</b> <small>(short)</small>
* <b>deaths</b> <small>(short)</small> - # of deaths
* <b>score</b> <small>(short)</small> - total game score


== player_score_changed ==
== player_score_changed ==
Line 940: Line 1,026:


== player_shield_blocked ==
== player_shield_blocked ==
* <b>attacker_entindex</b> <small>(byte)</small>
sent when a player is jarated, only to the two players involved
* <b>blocker_entindex</b> <small>(byte)</small>
* <b>attacker_entindex</b> <small>(byte)</small> - entindex of the player who threw the jarate
* <b>blocker_entindex</b> <small>(byte)</small> - entindex of the player receiving it


== player_shoot ==
== player_shoot ==
* <b>userid</b> <small>(short)</small>
player shoot his weapon
* <b>weapon</b> <small>(byte)</small>
* <b>userid</b> <small>(short)</small> - user ID on server
* <b>mode</b> <small>(byte)</small>
* <b>weapon</b> <small>(byte)</small> - weapon ID
* <b>mode</b> <small>(byte)</small> - weapon mode


== player_spawn ==
== player_spawn ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - user ID who spawned
* <b>team</b> <small>(short)</small> - team they spawned on
* <b>class</b> <small>(short)</small> - class they spawned as


== player_stats_updated ==
== player_stats_updated ==
Line 965: Line 1,055:


== player_team ==
== player_team ==
* <b>userid</b> <small>(short)</small>
player change his team
* <b>team</b> <small>(byte)</small>
* <b>userid</b> <small>(short)</small> - user ID on server
* <b>oldteam</b> <small>(byte)</small>
* <b>team</b> <small>(byte)</small> - team id
* <b>disconnect</b> <small>(bool)</small>
* <b>oldteam</b> <small>(byte)</small> - old team id
* <b>autoteam</b> <small>(bool)</small>
* <b>disconnect</b> <small>(bool)</small> - team change because player disconnects
* <b>silent</b> <small>(bool)</small>
* <b>autoteam</b> <small>(bool)</small> - true if the player was auto assigned to the team
* <b>name</b> <small>(string)</small>
* <b>silent</b> <small>(bool)</small> - if true wont print the team join messages
* <b>name</b> <small>(string)</small> - player's name


== player_teleported ==
== player_teleported ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - userid of the player
* <b>builderid</b> <small>(short)</small>
* <b>builderid</b> <small>(short)</small> - userid of the player who built the teleporter
* <b>dist</b> <small>(float)</small>
* <b>dist</b> <small>(float)</small> - distance the player was teleported


== player_turned_to_ghost ==
== player_turned_to_ghost ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - user ID of the player who changed to a ghost


== player_upgraded ==
== player_upgraded ==


== player_upgradedobject ==
== player_upgradedobject ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - user ID of the builder
* <b>object</b> <small>(short)</small>
* <b>object</b> <small>(short)</small> - type of object built
* <b>index</b> <small>(short)</small>
* <b>index</b> <small>(short)</small> - index of the object
* <b>isbuilder</b> <small>(bool)</small>
* <b>isbuilder</b> <small>(bool)</small>


== player_use ==
== player_use ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - user ID on server
* <b>entity</b> <small>(short)</small>
* <b>entity</b> <small>(short)</small> - entity used by player


== player_used_powerup_bottle ==
== player_used_powerup_bottle ==
Line 1,001: Line 1,092:


== post_inventory_application ==
== post_inventory_application ==
sent when a player gets a whole new set of items
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small>


== projectile_direct_hit ==
== projectile_direct_hit ==
* <b>attacker</b> <small>(byte)</small>
* <b>attacker</b> <small>(byte)</small> - index of the player who shot the projectile
* <b>victim</b> <small>(byte)</small>
* <b>victim</b> <small>(byte)</small> - index of the player who got direct-ht
* <b>weapon_def_index</b> <small>(long)</small>
* <b>weapon_def_index</b> <small>(long)</small> - defindex of the direct hitting weapon


== projectile_removed ==
== projectile_removed ==
Line 1,013: Line 1,105:
* <b>num_hit</b> <small>(byte)</small>
* <b>num_hit</b> <small>(byte)</small>
* <b>num_direct_hit</b> <small>(byte)</small>
* <b>num_direct_hit</b> <small>(byte)</small>
== proto_def_changed ==
* <b>type</b> <small>(byte)</small>
* <b>defindex</b> <small>(long)</small>
* <b>created</b> <small>(bool)</small>
* <b>deleted</b> <small>(bool)</small>
* <b>erase_history</b> <small>(bool)</small>


== pumpkin_lord_killed ==
== pumpkin_lord_killed ==
Line 1,026: Line 1,111:


== pve_win_panel ==
== pve_win_panel ==
* <b>panel_style</b> <small>(byte)</small>
* <b>panel_style</b> <small>(byte)</small> - for client to determine layout
* <b>winning_team</b> <small>(byte)</small>
* <b>winning_team</b> <small>(byte)</small>
* <b>winreason</b> <small>(byte)</small>
* <b>winreason</b> <small>(byte)</small> - the reason the team won


== quest_map_data_changed ==
== quest_map_data_changed ==
* <b>igniter</b> <small>(short)</small> - entindex of the igniter
* <b>douser</b> <small>(short)</small> - entindex of the douser
* <b>victim</b> <small>(short)</small> - entindex of the victim


== quest_objective_completed ==
== quest_objective_completed ==
For prediction
* <b>quest_item_id_low</b> <small>(long)</small>
* <b>quest_item_id_low</b> <small>(long)</small>
* <b>quest_item_id_hi</b> <small>(long)</small>
* <b>quest_item_id_hi</b> <small>(long)</small>
Line 1,047: Line 1,136:
== quest_request ==
== quest_request ==
* <b>request</b> <small>(long)</small>
* <b>request</b> <small>(long)</small>
* <b>msg</b> <small>(string)</small>
* <b>msg</b> <small>(string)</small> - Protobuf serialized to a string


== quest_response ==
== quest_response ==
* <b>request</b> <small>(long)</small>
* <b>request</b> <small>(long)</small>
* <b>success</b> <small>(bool)</small>
* <b>success</b> <small>(bool)</small>
* <b>msg</b> <small>(string)</small>
* <b>msg</b> <small>(string)</small> - Protobuf serialized to a string


== quest_turn_in_state ==
== quest_turn_in_state ==
* <b>state</b> <small>(short)</small>
* <b>state</b> <small>(short)</small> - Maps to EQuestTurnInState


== questlog_opened ==
== questlog_opened ==
Line 1,078: Line 1,167:


== rd_robot_killed ==
== rd_robot_killed ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - user ID who died
* <b>victim_entindex</b> <small>(long)</small>
* <b>victim_entindex</b> <small>(long)</small>
* <b>inflictor_entindex</b> <small>(long)</small>
* <b>inflictor_entindex</b> <small>(long)</small> - ent index of inflictor (a sentry, for example)
* <b>attacker</b> <small>(short)</small>
* <b>attacker</b> <small>(short)</small> - user ID who killed
* <b>weapon</b> <small>(string)</small>
* <b>weapon</b> <small>(string)</small> - weapon name killer used
* <b>weaponid</b> <small>(short)</small>
* <b>weaponid</b> <small>(short)</small> - ID of weapon killed used
* <b>damagebits</b> <small>(long)</small>
* <b>damagebits</b> <small>(long)</small> - bits of type of damage
* <b>customkill</b> <small>(short)</small>
* <b>customkill</b> <small>(short)</small> - type of custom kill
* <b>weapon_logclassname</b> <small>(string)</small>
* <b>weapon_logclassname</b> <small>(string)</small> - weapon name that should be printed on the log


== rd_rules_state_changed ==
== rd_rules_state_changed ==
Line 1,100: Line 1,189:


== rematch_failed_to_create ==
== rematch_failed_to_create ==
* <b>map_index</b> <small>(byte)</small> - what they voted for
* <b>vote</b> <small>(byte)</small> - what the vote was


== rematch_vote_period_over ==
== remove_nemesis_relationships ==
* <b>success</b> <small>(bool)</small>
* <b>player</b> <small>(short)</small> - entindex of the player who should reset
 
== replay_endrecord ==


== remove_nemesis_relationships ==
== replay_replaysavailable ==
* <b>player</b> <small>(short)</small>


== replay_saved ==
== replay_saved ==
== replay_servererror ==
* <b>error</b> <small>(string)</small>
== replay_sessioninfo ==
Sent when the server begins recording, or when a client first connects - only sent once per recording session
* <b>sn</b> <small>(string)</small> - session name
* <b>di</b> <small>(byte)</small> - dump interval
* <b>cb</b> <small>(long)</small> - current block
* <b>st</b> <small>(long)</small> - session start tick
== replay_startrecord ==
Sent when the server begins recording - only used to display UI


== replay_youtube_stats ==
== replay_youtube_stats ==
Line 1,115: Line 1,220:


== respawn_ghost ==
== respawn_ghost ==
* <b>reviver</b> <small>(short)</small>
* <b>reviver</b> <small>(short)</small> - userid of the reviving player
* <b>ghost</b> <small>(short)</small>
* <b>ghost</b> <small>(short)</small> - userid of the player that got revived


== restart_timer_time ==
== restart_timer_time ==
* <b>time</b> <small>(byte)</small>
* <b>time</b> <small>(byte)</small> - How much time is left


== revive_player_complete ==
== revive_player_complete ==
* <b>entindex</b> <small>(short)</small>
* <b>entindex</b> <small>(short)</small> - entindex of the medic


== revive_player_notify ==
== revive_player_notify ==
Line 1,146: Line 1,251:


== round_end ==
== round_end ==
* <b>winner</b> <small>(byte)</small>
* <b>winner</b> <small>(byte)</small> - winner team/user i
* <b>reason</b> <small>(byte)</small>
* <b>reason</b> <small>(byte)</small> - reson why team won
* <b>message</b> <small>(string)</small>
* <b>message</b> <small>(string)</small> - end round message


== round_start ==
== round_start ==
* <b>timelimit</b> <small>(long)</small>
* <b>timelimit</b> <small>(long)</small> - round time limit in seconds
* <b>fraglimit</b> <small>(long)</small>
* <b>fraglimit</b> <small>(long)</small> - frag limit in seconds
* <b>objective</b> <small>(string)</small>
* <b>objective</b> <small>(string)</small> - round objective


== rps_taunt_event ==
== rps_taunt_event ==
* <b>winner</b> <small>(short)</small>
* <b>winner</b> <small>(short)</small> - entindex of the winning player
* <b>winner_rps</b> <small>(byte)</small>
* <b>winner_rps</b> <small>(byte)</small> - winner's selection
* <b>loser</b> <small>(short)</small>
* <b>loser</b> <small>(short)</small> - entindex of the losing player
* <b>loser_rps</b> <small>(byte)</small>
* <b>loser_rps</b> <small>(byte)</small> - loser's selection


== schema_updated ==
== schema_updated ==
Line 1,179: Line 1,284:
== sentry_on_go_active ==
== sentry_on_go_active ==
* <b>index</b> <small>(short)</small>
* <b>index</b> <small>(short)</small>
== server_addban ==
* <b>name</b> <small>(string)</small> - player name
* <b>userid</b> <small>(short)</small> - user ID on server
* <b>networkid</b> <small>(string)</small> - player network (i.e steam) id
* <b>ip</b> <small>(string)</small> - IP address
* <b>duration</b> <small>(string)</small> - length of the ban
* <b>by</b> <small>(string)</small> - banned by...
* <b>kicked</b> <small>(bool)</small> - whether the player was also kicked
== server_changelevel_failed ==
* <b>levelname</b> <small>(string)</small> - The level name that failed changelevel
== server_cvar ==
a server console var has changed
* <b>cvarname</b> <small>(string)</small> - cvar name, eg "mp_roundtime"
* <b>cvarvalue</b> <small>(string)</small> - new cvar value
== server_message ==
a generic server message
* <b>text</b> <small>(string)</small> - the message text
== server_removeban ==
* <b>networkid</b> <small>(string)</small> - player network (i.e steam) id
* <b>ip</b> <small>(string)</small> - IP address
* <b>by</b> <small>(string)</small> - removed by...
== server_shutdown ==
server shut down
* <b>reason</b> <small>(string)</small> - reason why server was shut down
== server_spawn ==
send once a server starts
* <b>hostname</b> <small>(string)</small> - public host name
* <b>address</b> <small>(string)</small> - hostame, IP or DNS name
* <b>ip</b> <small>(long)</small>
* <b>port</b> <small>(short)</small> - server port
* <b>game</b> <small>(string)</small> - game dir
* <b>mapname</b> <small>(string)</small> - map name
* <b>maxplayers</b> <small>(long)</small> - max players
* <b>os</b> <small>(string)</small> - WIN32, LINUX
* <b>dedicated</b> <small>(bool)</small> - true if dedicated server
* <b>password</b> <small>(bool)</small> - true if password protected


== show_annotation ==
== show_annotation ==
Line 1,188: Line 1,336:
* <b>worldNormalZ</b> <small>(float)</small>
* <b>worldNormalZ</b> <small>(float)</small>
* <b>id</b> <small>(long)</small>
* <b>id</b> <small>(long)</small>
* <b>text</b> <small>(string)</small>
* <b>text</b> <small>(string)</small> - name (unlocalized)
* <b>lifetime</b> <small>(float)</small>
* <b>lifetime</b> <small>(float)</small>
* <b>visibilityBitfield</b> <small>(long)</small>
* <b>visibilityBitfield</b> <small>(long)</small> - bitfield of the players that can see this
* <b>follow_entindex</b> <small>(long)</small>
* <b>follow_entindex</b> <small>(long)</small> - if this is set, follow this entity
* <b>show_distance</b> <small>(bool)</small>
* <b>show_distance</b> <small>(bool)</small>
* <b>play_sound</b> <small>(string)</small>
* <b>play_sound</b> <small>(string)</small>
Line 1,200: Line 1,348:


== show_freezepanel ==
== show_freezepanel ==
* <b>killer</b> <small>(short)</small>
* <b>killer</b> <small>(short)</small> - entindex of the killer entity


== show_match_summary ==
== show_match_summary ==
* <b>success</b> <small>(bool)</small>


== show_vs_panel ==
== show_vs_panel ==
Line 1,210: Line 1,359:


== skeleton_killed_quest ==
== skeleton_killed_quest ==
* <b>player</b> <small>(short)</small>
* <b>player</b> <small>(short)</small> - userid of the player that killed the skeleton


== skeleton_king_killed_quest ==
== skeleton_king_killed_quest ==
* <b>player</b> <small>(short)</small>
* <b>player</b> <small>(short)</small> - userid of the player that killed the skeleton


== slap_notice ==
== slap_notice ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - user ID who died
* <b>victim_entindex</b> <small>(long)</small>
* <b>victim_entindex</b> <small>(long)</small>
* <b>inflictor_entindex</b> <small>(long)</small>
* <b>inflictor_entindex</b> <small>(long)</small> - ent index of inflictor (a sentry, for example)
* <b>attacker</b> <small>(short)</small>
* <b>attacker</b> <small>(short)</small> - user ID who killed
* <b>weapon</b> <small>(string)</small>
* <b>weapon</b> <small>(string)</small> - weapon name killer used
* <b>weaponid</b> <small>(short)</small>
* <b>weaponid</b> <small>(short)</small> - ID of weapon killed used
* <b>damagebits</b> <small>(long)</small>
* <b>damagebits</b> <small>(long)</small> - bits of type of damage
* <b>customkill</b> <small>(short)</small>
* <b>customkill</b> <small>(short)</small> - type of custom kill
* <b>assister</b> <small>(short)</small>
* <b>assister</b> <small>(short)</small> - user ID of assister
* <b>weapon_logclassname</b> <small>(string)</small>
* <b>weapon_logclassname</b> <small>(string)</small> - weapon name that should be printed on the log
* <b>stun_flags</b> <small>(short)</small>
* <b>stun_flags</b> <small>(short)</small> - victim's stun flags at the moment of death
* <b>death_flags</b> <small>(short)</small>
* <b>death_flags</b> <small>(short)</small> - death flags.
* <b>silent_kill</b> <small>(bool)</small>
* <b>silent_kill</b> <small>(bool)</small>
* <b>assister_fallback</b> <small>(string)</small>
* <b>assister_fallback</b> <small>(string)</small> - contains a string to use if "assister" is -1


== spec_target_updated ==
== spec_target_updated ==


== special_score ==
== special_score ==
* <b>player</b> <small>(byte)</small>
* <b>player</b> <small>(byte)</small> - index of the scorer


== spy_pda_reset ==
== spy_pda_reset ==
Line 1,246: Line 1,395:
== sticky_jump_landed ==
== sticky_jump_landed ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small>
== stop_watch_changed ==


== store_pricesheet_updated ==
== store_pricesheet_updated ==


== tagged_player_as_it ==
== tagged_player_as_it ==
* <b>player</b> <small>(short)</small>
* <b>player</b> <small>(short)</small> - userid of the tagging player


== take_armor ==
== take_armor ==
Line 1,263: Line 1,410:


== team_info ==
== team_info ==
* <b>teamid</b> <small>(byte)</small>
info about team
* <b>teamname</b> <small>(string)</small>
* <b>teamid</b> <small>(byte)</small> - unique team id
* <b>teamname</b> <small>(string)</small> - team name eg "Team Blue"


== team_leader_killed ==
== team_leader_killed ==
* <b>killer</b> <small>(byte)</small>
* <b>killer</b> <small>(byte)</small> - index of the killer
* <b>victim</b> <small>(byte)</small>
* <b>victim</b> <small>(byte)</small> - index of the victim


== team_score ==
== team_score ==
* <b>teamid</b> <small>(byte)</small>
team score changed
* <b>score</b> <small>(short)</small>
* <b>teamid</b> <small>(byte)</small> - team id
* <b>score</b> <small>(short)</small> - total team score


== teamplay_alert ==
== teamplay_alert ==
* <b>alert_type</b> <small>(short)</small>
* <b>alert_type</b> <small>(short)</small> - which alert type is this (scramble, etc)?


== teamplay_broadcast_audio ==
== teamplay_broadcast_audio ==
* <b>team</b> <small>(byte)</small>
* <b>team</b> <small>(byte)</small> - which team should hear the broadcast. 0 will make everyone hear it.
* <b>sound</b> <small>(string)</small>
* <b>sound</b> <small>(string)</small> - sound to play
* <b>additional_flags</b> <small>(short)</small> - additional sound flags to pass through to sound system
* <b>player</b> <small>(short)</small> - entindex of the player source or -1


== teamplay_capture_blocked ==
== teamplay_capture_blocked ==
* <b>cp</b> <small>(byte)</small>
* <b>cp</b> <small>(byte)</small> - index of the point that was blocked
* <b>cpname</b> <small>(string)</small>
* <b>cpname</b> <small>(string)</small> - name of the point
* <b>blocker</b> <small>(byte)</small>
* <b>blocker</b> <small>(byte)</small> - index of the player that blocked the cap
* <b>victim</b> <small>(byte)</small>
* <b>victim</b> <small>(byte)</small> - index of the player that died, causing the block


== teamplay_capture_broken ==
== teamplay_capture_broken ==
Line 1,293: Line 1,444:


== teamplay_flag_event ==
== teamplay_flag_event ==
* <b>player</b> <small>(short)</small>
* <b>player</b> <small>(short)</small> - player this event involves
* <b>carrier</b> <small>(short)</small>
* <b>carrier</b> <small>(short)</small> - the carrier if needed
* <b>eventtype</b> <small>(short)</small>
* <b>eventtype</b> <small>(short)</small> - pick up, capture, defend, dropped
* <b>home</b> <small>(byte)</small>
* <b>home</b> <small>(byte)</small> - whether or not the flag was home (only set for TF_FLAGEVENT_PICKUP)
* <b>team</b> <small>(byte)</small>
* <b>team</b> <small>(byte)</small> - which team the flag belongs to


== teamplay_game_over ==
== teamplay_game_over ==
* <b>reason</b> <small>(string)</small>
* <b>reason</b> <small>(string)</small> - why the game is over ( timelimit, winlimit )


== teamplay_map_time_remaining ==
== teamplay_map_time_remaining ==
Line 1,310: Line 1,461:


== teamplay_point_captured ==
== teamplay_point_captured ==
* <b>cp</b> <small>(byte)</small>
* <b>cp</b> <small>(byte)</small> - index of the point that was captured
* <b>cpname</b> <small>(string)</small>
* <b>cpname</b> <small>(string)</small> - name of the point
* <b>team</b> <small>(byte)</small>
* <b>team</b> <small>(byte)</small> - which team capped
* <b>cappers</b> <small>(string)</small>
* <b>cappers</b> <small>(string)</small> - string where each character is a player index of someone that capped


== teamplay_point_locked ==
== teamplay_point_locked ==
* <b>cp</b> <small>(byte)</small>
* <b>cp</b> <small>(byte)</small> - index of the point being captured
* <b>cpname</b> <small>(string)</small>
* <b>cpname</b> <small>(string)</small> - name of the point
* <b>team</b> <small>(byte)</small>
* <b>team</b> <small>(byte)</small> - which team currently owns the point


== teamplay_point_startcapture ==
== teamplay_point_startcapture ==
* <b>cp</b> <small>(byte)</small>
* <b>cp</b> <small>(byte)</small> - index of the point being captured
* <b>cpname</b> <small>(string)</small>
* <b>cpname</b> <small>(string)</small> - name of the point
* <b>team</b> <small>(byte)</small>
* <b>team</b> <small>(byte)</small> - which team currently owns the point
* <b>capteam</b> <small>(byte)</small>
* <b>capteam</b> <small>(byte)</small> - which team is capping
* <b>cappers</b> <small>(string)</small>
* <b>cappers</b> <small>(string)</small> - string where each character is a player index of someone capping
* <b>captime</b> <small>(float)</small>
* <b>captime</b> <small>(float)</small> - time between when this cap started and when the point last changed hands


== teamplay_point_unlocked ==
== teamplay_point_unlocked ==
* <b>cp</b> <small>(byte)</small>
* <b>cp</b> <small>(byte)</small> - index of the point being captured
* <b>cpname</b> <small>(string)</small>
* <b>cpname</b> <small>(string)</small> - name of the point
* <b>team</b> <small>(byte)</small>
* <b>team</b> <small>(byte)</small> - which team currently owns the point


== teamplay_pre_round_time_left ==
== teamplay_pre_round_time_left ==
Line 1,341: Line 1,492:


== teamplay_round_active ==
== teamplay_round_active ==
called when round is active, players can move


== teamplay_round_restart_seconds ==
== teamplay_round_restart_seconds ==
Line 1,346: Line 1,498:


== teamplay_round_selected ==
== teamplay_round_selected ==
* <b>round</b> <small>(string)</small>
* <b>round</b> <small>(string)</small> - name of the round selected


== teamplay_round_stalemate ==
== teamplay_round_stalemate ==
* <b>reason</b> <small>(byte)</small>
* <b>reason</b> <small>(byte)</small> - why the stalemate is occuring


== teamplay_round_start ==
== teamplay_round_start ==
* <b>full_reset</b> <small>(bool)</small>
round restart
* <b>full_reset</b> <small>(bool)</small> - is this a full reset of the map


== teamplay_round_win ==
== teamplay_round_win ==
* <b>team</b> <small>(byte)</small>
* <b>team</b> <small>(byte)</small> - which team won the round
* <b>winreason</b> <small>(byte)</small>
* <b>winreason</b> <small>(byte)</small> - the reason the team won
* <b>flagcaplimit</b> <small>(short)</small>
* <b>flagcaplimit</b> <small>(short)</small> - if win reason was flag cap limit, the value of the flag cap limit
* <b>full_round</b> <small>(short)</small>
* <b>full_round</b> <small>(short)</small> - was this a full round or a mini-round
* <b>round_time</b> <small>(float)</small>
* <b>round_time</b> <small>(float)</small> - elapsed time of this round
* <b>losing_team_num_caps</b> <small>(short)</small>
* <b>losing_team_num_caps</b> <small>(short)</small> - # of caps this round by losing team
* <b>was_sudden_death</b> <small>(byte)</small>
* <b>was_sudden_death</b> <small>(byte)</small> - did a team win this after entering sudden death


== teamplay_setup_finished ==
== teamplay_setup_finished ==
Line 1,370: Line 1,523:


== teamplay_team_ready ==
== teamplay_team_ready ==
* <b>team</b> <small>(byte)</small>
* <b>team</b> <small>(byte)</small> - which team is ready


== teamplay_teambalanced_player ==
== teamplay_teambalanced_player ==
* <b>player</b> <small>(short)</small>
* <b>player</b> <small>(short)</small> - entindex of the player
* <b>team</b> <small>(byte)</small>
* <b>team</b> <small>(byte)</small> - which team the player is being moved to


== teamplay_timer_flash ==
== teamplay_timer_flash ==
* <b>time_remaining</b> <small>(short)</small>
* <b>time_remaining</b> <small>(short)</small> - how many seconds until the round ends


== teamplay_timer_time_added ==
== teamplay_timer_time_added ==
* <b>timer</b> <small>(short)</small>
* <b>timer</b> <small>(short)</small> - entindex of the timer
* <b>seconds_added</b> <small>(short)</small>
* <b>seconds_added</b> <small>(short)</small> - how many seconds were added to the round timer


== teamplay_update_timer ==
== teamplay_update_timer ==
Line 1,392: Line 1,545:


== teamplay_win_panel ==
== teamplay_win_panel ==
* <b>panel_style</b> <small>(byte)</small>
* <b>panel_style</b> <small>(byte)</small> - for client to determine layout
* <b>winning_team</b> <small>(byte)</small>
* <b>winning_team</b> <small>(byte)</small>
* <b>winreason</b> <small>(byte)</small>
* <b>winreason</b> <small>(byte)</small> - the reason the team won
* <b>cappers</b> <small>(string)</small>
* <b>cappers</b> <small>(string)</small> - string where each character is a player index of someone that capped
* <b>flagcaplimit</b> <small>(short)</small>
* <b>flagcaplimit</b> <small>(short)</small> - if win reason was flag cap limit, the value of the flag cap limit
* <b>blue_score</b> <small>(short)</small>
* <b>blue_score</b> <small>(short)</small> - red team score
* <b>red_score</b> <small>(short)</small>
* <b>red_score</b> <small>(short)</small> - blue team score
* <b>blue_score_prev</b> <small>(short)</small>
* <b>blue_score_prev</b> <small>(short)</small> - previous red team score
* <b>red_score_prev</b> <small>(short)</small>
* <b>red_score_prev</b> <small>(short)</small> - previous blue team score
* <b>round_complete</b> <small>(short)</small>
* <b>round_complete</b> <small>(short)</small> - is this a complete round, or the end of a mini-round
* <b>rounds_remaining</b> <small>(short)</small>
* <b>rounds_remaining</b> <small>(short)</small> - # of rounds remaining for wining team, if mini-round
* <b>player_1</b> <small>(short)</small>
* <b>player_1</b> <small>(short)</small>
* <b>player_1_points</b> <small>(short)</small>
* <b>player_1_points</b> <small>(short)</small>
Line 1,416: Line 1,569:


== tf_game_over ==
== tf_game_over ==
* <b>reason</b> <small>(string)</small>
* <b>reason</b> <small>(string)</small> - why the game is over ( timelimit, winlimit )


== tf_map_time_remaining ==
== tf_map_time_remaining ==
Line 1,422: Line 1,575:


== throwable_hit ==
== throwable_hit ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - user ID who died
* <b>victim_entindex</b> <small>(long)</small>
* <b>victim_entindex</b> <small>(long)</small>
* <b>inflictor_entindex</b> <small>(long)</small>
* <b>inflictor_entindex</b> <small>(long)</small> - ent index of inflictor (a sentry, for example)
* <b>attacker</b> <small>(short)</small>
* <b>attacker</b> <small>(short)</small> - user ID who killed
* <b>weapon</b> <small>(string)</small>
* <b>weapon</b> <small>(string)</small> - weapon name killer used
* <b>weaponid</b> <small>(short)</small>
* <b>weaponid</b> <small>(short)</small> - ID of weapon killed used
* <b>damagebits</b> <small>(long)</small>
* <b>damagebits</b> <small>(long)</small> - bits of type of damage
* <b>customkill</b> <small>(short)</small>
* <b>customkill</b> <small>(short)</small> - type of custom kill
* <b>assister</b> <small>(short)</small>
* <b>assister</b> <small>(short)</small> - user ID of assister
* <b>weapon_logclassname</b> <small>(string)</small>
* <b>weapon_logclassname</b> <small>(string)</small> - weapon name that should be printed on the log
* <b>stun_flags</b> <small>(short)</small>
* <b>stun_flags</b> <small>(short)</small> - victim's stun flags at the moment of death
* <b>death_flags</b> <small>(short)</small>
* <b>death_flags</b> <small>(short)</small> - death flags.
* <b>silent_kill</b> <small>(bool)</small>
* <b>silent_kill</b> <small>(bool)</small>
* <b>assister_fallback</b> <small>(string)</small>
* <b>assister_fallback</b> <small>(string)</small> - contains a string to use if "assister" is -1
* <b>totalhits</b> <small>(short)</small>
* <b>totalhits</b> <small>(short)</small> - Number of hits his player has done
 
== top_streams_request_finished ==


== tournament_enablecountdown ==
== tournament_enablecountdown ==


== tournament_stateupdate ==
== tournament_stateupdate ==
* <b>userid</b> <small>(short)</small>
* <b>userid</b> <small>(short)</small> - user ID on server
* <b>namechange</b> <small>(bool)</small>
* <b>namechange</b> <small>(bool)</small>
* <b>readystate</b> <small>(short)</small>
* <b>readystate</b> <small>(short)</small>
* <b>newname</b> <small>(string)</small>
* <b>newname</b> <small>(string)</small> - players new name


== training_complete ==
== training_complete ==
* <b>next_map</b> <small>(string)</small>
* <b>next_map</b> <small>(string)</small> - next map (if any)
* <b>map</b> <small>(string)</small>
* <b>map</b> <small>(string)</small> - the name of the map this screen is on.
* <b>text</b> <small>(string)</small>
* <b>text</b> <small>(string)</small> - text to show


== update_status_item ==
== update_status_item ==
Line 1,461: Line 1,612:


== user_data_downloaded ==
== user_data_downloaded ==
fired when achievements/stats are downloaded from Steam or XBox Live


== vote_cast ==
== vote_cast ==
* <b>vote_option</b> <small>(byte)</small>
* <b>vote_option</b> <small>(byte)</small> - which option the player voted on
* <b>team</b> <small>(short)</small>
* <b>team</b> <small>(short)</small>
* <b>entityid</b> <small>(long)</small>
* <b>entityid</b> <small>(long)</small> - entity id of the voter
* <b>voteidx</b> <small>(long)</small>
* <b>voteidx</b> <small>(long)</small>


Line 1,484: Line 1,636:


== vote_maps_changed ==
== vote_maps_changed ==
* <b>type</b> <small>(byte)</small>
* <b>defindex</b> <small>(long)</small>
* <b>created</b> <small>(bool)</small>
* <b>deleted</b> <small>(bool)</small>
* <b>erase_history</b> <small>(bool)</small>


== vote_options ==
== vote_options ==
* <b>count</b> <small>(byte)</small>
* <b>count</b> <small>(byte)</small> - Number of options - up to MAX_VOTE_OPTIONS
* <b>option1</b> <small>(string)</small>
* <b>option1</b> <small>(string)</small>
* <b>option2</b> <small>(string)</small>
* <b>option2</b> <small>(string)</small>
Line 1,504: Line 1,661:
* <b>param1</b> <small>(string)</small>
* <b>param1</b> <small>(string)</small>
* <b>team</b> <small>(byte)</small>
* <b>team</b> <small>(byte)</small>
* <b>initiator</b> <small>(long)</small>
* <b>initiator</b> <small>(long)</small> - entity id of the player who initiated the vote
* <b>voteidx</b> <small>(long)</small>
* <b>voteidx</b> <small>(long)</small>


Line 1,512: Line 1,669:


== winlimit_changed ==
== winlimit_changed ==
 
* <b>delay</b> <small>(float)</small>
== winpanel_show_scores ==
 
== world_status_changed ==

Revision as of 13:12, 3 September 2024

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

  • 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) - index of the node being passed

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 connected - we should only really have server listeners for this, due to the IP being exposed

  • 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

a game event, name may be 32 charaters long

  • 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 was disconnected

  • 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)
  • 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)
  • minicrit (bool)
  • allseecrit (bool)
  • weaponid (short)
  • bonuseffect (byte)

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

player shoot his weapon

  • userid (short) - user ID on server
  • weapon (byte) - weapon ID
  • mode (byte) - weapon mode

player_spawn

  • 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

player change his 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

sent when a player gets a whole new set of items

  • 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

scorestats_accumulated_update

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
  • 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)