Team Fortress 2/Scripting/Game Events: Difference between revisions
No edit summary  | 
				 (Distinguished Clientside events based on the SDK 2013 Build of Team Fortress 2)  | 
				||
| (19 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
{{toc-right}}  | |||
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.  | 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.  | ||
{{warning|Some events have parameter 'class' which cannot be accessed with dot syntax, i.e. <code>params.class</code>, as <code>class</code> is a reserved word in Squirrel. Instead, use string indexing like so: <code>params["class"]</code>}}  | |||
{{tip|To see what events fire during the game, download [https://raw.githubusercontent.com/ficool2/vscript_tf/refs/heads/main/scripts/vscripts/showevents.nut this script] (right click and ''Save Page''), place it into your <code>tf/scripts/vscripts/</code> folder and run <code>script_execute showevents</code> in console.}}  | |||
{{todo|Check which events are shared (if possible?)}}  | |||
== achievement_earned ==  | == Serverside ==  | ||
==== achievement_earned ====  | |||
* <b>player</b> <small>(byte)</small> - entindex of the player  | * <b>player</b> <small>(byte)</small> - entindex of the player  | ||
* <b>achievement</b> <small>(short)</small> - achievement ID  | * <b>achievement</b> <small>(short)</small> - achievement ID  | ||
==   | === achievement_event ===  | ||
==   | |||
* <b>achievement_name</b> <small>(string)</small> - non-localized name of achievement  | * <b>achievement_name</b> <small>(string)</small> - non-localized name of achievement  | ||
* <b>cur_val</b> <small>(short)</small> - # of steps toward achievement  | * <b>cur_val</b> <small>(short)</small> - # of steps toward achievement  | ||
* <b>max_val</b> <small>(short)</small> - total # of steps in achievement  | * <b>max_val</b> <small>(short)</small> - total # of steps in achievement  | ||
== achievement_increment ==  | === achievement_increment ===  | ||
* <b>achievement_id</b> <small>(long)</small> - ID of achievement that went up  | * <b>achievement_id</b> <small>(long)</small> - ID of achievement that went up  | ||
* <b>cur_val</b> <small>(short)</small> - # of steps toward achievement  | * <b>cur_val</b> <small>(short)</small> - # of steps toward achievement  | ||
* <b>max_val</b> <small>(short)</small> - total # of steps in achievement  | * <b>max_val</b> <small>(short)</small> - total # of steps in achievement  | ||
==   | === ammo_pickup ===  | ||
==   | |||
* <b>ammo_index</b> <small>(long)</small>  | * <b>ammo_index</b> <small>(long)</small>  | ||
* <b>amount</b> <small>(long)</small>  | * <b>amount</b> <small>(long)</small>  | ||
* <b>total</b> <small>(long)</small>  | * <b>total</b> <small>(long)</small>  | ||
== arena_match_maxstreak ==  | === arena_match_maxstreak ===  | ||
* <b>team</b> <small>(byte)</small>  | * <b>team</b> <small>(byte)</small>  | ||
* <b>streak</b> <small>(byte)</small>  | * <b>streak</b> <small>(byte)</small>  | ||
==   | === arena_round_start ===  | ||
==   | |||
called when round is active, players can move  | called when round is active, players can move  | ||
== arena_win_panel ==  | === arena_win_panel ===  | ||
* <b>panel_style</b> <small>(byte)</small> - for client to determine layout  | * <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>  | ||
| Line 79: | Line 74: | ||
* <b>player_6_kills</b> <small>(short)</small>  | * <b>player_6_kills</b> <small>(short)</small>  | ||
== arrow_impact ==  | === arrow_impact ===  | ||
* <b>attachedEntity</b> <small>(short)</small>  | * <b>attachedEntity</b> <small>(short)</small>  | ||
* <b>shooter</b> <small>(short)</small>  | * <b>shooter</b> <small>(short)</small>  | ||
| Line 92: | Line 87: | ||
* <b>isCrit</b> <small>(bool)</small>  | * <b>isCrit</b> <small>(bool)</small>  | ||
==   | === bonus_updated ===  | ||
==   | |||
* <b>numadvanced</b> <small>(short)</small>  | * <b>numadvanced</b> <small>(short)</small>  | ||
* <b>numbronze</b> <small>(short)</small>  | * <b>numbronze</b> <small>(short)</small>  | ||
| Line 101: | Line 93: | ||
* <b>numgold</b> <small>(short)</small>  | * <b>numgold</b> <small>(short)</small>  | ||
== break_breakable ==  | === break_breakable ===  | ||
* <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> - BREAK_GLASS, BREAK_WOOD, etc  | * <b>material</b> <small>(byte)</small> - BREAK_GLASS, BREAK_WOOD, etc  | ||
== break_prop ==  | === break_prop ===  | ||
* <b>entindex</b> <small>(long)</small>  | * <b>entindex</b> <small>(long)</small>  | ||
* <b>userid</b> <small>(short)</small>  | * <b>userid</b> <small>(short)</small>  | ||
==   | === building_healed ===  | ||
==   | |||
* <b>building</b> <small>(short)</small>  | * <b>building</b> <small>(short)</small>  | ||
* <b>healer</b> <small>(short)</small>  | * <b>healer</b> <small>(short)</small>  | ||
* <b>amount</b> <small>(short)</small>  | * <b>amount</b> <small>(short)</small>  | ||
==   | === christmas_gift_grab ===  | ||
==   | |||
* <b>userid</b> <small>(short)</small>  | * <b>userid</b> <small>(short)</small>  | ||
== cl_drawline ==  | === cl_drawline ===  | ||
* <b>player</b> <small>(byte)</small> - index of the player  | * <b>player</b> <small>(byte)</small> - index of the player  | ||
* <b>panel</b> <small>(byte)</small> - type of panel  | * <b>panel</b> <small>(byte)</small> - type of panel  | ||
| Line 134: | Line 117: | ||
* <b>y</b> <small>(float)</small>  | * <b>y</b> <small>(float)</small>  | ||
== client_beginconnect ==  | === client_beginconnect ===  | ||
client tries to connect to server  | client tries to connect to server  | ||
* <b>address</b> <small>(string)</small> - Name we used to connect to the server  | * <b>address</b> <small>(string)</small> - Name we used to connect to the server  | ||
| Line 141: | Line 124: | ||
* <b>source</b> <small>(string)</small> - what caused us to attempt this connection?  (blank for general command line, "serverbrowser", "quickplay", etc)  | * <b>source</b> <small>(string)</small> - what caused us to attempt this connection?  (blank for general command line, "serverbrowser", "quickplay", etc)  | ||
== client_connected ==  | === client_connected ===  | ||
client has completed the challenge / handshake process and is in SIGNONSTATE_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>address</b> <small>(string)</small> - Name we used to connect to the server  | ||
| Line 147: | Line 130: | ||
* <b>port</b> <small>(short)</small> - server port  | * <b>port</b> <small>(short)</small> - server port  | ||
== client_disconnect ==  | === client_disconnect ===  | ||
client side disconnect message  | 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  | * <b>message</b> <small>(string)</small> - Why are we disconnecting?  This could be a localization token or an English-language string  | ||
== client_fullconnect ==  | === client_fullconnect ===  | ||
* <b>address</b> <small>(string)</small> - Name we used to connect to the server  | * <b>address</b> <small>(string)</small> - Name we used to connect to the server  | ||
* <b>ip</b> <small>(long)</small>  | * <b>ip</b> <small>(long)</small>  | ||
* <b>port</b> <small>(short)</small> - server port  | * <b>port</b> <small>(short)</small> - server port  | ||
== competitive_stats_update ==  | === competitive_stats_update ===  | ||
* <b>index</b> <small>(short)</small> - entindex of the player  | * <b>index</b> <small>(short)</small> - entindex of the player  | ||
* <b>kills_rank</b> <small>(byte)</small> - num std deviations above  | * <b>kills_rank</b> <small>(byte)</small> - num std deviations above  | ||
| Line 164: | Line 147: | ||
* <b>support_rank</b> <small>(byte)</small>  | * <b>support_rank</b> <small>(byte)</small>  | ||
== competitive_victory ==  | === competitive_victory ===  | ||
== conga_kill ==  | === conga_kill ===  | ||
* <b>index</b> <small>(short)</small> - entindex of the player  | * <b>index</b> <small>(short)</small> - entindex of the player  | ||
== controlpoint_endtouch ==  | === controlpoint_endtouch ===  | ||
* <b>player</b> <small>(short)</small> - entindex of the player  | * <b>player</b> <small>(short)</small> - entindex of the player  | ||
* <b>area</b> <small>(short)</small> - index of the control point area  | * <b>area</b> <small>(short)</small> - index of the control point area  | ||
== controlpoint_fake_capture ==  | === controlpoint_fake_capture ===  | ||
* <b>player</b> <small>(short)</small> - entindex of the player  | * <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> - entindex of the player  | * <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_pulse_element ===  | ||
==   | |||
* <b>player</b> <small>(short)</small> - entindex of the player  | * <b>player</b> <small>(short)</small> - entindex of the player  | ||
== controlpoint_starttouch ==  | === controlpoint_starttouch ===  | ||
* <b>player</b> <small>(short)</small> - entindex of the player  | * <b>player</b> <small>(short)</small> - entindex of the player  | ||
* <b>area</b> <small>(short)</small> - index of the control point area  | * <b>area</b> <small>(short)</small> - index of the control point area  | ||
==   | === controlpoint_updatecapping ===  | ||
==   | |||
* <b>index</b> <small>(short)</small> - index of the cap being updated  | * <b>index</b> <small>(short)</small> - index of the cap being updated  | ||
== controlpoint_updateimages ==  | === controlpoint_updateimages ===  | ||
* <b>index</b> <small>(short)</small> - index of the cap being updated  | * <b>index</b> <small>(short)</small> - index of the cap being updated  | ||
== controlpoint_updatelayout ==  | === controlpoint_updatelayout ===  | ||
* <b>index</b> <small>(short)</small> - index of the cap being updated  | * <b>index</b> <small>(short)</small> - index of the cap being updated  | ||
== controlpoint_updateowner ==  | === controlpoint_updateowner ===  | ||
* <b>index</b> <small>(short)</small> - index of the cap being updated  | * <b>index</b> <small>(short)</small> - index of the cap being updated  | ||
== cross_spectral_bridge ==  | === cross_spectral_bridge ===  | ||
* <b>player</b> <small>(short)</small> - userid of the player that crossed  | * <b>player</b> <small>(short)</small> - userid of the player that crossed  | ||
== crossbow_heal ==  | === crossbow_heal ===  | ||
* <b>healer</b> <small>(byte)</small> - userid of the Healer  | * <b>healer</b> <small>(byte)</small> - userid of the Healer  | ||
* <b>target</b> <small>(byte)</small> - userid of the player that got hit  | * <b>target</b> <small>(byte)</small> - userid of the player that got hit  | ||
* <b>amount</b> <small>(short)</small> - amount that was healed  | * <b>amount</b> <small>(short)</small> - amount that was healed  | ||
== ctf_flag_captured ==  | === ctf_flag_captured ===  | ||
* <b>capping_team</b> <small>(short)</small>  | * <b>capping_team</b> <small>(short)</small>  | ||
* <b>capping_team_score</b> <small>(short)</small>  | * <b>capping_team_score</b> <small>(short)</small>  | ||
== damage_mitigated ==  | === damage_mitigated ===  | ||
* <b>mitigator</b> <small>(byte)</small> - userid of the player who provided the mitigation  | * <b>mitigator</b> <small>(byte)</small> - userid of the player who provided the mitigation  | ||
* <b>damaged</b> <small>(byte)</small> - userid of the player who took the damage  | * <b>damaged</b> <small>(byte)</small> - userid of the player who took the damage  | ||
| Line 228: | Line 201: | ||
* <b>itemdefindex</b> <small>(short)</small> - defindex of the item that provided the mitigation  | * <b>itemdefindex</b> <small>(short)</small> - defindex of the item that provided the mitigation  | ||
== damage_prevented ==  | === damage_prevented ===  | ||
* <b>preventor</b> <small>(short)</small> - Who prevented the damage  | * <b>preventor</b> <small>(short)</small> - Who prevented the damage  | ||
* <b>victim</b> <small>(short)</small> - Who took the damage that was prevented  | * <b>victim</b> <small>(short)</small> - Who took the damage that was prevented  | ||
| Line 234: | Line 207: | ||
* <b>condition</b> <small>(short)</small> - Which condition did the preventing  | * <b>condition</b> <small>(short)</small> - Which condition did the preventing  | ||
== damage_resisted ==  | === damage_resisted ===  | ||
* <b>entindex</b> <small>(byte)</small>  | * <b>entindex</b> <small>(byte)</small>  | ||
== deadringer_cheat_death ==  | === deadringer_cheat_death ===  | ||
* <b>spy</b> <small>(byte)</small> - userid of the Spy that cheat the death  | * <b>spy</b> <small>(byte)</small> - userid of the Spy that cheat the death  | ||
* <b>attacker</b> <small>(byte)</small> - userid of the player that caused the cheat death to happen  | * <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> - entindex of the detonating player  | * <b>player</b> <small>(short)</small> - entindex of the detonating player  | ||
== deploy_buff_banner ==  | === deploy_buff_banner ===  | ||
* <b>buff_type</b> <small>(byte)</small> - type of buff (skin index)  | * <b>buff_type</b> <small>(byte)</small> - type of buff (skin index)  | ||
* <b>buff_owner</b> <small>(short)</small> - user ID of the person who gets the banner  | * <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> - which team opened the rocket  | * <b>team</b> <small>(byte)</small> - which team opened the rocket  | ||
==   | === duel_status ===  | ||
==   | |||
* <b>killer</b> <small>(short)</small>  | * <b>killer</b> <small>(short)</small>  | ||
* <b>score_type</b> <small>(short)</small>  | * <b>score_type</b> <small>(short)</small>  | ||
| Line 262: | Line 232: | ||
* <b>target_score</b> <small>(short)</small>  | * <b>target_score</b> <small>(short)</small>  | ||
==   | === enter_vehicle ===  | ||
==   | |||
* <b>vehicle</b> <small>(long)</small> - entindex of the vehicle  | * <b>vehicle</b> <small>(long)</small> - entindex of the vehicle  | ||
==   | === entity_killed ===  | ||
==   | |||
* <b>entindex_killed</b> <small>(long)</small>  | * <b>entindex_killed</b> <small>(long)</small>  | ||
* <b>entindex_attacker</b> <small>(long)</small>  | * <b>entindex_attacker</b> <small>(long)</small>  | ||
| Line 275: | Line 241: | ||
* <b>damagebits</b> <small>(long)</small>  | * <b>damagebits</b> <small>(long)</small>  | ||
== environmental_death ==  | === environmental_death ===  | ||
* <b>killer</b> <small>(byte)</small> - index of the killer  | * <b>killer</b> <small>(byte)</small> - index of the killer  | ||
* <b>victim</b> <small>(byte)</small> - index of the victim  | * <b>victim</b> <small>(byte)</small> - index of the victim  | ||
== escape_hell ==  | === escape_hell ===  | ||
* <b>player</b> <small>(short)</small> - userid of the player that escaped  | * <b>player</b> <small>(short)</small> - userid of the player that escaped  | ||
== escaped_loot_island ==  | === escaped_loot_island ===  | ||
* <b>player</b> <small>(short)</small> - userid of the escaping player  | * <b>player</b> <small>(short)</small> - userid of the escaping player  | ||
==   | === eyeball_boss_escape_imminent ===  | ||
* <b>level</b> <small>(short)</small>  | * <b>level</b> <small>(short)</small>  | ||
* <b>time_remaining</b> <small>(byte)</small>  | * <b>time_remaining</b> <small>(byte)</small>  | ||
== eyeball_boss_escaped ==  | === eyeball_boss_escaped ===  | ||
* <b>level</b> <small>(short)</small>  | * <b>level</b> <small>(short)</small>  | ||
== eyeball_boss_killed ==  | === eyeball_boss_killed ===  | ||
* <b>level</b> <small>(short)</small>  | * <b>level</b> <small>(short)</small>  | ||
== eyeball_boss_killer ==  | === eyeball_boss_killer ===  | ||
* <b>level</b> <small>(short)</small>  | * <b>level</b> <small>(short)</small>  | ||
* <b>player_entindex</b> <small>(byte)</small>  | * <b>player_entindex</b> <small>(byte)</small>  | ||
== eyeball_boss_stunned ==  | === eyeball_boss_stunned ===  | ||
* <b>level</b> <small>(short)</small>  | * <b>level</b> <small>(short)</small>  | ||
* <b>player_entindex</b> <small>(byte)</small>  | * <b>player_entindex</b> <small>(byte)</small>  | ||
== eyeball_boss_summoned ==  | === eyeball_boss_summoned ===  | ||
* <b>level</b> <small>(short)</small>  | * <b>level</b> <small>(short)</small>  | ||
== fish_notice ==  | === fish_notice ===  | ||
* <b>userid</b> <small>(short)</small> - user ID who died  | * <b>userid</b> <small>(short)</small> - user ID who died  | ||
* <b>victim_entindex</b> <small>(long)</small>  | * <b>victim_entindex</b> <small>(long)</small>  | ||
| Line 336: | Line 288: | ||
* <b>assister_fallback</b> <small>(string)</small> - contains a string to use if "assister" is -1  | * <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> - user ID who died  | * <b>userid</b> <small>(short)</small> - user ID who died  | ||
* <b>victim_entindex</b> <small>(long)</small>  | * <b>victim_entindex</b> <small>(long)</small>  | ||
| Line 352: | Line 304: | ||
* <b>assister_fallback</b> <small>(string)</small> - contains a string to use if "assister" is -1  | * <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 ===  | ||
==   | === flare_ignite_npc ===  | ||
==   | |||
* <b>entindex</b> <small>(long)</small> - entity ignited  | * <b>entindex</b> <small>(long)</small> - entity ignited  | ||
== game_end ==  | === game_end ===  | ||
a game ended  | a game ended  | ||
* <b>winner</b> <small>(byte)</small> - winner team/user id  | * <b>winner</b> <small>(byte)</small> - winner team/user id  | ||
== game_init ==  | === game_init ===  | ||
sent when a new game is started  | sent when a new game is started  | ||
== game_message ==  | === game_message ===  | ||
a message send by game logic to everyone  | a message send by game logic to everyone  | ||
* <b>target</b> <small>(byte)</small> - 0 = console, 1 = HUD  | * <b>target</b> <small>(byte)</small> - 0 = console, 1 = HUD  | ||
* <b>text</b> <small>(string)</small> - the message text  | * <b>text</b> <small>(string)</small> - the message text  | ||
==   | === game_start ===  | ||
==   | |||
a new game starts  | a new game starts  | ||
* <b>roundslimit</b> <small>(long)</small> - max round  | * <b>roundslimit</b> <small>(long)</small> - max round  | ||
| Line 386: | Line 329: | ||
* <b>objective</b> <small>(string)</small> - round objective  | * <b>objective</b> <small>(string)</small> - round objective  | ||
== gameui_activate =  | === gameui_activate ===  | ||
==   | === gameui_hide ===  | ||
== halloween_boss_killed ==  | === halloween_boss_killed ===  | ||
* <b>boss</b> <small>(short)</small> - 1=HHH 2=Monoculus 3=Merasmus  | * <b>boss</b> <small>(short)</small> - 1=HHH 2=Monoculus 3=Merasmus  | ||
* <b>killer</b> <small>(short)</small> - userid of the killing player  | * <b>killer</b> <small>(short)</small> - userid of the killing player  | ||
== halloween_duck_collected ==  | === halloween_duck_collected ===  | ||
* <b>collector</b> <small>(short)</small> - userid of the collecting player  | * <b>collector</b> <small>(short)</small> - userid of the collecting player  | ||
== halloween_pumpkin_grab ==  | === halloween_pumpkin_grab ===  | ||
* <b>userid</b> <small>(short)</small>  | * <b>userid</b> <small>(short)</small>  | ||
== halloween_skeleton_killed ==  | === halloween_skeleton_killed ===  | ||
* <b>player</b> <small>(short)</small> - userid of the player that killed the skeleton  | * <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> - userid of the intended target  | * <b>intended_target</b> <small>(byte)</small> - userid of the intended target  | ||
* <b>collecting_player</b> <small>(byte)</small> - userid of the player who picked up the soul  | * <b>collecting_player</b> <small>(byte)</small> - userid of the player who picked up the soul  | ||
* <b>soul_count</b> <small>(byte)</small> - number of souls collected (gift boxes)  | * <b>soul_count</b> <small>(byte)</small> - number of souls collected (gift boxes)  | ||
== helicopter_grenade_punt_miss =  | === helicopter_grenade_punt_miss ===  | ||
==   | === host_quit ===  | ||
==   | === intro_finish ===  | ||
==   | |||
* <b>player</b> <small>(short)</small> - entindex of the player  | * <b>player</b> <small>(short)</small> - entindex of the player  | ||
== intro_nextcamera ==  | === intro_nextcamera ===  | ||
* <b>player</b> <small>(short)</small> - entindex of the player  | * <b>player</b> <small>(short)</small> - entindex of the player  | ||
==   | === item_found ===  | ||
==   | |||
* <b>player</b> <small>(byte)</small> - entindex of the player  | * <b>player</b> <small>(byte)</small> - entindex of the player  | ||
* <b>quality</b> <small>(byte)</small> - quality of the item  | * <b>quality</b> <small>(byte)</small> - quality of the item  | ||
| Line 452: | Line 370: | ||
* <b>wear</b> <small>(float)</small>  | * <b>wear</b> <small>(float)</small>  | ||
== item_pickup ==  | === item_pickup ===  | ||
* <b>userid</b> <small>(short)</small>  | * <b>userid</b> <small>(short)</small>  | ||
* <b>item</b> <small>(string)</small>  | * <b>item</b> <small>(string)</small>  | ||
== item_schema_initialized =  | === item_schema_initialized ===  | ||
== kill_in_hell ==  | === kill_in_hell ===  | ||
* <b>killer</b> <small>(short)</small> - userid of the killer  | * <b>killer</b> <small>(short)</small> - userid of the killer  | ||
* <b>victim</b> <small>(short)</small> - userid of the victim  | * <b>victim</b> <small>(short)</small> - userid of the victim  | ||
== kill_refills_meter ==  | === kill_refills_meter ===  | ||
* <b>index</b> <small>(short)</small> - entindex of the player  | * <b>index</b> <small>(short)</small> - entindex of the player  | ||
== killed_capping_player ==  | === killed_capping_player ===  | ||
* <b>cp</b> <small>(byte)</small> - index of the point  | * <b>cp</b> <small>(byte)</small> - index of the point  | ||
* <b>killer</b> <small>(byte)</small> - index of the killer  | * <b>killer</b> <small>(byte)</small> - index of the killer  | ||
| Line 475: | Line 389: | ||
* <b>assister</b> <small>(byte)</small> - index of the assister  | * <b>assister</b> <small>(byte)</small> - index of the assister  | ||
==   | === leave_vehicle ===  | ||
==   | |||
* <b>vehicle</b> <small>(long)</small> - entindex of the vehicle  | * <b>vehicle</b> <small>(long)</small> - entindex of the vehicle  | ||
==   | === medic_death ===  | ||
* <b>userid</b> <small>(short)</small> - user ID who died  | * <b>userid</b> <small>(short)</small> - user ID who died  | ||
* <b>attacker</b> <small>(short)</small> - user ID who killed  | * <b>attacker</b> <small>(short)</small> - user ID who killed  | ||
| Line 526: | Line 398: | ||
* <b>charged</b> <small>(bool)</small> - had a full ubercharge?  | * <b>charged</b> <small>(bool)</small> - had a full ubercharge?  | ||
== medic_defended ==  | === medic_defended ===  | ||
* <b>userid</b> <small>(short)</small>  | * <b>userid</b> <small>(short)</small>  | ||
* <b>medic</b> <small>(short)</small>  | * <b>medic</b> <small>(short)</small>  | ||
== medigun_shield_blocked_damage ==  | === medigun_shield_blocked_damage ===  | ||
* <b>userid</b> <small>(short)</small> - user ID of the player using the shield  | * <b>userid</b> <small>(short)</small> - user ID of the player using the shield  | ||
* <b>damage</b> <small>(float)</small> - damage that was blocked  | * <b>damage</b> <small>(float)</small> - damage that was blocked  | ||
== merasmus_escape_warning ==  | === merasmus_escape_warning ===  | ||
* <b>level</b> <small>(short)</small>  | * <b>level</b> <small>(short)</small>  | ||
* <b>time_remaining</b> <small>(byte)</small>  | * <b>time_remaining</b> <small>(byte)</small>  | ||
== merasmus_escaped ==  | === merasmus_escaped ===  | ||
* <b>level</b> <small>(short)</small>  | * <b>level</b> <small>(short)</small>  | ||
== merasmus_killed ==  | === merasmus_killed ===  | ||
* <b>level</b> <small>(short)</small>  | * <b>level</b> <small>(short)</small>  | ||
== merasmus_prop_found ==  | === merasmus_prop_found ===  | ||
* <b>player</b> <small>(short)</small> - userid of the player that found the prop Merasmus was hiding in  | * <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> - userid of the stunning player  | * <b>player</b> <small>(short)</small> - userid of the stunning player  | ||
== merasmus_summoned ==  | === merasmus_summoned ===  | ||
* <b>level</b> <small>(short)</small>  | * <b>level</b> <small>(short)</small>  | ||
== minigame_win ==  | === minigame_win ===  | ||
* <b>team</b> <small>(byte)</small> - which team won the minigame  | * <b>team</b> <small>(byte)</small> - which team won the minigame  | ||
* <b>type</b> <small>(byte)</small> - what type of minigame was won  | * <b>type</b> <small>(byte)</small> - what type of minigame was won  | ||
== minigame_won ==  | === minigame_won ===  | ||
* <b>player</b> <small>(short)</small> - userid of the winning player  | * <b>player</b> <small>(short)</small> - userid of the winning player  | ||
* <b>game</b> <small>(short)</small> - index of the game  | * <b>game</b> <small>(short)</small> - index of the game  | ||
== mvm_adv_wave_complete_no_gates ==  | === mvm_adv_wave_complete_no_gates ===  | ||
* <b>index</b> <small>(short)</small> - wave index  | * <b>index</b> <small>(short)</small> - wave index  | ||
== mvm_adv_wave_killed_stun_radio ==  | === mvm_adv_wave_killed_stun_radio ===  | ||
== mvm_begin_wave ==  | === mvm_begin_wave ===  | ||
* <b>wave_index</b> <small>(short)</small>  | * <b>wave_index</b> <small>(short)</small>  | ||
* <b>max_waves</b> <small>(short)</small>  | * <b>max_waves</b> <small>(short)</small>  | ||
* <b>advanced</b> <small>(short)</small>  | * <b>advanced</b> <small>(short)</small>  | ||
== mvm_bomb_alarm_triggered ==  | === mvm_bomb_alarm_triggered ===  | ||
== mvm_bomb_carrier_killed ==  | === mvm_bomb_carrier_killed ===  | ||
* <b>level</b> <small>(short)</small> - upgrade level of the carrier  | * <b>level</b> <small>(short)</small> - upgrade level of the carrier  | ||
== mvm_bomb_deploy_reset_by_player ==  | === mvm_bomb_deploy_reset_by_player ===  | ||
* <b>player</b> <small>(short)</small>  | * <b>player</b> <small>(short)</small>  | ||
== mvm_bomb_reset_by_player ==  | === mvm_bomb_reset_by_player ===  | ||
* <b>player</b> <small>(short)</small>  | * <b>player</b> <small>(short)</small>  | ||
== mvm_creditbonus_all ==  | === mvm_creditbonus_all ===  | ||
== mvm_creditbonus_all_advanced ==  | === mvm_creditbonus_all_advanced ===  | ||
== mvm_creditbonus_wave ==  | === mvm_creditbonus_wave ===  | ||
== mvm_kill_robot_delivering_bomb ==  | === mvm_kill_robot_delivering_bomb ===  | ||
* <b>player</b> <small>(short)</small> - entindex of the player  | * <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> - entindex of the player  | * <b>player</b> <small>(short)</small> - entindex of the player  | ||
== mvm_mission_complete ==  | === mvm_mission_complete ===  | ||
* <b>mission</b> <small>(string)</small>  | * <b>mission</b> <small>(string)</small>  | ||
== mvm_mission_update ==  | === mvm_mission_update ===  | ||
* <b>class</b> <small>(short)</small>  | * <b>class</b> <small>(short)</small>  | ||
* <b>count</b> <small>(short)</small>  | * <b>count</b> <small>(short)</small>  | ||
== mvm_pickup_currency ==  | === mvm_pickup_currency ===  | ||
* <b>player</b> <small>(short)</small> - entindex of the player  | * <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> - entindex of the player  | * <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> - entindex of the player  | * <b>player</b> <small>(short)</small> - entindex of the player  | ||
== mvm_sentrybuster_detonate ==  | === mvm_sentrybuster_detonate ===  | ||
* <b>player</b> <small>(short)</small> - entindex of the target player  | * <b>player</b> <small>(short)</small> - entindex of the target player  | ||
* <b>det_x</b> <small>(float)</small> - origin of the sentry buster  | * <b>det_x</b> <small>(float)</small> - origin of the sentry buster  | ||
| Line 621: | Line 493: | ||
* <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> - entindex  | * <b>sentry_buster</b> <small>(short)</small> - entindex  | ||
== mvm_sniper_headshot_currency ==  | === mvm_sniper_headshot_currency ===  | ||
* <b>userid</b> <small>(short)</small> - user ID of the player  | * <b>userid</b> <small>(short)</small> - user ID of the player  | ||
* <b>currency</b> <small>(short)</small> - currency collected  | * <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> - is this an advanced popfile  | * <b>advanced</b> <small>(bool)</small> - is this an advanced popfile  | ||
== mvm_wave_failed ==  | === mvm_wave_failed ===  | ||
== nav_blocked ==  | === nav_blocked ===  | ||
* <b>area</b> <small>(long)</small>  | * <b>area</b> <small>(long)</small>  | ||
* <b>blocked</b> <small>(bool)</small>  | * <b>blocked</b> <small>(bool)</small>  | ||
== npc_hurt ==  | === npc_hurt ===  | ||
Fired when an Engineer building ([[obj_sentrygun]], [[obj_dispenser]], [[obj_teleporter]]), [[base_boss]], MvM tank ([[tank_boss]]) or Halloween enemy ([[headless_hatman]], [[eyeball_boss]], [[merasmus]], [[tf_zombie]]) is damaged.  | Fired when an Engineer building ([[obj_sentrygun]], [[obj_dispenser]], [[obj_teleporter]]), [[base_boss]], MvM tank ([[tank_boss]]) or Halloween enemy ([[headless_hatman]], [[eyeball_boss]], [[merasmus]], [[tf_zombie]]) is damaged.  | ||
* <b>entindex</b> <small>(short)</small>  | * <b>entindex</b> <small>(short)</small>  | ||
| Line 649: | Line 521: | ||
* <b>boss</b> <small>(short)</small> - 1=HHH 2=Monoculus 3=Merasmus  | * <b>boss</b> <small>(short)</small> - 1=HHH 2=Monoculus 3=Merasmus  | ||
== num_cappers_changed ==  | === num_cappers_changed ===  | ||
* <b>index</b> <small>(short)</small> - index of the trigger  | * <b>index</b> <small>(short)</small> - index of the trigger  | ||
* <b>count</b> <small>(byte)</small> - number of cappers (-1 for blocked)  | * <b>count</b> <small>(byte)</small> - number of cappers (-1 for blocked)  | ||
== object_deflected ==  | === object_deflected ===  | ||
* <b>userid</b> <small>(short)</small> - player who deflected the object  | * <b>userid</b> <small>(short)</small> - player who deflected the object  | ||
* <b>ownerid</b> <small>(short)</small> - owner of the object  | * <b>ownerid</b> <small>(short)</small> - owner of the object  | ||
| Line 659: | Line 531: | ||
* <b>object_entindex</b> <small>(short)</small> - entindex of the object that got deflected  | * <b>object_entindex</b> <small>(short)</small> - entindex of the object that got deflected  | ||
== object_destroyed ==  | === object_destroyed ===  | ||
* <b>userid</b> <small>(short)</small> - user ID who died  | * <b>userid</b> <small>(short)</small> - user ID who died  | ||
* <b>attacker</b> <small>(short)</small> - user ID who killed  | * <b>attacker</b> <small>(short)</small> - user ID who killed  | ||
| Line 670: | Line 542: | ||
* <b>team</b> <small>(short)</small> - building's team  | * <b>team</b> <small>(short)</small> - building's team  | ||
== object_detonated ==  | === object_detonated ===  | ||
* <b>userid</b> <small>(short)</small> - user ID of the object owner  | * <b>userid</b> <small>(short)</small> - user ID of the object owner  | ||
* <b>objecttype</b> <small>(short)</small> - type of object removed  | * <b>objecttype</b> <small>(short)</small> - type of object removed  | ||
* <b>index</b> <small>(short)</small> - index of the object removed  | * <b>index</b> <small>(short)</small> - index of the object removed  | ||
== object_removed ==  | === object_removed ===  | ||
* <b>userid</b> <small>(short)</small> - user ID of the object owner  | * <b>userid</b> <small>(short)</small> - user ID of the object owner  | ||
* <b>objecttype</b> <small>(short)</small> - type of object removed  | * <b>objecttype</b> <small>(short)</small> - type of object removed  | ||
* <b>index</b> <small>(short)</small> - index of the object removed  | * <b>index</b> <small>(short)</small> - index of the object removed  | ||
== overtime_nag ==  | === overtime_nag ===  | ||
==   | === pass_ball_blocked ===  | ||
* <b>owner</b> <small>(short)</small>  | * <b>owner</b> <small>(short)</small>  | ||
* <b>blocker</b> <small>(short)</small>  | * <b>blocker</b> <small>(short)</small>  | ||
== pass_ball_stolen ==  | === pass_ball_stolen ===  | ||
* <b>victim</b> <small>(short)</small>  | * <b>victim</b> <small>(short)</small>  | ||
* <b>attacker</b> <small>(short)</small>  | * <b>attacker</b> <small>(short)</small>  | ||
== pass_free ==  | === pass_free ===  | ||
* <b>owner</b> <small>(short)</small>  | * <b>owner</b> <small>(short)</small>  | ||
* <b>attacker</b> <small>(short)</small>  | * <b>attacker</b> <small>(short)</small>  | ||
== pass_get ==  | === pass_get ===  | ||
* <b>owner</b> <small>(short)</small>  | * <b>owner</b> <small>(short)</small>  | ||
* <b>team</b> <small>(short)</small>  | * <b>team</b> <small>(short)</small>  | ||
== pass_pass_caught ==  | === pass_pass_caught ===  | ||
* <b>passer</b> <small>(short)</small>  | * <b>passer</b> <small>(short)</small>  | ||
* <b>catcher</b> <small>(short)</small>  | * <b>catcher</b> <small>(short)</small>  | ||
| Line 732: | Line 576: | ||
* <b>duration</b> <small>(float)</small>  | * <b>duration</b> <small>(float)</small>  | ||
== pass_score ==  | === pass_score ===  | ||
* <b>scorer</b> <small>(short)</small>  | * <b>scorer</b> <small>(short)</small>  | ||
* <b>assister</b> <small>(short)</small>  | * <b>assister</b> <small>(short)</small>  | ||
* <b>points</b> <small>(byte)</small>  | * <b>points</b> <small>(byte)</small>  | ||
== path_track_passed ==  | === path_track_passed ===  | ||
* <b>index</b> <small>(short)</small> -   | * <b>index</b> <small>(short)</small> - [[CHandle|entity handle]] of the node being passed (not the index!)  | ||
{{tip|To retrieve the entity index and therefore the script handle: <code>EntIndexToHScript(params.index & (Constants.Server.MAX_EDICTS - 1))</code>}}  | |||
== payload_pushed ==  | === payload_pushed ===  | ||
* <b>pusher</b> <small>(byte)</small> - userid of the player who pushed  | * <b>pusher</b> <small>(byte)</small> - userid of the player who pushed  | ||
* <b>distance</b> <small>(short)</small> - how far they pushed  | * <b>distance</b> <small>(short)</small> - how far they pushed  | ||
== physgun_pickup ==  | === physgun_pickup ===  | ||
* <b>entindex</b> <small>(long)</small> - entity picked up  | * <b>entindex</b> <small>(long)</small> - entity picked up  | ||
== player_abandoned_match ==  | === player_abandoned_match ===  | ||
* <b>game_over</b> <small>(bool)</small>  | * <b>game_over</b> <small>(bool)</small>  | ||
==   | === player_activate ===  | ||
==   | |||
* <b>userid</b> <small>(short)</small> - user ID on server  | * <b>userid</b> <small>(short)</small> - user ID on server  | ||
== player_askedforball ==  | === player_askedforball ===  | ||
* <b>userid</b> <small>(short)</small>  | * <b>userid</b> <small>(short)</small>  | ||
==   | === player_buff ===  | ||
==   | |||
* <b>userid</b> <small>(short)</small> - user ID of the player the buff is being applied to  | * <b>userid</b> <small>(short)</small> - user ID of the player the buff is being applied to  | ||
* <b>buff_owner</b> <small>(short)</small> - user ID of the player with the banner  | * <b>buff_owner</b> <small>(short)</small> - user ID of the player with the banner  | ||
* <b>buff_type</b> <small>(byte)</small> - type of buff  | * <b>buff_type</b> <small>(byte)</small> - type of buff  | ||
== player_builtobject ==  | === player_builtobject ===  | ||
* <b>userid</b> <small>(short)</small> - user ID of the builder  | * <b>userid</b> <small>(short)</small> - user ID of the builder  | ||
* <b>object</b> <small>(short)</small> - type of object built  | * <b>object</b> <small>(short)</small> - type of object built  | ||
* <b>index</b> <small>(short)</small> - index of the object  | * <b>index</b> <small>(short)</small> - index of the object  | ||
== player_buyback ==  | === player_buyback ===  | ||
* <b>player</b> <small>(short)</small>  | * <b>player</b> <small>(short)</small>  | ||
* <b>cost</b> <small>(short)</small>  | * <b>cost</b> <small>(short)</small>  | ||
==   | === player_carryobject ===  | ||
==   | |||
* <b>userid</b> <small>(short)</small> - user ID of the builder  | * <b>userid</b> <small>(short)</small> - user ID of the builder  | ||
* <b>object</b> <small>(short)</small> - type of object built  | * <b>object</b> <small>(short)</small> - type of object built  | ||
* <b>index</b> <small>(short)</small> - index of the object  | * <b>index</b> <small>(short)</small> - index of the object  | ||
== player_changeclass ==  | === player_changeclass ===  | ||
* <b>userid</b> <small>(short)</small> - user ID who changed class  | * <b>userid</b> <small>(short)</small> - user ID who changed class  | ||
* <b>class</b> <small>(short)</small> - class that they changed to  | * <b>class</b> <small>(short)</small> - class that they changed to  | ||
== player_changename ==  | === player_changename ===  | ||
* <b>userid</b> <small>(short)</small> - user ID on server  | * <b>userid</b> <small>(short)</small> - user ID on server  | ||
* <b>oldname</b> <small>(string)</small> - players old (current) name  | * <b>oldname</b> <small>(string)</small> - players old (current) name  | ||
* <b>newname</b> <small>(string)</small> - players new name  | * <b>newname</b> <small>(string)</small> - players new name  | ||
== player_chargedeployed ==  | === player_chargedeployed ===  | ||
* <b>userid</b> <small>(short)</small> - user ID of medic who deployed charge  | * <b>userid</b> <small>(short)</small> - user ID of medic who deployed charge  | ||
* <b>targetid</b> <small>(short)</small> - user ID of who the medic charged  | * <b>targetid</b> <small>(short)</small> - user ID of who the medic charged  | ||
== player_chat ==  | === player_chat ===  | ||
a public player chat  | a public player chat  | ||
* <b>teamonly</b> <small>(bool)</small> - true if team only chat  | * <b>teamonly</b> <small>(bool)</small> - true if team only chat  | ||
| Line 806: | Line 639: | ||
* <b>text</b> <small>(string)</small> - chat text  | * <b>text</b> <small>(string)</small> - chat text  | ||
== player_class ==  | === player_class ===  | ||
a player changed his class  | a player changed his class  | ||
* <b>userid</b> <small>(short)</small> - user ID on server  | * <b>userid</b> <small>(short)</small> - user ID on server  | ||
* <b>class</b> <small>(string)</small> - new player class / model  | * <b>class</b> <small>(string)</small> - new player class / model  | ||
== player_connect ==  | === player_connect ===  | ||
A new client has connected. This does NOT fire between level changes as the player is already connected. Use <code>player_spawn</code> instead if you need to catch every player entity that is created.  | |||
* <b>name</b> <small>(string)</small> - player name  | * <b>name</b> <small>(string)</small> - player name  | ||
* <b>index</b> <small>(byte)</small> - player slot (entity index-1)  | * <b>index</b> <small>(byte)</small> - player slot (entity index-1)  | ||
| Line 820: | Line 653: | ||
* <b>bot</b> <small>(short)</small> - is a bot  | * <b>bot</b> <small>(short)</small> - is a bot  | ||
== player_connect_client ==  | === player_connect_client ===  | ||
a new client connected  | a new client connected  | ||
* <b>name</b> <small>(string)</small> - player name  | * <b>name</b> <small>(string)</small> - player name  | ||
| Line 828: | Line 661: | ||
* <b>bot</b> <small>(short)</small> - is a bot  | * <b>bot</b> <small>(short)</small> - is a bot  | ||
==   | === player_death ===  | ||
Fired when a player dies. This shows up in the kill feed.  | Fired when a player dies. This shows up in the kill feed.  | ||
{{warning|This also fires when a Spy feigns death using the Dead Ringer. Make sure to check for this case using <code>if (params.death_flags & 32</code>)!}}  | {{warning|This also fires when a Spy feigns death using the Dead Ringer. Make sure to check for this case using <code>if (params.death_flags & 32</code>)!}}  | ||
| Line 846: | Line 669: | ||
* <b>inflictor_entindex</b> <small>(long)</small> - ent index of inflictor (a sentry, for example)  | * <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>attacker</b> <small>(short)</small> - user ID who killed  | ||
{{warning|If you are retrieving a handle from this, i.e. with <code>GetPlayerFromUserID</code>, ALWAYS check if it's not null first! If the player died from the environment or NPCs, the attacker handle will be null.}}  | |||
* <b>weapon</b> <small>(string)</small> - weapon name killer used  | * <b>weapon</b> <small>(string)</small> - weapon name killer used  | ||
* <b>weaponid</b> <small>(short)</small> - ID of weapon killer used  | * <b>weaponid</b> <small>(short)</small> - ID of weapon killer used  | ||
| Line 876: | Line 700: | ||
* <b>feign_death</b> <small>(bool)</small> - the victim is feign death  | * <b>feign_death</b> <small>(bool)</small> - the victim is feign death  | ||
== player_destroyed_pipebomb ==  | === player_destroyed_pipebomb ===  | ||
* <b>userid</b> <small>(short)</small>  | * <b>userid</b> <small>(short)</small>  | ||
== player_directhit_stun ==  | === player_directhit_stun ===  | ||
* <b>attacker</b> <small>(short)</small> - entindex of the attacker  | * <b>attacker</b> <small>(short)</small> - entindex of the attacker  | ||
* <b>victim</b> <small>(short)</small> - entindex of the victim  | * <b>victim</b> <small>(short)</small> - entindex of the victim  | ||
== player_disconnect ==  | === player_disconnect ===  | ||
A client has disconnected. The player handle and script scope still exists when this event fires, as it persists for a frame after disconnect.  | |||
* <b>userid</b> <small>(short)</small> - user ID on server  | * <b>userid</b> <small>(short)</small> - user ID on server  | ||
* <b>reason</b> <small>(string)</small> - "self", "kick", "ban", "cheat", "error"  | * <b>reason</b> <small>(string)</small> - "self", "kick", "ban", "cheat", "error"  | ||
| Line 891: | Line 716: | ||
* <b>bot</b> <small>(short)</small> - is a bot  | * <b>bot</b> <small>(short)</small> - is a bot  | ||
== player_domination ==  | === player_domination ===  | ||
* <b>dominator</b> <small>(short)</small> - userID of who gained domination  | * <b>dominator</b> <small>(short)</small> - userID of who gained domination  | ||
* <b>dominated</b> <small>(short)</small> - userID of who got dominated  | * <b>dominated</b> <small>(short)</small> - userID of who got dominated  | ||
* <b>dominations</b> <small>(short)</small> - Number of dominations this dominator has  | * <b>dominations</b> <small>(short)</small> - Number of dominations this dominator has  | ||
== player_dropobject ==  | === player_dropobject ===  | ||
* <b>userid</b> <small>(short)</small> - user ID of the builder  | * <b>userid</b> <small>(short)</small> - user ID of the builder  | ||
* <b>object</b> <small>(short)</small> - type of object built  | * <b>object</b> <small>(short)</small> - type of object built  | ||
* <b>index</b> <small>(short)</small> - index of the object  | * <b>index</b> <small>(short)</small> - index of the object  | ||
== player_escort_score ==  | === player_escort_score ===  | ||
* <b>player</b> <small>(byte)</small>  | * <b>player</b> <small>(byte)</small>  | ||
* <b>points</b> <small>(byte)</small>  | * <b>points</b> <small>(byte)</small>  | ||
==   | === player_healed ===  | ||
==   | |||
* <b>patient</b> <small>(short)</small>  | * <b>patient</b> <small>(short)</small>  | ||
* <b>healer</b> <small>(short)</small>  | * <b>healer</b> <small>(short)</small>  | ||
* <b>amount</b> <small>(short)</small>  | * <b>amount</b> <small>(short)</small>  | ||
==   | === player_healedmediccall ===  | ||
==   | |||
local player heals someone who called for medic.  | local player heals someone who called for medic.  | ||
* <b>userid</b> <small>(short)</small> - userid of person who got healed  | * <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> - item def index of the healing weapon  | * <b>weapon_def_index</b> <small>(long)</small> - item def index of the healing weapon  | ||
== player_highfive_cancel ==  | === player_highfive_cancel ===  | ||
* <b>entindex</b> <small>(byte)</small>  | * <b>entindex</b> <small>(byte)</small>  | ||
== player_highfive_start ==  | === player_highfive_start ===  | ||
* <b>entindex</b> <small>(byte)</small>  | * <b>entindex</b> <small>(byte)</small>  | ||
== player_highfive_success ==  | === player_highfive_success ===  | ||
* <b>initiator_entindex</b> <small>(byte)</small>  | * <b>initiator_entindex</b> <small>(byte)</small>  | ||
* <b>partner_entindex</b> <small>(byte)</small>  | * <b>partner_entindex</b> <small>(byte)</small>  | ||
==   | === player_hurt ===  | ||
==   | |||
* <b>userid</b> <small>(short)</small>  | * <b>userid</b> <small>(short)</small>  | ||
* <b>health</b> <small>(short)</small>  | * <b>health</b> <small>(short)</small> - if <= 0, then this will play the killsound  | ||
* <b>attacker</b> <small>(short)</small>  | * <b>attacker</b> <small>(short)</small>  | ||
* <b>damageamount</b> <small>(short)</small>  | * <b>damageamount</b> <small>(short)</small>  | ||
* <b>custom</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>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>crit</b> <small>(bool)</small> - legacy only, use <code>bonuseffect</code>  | ||
* <b>minicrit</b> <small>(bool)</small>  | * <b>minicrit</b> <small>(bool)</small> - legacy only, use <code>bonuseffect</code>  | ||
* <b>allseecrit</b> <small>(bool)</small>  | * <b>allseecrit</b> <small>(bool)</small>  | ||
* <b>weaponid</b> <small>(short)</small>  | * <b>weaponid</b> <small>(short)</small>  | ||
* <b>bonuseffect</b> <small>(byte)</small>  | * <b>bonuseffect</b> <small>(byte)</small> - type of damage effect, see [[Team_Fortress_2/Scripting/Script_Functions/Constants#kBonusEffect|constants page]].  | ||
{{warning|A value of ''4'' is no damage effect. 0 is crits!}}  | |||
==   | === player_info ===  | ||
==   | |||
a player changed his name  | a player changed his name  | ||
* <b>name</b> <small>(string)</small> - player name  | * <b>name</b> <small>(string)</small> - player name  | ||
| Line 974: | Line 776: | ||
* <b>bot</b> <small>(bool)</small> - true if player is a AI bot  | * <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> - entindex of the player  | * <b>index</b> <small>(short)</small> - entindex of the player  | ||
== player_invulned ==  | === player_invulned ===  | ||
* <b>userid</b> <small>(short)</small>  | * <b>userid</b> <small>(short)</small>  | ||
* <b>medic_userid</b> <small>(short)</small>  | * <b>medic_userid</b> <small>(short)</small>  | ||
==   | === player_killed_achievement_zone ===  | ||
==   | |||
* <b>attacker</b> <small>(short)</small> - entindex of the attacker  | * <b>attacker</b> <small>(short)</small> - entindex of the attacker  | ||
* <b>victim</b> <small>(short)</small> - entindex of the victim  | * <b>victim</b> <small>(short)</small> - entindex of the victim  | ||
* <b>zone_id</b> <small>(short)</small> - type of area (0 for general, 1 for capture zone)  | * <b>zone_id</b> <small>(short)</small> - type of area (0 for general, 1 for capture zone)  | ||
==   | === player_regenerate ===  | ||
==   | |||
== player_rocketpack_pushed ==  | === player_rocketpack_pushed ===  | ||
* <b>pusher</b> <small>(short)</small> - userID of who pushed  | * <b>pusher</b> <small>(short)</small> - userID of who pushed  | ||
* <b>pushed</b> <small>(short)</small> - userID of who got pushed  | * <b>pushed</b> <small>(short)</small> - userID of who got pushed  | ||
== player_sapped_object ==  | === player_sapped_object ===  | ||
* <b>userid</b> <small>(short)</small> - user ID of the spy  | * <b>userid</b> <small>(short)</small> - user ID of the spy  | ||
* <b>ownerid</b> <small>(short)</small> - user ID of the building owner  | * <b>ownerid</b> <small>(short)</small> - user ID of the building owner  | ||
| Line 1,014: | Line 800: | ||
* <b>sapperid</b> <small>(short)</small> - index of the sapper  | * <b>sapperid</b> <small>(short)</small> - index of the sapper  | ||
== player_say ==  | === player_say ===  | ||
* <b>userid</b> <small>(short)</small> - user ID on server  | * <b>userid</b> <small>(short)</small> - user ID on server  | ||
* <b>text</b> <small>(string)</small> - the say text  | * <b>text</b> <small>(string)</small> - the say text  | ||
== player_score ==  | === player_score ===  | ||
players scores changed  | players scores changed  | ||
* <b>userid</b> <small>(short)</small> - user ID on server  | * <b>userid</b> <small>(short)</small> - user ID on server  | ||
| Line 1,025: | Line 811: | ||
* <b>score</b> <small>(short)</small> - total game score  | * <b>score</b> <small>(short)</small> - total game score  | ||
== player_score_changed ==  | === player_score_changed ===  | ||
* <b>player</b> <small>(byte)</small>  | * <b>player</b> <small>(byte)</small>  | ||
* <b>delta</b> <small>(short)</small>  | * <b>delta</b> <small>(short)</small>  | ||
==   | === player_shoot ===  | ||
{{note|Not implemented.}}  | |||
* <b>userid</b> <small>(short)</small> - user ID on server  | * <b>userid</b> <small>(short)</small> - user ID on server  | ||
* <b>weapon</b> <small>(byte)</small> - weapon ID  | * <b>weapon</b> <small>(byte)</small> - weapon ID  | ||
* <b>mode</b> <small>(byte)</small> - weapon mode  | * <b>mode</b> <small>(byte)</small> - weapon mode  | ||
== player_spawn ==  | === player_spawn ===  | ||
This event will be sent once when the player entity is created, i.e. they joined the server,   | This event will be sent once when the player entity is created, i.e. they joined the server or they are loading in after a map change. In this case, <code>team</code> is equal to 0 (unassigned). Each time afterwards, the event will only be fired when the player spawns alive on red or blue team. This is also fired once when [[SourceTV]] is loaded in.    | ||
* <b>userid</b> <small>(short)</small> - user ID who spawned  | * <b>userid</b> <small>(short)</small> - user ID who spawned  | ||
* <b>team</b> <small>(short)</small> - team they spawned on  | * <b>team</b> <small>(short)</small> - team they spawned on  | ||
* <b>class</b> <small>(short)</small> - class they spawned as   | * <b>class</b> <small>(short)</small> - class they spawned as  | ||
==   | === player_stealsandvich ===  | ||
==   | |||
* <b>owner</b> <small>(short)</small>  | * <b>owner</b> <small>(short)</small>  | ||
* <b>target</b> <small>(short)</small>  | * <b>target</b> <small>(short)</small>  | ||
== player_stunned ==  | === player_stunned ===  | ||
* <b>stunner</b> <small>(short)</small>  | * <b>stunner</b> <small>(short)</small> {{warning|If there's no attacker, this key won't exist (such as being stunned after hitting a wall with a bumper kart)}}  | ||
* <b>victim</b> <small>(short)</small>  | * <b>victim</b> <small>(short)</small>  | ||
* <b>victim_capping</b> <small>(bool)</small>  | * <b>victim_capping</b> <small>(bool)</small>  | ||
* <b>big_stun</b> <small>(bool)</small>  | * <b>big_stun</b> <small>(bool)</small>  | ||
== player_team ==  | === player_team ===  | ||
Fired when player joins a team.  | Fired when player joins a team.  | ||
* <b>userid</b> <small>(short)</small> - user ID on server  | * <b>userid</b> <small>(short)</small> - user ID on server  | ||
| Line 1,070: | Line 848: | ||
* <b>name</b> <small>(string)</small> - player's name  | * <b>name</b> <small>(string)</small> - player's name  | ||
== player_teleported ==  | === player_teleported ===  | ||
* <b>userid</b> <small>(short)</small> - userid of the player  | * <b>userid</b> <small>(short)</small> - userid of the player  | ||
* <b>builderid</b> <small>(short)</small> - userid of the player who built the teleporter  | * <b>builderid</b> <small>(short)</small> - userid of the player who built the teleporter  | ||
* <b>dist</b> <small>(float)</small> - distance the player was teleported  | * <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> - user ID of the player who changed to a ghost  | * <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> - user ID of the builder  | * <b>userid</b> <small>(short)</small> - user ID of the builder  | ||
* <b>object</b> <small>(short)</small> - type of object built  | * <b>object</b> <small>(short)</small> - type of object built  | ||
| Line 1,086: | Line 864: | ||
* <b>isbuilder</b> <small>(bool)</small>  | * <b>isbuilder</b> <small>(bool)</small>  | ||
== player_use ==  | === player_use ===  | ||
* <b>userid</b> <small>(short)</small> - user ID on server  | * <b>userid</b> <small>(short)</small> - user ID on server  | ||
* <b>entity</b> <small>(short)</small> - entity used by player  | * <b>entity</b> <small>(short)</small> - entity used by player  | ||
== player_used_powerup_bottle ==  | === player_used_powerup_bottle ===  | ||
* <b>player</b> <small>(short)</small>  | * <b>player</b> <small>(short)</small>  | ||
* <b>type</b> <small>(short)</small>  | * <b>type</b> <small>(short)</small>  | ||
* <b>time</b> <small>(float)</small>  | * <b>time</b> <small>(float)</small>  | ||
==   | === post_inventory_application ===  | ||
==   | |||
Fired when the player has items resupplied, i.e. when the player spawns or touches resupply ([[func_regenerate]]).  | Fired when the player has items resupplied, i.e. when the player spawns or touches resupply ([[func_regenerate]]).  | ||
* <b>userid</b> <small>(short)</small>  | * <b>userid</b> <small>(short)</small>  | ||
== projectile_direct_hit ==  | === projectile_direct_hit ===  | ||
* <b>attacker</b> <small>(byte)</small> - index of the player who shot the projectile  | * <b>attacker</b> <small>(byte)</small> - index of the player who shot the projectile  | ||
* <b>victim</b> <small>(byte)</small> - index of the player who got direct-ht  | * <b>victim</b> <small>(byte)</small> - index of the player who got direct-ht  | ||
* <b>weapon_def_index</b> <small>(long)</small> - defindex of the direct hitting weapon  | * <b>weapon_def_index</b> <small>(long)</small> - defindex of the direct hitting weapon  | ||
== projectile_removed ==  | === projectile_removed ===  | ||
* <b>attacker</b> <small>(byte)</small>  | * <b>attacker</b> <small>(byte)</small>  | ||
* <b>weapon_def_index</b> <small>(long)</small>  | * <b>weapon_def_index</b> <small>(long)</small>  | ||
| Line 1,112: | Line 888: | ||
* <b>num_direct_hit</b> <small>(byte)</small>  | * <b>num_direct_hit</b> <small>(byte)</small>  | ||
== pumpkin_lord_killed ==  | === pumpkin_lord_killed ===  | ||
== pumpkin_lord_summoned ==  | === pumpkin_lord_summoned ===  | ||
== pve_win_panel ==  | === pve_win_panel ===  | ||
* <b>panel_style</b> <small>(byte)</small> - for client to determine layout  | * <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> - the reason the team won  | * <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>igniter</b> <small>(short)</small> - entindex of the igniter  | ||
* <b>douser</b> <small>(short)</small> - entindex of the douser  | * <b>douser</b> <small>(short)</small> - entindex of the douser  | ||
* <b>victim</b> <small>(short)</small> - entindex of the victim  | * <b>victim</b> <small>(short)</small> - entindex of the victim  | ||
==   | === quest_progress ===  | ||
==   | |||
* <b>owner</b> <small>(short)</small>  | * <b>owner</b> <small>(short)</small>  | ||
* <b>scorer</b> <small>(short)</small>  | * <b>scorer</b> <small>(short)</small>  | ||
| Line 1,140: | Line 909: | ||
* <b>quest_defindex</b> <small>(long)</small>  | * <b>quest_defindex</b> <small>(long)</small>  | ||
==   | === ragdoll_dissolved ===  | ||
==   | |||
* <b>entindex</b> <small>(long)</small>  | * <b>entindex</b> <small>(long)</small>  | ||
== raid_spawn_mob ==  | === raid_spawn_mob ===  | ||
== raid_spawn_squad ==  | === raid_spawn_squad ===  | ||
== rd_player_score_points ==  | === rd_player_score_points ===  | ||
* <b>player</b> <small>(short)</small>  | * <b>player</b> <small>(short)</small>  | ||
* <b>method</b> <small>(short)</small>  | * <b>method</b> <small>(short)</small>  | ||
* <b>amount</b> <small>(short)</small>  | * <b>amount</b> <small>(short)</small>  | ||
== rd_robot_impact ==  | === rd_robot_impact ===  | ||
* <b>entindex</b> <small>(short)</small>  | * <b>entindex</b> <small>(short)</small>  | ||
* <b>impulse_x</b> <small>(float)</small>  | * <b>impulse_x</b> <small>(float)</small>  | ||
| Line 1,172: | Line 927: | ||
* <b>impulse_z</b> <small>(float)</small>  | * <b>impulse_z</b> <small>(float)</small>  | ||
== rd_robot_killed ==  | === rd_robot_killed ===  | ||
* <b>userid</b> <small>(short)</small> - user ID who died  | * <b>userid</b> <small>(short)</small> - user ID who died  | ||
* <b>victim_entindex</b> <small>(long)</small>  | * <b>victim_entindex</b> <small>(long)</small>  | ||
| Line 1,183: | Line 938: | ||
* <b>weapon_logclassname</b> <small>(string)</small> - weapon name that should be printed on the log  | * <b>weapon_logclassname</b> <small>(string)</small> - weapon name that should be printed on the log  | ||
==   | === recalculate_holidays ===  | ||
==   | |||
== recalculate_truce ==  | === recalculate_truce ===  | ||
== rematch_failed_to_create ==  | === rematch_failed_to_create ===  | ||
* <b>map_index</b> <small>(byte)</small> - what they voted for  | * <b>map_index</b> <small>(byte)</small> - what they voted for  | ||
* <b>vote</b> <small>(byte)</small> - what the vote was  | * <b>vote</b> <small>(byte)</small> - what the vote was  | ||
== remove_nemesis_relationships ==  | === remove_nemesis_relationships ===  | ||
* <b>player</b> <small>(short)</small> - entindex of the player who should reset  | * <b>player</b> <small>(short)</small> - entindex of the player who should reset  | ||
== replay_endrecord =  | === replay_endrecord ===  | ||
==   | === replay_replaysavailable ===  | ||
== replay_servererror ==  | === replay_servererror ===  | ||
* <b>error</b> <small>(string)</small>  | * <b>error</b> <small>(string)</small>  | ||
== replay_sessioninfo ==  | === replay_sessioninfo ===  | ||
Sent when the server begins recording, or when a client first connects - only sent once per recording session  | 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>sn</b> <small>(string)</small> - session name  | ||
| Line 1,217: | Line 963: | ||
* <b>st</b> <small>(long)</small> - session start tick  | * <b>st</b> <small>(long)</small> - session start tick  | ||
== replay_startrecord ==  | === replay_startrecord ===  | ||
Sent when the server begins recording - only used to display UI  | Sent when the server begins recording - only used to display UI  | ||
==   | === respawn_ghost ===  | ||
==   | |||
* <b>reviver</b> <small>(short)</small> - userid of the reviving player  | * <b>reviver</b> <small>(short)</small> - userid of the reviving player  | ||
* <b>ghost</b> <small>(short)</small> - userid of the player that got revived  | * <b>ghost</b> <small>(short)</small> - userid of the player that got revived  | ||
==   | === revive_player_complete ===  | ||
==   | |||
* <b>entindex</b> <small>(short)</small> - entindex of the medic  | * <b>entindex</b> <small>(short)</small> - entindex of the medic  | ||
== revive_player_notify ==  | === revive_player_notify ===  | ||
* <b>entindex</b> <small>(short)</small>  | * <b>entindex</b> <small>(short)</small>  | ||
* <b>marker_entindex</b> <small>(short)</small>  | * <b>marker_entindex</b> <small>(short)</small>  | ||
== revive_player_stopped ==  | === revive_player_stopped ===  | ||
* <b>entindex</b> <small>(short)</small>  | * <b>entindex</b> <small>(short)</small>  | ||
== rocket_jump ==  | === rocket_jump ===  | ||
* <b>userid</b> <small>(short)</small>  | * <b>userid</b> <small>(short)</small>  | ||
* <b>playsound</b> <small>(bool)</small>  | * <b>playsound</b> <small>(bool)</small>  | ||
== rocket_jump_landed ==  | === rocket_jump_landed ===  | ||
* <b>userid</b> <small>(short)</small>  | * <b>userid</b> <small>(short)</small>  | ||
== rocketpack_landed ==  | === rocketpack_landed ===  | ||
* <b>userid</b> <small>(short)</small>  | * <b>userid</b> <small>(short)</small>  | ||
== rocketpack_launch ==  | === rocketpack_launch ===  | ||
* <b>userid</b> <small>(short)</small>  | * <b>userid</b> <small>(short)</small>  | ||
* <b>playsound</b> <small>(bool)</small>  | * <b>playsound</b> <small>(bool)</small>  | ||
== round_end ==  | === round_end ===  | ||
* <b>winner</b> <small>(byte)</small> - winner team/user i  | * <b>winner</b> <small>(byte)</small> - winner team/user i  | ||
* <b>reason</b> <small>(byte)</small> - reson why team won  | * <b>reason</b> <small>(byte)</small> - reson why team won  | ||
* <b>message</b> <small>(string)</small> - end round message  | * <b>message</b> <small>(string)</small> - end round message  | ||
== round_start ==  | === round_start ===  | ||
* <b>timelimit</b> <small>(long)</small> - round time limit in seconds  | * <b>timelimit</b> <small>(long)</small> - round time limit in seconds  | ||
* <b>fraglimit</b> <small>(long)</small> - frag limit in seconds  | * <b>fraglimit</b> <small>(long)</small> - frag limit in seconds  | ||
* <b>objective</b> <small>(string)</small> - round objective  | * <b>objective</b> <small>(string)</small> - round objective  | ||
== rps_taunt_event ==  | === rps_taunt_event ===  | ||
* <b>winner</b> <small>(short)</small> - entindex of the winning player  | * <b>winner</b> <small>(short)</small> - entindex of the winning player  | ||
* <b>winner_rps</b> <small>(byte)</small> - winner's selection  | * <b>winner_rps</b> <small>(byte)</small> - winner's selection  | ||
| Line 1,272: | Line 1,010: | ||
* <b>loser_rps</b> <small>(byte)</small> - loser's selection  | * <b>loser_rps</b> <small>(byte)</small> - loser's selection  | ||
==   | === scorestats_accumulated_reset ===  | ||
Fired when round resets due to <code>mp_restartgame</code>.  | |||
==   | === scorestats_accumulated_update ===  | ||
Fired right before map entities are cleaned up for a round restart.   | |||
=  | This event is not fired in Mann Vs Machine mode. For MvM, use <code>recalculate_holidays</code> and check if <code>GetRoundState() === 3</code> is true, which indicates a mission reset.  | ||
== scout_grand_slam ==  | === scout_grand_slam ===  | ||
* <b>scout_id</b> <small>(short)</small>  | * <b>scout_id</b> <small>(short)</small>  | ||
* <b>target_id</b> <small>(short)</small>  | * <b>target_id</b> <small>(short)</small>  | ||
==   | === sentry_on_go_active ===  | ||
==   | |||
* <b>index</b> <small>(short)</small>  | * <b>index</b> <small>(short)</small>  | ||
== server_addban ==  | === server_addban ===  | ||
* <b>name</b> <small>(string)</small> - player name  | * <b>name</b> <small>(string)</small> - player name  | ||
* <b>userid</b> <small>(short)</small> - user ID on server  | * <b>userid</b> <small>(short)</small> - user ID on server  | ||
| Line 1,300: | Line 1,034: | ||
* <b>kicked</b> <small>(bool)</small> - whether the player was also kicked  | * <b>kicked</b> <small>(bool)</small> - whether the player was also kicked  | ||
== server_changelevel_failed ==  | === server_changelevel_failed ===  | ||
* <b>levelname</b> <small>(string)</small> - The level name that failed changelevel  | * <b>levelname</b> <small>(string)</small> - The level name that failed changelevel  | ||
== server_cvar ==  | === server_cvar ===  | ||
a server console var has changed  | a server console var has changed  | ||
* <b>cvarname</b> <small>(string)</small> - cvar name, eg "mp_roundtime"  | * <b>cvarname</b> <small>(string)</small> - cvar name, eg "mp_roundtime"  | ||
* <b>cvarvalue</b> <small>(string)</small> - new cvar value  | * <b>cvarvalue</b> <small>(string)</small> - new cvar value  | ||
== server_message ==  | === server_message ===  | ||
a generic server message  | a generic server message  | ||
* <b>text</b> <small>(string)</small> - the message text  | * <b>text</b> <small>(string)</small> - the message text  | ||
== server_removeban ==  | === server_removeban ===  | ||
* <b>networkid</b> <small>(string)</small> - player network (i.e steam) id  | * <b>networkid</b> <small>(string)</small> - player network (i.e steam) id  | ||
* <b>ip</b> <small>(string)</small> - IP address  | * <b>ip</b> <small>(string)</small> - IP address  | ||
* <b>by</b> <small>(string)</small> - removed by...  | * <b>by</b> <small>(string)</small> - removed by...  | ||
== server_shutdown ==  | === server_shutdown ===  | ||
server shut down  | server shut down  | ||
* <b>reason</b> <small>(string)</small> - reason why server was shut down  | * <b>reason</b> <small>(string)</small> - reason why server was shut down  | ||
== server_spawn ==  | === server_spawn ===  | ||
send once a server starts  | send once a server starts  | ||
* <b>hostname</b> <small>(string)</small> - public host name  | * <b>hostname</b> <small>(string)</small> - public host name  | ||
| Line 1,334: | Line 1,068: | ||
* <b>password</b> <small>(bool)</small> - true if password protected  | * <b>password</b> <small>(bool)</small> - true if password protected  | ||
==   | === show_match_summary ===  | ||
* <b>success</b> <small>(bool)</small>  | * <b>success</b> <small>(bool)</small>  | ||
== show_vs_panel ==  | === show_vs_panel ===  | ||
* <b>show</b> <small>(bool)</small>  | * <b>show</b> <small>(bool)</small>  | ||
== single_player_death ==  | === single_player_death ===  | ||
== skeleton_killed_quest ==  | === skeleton_killed_quest ===  | ||
* <b>player</b> <small>(short)</small> - userid of the player that killed the skeleton  | * <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> - userid of the player that killed the skeleton  | * <b>player</b> <small>(short)</small> - userid of the player that killed the skeleton  | ||
== slap_notice ==  | === slap_notice ===  | ||
* <b>userid</b> <small>(short)</small> - user ID who died  | * <b>userid</b> <small>(short)</small> - user ID who died  | ||
* <b>victim_entindex</b> <small>(long)</small>  | * <b>victim_entindex</b> <small>(long)</small>  | ||
| Line 1,386: | Line 1,098: | ||
* <b>assister_fallback</b> <small>(string)</small> - contains a string to use if "assister" is -1  | * <b>assister_fallback</b> <small>(string)</small> - contains a string to use if "assister" is -1  | ||
== special_score ==  | === special_score ===  | ||
* <b>player</b> <small>(byte)</small> - index of the scorer  | * <b>player</b> <small>(byte)</small> - index of the scorer  | ||
== spy_pda_reset ==  | === spy_pda_reset ===  | ||
== stats_resetround ==  | === stats_resetround ===  | ||
== sticky_jump ==  | === sticky_jump ===  | ||
* <b>userid</b> <small>(short)</small>  | * <b>userid</b> <small>(short)</small>  | ||
* <b>playsound</b> <small>(bool)</small>  | * <b>playsound</b> <small>(bool)</small>  | ||
== sticky_jump_landed ==  | === sticky_jump_landed ===  | ||
* <b>userid</b> <small>(short)</small>  | * <b>userid</b> <small>(short)</small>  | ||
==   | === tagged_player_as_it ===  | ||
==   | |||
* <b>player</b> <small>(short)</small> - userid of the tagging player  | * <b>player</b> <small>(short)</small> - userid of the tagging player  | ||
== take_armor ==  | === take_armor ===  | ||
* <b>amount</b> <small>(long)</small>  | * <b>amount</b> <small>(long)</small>  | ||
* <b>total</b> <small>(long)</small>  | * <b>total</b> <small>(long)</small>  | ||
== take_health ==  | === take_health ===  | ||
* <b>amount</b> <small>(long)</small>  | * <b>amount</b> <small>(long)</small>  | ||
* <b>total</b> <small>(long)</small>  | * <b>total</b> <small>(long)</small>  | ||
== team_info ==  | === team_info ===  | ||
info about team  | info about team  | ||
* <b>teamid</b> <small>(byte)</small> - unique team id  | * <b>teamid</b> <small>(byte)</small> - unique team id  | ||
* <b>teamname</b> <small>(string)</small> - team name eg "Team Blue"  | * <b>teamname</b> <small>(string)</small> - team name eg "Team Blue"  | ||
== team_leader_killed ==  | === team_leader_killed ===  | ||
* <b>killer</b> <small>(byte)</small> - index of the killer  | * <b>killer</b> <small>(byte)</small> - index of the killer  | ||
* <b>victim</b> <small>(byte)</small> - index of the victim  | * <b>victim</b> <small>(byte)</small> - index of the victim  | ||
== team_score ==  | === team_score ===  | ||
team score changed  | team score changed  | ||
* <b>teamid</b> <small>(byte)</small> - team id  | * <b>teamid</b> <small>(byte)</small> - team id  | ||
* <b>score</b> <small>(short)</small> - total team score  | * <b>score</b> <small>(short)</small> - total team score  | ||
== teamplay_alert ==  | === teamplay_alert ===  | ||
* <b>alert_type</b> <small>(short)</small> - which alert type is this (scramble, etc)?  | * <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> - which team should hear the broadcast. 0 will make everyone hear it.  | * <b>team</b> <small>(byte)</small> - which team should hear the broadcast. 0 will make everyone hear it.  | ||
* <b>sound</b> <small>(string)</small> - sound to play  | * <b>sound</b> <small>(string)</small> - sound to play  | ||
| Line 1,438: | Line 1,147: | ||
* <b>player</b> <small>(short)</small> - entindex of the player source or -1  | * <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> - index of the point that was blocked  | * <b>cp</b> <small>(byte)</small> - index of the point that was blocked  | ||
* <b>cpname</b> <small>(string)</small> - name of the point  | * <b>cpname</b> <small>(string)</small> - name of the point  | ||
| Line 1,444: | Line 1,153: | ||
* <b>victim</b> <small>(byte)</small> - index of the player that died, causing the block  | * <b>victim</b> <small>(byte)</small> - index of the player that died, causing the block  | ||
== teamplay_capture_broken ==  | === teamplay_capture_broken ===  | ||
* <b>cp</b> <small>(byte)</small>  | * <b>cp</b> <small>(byte)</small>  | ||
* <b>cpname</b> <small>(string)</small>  | * <b>cpname</b> <small>(string)</small>  | ||
* <b>time_remaining</b> <small>(float)</small>  | * <b>time_remaining</b> <small>(float)</small>  | ||
== teamplay_flag_event ==  | === teamplay_flag_event ===  | ||
* <b>player</b> <small>(short)</small> - player this event involves  | * <b>player</b> <small>(short)</small> - player this event involves  | ||
* <b>carrier</b> <small>(short)</small> - the carrier if needed  | * <b>carrier</b> <small>(short)</small> - the carrier if needed  | ||
| Line 1,456: | Line 1,165: | ||
* <b>team</b> <small>(byte)</small> - which team the flag belongs to  | * <b>team</b> <small>(byte)</small> - which team the flag belongs to  | ||
== teamplay_game_over ==  | === teamplay_game_over ===  | ||
* <b>reason</b> <small>(string)</small> - why the game is over ( timelimit, winlimit )  | * <b>reason</b> <small>(string)</small> - why the game is over ( timelimit, winlimit )  | ||
== teamplay_map_time_remaining ==  | === teamplay_map_time_remaining ===  | ||
* <b>seconds</b> <small>(short)</small>  | * <b>seconds</b> <small>(short)</small>  | ||
== teamplay_overtime_begin ==  | === teamplay_overtime_begin ===  | ||
== teamplay_overtime_end ==  | === teamplay_overtime_end ===  | ||
== teamplay_point_captured ==  | === teamplay_point_captured ===  | ||
* <b>cp</b> <small>(byte)</small> - index of the point that was captured  | * <b>cp</b> <small>(byte)</small> - index of the point that was captured  | ||
* <b>cpname</b> <small>(string)</small> - name of the point  | * <b>cpname</b> <small>(string)</small> - name of the point  | ||
| Line 1,472: | Line 1,181: | ||
* <b>cappers</b> <small>(string)</small> - string where each character is a player index of someone that capped  | * <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> - index of the point being captured  | * <b>cp</b> <small>(byte)</small> - index of the point being captured  | ||
* <b>cpname</b> <small>(string)</small> - name of the point  | * <b>cpname</b> <small>(string)</small> - name of the point  | ||
* <b>team</b> <small>(byte)</small> - which team currently owns the point  | * <b>team</b> <small>(byte)</small> - which team currently owns the point  | ||
== teamplay_point_startcapture ==  | === teamplay_point_startcapture ===  | ||
* <b>cp</b> <small>(byte)</small> - index of the point being captured  | * <b>cp</b> <small>(byte)</small> - index of the point being captured  | ||
* <b>cpname</b> <small>(string)</small> - name of the point  | * <b>cpname</b> <small>(string)</small> - name of the point  | ||
| Line 1,485: | Line 1,194: | ||
* <b>captime</b> <small>(float)</small> - time between when this cap started and when the point last changed hands  | * <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> - index of the point being captured  | * <b>cp</b> <small>(byte)</small> - index of the point being captured  | ||
* <b>cpname</b> <small>(string)</small> - name of the point  | * <b>cpname</b> <small>(string)</small> - name of the point  | ||
* <b>team</b> <small>(byte)</small> - which team currently owns the point  | * <b>team</b> <small>(byte)</small> - which team currently owns the point  | ||
== teamplay_pre_round_time_left ==  | === teamplay_pre_round_time_left ===  | ||
* <b>time</b> <small>(short)</small>  | * <b>time</b> <small>(short)</small>  | ||
== teamplay_ready_restart ==  | === teamplay_ready_restart ===  | ||
== teamplay_restart_round ==  | === teamplay_restart_round ===  | ||
== teamplay_round_active ==  | === teamplay_round_active ===  | ||
called when round is active, players can move  | called when round is active, players can move  | ||
== teamplay_round_restart_seconds ==  | === teamplay_round_restart_seconds ===  | ||
* <b>seconds</b> <small>(short)</small>  | * <b>seconds</b> <small>(short)</small>  | ||
== teamplay_round_selected ==  | === teamplay_round_selected ===  | ||
* <b>round</b> <small>(string)</small> - name of the round selected  | * <b>round</b> <small>(string)</small> - name of the round selected  | ||
==   | === teamplay_round_start ===  | ||
==   | |||
round restart  | round restart  | ||
* <b>full_reset</b> <small>(bool)</small> - is this a full reset of the map  | * <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> - which team won the round  | * <b>team</b> <small>(byte)</small> - which team won the round  | ||
* <b>winreason</b> <small>(byte)</small> - the reason the team won  | * <b>winreason</b> <small>(byte)</small> - the reason the team won  | ||
| Line 1,522: | Line 1,228: | ||
* <b>was_sudden_death</b> <small>(byte)</small> - did a team win this after entering sudden death  | * <b>was_sudden_death</b> <small>(byte)</small> - did a team win this after entering sudden death  | ||
== teamplay_setup_finished ==  | === teamplay_setup_finished ===  | ||
== teamplay_suddendeath_begin ==  | === teamplay_suddendeath_begin ===  | ||
== teamplay_suddendeath_end ==  | === teamplay_suddendeath_end ===  | ||
== teamplay_team_ready ==  | === teamplay_team_ready ===  | ||
* <b>team</b> <small>(byte)</small> - which team is ready  | * <b>team</b> <small>(byte)</small> - which team is ready  | ||
== teamplay_teambalanced_player ==  | === teamplay_teambalanced_player ===  | ||
* <b>player</b> <small>(short)</small> - entindex of the player  | * <b>player</b> <small>(short)</small> - entindex of the player  | ||
* <b>team</b> <small>(byte)</small> - which team the player is being moved to  | * <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> - how many seconds until the round ends  | * <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> - entindex of the timer  | * <b>timer</b> <small>(short)</small> - entindex of the timer  | ||
* <b>seconds_added</b> <small>(short)</small> - how many seconds were added to the round timer  | * <b>seconds_added</b> <small>(short)</small> - how many seconds were added to the round timer  | ||
==   | === teamplay_waiting_abouttoend ===  | ||
==   | |||
== teamplay_waiting_begins ==  | === teamplay_waiting_begins ===  | ||
== teamplay_waiting_ends ==  | === teamplay_waiting_ends ===  | ||
== teamplay_win_panel ==  | === teamplay_win_panel ===  | ||
* <b>panel_style</b> <small>(byte)</small> - for client to determine layout  | * <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>  | ||
| Line 1,572: | Line 1,276: | ||
* <b>game_over</b> <small>(byte)</small>  | * <b>game_over</b> <small>(byte)</small>  | ||
== teams_changed ==  | === teams_changed ===  | ||
== tf_game_over ==  | === tf_game_over ===  | ||
* <b>reason</b> <small>(string)</small> - why the game is over ( timelimit, winlimit )  | * <b>reason</b> <small>(string)</small> - why the game is over ( timelimit, winlimit )  | ||
== tf_map_time_remaining ==  | === tf_map_time_remaining ===  | ||
* <b>seconds</b> <small>(long)</small>  | * <b>seconds</b> <small>(long)</small>  | ||
== throwable_hit ==  | === throwable_hit ===  | ||
* <b>userid</b> <small>(short)</small> - user ID who died  | * <b>userid</b> <small>(short)</small> - user ID who died  | ||
* <b>victim_entindex</b> <small>(long)</small>  | * <b>victim_entindex</b> <small>(long)</small>  | ||
| Line 1,597: | Line 1,301: | ||
* <b>totalhits</b> <small>(short)</small> - Number of hits his player has done  | * <b>totalhits</b> <small>(short)</small> - Number of hits his player has done  | ||
== tournament_enablecountdown ==  | === tournament_enablecountdown ===  | ||
== tournament_stateupdate ==  | === tournament_stateupdate ===  | ||
* <b>userid</b> <small>(short)</small> - user ID on server  | * <b>userid</b> <small>(short)</small> - user ID on server  | ||
* <b>namechange</b> <small>(bool)</small>  | * <b>namechange</b> <small>(bool)</small>  | ||
| Line 1,605: | Line 1,309: | ||
* <b>newname</b> <small>(string)</small> - players new name  | * <b>newname</b> <small>(string)</small> - players new name  | ||
== training_complete ==  | === training_complete ===  | ||
* <b>next_map</b> <small>(string)</small> - next map (if any)  | * <b>next_map</b> <small>(string)</small> - next map (if any)  | ||
* <b>map</b> <small>(string)</small> - the name of the map this screen is on.  | * <b>map</b> <small>(string)</small> - the name of the map this screen is on.  | ||
* <b>text</b> <small>(string)</small> - text to show  | * <b>text</b> <small>(string)</small> - text to show  | ||
==   | === upgrades_file_changed ===  | ||
==   | |||
* <b>path</b> <small>(string)</small>  | * <b>path</b> <small>(string)</small>  | ||
==   | === vote_cast ===  | ||
==   | |||
* <b>vote_option</b> <small>(byte)</small> - which option the player voted on  | * <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>  | ||
| Line 1,626: | Line 1,323: | ||
* <b>voteidx</b> <small>(long)</small>  | * <b>voteidx</b> <small>(long)</small>  | ||
== vote_changed ==  | === vote_ended ===  | ||
=== vote_options ===  | |||
* <b>count</b> <small>(byte)</small> - Number of options - up to MAX_VOTE_OPTIONS  | |||
* <b>option1</b> <small>(string)</small>  | |||
* <b>option2</b> <small>(string)</small>  | |||
* <b>option3</b> <small>(string)</small>  | |||
* <b>option4</b> <small>(string)</small>  | |||
* <b>option5</b> <small>(string)</small>  | |||
* <b>voteidx</b> <small>(long)</small>  | |||
=== weapon_equipped ===  | |||
* <b>class</b> <small>(string)</small>  | |||
* <b>entindex</b> <small>(long)</small>  | |||
=== winlimit_changed ===  | |||
* <b>delay</b> <small>(float)</small>  | |||
== Clientside ==  | |||
=== spec_target_updated ===  | |||
=== show_freezepanel ===  | |||
* <b>killer</b> <small>(short)</small> - entindex of the killer entity  | |||
=== hide_freezepanel ===  | |||
=== freezecam_started ===  | |||
=== controlpoint_initialized ===  | |||
=== controlpoint_unlock_updated ===  | |||
* <b>index</b> <small>(short)</small> - index of the cap being updated  | |||
* <b>time</b> <small>(float)</small> - time  | |||
=== controlpoint_timer_updated ===  | |||
* <b>index</b> <small>(short)</small> - index of the cap being updated  | |||
* <b>time</b> <small>(float)</small> - time  | |||
=== escort_speed ===  | |||
* <b>team</b> <small>(byte)</small> - which team  | |||
* <b>speed</b> <small>(byte)</small>  | |||
* <b>players</b> <small>(byte)</small>  | |||
=== escort_progress ===  | |||
* <b>team</b> <small>(byte)</small> - which team  | |||
* <b>progress</b> <small>(float)</small>  | |||
* <b>reset</b> <small>(bool)</small>  | |||
=== escort_recede ===  | |||
* <b>team</b> <small>(byte)</small> - which team  | |||
* <b>recedetime</b> <small>(float)</small>  | |||
=== vote_changed ===  | |||
* <b>vote_option1</b> <small>(byte)</small>  | * <b>vote_option1</b> <small>(byte)</small>  | ||
* <b>vote_option2</b> <small>(byte)</small>  | * <b>vote_option2</b> <small>(byte)</small>  | ||
| Line 1,635: | Line 1,385: | ||
* <b>voteidx</b> <small>(long)</small>  | * <b>voteidx</b> <small>(long)</small>  | ||
==   | === gameui_activated ===  | ||
=== gameui_hidden ===  | |||
=== game_newmap ===  | |||
send when new map is completely loaded  | |||
* <b>mapname</b> <small>(string)</small> - map name  | |||
== vote_failed ==  | === items_acknowledged ===  | ||
* <b>blocker</b> <small>(short)</small> - entindex of the blocker  | |||
* <b>victim</b> <small>(short)</small> - entindex of the victim  | |||
=== store_pricesheet_updated ===  | |||
=== cart_updated ===  | |||
=== inventory_updated ===  | |||
=== hltv_changed_mode ===  | |||
* <b>oldmode</b> <small>(short)</small>  | |||
* <b>newmode</b> <small>(short)</small>  | |||
* <b>obs_target</b> <small>(short)</small>  | |||
=== hltv_changed_target ===  | |||
* <b>mode</b> <small>(short)</small>  | |||
* <b>old_target</b> <small>(short)</small>  | |||
* <b>obs_target</b> <small>(short)</small>  | |||
=== vote_failed ===  | |||
* <b>team</b> <small>(byte)</small>  | |||
* <b>voteidx</b> <small>(long)</small>  | |||
=== vote_started ===  | |||
* <b>issue</b> <small>(string)</small>  | |||
* <b>param1</b> <small>(string)</small>  | |||
* <b>team</b> <small>(byte)</small>  | |||
* <b>initiator</b> <small>(long)</small> - entity id of the player who initiated the vote  | |||
* <b>voteidx</b> <small>(long)</small>  | |||
=== vote_passed ===  | |||
* <b>details</b> <small>(string)</small>  | |||
* <b>param1</b> <small>(string)</small>  | |||
* <b>team</b> <small>(byte)</small>  | * <b>team</b> <small>(byte)</small>  | ||
* <b>voteidx</b> <small>(long)</small>  | * <b>voteidx</b> <small>(long)</small>  | ||
== vote_maps_changed ==  | === replay_saved ===  | ||
=== replay_youtube_stats ===  | |||
* <b>views</b> <small>(long)</small>  | |||
* <b>likes</b> <small>(long)</small>  | |||
* <b>favorited</b> <small>(long)</small>  | |||
=== base_player_teleported ===  | |||
* <b>entindex</b> <small>(short)</small>  | |||
=== browse_replays ===  | |||
=== entered_performance_mode ===  | |||
=== building_info_changed ===  | |||
* <b>building_type</b> <small>(byte)</small>  | |||
* <b>object_mode</b> <small>(byte)</small>  | |||
* <b>remove</b> <small>(byte)</small>  | |||
=== scout_slamdoll_landed ===  | |||
* <b>target_index</b> <small>(short)</small>  | |||
* <b>x</b> <small>(float)</small>  | |||
* <b>y</b> <small>(float)</small>  | |||
* <b>z</b> <small>(float)</small>  | |||
=== localplayer_changeteam ===  | |||
=== localplayer_changeclass ===  | |||
=== localplayer_becameobserver ===  | |||
=== localplayer_changedisguise ===  | |||
* <b>disguised</b> <small>(bool)</small>  | |||
=== localplayer_builtobject ===  | |||
* <b>object</b> <small>(short)</small> - type of object built  | |||
* <b>object_mode</b> <small>(short)</small> - used for teleporters: entrance vs. exit  | |||
* <b>index</b> <small>(short)</small> - index of the object  | |||
=== localplayer_chargeready ===  | |||
local player has full medic charge  | |||
=== localplayer_pickup_weapon ===  | |||
=== localplayer_respawn ===  | |||
=== localplayer_score_changed ===  | |||
* <b>score</b> <small>(short)</small>  | |||
=== localplayer_winddown ===  | |||
local player minigun winddown  | |||
=== player_account_changed ===  | |||
* <b>old_value</b> <small>(short)</small>  | |||
* <b>new_value</b> <small>(short)</small>  | |||
=== localplayer_healed ===  | |||
* <b>amount</b> <small>(short)</small>  | |||
=== player_currency_changed ===  | |||
* <b>currency</b> <small>(short)</small>  | |||
=== player_calledformedic ===  | |||
* <b>userid</b> <small>(short)</small>  | |||
=== player_healedbymedic ===  | |||
* <b>medic</b> <small>(byte)</small>  | |||
=== player_pinned ===  | |||
* <b>pinned</b> <small>(byte)</small>  | |||
=== hide_annotation ===  | |||
* <b>id</b> <small>(long)</small>  | |||
=== show_annotation ===  | |||
* <b>worldPosX</b> <small>(float)</small>  | |||
* <b>worldPosY</b> <small>(float)</small>  | |||
* <b>worldPosZ</b> <small>(float)</small>  | |||
* <b>worldNormalX</b> <small>(float)</small>  | |||
* <b>worldNormalY</b> <small>(float)</small>  | |||
* <b>worldNormalZ</b> <small>(float)</small>  | |||
* <b>id</b> <small>(long)</small>  | |||
* <b>text</b> <small>(string)</small> - name (unlocalized)  | |||
* <b>lifetime</b> <small>(float)</small>  | |||
* <b>visibilityBitfield</b> <small>(long)</small> - bitfield of the players that can see this. If 0, everyone can see it  | |||
{{warning|This was only intended for supporting 32 players, players above that index are not considered.}}  | |||
* <b>follow_entindex</b> <small>(long)</small> - if this is set, follow this entity  | |||
* <b>show_distance</b> <small>(bool)</small>  | |||
* <b>play_sound</b> <small>(string)</small>  | |||
* <b>show_effect</b> <small>(bool)</small>  | |||
=== player_bonuspoints ===  | |||
* <b>points</b> <small>(short)</small>  | |||
* <b>player_entindex</b> <small>(short)</small>  | |||
* <b>source_entindex</b> <small>(short)</small>  | |||
=== rd_team_points_changed ===  | |||
* <b>points</b> <small>(short)</small>  | |||
* <b>team</b> <small>(byte)</small>  | |||
* <b>method</b> <small>(byte)</small>  | |||
=== quest_objective_completed ===  | |||
For prediction  | |||
* <b>quest_item_id_low</b> <small>(long)</small>  | |||
* <b>quest_item_id_hi</b> <small>(long)</small>  | |||
* <b>quest_objective_id</b> <small>(long)</small>  | |||
* <b>scorer_user_id</b> <small>(short)</small>  | |||
=== quest_request ===  | |||
* <b>request</b> <small>(long)</small>  | |||
* <b>msg</b> <small>(string)</small> - Protobuf serialized to a string  | |||
=== quest_response ===  | |||
* <b>request</b> <small>(long)</small>  | |||
* <b>success</b> <small>(bool)</small>  | |||
* <b>msg</b> <small>(string)</small> - Protobuf serialized to a string  | |||
=== quest_turn_in_state ===  | |||
* <b>state</b> <small>(short)</small> - Maps to EQuestTurnInState  | |||
=== questlog_opened ===  | |||
=== lobby_updated ===  | |||
=== match_invites_updated ===  | |||
=== show_class_layout ===  | |||
* <b>show</b> <small>(bool)</small>  | |||
=== arena_player_notification ===  | |||
* <b>player</b> <small>(byte)</small>  | |||
* <b>message</b> <small>(byte)</small>  | |||
=== mainmenu_stabilized ===  | |||
* <b>attacker</b> <small>(short)</small>  | |||
* <b>victim</b> <small>(short)</small>  | |||
* <b>assister</b> <small>(short)</small>  | |||
=== player_stats_updated ===  | |||
* <b>forceupload</b> <small>(bool)</small>  | |||
=== player_mvp ===  | |||
* <b>player</b> <small>(short)</small>  | |||
=== party_chat ===  | |||
* <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> - The message.  May have different meaning for some types  | |||
* <b>type</b> <small>(short)</small> - What sort of message?  ETFPartyChatType enum  | |||
=== party_member_join ===  | |||
* <b>steamid</b> <small>(string)</small> - steamID (64-bit value converted to string) of joined  | |||
=== party_member_leave ===  | |||
* <b>steamid</b> <small>(string)</small> - steamID (64-bit value converted to string) of leaver  | |||
=== party_criteria_changed ===  | |||
=== party_invites_changed ===  | |||
=== party_pref_changed ===  | |||
=== party_queue_state_changed ===  | |||
* <b>matchgroup</b> <small>(short)</small> - ETFMatchGroup  | |||
=== party_updated ===  | |||
=== playing_commentary ===  | |||
=== achievement_earned_local ===  | |||
* <b>achievement</b> <small>(short)</small>  | |||
=== user_data_downloaded ===  | |||
fired when achievements/stats are downloaded from Steam or XBox Live  | |||
=== econ_inventory_connected ===  | |||
=== gc_lost_session ===  | |||
=== gc_new_session ===  | |||
=== player_hintmessage ===  | |||
* <b>hintmessage</b> <small>(string)</small> - localizable string of a hint  | |||
=== restart_timer_time ===  | |||
* <b>time</b> <small>(byte)</small> - How much time is left  | |||
=== teamplay_update_timer ===  | |||
=== teamplay_round_stalemate ===  | |||
* <b>reason</b> <small>(byte)</small> - why the stalemate is occuring  | |||
=== 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  | |||
* <b>pyro_entindex</b> <small>(byte)</small> - entindex of the pyro who ignited the victim  | |||
* <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_ignited ===  | |||
sent when a player is ignited, only to the two players involved  | |||
* <b>pyro_entindex</b> <small>(byte)</small> - entindex of the pyro who ignited the victim  | |||
* <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_damaged ===  | |||
* <b>amount</b> <small>(short)</small>  | |||
* <b>type</b> <small>(long)</small>  | |||
=== player_jarated ===  | |||
sent when a player is jarated, only to the two players involved  | |||
* <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 ===  | |||
sent when a player is jarated, only to the two players involved  | |||
* <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_shield_blocked ===  | |||
sent when a player is jarated, only to the two players involved  | |||
* <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_extinguished ===  | |||
sent when a burning player is extinguished by a medic  | |||
* <b>victim</b> <small>(byte)</small> - entindex of the player that was extinguished  | |||
* <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_damage_dodged ===  | |||
* <b>damage</b> <small>(short)</small>  | |||
=== flagstatus_update ===  | |||
* <b>userid</b> <small>(short)</small> - user ID of the player who now has the flag  | |||
* <b>entindex</b> <small>(long)</small> - ent index of flag  | |||
=== air_dash ===  | |||
* <b>player</b> <small>(byte)</small>  | |||
=== landed ===  | |||
* <b>player</b> <small>(byte)</small>  | |||
=== vote_maps_changed ===  | |||
* <b>type</b> <small>(byte)</small>  | * <b>type</b> <small>(byte)</small>  | ||
* <b>defindex</b> <small>(long)</small>  | * <b>defindex</b> <small>(long)</small>  | ||
| Line 1,648: | Line 1,678: | ||
* <b>erase_history</b> <small>(bool)</small>  | * <b>erase_history</b> <small>(bool)</small>  | ||
==   | === schema_updated ===  | ||
=== rd_rules_state_changed ===  | |||
==   | === duck_xp_level_up ===  | ||
* <b>  | * <b>level</b> <small>(short)</small> - leveled up to what  | ||
==   | === update_status_item ===  | ||
* <b>  | * <b>index</b> <small>(byte)</small>  | ||
* <b>  | * <b>object</b> <small>(byte)</small>  | ||
==   | === parachute_deploy ===  | ||
* <b>  | * <b>index</b> <small>(short)</small> - entindex of the player  | ||
==   | === parachute_holster ===  | ||
* <b>  | * <b>index</b> <small>(short)</small> - entindex of the player  | ||
Latest revision as of 09:46, 20 May 2025
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.
params.class, as class is a reserved word in Squirrel. Instead, use string indexing like so: params["class"]tf/scripts/vscripts/ folder and run script_execute showevents in console.Serverside
achievement_earned
- player (byte) - entindex of the player
 - achievement (short) - achievement ID
 
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
 
ammo_pickup
- ammo_index (long)
 - amount (long)
 - total (long)
 
arena_match_maxstreak
- team (byte)
 - streak (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)
 
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)
 
building_healed
- building (short)
 - healer (short)
 - amount (short)
 
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_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_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
 
duel_status
- killer (short)
 - score_type (short)
 - initiator (short)
 - target (short)
 - initiator_score (short)
 - target_score (short)
 
enter_vehicle
- vehicle (long) - entindex of the vehicle
 
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
 
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
flare_ignite_npc
- entindex (long) - entity ignited
 
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_start
a new game starts
- roundslimit (long) - max round
 - timelimit (long) - time limit
 - fraglimit (long) - frag limit
 - objective (string) - round objective
 
gameui_activate
gameui_hide
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
host_quit
intro_finish
- player (short) - entindex of the player
 
intro_nextcamera
- player (short) - entindex of the player
 
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
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
 
leave_vehicle
- vehicle (long) - entindex of the vehicle
 
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
- 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
- area (long)
 - blocked (bool)
 
npc_hurt
Fired when an Engineer building (obj_sentrygun, obj_dispenser, obj_teleporter), base_boss, MvM tank (tank_boss) or Halloween enemy (headless_hatman, eyeball_boss, merasmus, tf_zombie) is damaged.
- entindex (short)
 - health (short)
 - attacker_player (short)
 - weaponid (short)
 - damageamount (short)
 - crit (bool)
 - boss (short) - 1=HHH 2=Monoculus 3=Merasmus
 
num_cappers_changed
- index (short) - index of the trigger
 - count (byte) - number of cappers (-1 for blocked)
 
object_deflected
- userid (short) - player who deflected the object
 - ownerid (short) - owner of the object
 - weaponid (short) - weapon id (0 means the player in ownerid was pushed)
 - object_entindex (short) - entindex of the object that got deflected
 
object_destroyed
- userid (short) - user ID who died
 - attacker (short) - user ID who killed
 - assister (short) - user ID of assister
 - weapon (string) - weapon name killer used
 - weaponid (short) - id of the weapon used
 - objecttype (short) - type of object destroyed
 - index (short) - index of the object destroyed
 - was_building (bool) - object was being built when it died
 - team (short) - building's team
 
object_detonated
- userid (short) - user ID of the object owner
 - objecttype (short) - type of object removed
 - index (short) - index of the object removed
 
object_removed
- userid (short) - user ID of the object owner
 - objecttype (short) - type of object removed
 - index (short) - index of the object removed
 
overtime_nag
pass_ball_blocked
- owner (short)
 - blocker (short)
 
pass_ball_stolen
- victim (short)
 - attacker (short)
 
pass_free
- owner (short)
 - attacker (short)
 
pass_get
- owner (short)
 - team (short)
 
pass_pass_caught
- passer (short)
 - catcher (short)
 - dist (float)
 - duration (float)
 
pass_score
- scorer (short)
 - assister (short)
 - points (byte)
 
path_track_passed
- index (short) - entity handle of the node being passed (not the index!)
 
EntIndexToHScript(params.index & (Constants.Server.MAX_EDICTS - 1))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_activate
- userid (short) - user ID on server
 
player_askedforball
- userid (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_carryobject
- userid (short) - user ID of the builder
 - object (short) - type of object built
 - index (short) - index of the object
 
player_changeclass
- userid (short) - user ID who changed class
 - class (short) - class that they changed to
 
player_changename
- userid (short) - user ID on server
 - oldname (string) - players old (current) name
 - newname (string) - players new name
 
player_chargedeployed
- userid (short) - user ID of medic who deployed charge
 - targetid (short) - user ID of who the medic charged
 
player_chat
a public player chat
- teamonly (bool) - true if team only chat
 - userid (short) - chatting player
 - text (string) - chat text
 
player_class
a player changed his class
- userid (short) - user ID on server
 - class (string) - new player class / model
 
player_connect
A new client has connected. This does NOT fire between level changes as the player is already connected. Use player_spawn instead if you need to catch every player entity that is created.
- name (string) - player name
 - index (byte) - player slot (entity index-1)
 - userid (short) - user ID on server (unique on server)
 - networkid (string) - player network (i.e steam) id
 - address (string) - ip:port
 - bot (short) - is a bot
 
player_connect_client
a new client connected
- name (string) - player name
 - index (byte) - player slot (entity index-1)
 - userid (short) - user ID on server (unique on server)
 - networkid (string) - player network (i.e steam) id
 - bot (short) - is a bot
 
player_death
Fired when a player dies. This shows up in the kill feed.
if (params.death_flags & 32)!- 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
 
GetPlayerFromUserID, ALWAYS check if it's not null first! If the player died from the environment or NPCs, the attacker handle will be null.- 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
 
death_flags instead.- dominated (short) - did killer dominate victim with this kill
 - assister_dominated (short) - did assister dominate victim with this kill
 - revenge (short) - did killer get revenge on victim with this kill
 - assister_revenge (short) - did assister get revenge on victim with this kill
 - first_blood (bool) - was this a first blood kill
 - feign_death (bool) - the victim is feign death
 
player_destroyed_pipebomb
- userid (short)
 
player_directhit_stun
- attacker (short) - entindex of the attacker
 - victim (short) - entindex of the victim
 
player_disconnect
A client has disconnected. The player handle and script scope still exists when this event fires, as it persists for a frame after disconnect.
- userid (short) - user ID on server
 - reason (string) - "self", "kick", "ban", "cheat", "error"
 - name (string) - player name
 - networkid (string) - player network (i.e steam) id
 - bot (short) - is a bot
 
player_domination
- dominator (short) - userID of who gained domination
 - dominated (short) - userID of who got dominated
 - dominations (short) - Number of dominations this dominator has
 
player_dropobject
- userid (short) - user ID of the builder
 - object (short) - type of object built
 - index (short) - index of the object
 
player_escort_score
- player (byte)
 - points (byte)
 
player_healed
- patient (short)
 - healer (short)
 - amount (short)
 
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_hurt
- userid (short)
 - health (short) - if <= 0, then this will play the killsound
 - attacker (short)
 - damageamount (short)
 - custom (short)
 - showdisguisedcrit (bool) - if our attribute specifically crits disguised enemies we need to show it on the client
 - crit (bool) - legacy only, use 
bonuseffect - minicrit (bool) - legacy only, use 
bonuseffect - allseecrit (bool)
 - weaponid (short)
 - bonuseffect (byte) - type of damage effect, see constants page.
 
player_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_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_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_shoot
- userid (short) - user ID on server
 - weapon (byte) - weapon ID
 - mode (byte) - weapon mode
 
player_spawn
This event will be sent once when the player entity is created, i.e. they joined the server or they are loading in after a map change. In this case, team is equal to 0 (unassigned). Each time afterwards, the event will only be fired when the player spawns alive on red or blue team. This is also fired once when SourceTV is loaded in. 
- userid (short) - user ID who spawned
 - team (short) - team they spawned on
 - class (short) - class they spawned as
 
player_stealsandvich
- owner (short)
 - target (short)
 
player_stunned
- stunner (short) 
Warning:If there's no attacker, this key won't exist (such as being stunned after hitting a wall with a bumper kart) - victim (short)
 - victim_capping (bool)
 - big_stun (bool)
 
player_team
Fired when player joins a team.
- userid (short) - user ID on server
 - team (byte) - team id
 - oldteam (byte) - old team id
 - disconnect (bool) - team change because player disconnects
 - autoteam (bool) - true if the player was auto assigned to the team
 - silent (bool) - if true wont print the team join messages
 - name (string) - player's name
 
player_teleported
- userid (short) - userid of the player
 - builderid (short) - userid of the player who built the teleporter
 - dist (float) - distance the player was teleported
 
player_turned_to_ghost
- userid (short) - user ID of the player who changed to a ghost
 
player_upgraded
player_upgradedobject
- userid (short) - user ID of the builder
 - object (short) - type of object built
 - index (short) - index of the object
 - isbuilder (bool)
 
player_use
- userid (short) - user ID on server
 - entity (short) - entity used by player
 
player_used_powerup_bottle
- player (short)
 - type (short)
 - time (float)
 
post_inventory_application
Fired when the player has items resupplied, i.e. when the player spawns or touches resupply (func_regenerate).
- userid (short)
 
projectile_direct_hit
- attacker (byte) - index of the player who shot the projectile
 - victim (byte) - index of the player who got direct-ht
 - weapon_def_index (long) - defindex of the direct hitting weapon
 
projectile_removed
- attacker (byte)
 - weapon_def_index (long)
 - num_hit (byte)
 - num_direct_hit (byte)
 
pumpkin_lord_killed
pumpkin_lord_summoned
pve_win_panel
- panel_style (byte) - for client to determine layout
 - winning_team (byte)
 - winreason (byte) - the reason the team won
 
quest_map_data_changed
- igniter (short) - entindex of the igniter
 - douser (short) - entindex of the douser
 - victim (short) - entindex of the victim
 
quest_progress
- owner (short)
 - scorer (short)
 - type (byte)
 - completed (bool)
 - quest_defindex (long)
 
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
 
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_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
respawn_ghost
- reviver (short) - userid of the reviving player
 - ghost (short) - userid of the player that got revived
 
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
 
scorestats_accumulated_reset
Fired when round resets due to mp_restartgame.
scorestats_accumulated_update
Fired right before map entities are cleaned up for a round restart.
This event is not fired in Mann Vs Machine mode. For MvM, use recalculate_holidays and check if GetRoundState() === 3 is true, which indicates a mission reset.
scout_grand_slam
- scout_id (short)
 - target_id (short)
 
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_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
 
special_score
- player (byte) - index of the scorer
 
spy_pda_reset
stats_resetround
sticky_jump
- userid (short)
 - playsound (bool)
 
sticky_jump_landed
- userid (short)
 
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_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_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
 
upgrades_file_changed
- path (string)
 
vote_cast
- vote_option (byte) - which option the player voted on
 - team (short)
 - entityid (long) - entity id of the voter
 - voteidx (long)
 
vote_ended
vote_options
- count (byte) - Number of options - up to MAX_VOTE_OPTIONS
 - option1 (string)
 - option2 (string)
 - option3 (string)
 - option4 (string)
 - option5 (string)
 - voteidx (long)
 
weapon_equipped
- class (string)
 - entindex (long)
 
winlimit_changed
- delay (float)
 
Clientside
spec_target_updated
show_freezepanel
- killer (short) - entindex of the killer entity
 
hide_freezepanel
freezecam_started
controlpoint_initialized
controlpoint_unlock_updated
- index (short) - index of the cap being updated
 - time (float) - time
 
controlpoint_timer_updated
- index (short) - index of the cap being updated
 - time (float) - time
 
escort_speed
- team (byte) - which team
 - speed (byte)
 - players (byte)
 
escort_progress
- team (byte) - which team
 - progress (float)
 - reset (bool)
 
escort_recede
- team (byte) - which team
 - recedetime (float)
 
vote_changed
- vote_option1 (byte)
 - vote_option2 (byte)
 - vote_option3 (byte)
 - vote_option4 (byte)
 - vote_option5 (byte)
 - potentialVotes (byte)
 - voteidx (long)
 
gameui_activated
game_newmap
send when new map is completely loaded
- mapname (string) - map name
 
items_acknowledged
- blocker (short) - entindex of the blocker
 - victim (short) - entindex of the victim
 
store_pricesheet_updated
cart_updated
inventory_updated
hltv_changed_mode
- oldmode (short)
 - newmode (short)
 - obs_target (short)
 
hltv_changed_target
- mode (short)
 - old_target (short)
 - obs_target (short)
 
vote_failed
- 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)
 
vote_passed
- details (string)
 - param1 (string)
 - team (byte)
 - voteidx (long)
 
replay_saved
replay_youtube_stats
- views (long)
 - likes (long)
 - favorited (long)
 
base_player_teleported
- entindex (short)
 
browse_replays
entered_performance_mode
building_info_changed
- building_type (byte)
 - object_mode (byte)
 - remove (byte)
 
scout_slamdoll_landed
- target_index (short)
 - x (float)
 - y (float)
 - z (float)
 
localplayer_changeteam
localplayer_changeclass
localplayer_becameobserver
localplayer_changedisguise
- disguised (bool)
 
localplayer_builtobject
- object (short) - type of object built
 - object_mode (short) - used for teleporters: entrance vs. exit
 - index (short) - index of the object
 
localplayer_chargeready
local player has full medic charge
localplayer_pickup_weapon
localplayer_respawn
localplayer_score_changed
- score (short)
 
localplayer_winddown
local player minigun winddown
player_account_changed
- old_value (short)
 - new_value (short)
 
localplayer_healed
- amount (short)
 
player_currency_changed
- currency (short)
 
player_calledformedic
- userid (short)
 
player_healedbymedic
- medic (byte)
 
player_pinned
- pinned (byte)
 
hide_annotation
- id (long)
 
show_annotation
- worldPosX (float)
 - worldPosY (float)
 - worldPosZ (float)
 - worldNormalX (float)
 - worldNormalY (float)
 - worldNormalZ (float)
 - id (long)
 - text (string) - name (unlocalized)
 - lifetime (float)
 - visibilityBitfield (long) - bitfield of the players that can see this. If 0, everyone can see it
 
- follow_entindex (long) - if this is set, follow this entity
 - show_distance (bool)
 - play_sound (string)
 - show_effect (bool)
 
player_bonuspoints
- points (short)
 - player_entindex (short)
 - source_entindex (short)
 
rd_team_points_changed
- points (short)
 - team (byte)
 - method (byte)
 
quest_objective_completed
For prediction
- quest_item_id_low (long)
 - quest_item_id_hi (long)
 - quest_objective_id (long)
 - scorer_user_id (short)
 
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
lobby_updated
match_invites_updated
show_class_layout
- show (bool)
 
arena_player_notification
- player (byte)
 - message (byte)
 
- attacker (short)
 - victim (short)
 - assister (short)
 
player_stats_updated
- forceupload (bool)
 
player_mvp
- player (short)
 
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_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_criteria_changed
party_invites_changed
party_pref_changed
party_queue_state_changed
- matchgroup (short) - ETFMatchGroup
 
party_updated
playing_commentary
achievement_earned_local
- achievement (short)
 
user_data_downloaded
fired when achievements/stats are downloaded from Steam or XBox Live
econ_inventory_connected
gc_lost_session
gc_new_session
player_hintmessage
- hintmessage (string) - localizable string of a hint
 
restart_timer_time
- time (byte) - How much time is left
 
teamplay_update_timer
teamplay_round_stalemate
- reason (byte) - why the stalemate is occuring
 
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_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_damaged
- amount (short)
 - type (long)
 
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_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_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_damage_dodged
- damage (short)
 
flagstatus_update
- userid (short) - user ID of the player who now has the flag
 - entindex (long) - ent index of flag
 
air_dash
- player (byte)
 
landed
- player (byte)
 
vote_maps_changed
- type (byte)
 - defindex (long)
 - created (bool)
 - deleted (bool)
 - erase_history (bool)
 
schema_updated
rd_rules_state_changed
duck_xp_level_up
- level (short) - leveled up to what
 
update_status_item
- index (byte)
 - object (byte)
 
parachute_deploy
- index (short) - entindex of the player
 
parachute_holster
- index (short) - entindex of the player