Left 4 Dead 2/Scripting/Game Events: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(Blanked the page)
m (add player_connect_full and player_say)
 
(55 intermediate revisions by 7 users not shown)
Line 1: Line 1:
[[Category:Left 4 Dead 2]]
{{Back|Left 4 Dead 2 Level Creation}}
{{Wikipage port|page=Left_4_Dead_2_Events|alt=Left 4 Dead 2 Events|website=https://wiki.alliedmods.net|sitename=AlliedModders Wiki|no"wiki"prefix=1}}
:''Refer back to [https://wiki.alliedmods.net/Game_Events_(Source) Game Events (Source)] for more events.''
{{toc-right}}


== player_death ==
a game event, name may be 32 charaters long; this extents the original player_death by a new fields
* <b>userid</b> <small>(short)</small> - user ID who died
* <b>entityid</b> <small>(long)</small> - entity ID who died, userid should be used first, to get the dead Player.  Otherwise, it is not a player, so use this.
* <b>attacker</b> <small>(short)</small> - user ID who killed
* <b>attackername</b> <small>(string)</small> - What type of zombie, so we don't have zombie names
* <b>attackerentid</b> <small>(long)</small> - if killer not a player, the entindex of who killed.  Again, use attacker first
* <b>weapon</b> <small>(string)</small> - weapon name killer used
* <b>headshot</b> <small>(bool)</small> - signals a headshot
* <b>attackerisbot</b> <small>(bool)</small> - is the attacker a bot
* <b>victimname</b> <small>(string)</small> - What type of zombie, so we don't have zombie names
* <b>victimisbot</b> <small>(bool)</small> - is the victim a bot
* <b>abort</b> <small>(bool)</small> - did the victim abort
* <b>type</b> <small>(long)</small> - damage type
* <b>victim_x</b> <small>(float)</small> -
* <b>victim_y</b> <small>(float)</small> -
* <b>victim_z</b> <small>(float)</small> -
== player_hurt ==
Registers all playable classes (Hunter, Smoker, Boomer, Tank, Survivors). See infected_hurt for Witch and Common Infected
* <b>local</b> <small>(1)</small> - Not networked
* <b>userid</b> <small>(short)</small> - user ID who was hurt
* <b>attacker</b> <small>(short)</small> - user id who attacked
* <b>attackerentid</b> <small>(long)</small> - entity id who attacked, if attacker not a player, and userid therefore invalid
* <b>health</b> <small>(short)</small> - remaining health points
* <b>armor</b> <small>(byte)</small> - remaining armor points
* <b>weapon</b> <small>(string)</small> - weapon name attacker used, if not the world
* <b>dmg_health</b> <small>(short)</small> - damage done to health
* <b>dmg_armor</b> <small>(byte)</small> - damage done to armor
* <b>hitgroup</b> <small>(byte)</small> - hitgroup that was damaged
* <b>type</b> <small>(long)</small> - damage type
== player_activate ==
Earliest game event that generates when a CTerrorPlayer entity is being spawned
* <b>userid</b> <small>(short)</small> - user ID on server
== player_team ==
player change his team
* <b>userid</b> <small>(short)</small> - user ID on server
* <b>team</b> <small>(byte)</small> - team id
* <b>oldteam</b> <small>(byte)</small> - old team id
* <b>disconnect</b> <small>(bool)</small> - team change because player disconnects
* <b>name</b> <small>(string)</small> -
* <b>isbot</b> <small>(bool)</small> -
== player_bot_replace ==
Bot replaced a player
* <b>player</b> <small>(short)</small> - user ID of the player
* <b>bot</b> <small>(short)</small> - user ID of the bot
== bot_player_replace ==
Player replaced a bot
* <b>bot</b> <small>(short)</small> - user ID of the bot
* <b>player</b> <small>(short)</small> - user ID of the player
{{tip|Imagine using slot operator when reading the name of these events <code>bot <- player</code> to remember whether bot is being replaced or a player}}
== player_afk ==
* <b>player</b> <small>(short)</small> - user ID of the player
== weapon_fire ==
{{Note | It will fire before firing the weapon, even if it's being interrupted.
For example: interrupting a molotov throw by switching right before it's about to be thrown. }}
* <b>local</b> <small>(1)</small> - don't network this, its way too spammy
* <b>userid</b> <small>(short)</small> -
* <b>weapon</b> <small>(string)</small> - used weapon name
* <b>weaponid</b> <small>(short)</small> - used weapon ID
* <b>count</b> <small>(short)</small> - number of bullets
== weapon_fire_on_empty ==
* <b>local</b> <small>(1)</small> - don't network this, its way too spammy
* <b>userid</b> <small>(short)</small> -
* <b>weapon</b> <small>(string)</small> - weapon name used
* <b>count</b> <small>(short)</small> - number of bullets
== weapon_reload ==
* <b>userid</b> <small>(short)</small> -
* <b>manual</b> <small>(bool)</small> - player manually started the reload
== weapon_zoom ==
* <b>userid</b> <small>(short)</small> -
== ability_use ==
{{eventnote|Called|When an infected uses their ability}}
{{eventnote|Issues|Doesn't fire for jockey}}
* <b>userid</b> <small>(short)</small> -
* <b>ability</b> <small>(string)</small> - Classname of ability. Possible values: 'ability_tongue', 'ability_vomit', 'ability_lunge', 'ability_spit', 'ability_charge', 'ability_throw' for the Smoker, Boomer, Hunter, Spitter, Charger and Tank respectively.
* <b>context</b> <small>(short)</small> - enum of the way it was used (different for each ability)
== ammo_pickup ==
* <b>userid</b> <small>(short)</small> - The player who got some ammo from a weapon_ammo_spawner
== item_pickup ==
* <b>userid</b> <small>(short)</small> -
* <b>item</b> <small>(string)</small> - either a weapon such as 'tmp' or 'hegrenade', or an item such as 'nvgs'
== golden_crowbar_pickup ==
* <b>userid</b> <small>(short)</small> -  The player who picked up the crowbar
== grenade_bounce ==
When a player's thrown pipebomb is currently bouncing.
* <b>userid</b> <small>(short)</small> -
== hegrenade_detonate ==
* <b>userid</b> <small>(short)</small> -
* <b>x</b> <small>(float)</small> -
* <b>y</b> <small>(float)</small> -
* <b>z</b> <small>(float)</small> -
== bullet_impact ==
{{bug*|Will not fire for the grenade launcher and miniguns.|only=l4d2}}
* <b>userid</b> <small>(short)</small> -
* <b>x</b> <small>(float)</small> -
* <b>y</b> <small>(float)</small> -
* <b>z</b> <small>(float)</small> -
== player_footstep ==
* <b>userid</b> <small>(short)</small> -
== player_jump ==
* <b>userid</b> <small>(short)</small> -
== player_blind ==
* <b>userid</b> <small>(short)</small> -
== player_falldamage ==
* <b>userid</b> <small>(short)</small> - Who got hurt
* <b>damage</b> <small>(float)</small> - for how much
* <b>causer</b> <small>(short)</small> - Who caused them to do so (if anyone)
== player_ledge_grab ==
* <b>userid</b> <small>(short)</small> - Who grabbed the ledge
* <b>causer</b> <small>(short)</small> - Who caused them to do so (if anyone)
== player_ledge_release ==
* <b>userid</b> <small>(short)</small> - person who released from the ledge
== door_moving ==
* <b>entindex</b> <small>(long)</small> -
* <b>userid</b> <small>(short)</small> -
== door_open ==
* <b>userid</b> <small>(short)</small> - Who opened the door
* <b>checkpoint</b> <small>(bool)</small> - Is the door a checkpoint door
* <b>closed</b> <small>(bool)</small> - Was the door closed when it started opening?
== door_close ==
* <b>userid</b> <small>(short)</small> - Who closed the door
* <b>checkpoint</b> <small>(bool)</small> - Is the door a checkpoint door
== door_unlocked ==
* <b>userid</b> <small>(short)</small> - Who opened the door
* <b>checkpoint</b> <small>(bool)</small> - Is the door a checkpoint door
== rescue_door_open ==
* <b>userid</b> <small>(short)</small> - Who opened the door
* <b>entindex</b> <small>(long)</small> - door that opened
== waiting_checkpoint_door_used ==
Someone tried to open a checkpoint door that is locked till everyone loads in
* <b>userid</b> <small>(short)</small> - player who tried to open it
* <b>entindex</b> <small>(long)</small> - door that was used
== waiting_door_used_versus ==
Someone tried to open a checkpoint door that is locked till everyone loads in
* <b>userid</b> <small>(short)</small> - player who tried to open it
* <b>entindex</b> <small>(long)</small> - door that was used
== waiting_checkpoint_button_used ==
Someone tried to push a button that's locked until everyone is gathered
* <b>userid</b> <small>(short)</small> - player who tried to open it
== success_checkpoint_button_used ==
Someone pushed a button that's locked until everyone is gathered
* <b>userid</b> <small>(short)</small> - player who openned it
== round_freeze_end ==
* <b>None</b> <small>(None)</small> -
== round_start ==
* <b>timelimit</b> <small>(long)</small> - round time limit in seconds
* <b>fraglimit</b> <small>(long)</small> - frag limit in seconds
* <b>objective</b> <small>(string)</small> - round objective
== round_start_pre_entity ==
* <b>None</b> <small>(None)</small> -
== round_start_post_nav ==
* <b>None</b> <small>(None)</small> -
== nav_blocked ==
* <b>area</b> <small>(long)</small> -
* <b>blocked</b> <small>(bool)</small> -
== nav_generate ==
* <b>None</b> <small>(None)</small> -
== round_end_message ==
* <b>winner</b> <small>(byte)</small> - winner team/user i
* <b>reason</b> <small>(byte)</small> - reson why team won
* <b>message</b> <small>(string)</small> - end round message
== round_end ==
* <b>winner</b> <small>(byte)</small> - winner team/user i
* <b>reason</b> <small>(byte)</small> - reson why team won
* <b>message</b> <small>(string)</small> - end round message
* <b>time</b> <small>(float)</small> -
== vote_ended ==
* <b>None</b> <small>(None)</small> -
== vote_started ==
* <b>issue</b> <small>(string)</small> -
* <b>param1</b> <small>(string)</small> -
* <b>votedata</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>reliable</b> <small>(1)</small> - this event is reliable
== vote_changed ==
* <b>yesVotes</b> <small>(byte)</small> -
* <b>noVotes</b> <small>(byte)</small> -
* <b>potentialVotes</b> <small>(byte)</small> -
== vote_passed ==
* <b>details</b> <small>(string)</small> -
* <b>param1</b> <small>(string)</small> -
* <b>team</b> <small>(byte)</small> -
* <b>reliable</b> <small>(1)</small> - this event is reliable
== vote_failed ==
* <b>team</b> <small>(byte)</small> -
* <b>reliable</b> <small>(1)</small> - this event is reliable
== vote_cast_yes ==
* <b>team</b> <small>(byte)</small> -
* <b>entityid</b> <small>(long)</small> - entity id of the voter
== vote_cast_no ==
* <b>team</b> <small>(byte)</small> -
* <b>entityid</b> <small>(long)</small> - entity id of the voter
== infected_hurt ==
Registers for non-playable classes (Common Infected, Witch). See player_hurt for other playable classes
* <b>local</b> <small>(1)</small> - don't network this, its way too spammy
* <b>attacker</b> <small>(short)</small> - player userid who attacked
* <b>entityid</b> <small>(long)</small> - entity id of infected
* <b>hitgroup</b> <small>(byte)</small> - hitgroup that was damaged
* <b>amount</b> <small>(short)</small> - how much damage was done
* <b>type</b> <small>(long)</small> - damage type
== infected_death ==
* <b>attacker</b> <small>(short)</small> - user ID who killed
* <b>infected_id</b> <small>(short)</small> - ID of the infected that died
* <b>gender</b> <small>(short)</small> - gender (type) of the infected
* <b>weapon_id</b> <small>(short)</small> - ID of the weapon used
* <b>headshot</b> <small>(bool)</small> - signals a headshot
* <b>minigun</b> <small>(bool)</small> - signals a minigun kill
* <b>blast</b> <small>(bool)</small> - signals a death from blast damage
* <b>submerged</b> <small>(bool)</small> - indicates the infected was submerged
== hostname_changed ==
* <b>hostname</b> <small>(string)</small> -
== difficulty_changed ==
It appears that strDifficulty is z_difficulty value
* <b>newDifficulty</b> <small>(short)</small> -
* <b>oldDifficulty</b> <small>(short)</small> -
* <b>strDifficulty</b> <small>(string)</small> -
== finale_start ==
* <b>rushes</b> <small>(short)</small> -
== finale_rush ==
* <b>None</b> <small>(None)</small> -
== finale_escape_start ==
* <b>None</b> <small>(None)</small> -
== finale_vehicle_incoming ==
* <b>campaign</b> <small>(string)</small> -
== finale_vehicle_ready ==
* <b>campaign</b> <small>(string)</small> -
== finale_vehicle_leaving ==
* <b>survivorcount</b> <small>(short)</small> - number of survivors that made it out
== finale_win ==
* <b>map_name</b> <small>(string)</small> -
* <b>difficulty</b> <small>(short)</small> -
== mission_lost ==
As in, the survivor team failed.  Opposite of finale_win, but not necessarily during the finale.
* <b>None</b> <small>(None)</small> -
== finale_radio_start ==
* <b>health</b> <small>(short)</small> -
== finale_radio_damaged ==
* <b>health</b> <small>(short)</small> -
== final_reportscreen ==
Right before the final report screen comes up, let awards possibly fire
* <b>None</b> <small>(None)</small> -
== map_transition ==
When campaign cinematics start
* <b>None</b> <small>(None)</small> -
== player_transitioned ==
When campaign cinematics end and player is transitioned to first person view
* <b>userid</b> <small>(short)</small> - the person that just finished transitioning
== heal_begin ==
* <b>userid</b> <small>(short)</small> - person doing the healing
* <b>subject</b> <small>(short)</small> - person being healed
== heal_success ==
* <b>userid</b> <small>(short)</small> - person doing the healing
* <b>subject</b> <small>(short)</small> - person being healed
* <b>health_restored</b> <small>(short)</small> - amount of health restored
== heal_end ==
{{eventnote|Issues|subject is broken for this event, it always appears to be the player doing the healing}}
* <b>userid</b> <small>(short)</small> - person doing the healing
* <b>subject</b> <small>(short)</small> - person being healed
== heal_interrupted ==
* <b>userid</b> <small>(short)</small> - person who was being healed, but moved.
* <b>subject</b> <small>(short)</small> - person being healed
== ammo_pack_used ==
* <b>userid</b> <small>(short)</small> - person giving the ammo
* <b>subject</b> <small>(short)</small> - person receiving ammo
== give_weapon ==
* <b>userid</b> <small>(short)</small> - The giver of the weapon
* <b>recipient</b> <small>(short)</small> - The recipient of the weapon
* <b>weapon</b> <small>(short)</small> - The ID of the weapon given
== pills_used ==
* <b>userid</b> <small>(short)</small> - person who had the pills
* <b>subject</b> <small>(short)</small> - person swallowing the pills
== pills_used_fail ==
* <b>userid</b> <small>(short)</small> - person who tried to use the pills
== ammo_pack_used_fail_no_weapon ==
* <b>userid</b> <small>(short)</small> - person who tried to use the ammo pack
* <b>subject</b> <small>(short)</small> - person it failed to help
== ammo_pack_used_fail_full ==
* <b>userid</b> <small>(short)</small> - person who tried to use the ammo pack
* <b>subject</b> <small>(short)</small> - person it failed to help
== ammo_pack_used_fail_doesnt_use_ammo ==
* <b>userid</b> <small>(short)</small> - person who tried to use the ammo pack
* <b>subject</b> <small>(short)</small> - person it failed to help
== ammo_pile_weapon_cant_use_ammo ==
* <b>userid</b> <small>(short)</small> - person who tried to use an ammo pile with a grenade launcher
== defibrillator_begin ==
* <b>userid</b> <small>(short)</small> - person who is defibrillating.
* <b>subject</b> <small>(short)</small> - person being revived
== defibrillator_used ==
* <b>userid</b> <small>(short)</small> - person who used the defibrillator
* <b>subject</b> <small>(short)</small> - person it helped
== defibrillator_used_fail ==
* <b>userid</b> <small>(short)</small> - person who tried to use the defibrillator
* <b>subject</b> <small>(short)</small> - person it failed to help
== defibrillator_interrupted ==
* <b>userid</b> <small>(short)</small> - person who was defibrillating, but moved.
* <b>subject</b> <small>(short)</small> - person being revived
== upgrade_pack_begin ==
* <b>userid</b> <small>(short)</small> - person who is deploying the pack
== upgrade_pack_used ==
* <b>upgradeid</b> <small>(short)</small> - entity index of the deployed upgrade pack (either {{ent|upgrade_ammo_explosive}} or {{ent|upgrade_ammo_incendiary}})
* <b>userid</b> <small>(short)</small> - person who is deploying the pack
== upgrade_item_already_used ==
* <b>userid</b> <small>(short)</small> - person who tried to use an ammo upgrade twice
* <b>upgradeclass</b> <small>(string)</small> - classname of the upgrade we tried to use
== upgrade_failed_no_primary ==
* <b>userid</b> <small>(short)</small> - person who tried to use an upgrade without having a primary weapon
* <b>upgrade</b> <small>(string)</small> - name of the upgrade we tried to use, eg "INCENDIARY_AMMO"
== dead_survivor_visible ==
* <b>userid</b> <small>(short)</small> - The player who sees the entity
* <b>subject</b> <small>(long)</small> - Entindex of the entity they see
* <b>deadplayer</b> <small>(short)</small> - user id of the dead player represented
== adrenaline_used ==
* <b>userid</b> <small>(short)</small> - person who had and used the adrenaline
== revive_begin ==
* <b>userid</b> <small>(short)</small> - person doing the reviving
* <b>subject</b> <small>(short)</small> - person being revived
== revive_success ==
* <b>userid</b> <small>(short)</small> - person doing the reviving
* <b>subject</b> <small>(short)</small> - person who was revived
* <b>lastlife</b> <small>(bool)</small> - person revived will die if they fall again
* <b>ledge_hang</b> <small>(bool)</small> - 1 if person revived was ledge hanging
== revive_end ==
* <b>userid</b> <small>(short)</small> - person doing the reviving
* <b>subject</b> <small>(short)</small> - person being revived
* <b>ledge_hang</b> <small>(bool)</small> - person is ledge hanging
== drag_begin ==
* <b>userid</b> <small>(short)</small> - person doing the dragging
* <b>subject</b> <small>(short)</small> - person being dragged
== drag_end ==
* <b>userid</b> <small>(short)</small> - person doing the dragging
* <b>subject</b> <small>(short)</small> - person being dragged
== player_incapacitated ==
when a player becomes incapacitated.  This is also called when a tank is killed.
* <b>userid</b> <small>(short)</small> - person who became incapacitated
* <b>attacker</b> <small>(short)</small> - user ID who made us incapacitated
* <b>attackerentid</b> <small>(long)</small> - if attacker not player, entindex of who made us incapacitated
* <b>weapon</b> <small>(string)</small> - weapon name attacker used
* <b>type</b> <small>(long)</small> - damage type
== player_incapacitated_start ==
when a player is about to become incapacitated, so you can see his last living state
* <b>userid</b> <small>(short)</small> - person who became incapacitated
* <b>attacker</b> <small>(short)</small> - user ID who made us incapacitated
* <b>attackerentid</b> <small>(long)</small> - if attacker not player, entindex of who made us incapacitated
* <b>weapon</b> <small>(string)</small> - weapon name attacker used
* <b>type</b> <small>(long)</small> - damage type
== player_entered_start_area ==
when a player spawns into the player start area
* <b>userid</b> <small>(short)</small> - person who entered
== player_first_spawn ==
when a player spawns for the first time in a given mission
* <b>userid</b> <small>(short)</small> - person who spawned
* <b>map_name</b> <small>(string)</small> -
* <b>isbot</b> <small>(bool)</small> -
== player_left_start_area ==
when a player leaves the player start area
* <b>userid</b> <small>(short)</small> - person who left
== player_left_safe_area ==
when a player leaves the safe area
* <b>userid</b> <small>(short)</small> - person who left
* <b>playercount</b> <small>(byte)</small> -
== player_entered_checkpoint ==
when a basecombatcharacter enters a checkpoint area
* <b>userid</b> <small>(short)</small> - player who entered
* <b>entityid</b> <small>(long)</small> - If not a player, the entity index of the one entering
* <b>door</b> <small>(long)</small> - Entindex of the checkpoint door the player entered to get here.
* <b>area</b> <small>(long)</small> -
* <b>doorname</b> <small>(string)</small> - name of the entity they see
== player_left_checkpoint ==
when a player leaves a checkpoint area
* <b>userid</b> <small>(short)</small> - player who left
* <b>entityid</b> <small>(long)</small> - If not a player, the entity index of the one exiting
* <b>area</b> <small>(long)</small> -
== player_shoved ==
{{eventnote|Issues|Will not fire when shoving a survivor that is currently in combat.}}
* <b>userid</b> <small>(short)</small> - player index who was shoved
* <b>attacker</b> <small>(short)</small> - player index who attacked them
== entity_shoved ==
* <b>entityid</b> <small>(short)</small> - the entity index of the one who was shoved
* <b>attacker</b> <small>(short)</small> - player index who attacked them
== player_jump_apex ==
* <b>userid</b> <small>(short)</small> - player who jumped
== player_blocked ==
* <b>userid</b> <small>(short)</small> - player index who was trying to move
* <b>blocker</b> <small>(short)</small> - player index who kept them from moving
== player_now_it ==
* <b>userid</b> <small>(short)</small> - Player who is now it
* <b>attacker</b> <small>(short)</small> - player that did the it-ing
* <b>exploded</b> <small>(bool)</small> - whether it was vomit or explosion
* <b>infected</b> <small>(bool)</small> - is the vomit infectious
* <b>by_boomer</b> <small>(bool)</small> - came from a boomer
== player_no_longer_it ==
* <b>userid</b> <small>(short)</small> - Player who is now no longer it
== witch_harasser_set ==
* <b>userid</b> <small>(short)</small> - Player who woke up the witch
* <b>witchid</b> <small>(long)</small> - Entindex of witch woken up
* <b>first</b> <small>(bool)</small> - First time the witch set a harasser
== witch_spawn ==
* <b>witchid</b> <small>(long)</small> - Entindex of witch spawning right now.
== witch_killed ==
* <b>userid</b> <small>(short)</small> - Player who killed the witch
* <b>witchid</b> <small>(long)</small> - Entindex of witch that was killed.
* <b>oneshot</b> <small>(bool)</small> - TRUE if the Witch was killed with one shot
* <b>melee_only</b> <small>(bool)</small> - TRUE if the witch was only killed by melee attacks (no blast, burn, or bullet damage)
* <b>bride</b> <small>(bool)</small> - bride variant?
== tank_spawn ==
* <b>userid</b> <small>(short)</small> - User ID of the tank spawning now
* <b>tankid</b> <small>(long)</small> - Entindex of tank spawning right now.
== melee_kill ==
* <b>userid</b> <small>(short)</small> - Player who bashed the infected
* <b>entityid</b> <small>(long)</small> - Entindex of infected what got killed
* <b>ambush</b> <small>(bool)</small> - Infected was unaware when killed
== area_cleared ==
* <b>userid</b> <small>(short)</small> - person who cleared the area
* <b>area</b> <small>(long)</small> - id of the cleared area
== award_earned ==
* <b>userid</b> <small>(short)</small> - player who earned the award
* <b>entityid</b> <small>(long)</small> - client likes ent id
* <b>subjectentid</b> <small>(long)</small> - entity id of other party in the award, if any
* <b>award</b> <small>(short)</small> - id of award earned
== tongue_grab ==
* <b>userid</b> <small>(short)</small> - player who did the grabbing
* <b>victim</b> <small>(short)</small> - player that got grabbed
== tongue_broke_bent ==
* <b>userid</b> <small>(short)</small> - Tongue owner
== tongue_broke_victim_died ==
* <b>userid</b> <small>(short)</small> - Tongue owner
== tongue_release ==
Fired in all cases where the tongue releases a victim, whether choked or not, etc.{{Note |
* Fires twice in all release cases, except <code>tongue_broke_bent</code> where it only fires once.
* Second firation will return distance and victim parameters as 0.}}
* <b>userid</b> <small>(short)</small> - The tongue owner
* <b>victim</b> <small>(short)</small> - The (now released) victim
* <b>distance</b> <small>(long)</small> - Distance the victim was dragged.
== choke_start ==
* <b>userid</b> <small>(short)</small> - The choker
* <b>victim</b> <small>(short)</small> - The person being choked
== choke_end ==
* <b>userid</b> <small>(short)</small> - The choker
* <b>victim</b> <small>(short)</small> - The person being choked
== choke_stopped ==
Called when a smoker tongue is cleared on a choked player, fires alongside <code>choke_end</code> (<code>choke_stopped</code> fires first).{{Note |Does not fire when (<code>choke_end</code> still fires):
* The smoker is staggered with propane/oxygen tank, pipe bomb, explosive ammo, grenade launcher, boomer explosion, and charger impact.
* Another special takes over the pinned survivor or kills the smoker.
* The smoker is killed by gascan, firework box, molotov, and incendiary ammo.
* The smoker ledge-hanged the survivor.
* Using Stagger() on either the smoker or the survivor.}}
{{eventnote|Issues|While the event does not fire while staggering the smoker with the methods above, it will fire when it is killed using only the grenade launcher and explosive ammo.}}
* <b>userid</b> <small>(short)</small> - Who stopped it
* <b>victim</b> <small>(short)</small> - And who was being choked
* <b>smoker</b> <small>(short)</small> - The tongue owner
* <b>release_type</b> <small>(short)</small> - How did it break?
== tongue_pull_stopped ==
Called when a smoker tongue is cleared on a dragging player. Includes cuts.{{Note |Does not fire when:
* The smoker is staggered with propane/oxygen tank, pipe bomb, explosive ammo, grenade launcher, boomer explosion, and charger impact.
* Another special takes over the pinned survivor or kills the smoker.
* The smoker is killed by gascan, firework box, molotov, and incendiary ammo.
* The smoker ledge-hanged the survivor.
* Using Stagger() on either the smoker or the survivor.}}
{{eventnote|Issues|While the event does not fire while staggering the smoker with the methods above, it will fire when it is killed using only the grenade launcher and explosive ammo.}}
* <b>userid</b> <small>(short)</small> - Who stopped it
* <b>victim</b> <small>(short)</small> - And who was being pulled
* <b>smoker</b> <small>(short)</small> - The tongue owner
* <b>release_type</b> <small>(short)</small> - How did it break?
* <b>damage_type</b> <small>(long)</small> - bullet, slash, chainsaw
== lunge_shove ==
* <b>userid</b> <small>(short)</small> - player who did the lunging
* <b>victim</b> <small>(short)</small> - player that got lunged
== lunge_pounce ==
* <b>userid</b> <small>(short)</small> - player who did the lunging
* <b>victim</b> <small>(short)</small> - player that got lunged
* <b>distance</b> <small>(long)</small> - Distance from pounce start to contact
* <b>damage</b> <small>(short)</small> -
== pounce_end ==
* <b>userid</b> <small>(short)</small> - Player who did the pouncing
* <b>victim</b> <small>(short)</small> - And who was being pounced
== pounce_stopped ==
Fires whenever a player clearing a hunter dominating a survivor, fires alongside <code>pounce_end</code> (<code>pounce_stopped</code> is fired first).
{{Note |
* Will not fire if staggered by pipe bomb, propane/oxygen tank, explosive ammo, grenade_launcher, boomer explosion, charger impact, and Stagger(). (<code>pounce_end</code> will still fire)
* Fires if the hunter killed by any methods above, except boomer explosion and charger impact.
* A special that kills the hunter will return userid as the special's userid.
* Killing the hunter by shoving will fire this event before player_hurt. However, killing it by any other means will fire the event after player_hurt.
}}
{{eventnote|Issues|Shoving a hunter right after it pounces a survivor will not release the survivor, but the event will still fire.}}
* <b>userid</b> <small>(short)</small> - Who stopped it
* <b>victim</b> <small>(short)</small> - And who was being pounced
== pounce_attempt_stopped ==
* <b>userid</b> <small>(short)</small> - Who stopped it
* <b>weaponid</b> <small>(short)</small> - used weapon ID
== fatal_vomit ==
* <b>userid</b> <small>(short)</small> - Who vomited
* <b>victim</b> <small>(short)</small> - And who was killed or incapped
== survivor_call_for_help ==
* <b>userid</b> <small>(short)</small> - The actual player entity who is awaiting rescue.
* <b>subject</b> <small>(long)</small> - SurvivorRescue entity representing the player who needs to be rescued from the closet (used for position)
== survivor_rescued ==
* <b>rescuer</b> <small>(short)</small> - player that did the rescuing
* <b>victim</b> <small>(short)</small> - the survivor being rescued
* <b>dooridx</b> <small>(long)</small> - ent index of the rescue door
== survivor_rescue_abandoned ==
* <b>None</b> <small>(None)</small> -
== relocated ==
* <b>userid</b> <small>(short)</small> - player who was relocated
== respawning ==
* <b>userid</b> <small>(short)</small> - player who started respawning
== tank_frustrated ==
* <b>userid</b> <small>(short)</small> - player who was culled
== weapon_given ==
* <b>userid</b> <small>(short)</small> - player who got the weapon
* <b>giver</b> <small>(short)</small> - player that did the giving
* <b>weapon</b> <small>(short)</small> - weapon id given
* <b>weaponentid</b> <small>(short)</small> - weapon entity id
== weapon_drop ==
{{eventnote|Called|When an item is removed from a survivor's inventory}}
{{eventnote|Related Events|Called before heal_success, defibrillator_used, upgrade_pack_used, but called after pills_used and adrenaline_used}}
* <b>userid</b> <small>(short)</small> - player who dropped the weapon
* <b>item</b> <small>(string)</small> - either a weapon such as 'tmp' or 'hegrenade', or an item such as 'nvgs'
* <b>propid</b> <small>(short)</small> - entindex of the dropped weapon
== weapon_drop_to_prop ==
When a player drops an item that turns into a prop, such as gas can, firework box, propane tank, oxygen tank, cola bottles, gnome, etc.
* <b>userid</b> <small>(short)</small> - player who dropped the weapon
* <b>item</b> <small>(string)</small> - weapon string "weapon_*"
* <b>propid</b> <small>(short)</small> - entindex of the dropped weapon
== break_breakable ==
Override from gameevents.res
* <b>userid</b> <small>(short)</small> - userid of breaker
* <b>entindex</b> <small>(long)</small> - entindex of thing breaking
* <b>material</b> <small>(byte)</small> - BREAK_GLASS, BREAK_WOOD, etc
* <b>hulkonly</b> <small>(bool)</small> - SF_BREAK_HULK_ONLY
* <b>achievement</b> <small>(short)</small> - tag to identify achievement on the client
== achievement_earned ==
* <b>player</b> <small>(byte)</small> - entindex of the player
* <b>achievement</b> <small>(short)</small> - achievement ID
== spec_target_updated ==
* <b>None</b> <small>(None)</small> -
== spawner_give_item ==
A spawner has given a player an item (weapon, pills, ammo, health kit, etc)
* <b>userid</b> <small>(short)</small> - Item recipient
* <b>item</b> <small>(string)</small> - Name of item given
* <b>spawner</b> <small>(long)</small> - entindex of the spawner entity
== create_panic_event ==
A panic event has been created, though not necessarily started
* <b>userid</b> <small>(short)</small> - player who was started the panic
== explain_pills ==
* <b>subject</b> <small>(long)</small> - The weapon_pain_pills spawner that will be indicated
== explain_weapons ==
* <b>subject</b> <small>(long)</small> - The weapon_pain_pills spawner that will be indicated
== entity_visible ==
* <b>userid</b> <small>(short)</small> - The player who sees the entity
* <b>subject</b> <small>(long)</small> - Entindex of the entity they see
* <b>classname</b> <small>(string)</small> - Classname of the entity they see
* <b>entityname</b> <small>(string)</small> - name of the entity they see
== weapon_spawn_visible ==
* <b>userid</b> <small>(short)</small> - The player who sees the entity
* <b>subject</b> <small>(long)</small> - Entindex of the entity they see
* <b>weaponname</b> <small>(string)</small> - weapon name, or "melee"
* <b>subtype</b> <small>(string)</small> - melee weapon name
== boomer_near ==
* <b>userid</b> <small>(short)</small> - The boomer
* <b>victim</b> <small>(short)</small> - The survivor whom the boomer has gotten very close to
== explain_pre_radio ==
explain the rescue radio will remind you to ready for the finale
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== started_pre_radio ==
explain the rescue radio will remind you to ready for the finale
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_radio ==
explain the rescue radio will start the finale
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_gas_truck ==
explain how pulling the lever on the gas truck will start the finale
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> - The lever
== explain_panic_button ==
explain that pressing this button will start a panic event.
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> - The panic button
== explain_elevator_button ==
explain how to operate the hospital elevator button.
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> - The button
== explain_lift_button ==
explain how to operate the lift button.
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> - The lift button
== explain_church_door ==
explain how to provoke the crazy church guy.
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> - The saferoom door
== explain_emergency_door ==
explain how to open the emergency door.
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> - The door
== explain_crane ==
explain how to lower the box on the crane.
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> - The lever/button
== explain_bridge ==
explain how to close the gates to make a bridge.
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> - The button
== explain_gas_can_panic ==
explain how to shoot the gas can.
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> - The gas can
== explain_van_panic ==
explain how to start the van.
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> - The van
== explain_mainstreet ==
explain how to lower the forklift
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> - The forklift
== explain_train_lever ==
explain how to operate the train lever.
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> - The lever on box car
== explain_disturbance ==
explain that disturbances (car alarm) attract infected horde
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> - The source of disturbance
== explain_scavenge_goal ==
explain where to put the scavenge mode items
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> - The collection device
== explain_scavenge_leave_area ==
explain that leaving the area, starts round
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> - The entity
== begin_scavenge_overtime ==
enter overtime in a scavenge round
== scavenge_round_start ==
a scavenge round has begun
* <b>round</b> <small>(byte)</small> - round number, 1 based
* <b>firsthalf</b> <small>(bool)</small> - start of the first half of the round
== scavenge_round_halftime ==
a scavenge round is in halftime
== scavenge_round_finished ==
a scavenge round has ended
== scavenge_score_tied ==
a team just tied the score
== versus_round_start ==
a versus round has begun
== gascan_pour_blocked ==
can't pour the gas, someone else already is
* <b>userid</b> <small>(short)</small> -
== gascan_pour_completed ==
player finished pouring a can
* <b>userid</b> <small>(short)</small> -
== gascan_dropped ==
* <b>userid</b> <small>(short)</small> -
== gascan_pour_interrupted ==
we got interuppted pouring the gas can
* <b>userid</b> <small>(short)</small> - person who interuppted us
== scavenge_match_finished ==
* <b>winners</b> <small>(byte)</small> - winner team
== versus_match_finished ==
* <b>winners</b> <small>(byte)</small> - winner team
== use_target ==
a new use target has been found
* <b>targetid</b> <small>(long)</small> - Entindex of the use target
* <b>classname</b> <small>(string)</small> - classname of the use target
* <b>isprop</b> <small>(bool)</small> - is this a prop that can be carried
== player_use ==
{{eventnote|Called|When a Survivor presses +USE on a useable entity. i.e. Weapons, items, doors}}
{{eventnote|Related Events|If targetid is an item, item_pickup will be called prior to player_use}}
{{Note | It will not fire when using a mounted gun.}}
* <b>userid</b> <small>(short)</small> - userid of user
* <b>targetid</b> <small>(long)</small> - Entindex of the used entity
== friendly_fire ==
* <b>attacker</b> <small>(short)</small> - player who fired the weapon
* <b>victim</b> <small>(short)</small> - player who got shot
* <b>guilty</b> <small>(short)</small> - player who was at fault
* <b>type</b> <small>(long)</small> - damage type
== gameinstructor_draw ==
* <b>None</b> <small>(None)</small> -
== gameinstructor_nodraw ==
* <b>None</b> <small>(None)</small> -
== request_weapon_stats ==
* <b>userid</b> <small>(short)</small> - userid of user requesting their stats
== player_talking_state ==
* <b>player</b> <small>(byte)</small> -
* <b>istalking</b> <small>(bool)</small> -
== weapon_pickup ==
client event for player has picked up a weapon. If that does not work, try using the "item_pickup" event.
* <b>context</b> <small>(byte)</small> - split screen message context
* <b>weaponid</b> <small>(byte)</small> -
* <b>weaponslot</b> <small>(byte)</small> -
* <b>dropped_by_infected</b> <small>(byte)</small> - gender of the Infected that dropped the weapon
== hunter_punched ==
* <b>userid</b> <small>(short)</small> - player who caused ignition
* <b>hunteruserid</b> <small>(long)</small> - user ID of Hunter
* <b>islunging</b> <small>(bool)</small> - TRUE if the Hunter was in the act of lunging
== hunter_headshot ==
* <b>userid</b> <small>(short)</small> - player who made the headshot
* <b>hunteruserid</b> <small>(long)</small> - user ID of Hunter
* <b>islunging</b> <small>(bool)</small> - TRUE if the Hunter was in the act of lunging
== zombie_ignited ==
* <b>userid</b> <small>(short)</small> - player who caused ignition
* <b>gender</b> <small>(short)</small> - gender (type) of the infected
* <b>entityid</b> <small>(long)</small> - entity ID of Tank
* <b>victimname</b> <small>(string)</small> - "Witch", "Tank", "Hunter", "Smoker", or "Infected"
* <b>fire_ammo</b> <small>(bool)</small> - true if incendiary ammo was used
== boomer_exploded ==
{{eventnote|Related Events|Fires after <code>player_death</code>}}
* <b>userid</b> <small>(short)</small> - Boomer that exploded
* <b>attacker</b> <small>(short)</small> - player who caused the explosion
* <b>splashedbile</b> <small>(bool)</small> - Exploding boomer splashed bile on Survivors
== non_pistol_fired ==
* <b>userid</b> <small>(short)</small> - User that fired a non-pistol weapon
== weapon_fire_at_40 ==
This is networked, special event for game instructor
* <b>userid</b> <small>(short)</small> -
* <b>weapon</b> <small>(string)</small> - used weapon name
* <b>weaponid</b> <small>(short)</small> - used weapon ID
* <b>count</b> <small>(short)</small> - number of bullets
== total_ammo_below_40 ==
sent for any ammo type, except those with max ammo 1, or infinite ammo, like pistols
* <b>userid</b> <small>(short)</small> -
== player_hurt_concise ==
Abbreviated version of 'player_hurt' that is networked
* <b>userid</b> <small>(short)</small> - user ID who was hurt
* <b>attackerentid</b> <small>(long)</small> - entity id who attacked, if attacker not a player, and userid therefore invalid
* <b>type</b> <small>(long)</small> - damage type
* <b>dmg_health</b> <small>(short)</small> - damage done to health
== tank_killed ==
{{eventnote|Issues|It will not fire if the tank is not a bot.}}
* <b>userid</b> <small>(short)</small> - user ID of dead tank
* <b>attacker</b> <small>(short)</small> - user id of killer
* <b>solo</b> <small>(bool)</small> - TRUE if a player single-handedly killed the Tank
* <b>melee_only</b> <small>(bool)</small> - TRUE if the tank was only killed by melee attacks (no blast, burn, or bullet damage)
* <b>l4d1_only</b> <small>(bool)</small> - TRUE if l4d1 survivors inflicted damage and the l4d2 survivors did not)
== tank_rock_killed ==
* <b>userid</b> <small>(short)</small> - user id of killer
== achievement_write_failed ==
Used for a notification message when an achievement fails to write
* <b>None</b> <small>(None)</small> -
== ghost_spawn_time ==
Used for clients to know how long until they become a ghost (and can spawn)
* <b>userid</b> <small>(short)</small> - user ID of the player that is becoming a ghost
* <b>spawntime</b> <small>(short)</small> - How long of a wait until player is a ghost
== survival_at_30min ==
Used to know when we elapse 30 minutes on a survival map
== survival_at_10min ==
Used to know when we elapse 10 minutes on a survival map
== explain_pre_drawbridge ==
Point out the button that will start the gauntlet finale.
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_drawbridge ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_perimeter ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_deactivate_alarm ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_impound_lot ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_decon ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_mall_window ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_mall_alarm ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_coaster ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_coaster_stop ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_decon_wait ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== gauntlet_finale_start ==
== explain_float ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_ferry_button ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_hatch_button ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_shack_button ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== upgrade_incendiary_ammo ==
* <b>userid</b> <small>(short)</small> -
== upgrade_explosive_ammo ==
* <b>userid</b> <small>(short)</small> -
== receive_upgrade ==
* <b>userid</b> <small>(short)</small> -
* <b>upgrade</b> <small>(string)</small> -
== explain_vehicle_arrival ==
* <b>subject</b> <small>(long)</small> -
== mounted_gun_start ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== mounted_gun_overheated ==
* <b>userid</b> <small>(short)</small> -
== explain_burger_sign ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_carousel_button ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_carousel_destination ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_stage_lighting ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_stage_finale_start ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_stage_survival_start ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== ability_out_of_range ==
* <b>userid</b> <small>(short)</small> -
* <b>ability</b> <small>(string)</small> - ability classname
== explain_stage_pyrotechnics ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_c3m4_radio1 ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_c3m4_radio2 ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_gates_are_open ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_c2m4_ticketbooth ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_c3m4_rescue ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_hotel_elevator_doors ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_gun_shop_tanker ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_gun_shop ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_store_alarm ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_store_item ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_store_item_stop ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_survival_generic ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_survival_alarm ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_survival_radio ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_survival_carousel ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_return_item ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_save_items ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== spit_burst ==
Triggers even after Spitter's death.{{eventnote|Called|Triggers when Spitter's spit hits the ground.}}
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== entered_spit ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== temp_c4m1_getgas ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== temp_c4m3_return_to_boat ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_c1m4_finale ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== c1m4_scavenge_instructions ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== punched_clown ==
* <b>userid</b> <small>(short)</small> - player who punched the clown
== charger_killed ==
* <b>userid</b> <small>(short)</small> - user ID of dead charger
* <b>attacker</b> <small>(short)</small> - user id of killer
* <b>melee</b> <small>(bool)</small> - TRUE if a player killed the charger with a melee weapon
* <b>charging</b> <small>(bool)</small> - TRUE if the charger was charging when it died
== spitter_killed ==
{{eventnote|Called|Triggers in Spitter's death.}}
* <b>userid</b> <small>(short)</small> - user ID of dead spitter
* <b>attacker</b> <small>(short)</small> - user id of killer
* <b>has_spit</b> <small>(bool)</small> - TRUE if the spitter spit at some point
== jockey_ride ==
* <b>userid</b> <small>(short)</small> - player who did the lunging
* <b>victim</b> <small>(short)</small> - player that got lunged
== jockey_ride_end ==
Fires in all cases where a jockey releases the survivor.{{Note |rescuer will return 0 when:
* The jockey is being cleared by shoving.
* Another special takes over the jockeyed survivor.
* The commons kill the biled jockey.
* The jockey incaps the survivor, including ledge-hangs.
* The jockey is killed or stumbled by a charger impact.
}}
{{Note |
* A jockey stumbled by a boomer explosion will return rescuer parameter as the boomer's userid.
* Using Stagger() on the jockey will return rescuer parameter as the jockey's userid.
* Using Stagger() on the survivor will return rescuer parameter as the survivor's userid.}}
* <b>userid</b> <small>(short)</small> - player who did the lunging
* <b>victim</b> <small>(short)</small> - player that got lunged
* <b>rescuer</b> <small>(short)</small> - Who stopped it
* <b>ride_length</b> <small>(float)</small> - Duration of our ride
== jockey_punched ==
* <b>userid</b> <small>(short)</small> - user ID of player that shoved the jockey
* <b>jockeyuserid</b> <small>(long)</small> - user ID of Jockey
* <b>islunging</b> <small>(bool)</small> -  TRUE if Jockey was in the act of lunging
== jockey_headshot ==
* <b>userid</b> <small>(short)</small> - user ID of player that landed a headshot on the Jockey
* <b>jockeyuserid</b> <small>(long)</small> - user ID of Jockey
* <b>islunging</b> <small>(bool)</small> -  TRUE if Jockey was in the act of lunging
== jockey_killed ==
* <b>userid</b> <small>(short)</small> - user ID of dead jockey
* <b>attacker</b> <small>(short)</small> - user id of killer
* <b>weapon</b> <small>(string)</small> - weapon name
== non_melee_fired ==
* <b>userid</b> <small>(short)</small> - User that fired a non-melee weapon
== infected_decapitated ==
* <b>userid</b> <small>(short)</small> - userid of the player who did the decapitation
* <b>weapon</b> <small>(string)</small> - melee weapon name
== upgrade_pack_added ==
* <b>upgradeid</b> <small>(short)</small> -
* <b>userid</b> <small>(short)</small> -
== vomit_bomb_tank ==
* <b>userid</b> <small>(short)</small> - userid of the player who used the bomb
== triggered_car_alarm ==
* <b>userid</b> <small>(short)</small> - user ID of player who activated car alarm
== panic_event_finished ==
== charger_charge_start ==
The moment when the charger starts charging{{eventnote|Issues|Called more than once per ability use. For consistency, check ability_use}}
{{eventnote|Issues|Can be called after charger_charge_end. Use ability_use for an alternative start to end relationship.}}
* <b>userid</b> <small>(short)</small> - user ID of the charger
== charger_charge_end ==
* <b>userid</b> <small>(short)</small> - user ID of the charger
== charger_carry_start ==
The moment when the charger grabs a survivor
{{bug*|Will not fire when charger stops charging right after it carries a survivor, usually happens when the survivor is near a wall. Subsequently, <code>charger_carry_end</code> will not fire.|only=l4d2}}
* <b>userid</b> <small>(short)</small> - user ID of the charger
* <b>victim</b> <small>(short)</small> - user ID of the player who was charged
== charger_carry_end ==
The moment when the charger stops charging a survivor (and will soon start pummeling)
* <b>userid</b> <small>(short)</small> - user ID of the charger
* <b>victim</b> <small>(short)</small> - user ID of the player who was charged
== charger_carry_kill ==
{{Note | Seems to only work on competitive gamemodes, like versus.}}
When a charger kills a survivor with a carry.
* <b>userid</b> <small>(short)</small> - user ID of the charger
* <b>victim</b> <small>(short)</small> - user ID of the victim
== charger_impact ==
When a charger impacts a survivor they aren't carrying
* <b>userid</b> <small>(short)</small> - user ID of the charger
* <b>victim</b> <small>(short)</small> - user ID of the player who was impacted
== charger_pummel_start ==
The moment when the charger starts pummeling a survivor
* <b>userid</b> <small>(short)</small> - user ID of the charger
* <b>victim</b> <small>(short)</small> - user ID of the player who was charged
== charger_pummel_end ==
When the charger is cleared from the survivor or the survivor dies.
{{Note |
* Killing the charger or survivor being pummeled to death will return rescuer as 0.
* It will only return rescuer as the survivor's userid when staggered by pipe bomb, explosive ammo, propane/oxygen tank.
* Using Stagger() on the survivor will return rescuer as 0.
* Using Stagger() on the charger will return rescuer as the charger's userid.}}
* <b>userid</b> (short) - user ID of the charger
* <b>victim</b> (short) - user ID of the player who was charged
* <b>rescuer</b> (short) - user ID of the player who rescued them
== strongman_bell_knocked_off ==
The arcade bell on c2m4_barns
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(short)</small> -
== molotov_thrown ==
* <b>userid</b> <small>(short)</small> -
== gas_can_forced_drop ==
* <b>userid</b> <small>(short)</small> - player that forced the drop
* <b>victim</b> <small>(short)</small> - player that dropped it
== explain_need_gnome_to_continue ==
* <b>none</b> <small>(none)</small> -
== explain_survivor_glows_disabled ==
* <b>userid</b> <small>(short)</small> - The player we're explaining to
== explain_item_glows_disabled ==
* <b>userid</b> <small>(short)</small> - The player we're explaining to
== explain_rescue_disabled ==
* <b>userid</b> <small>(short)</small> - The player we're explaining to
== explain_bodyshots_reduced ==
* <b>userid</b> <small>(short)</small> - The player we're explaining to
== explain_witch_instant_kill ==
* <b>userid</b> <small>(short)</small> - The player we're explaining to
== set_instructor_group_enabled ==
* <b>group</b> <small>(string)</small> -
* <b>enabled</b> <small>(short)</small> -
== stashwhacker_game_won ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(short)</small> -
== versus_marker_reached ==
* <b>userid</b> <small>(short)</small> -
* <b>marker</b> <small>(short)</small> -
== start_score_animation ==
== survival_round_start ==
== scavenge_gas_can_destroyed ==
* <b>userid</b> <small>(short)</small> - The player that destroyed it
== explain_sewer_gate ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_sewer_run ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== explain_c6m3_finale ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== finale_bridge_lowering ==
* <b>userid</b> <small>(short)</small> -
* <b>subject</b> <small>(long)</small> -
== m60_streak_ended ==
I was holding down the m60 trigger, and now I'm not
* <b>none</b> <small>(none)</small> -
== chair_charged ==
* <b>userid</b> <small>(short)</small> -
== song_played ==
* <b>none</b> <small>(none)</small> -
== foot_locker_opened ==
* <b>userid</b> <small>(short)</small> -
== player_connect_full ==
* <b>userid</b> <small>(short)</small> -
== player_say ==
* <b>userid</b> <small>(short)</small> -
* <b>text</b> <small>(string)</small> -

Latest revision as of 02:46, 25 August 2025

Left 4 Dead 2 Level Creation
Refer back to Game Events (Source) for more events.

player_death

a game event, name may be 32 charaters long; this extents the original player_death by a new fields

  • userid (short) - user ID who died
  • entityid (long) - entity ID who died, userid should be used first, to get the dead Player. Otherwise, it is not a player, so use this.
  • attacker (short) - user ID who killed
  • attackername (string) - What type of zombie, so we don't have zombie names
  • attackerentid (long) - if killer not a player, the entindex of who killed. Again, use attacker first
  • weapon (string) - weapon name killer used
  • headshot (bool) - signals a headshot
  • attackerisbot (bool) - is the attacker a bot
  • victimname (string) - What type of zombie, so we don't have zombie names
  • victimisbot (bool) - is the victim a bot
  • abort (bool) - did the victim abort
  • type (long) - damage type
  • victim_x (float) -
  • victim_y (float) -
  • victim_z (float) -

player_hurt

Registers all playable classes (Hunter, Smoker, Boomer, Tank, Survivors). See infected_hurt for Witch and Common Infected

  • local (1) - Not networked
  • userid (short) - user ID who was hurt
  • attacker (short) - user id who attacked
  • attackerentid (long) - entity id who attacked, if attacker not a player, and userid therefore invalid
  • health (short) - remaining health points
  • armor (byte) - remaining armor points
  • weapon (string) - weapon name attacker used, if not the world
  • dmg_health (short) - damage done to health
  • dmg_armor (byte) - damage done to armor
  • hitgroup (byte) - hitgroup that was damaged
  • type (long) - damage type

player_activate

Earliest game event that generates when a CTerrorPlayer entity is being spawned

  • userid (short) - user ID on server

player_team

player change his team

  • userid (short) - user ID on server
  • team (byte) - team id
  • oldteam (byte) - old team id
  • disconnect (bool) - team change because player disconnects
  • name (string) -
  • isbot (bool) -

player_bot_replace

Bot replaced a player

  • player (short) - user ID of the player
  • bot (short) - user ID of the bot

bot_player_replace

Player replaced a bot

  • bot (short) - user ID of the bot
  • player (short) - user ID of the player
Tip.pngTip:Imagine using slot operator when reading the name of these events bot <- player to remember whether bot is being replaced or a player

player_afk

  • player (short) - user ID of the player

weapon_fire

Note.pngNote: It will fire before firing the weapon, even if it's being interrupted. For example: interrupting a molotov throw by switching right before it's about to be thrown.
  • local (1) - don't network this, its way too spammy
  • userid (short) -
  • weapon (string) - used weapon name
  • weaponid (short) - used weapon ID
  • count (short) - number of bullets

weapon_fire_on_empty

  • local (1) - don't network this, its way too spammy
  • userid (short) -
  • weapon (string) - weapon name used
  • count (short) - number of bullets

weapon_reload

  • userid (short) -
  • manual (bool) - player manually started the reload

weapon_zoom

  • userid (short) -

ability_use

Called: When an infected uses their ability
Issues: Doesn't fire for jockey

  • userid (short) -
  • ability (string) - Classname of ability. Possible values: 'ability_tongue', 'ability_vomit', 'ability_lunge', 'ability_spit', 'ability_charge', 'ability_throw' for the Smoker, Boomer, Hunter, Spitter, Charger and Tank respectively.
  • context (short) - enum of the way it was used (different for each ability)

ammo_pickup

  • userid (short) - The player who got some ammo from a weapon_ammo_spawner

item_pickup

  • userid (short) -
  • item (string) - either a weapon such as 'tmp' or 'hegrenade', or an item such as 'nvgs'

golden_crowbar_pickup

  • userid (short) - The player who picked up the crowbar

grenade_bounce

When a player's thrown pipebomb is currently bouncing.

  • userid (short) -

hegrenade_detonate

  • userid (short) -
  • x (float) -
  • y (float) -
  • z (float) -

bullet_impact

Icon-Bug.pngBug*:Will not fire for the grenade launcher and miniguns.
  • userid (short) -
  • x (float) -
  • y (float) -
  • z (float) -

player_footstep

  • userid (short) -

player_jump

  • userid (short) -

player_blind

  • userid (short) -

player_falldamage

  • userid (short) - Who got hurt
  • damage (float) - for how much
  • causer (short) - Who caused them to do so (if anyone)

player_ledge_grab

  • userid (short) - Who grabbed the ledge
  • causer (short) - Who caused them to do so (if anyone)

player_ledge_release

  • userid (short) - person who released from the ledge

door_moving

  • entindex (long) -
  • userid (short) -

door_open

  • userid (short) - Who opened the door
  • checkpoint (bool) - Is the door a checkpoint door
  • closed (bool) - Was the door closed when it started opening?

door_close

  • userid (short) - Who closed the door
  • checkpoint (bool) - Is the door a checkpoint door

door_unlocked

  • userid (short) - Who opened the door
  • checkpoint (bool) - Is the door a checkpoint door

rescue_door_open

  • userid (short) - Who opened the door
  • entindex (long) - door that opened

waiting_checkpoint_door_used

Someone tried to open a checkpoint door that is locked till everyone loads in

  • userid (short) - player who tried to open it
  • entindex (long) - door that was used

waiting_door_used_versus

Someone tried to open a checkpoint door that is locked till everyone loads in

  • userid (short) - player who tried to open it
  • entindex (long) - door that was used

waiting_checkpoint_button_used

Someone tried to push a button that's locked until everyone is gathered

  • userid (short) - player who tried to open it

success_checkpoint_button_used

Someone pushed a button that's locked until everyone is gathered

  • userid (short) - player who openned it

round_freeze_end

  • None (None) -

round_start

  • timelimit (long) - round time limit in seconds
  • fraglimit (long) - frag limit in seconds
  • objective (string) - round objective

round_start_pre_entity

  • None (None) -

round_start_post_nav

  • None (None) -

nav_blocked

  • area (long) -
  • blocked (bool) -

nav_generate

  • None (None) -

round_end_message

  • winner (byte) - winner team/user i
  • reason (byte) - reson why team won
  • message (string) - end round message

round_end

  • winner (byte) - winner team/user i
  • reason (byte) - reson why team won
  • message (string) - end round message
  • time (float) -

vote_ended

  • None (None) -

vote_started

  • issue (string) -
  • param1 (string) -
  • votedata (string) -
  • team (byte) -
  • initiator (long) - entity id of the player who initiated the vote
  • reliable (1) - this event is reliable


vote_changed

  • yesVotes (byte) -
  • noVotes (byte) -
  • potentialVotes (byte) -

vote_passed

  • details (string) -
  • param1 (string) -
  • team (byte) -
  • reliable (1) - this event is reliable


vote_failed

  • team (byte) -
  • reliable (1) - this event is reliable


vote_cast_yes

  • team (byte) -
  • entityid (long) - entity id of the voter

vote_cast_no

  • team (byte) -
  • entityid (long) - entity id of the voter

infected_hurt

Registers for non-playable classes (Common Infected, Witch). See player_hurt for other playable classes

  • local (1) - don't network this, its way too spammy
  • attacker (short) - player userid who attacked
  • entityid (long) - entity id of infected
  • hitgroup (byte) - hitgroup that was damaged
  • amount (short) - how much damage was done
  • type (long) - damage type

infected_death

  • attacker (short) - user ID who killed
  • infected_id (short) - ID of the infected that died
  • gender (short) - gender (type) of the infected
  • weapon_id (short) - ID of the weapon used
  • headshot (bool) - signals a headshot
  • minigun (bool) - signals a minigun kill
  • blast (bool) - signals a death from blast damage
  • submerged (bool) - indicates the infected was submerged

hostname_changed

  • hostname (string) -

difficulty_changed

It appears that strDifficulty is z_difficulty value

  • newDifficulty (short) -
  • oldDifficulty (short) -
  • strDifficulty (string) -


finale_start

  • rushes (short) -

finale_rush

  • None (None) -

finale_escape_start

  • None (None) -

finale_vehicle_incoming

  • campaign (string) -

finale_vehicle_ready

  • campaign (string) -

finale_vehicle_leaving

  • survivorcount (short) - number of survivors that made it out

finale_win

  • map_name (string) -
  • difficulty (short) -

mission_lost

As in, the survivor team failed. Opposite of finale_win, but not necessarily during the finale.

  • None (None) -

finale_radio_start

  • health (short) -

finale_radio_damaged

  • health (short) -

final_reportscreen

Right before the final report screen comes up, let awards possibly fire

  • None (None) -

map_transition

When campaign cinematics start

  • None (None) -


player_transitioned

When campaign cinematics end and player is transitioned to first person view

  • userid (short) - the person that just finished transitioning


heal_begin

  • userid (short) - person doing the healing
  • subject (short) - person being healed

heal_success

  • userid (short) - person doing the healing
  • subject (short) - person being healed
  • health_restored (short) - amount of health restored

heal_end

Issues: subject is broken for this event, it always appears to be the player doing the healing

  • userid (short) - person doing the healing
  • subject (short) - person being healed


heal_interrupted

  • userid (short) - person who was being healed, but moved.
  • subject (short) - person being healed

ammo_pack_used

  • userid (short) - person giving the ammo
  • subject (short) - person receiving ammo

give_weapon

  • userid (short) - The giver of the weapon
  • recipient (short) - The recipient of the weapon
  • weapon (short) - The ID of the weapon given

pills_used

  • userid (short) - person who had the pills
  • subject (short) - person swallowing the pills

pills_used_fail

  • userid (short) - person who tried to use the pills

ammo_pack_used_fail_no_weapon

  • userid (short) - person who tried to use the ammo pack
  • subject (short) - person it failed to help

ammo_pack_used_fail_full

  • userid (short) - person who tried to use the ammo pack
  • subject (short) - person it failed to help

ammo_pack_used_fail_doesnt_use_ammo

  • userid (short) - person who tried to use the ammo pack
  • subject (short) - person it failed to help

ammo_pile_weapon_cant_use_ammo

  • userid (short) - person who tried to use an ammo pile with a grenade launcher

defibrillator_begin

  • userid (short) - person who is defibrillating.
  • subject (short) - person being revived

defibrillator_used

  • userid (short) - person who used the defibrillator
  • subject (short) - person it helped

defibrillator_used_fail

  • userid (short) - person who tried to use the defibrillator
  • subject (short) - person it failed to help

defibrillator_interrupted

  • userid (short) - person who was defibrillating, but moved.
  • subject (short) - person being revived

upgrade_pack_begin

  • userid (short) - person who is deploying the pack

upgrade_pack_used

upgrade_item_already_used

  • userid (short) - person who tried to use an ammo upgrade twice
  • upgradeclass (string) - classname of the upgrade we tried to use

upgrade_failed_no_primary

  • userid (short) - person who tried to use an upgrade without having a primary weapon
  • upgrade (string) - name of the upgrade we tried to use, eg "INCENDIARY_AMMO"

dead_survivor_visible

  • userid (short) - The player who sees the entity
  • subject (long) - Entindex of the entity they see
  • deadplayer (short) - user id of the dead player represented

adrenaline_used

  • userid (short) - person who had and used the adrenaline

revive_begin

  • userid (short) - person doing the reviving
  • subject (short) - person being revived

revive_success

  • userid (short) - person doing the reviving
  • subject (short) - person who was revived
  • lastlife (bool) - person revived will die if they fall again
  • ledge_hang (bool) - 1 if person revived was ledge hanging

revive_end

  • userid (short) - person doing the reviving
  • subject (short) - person being revived
  • ledge_hang (bool) - person is ledge hanging

drag_begin

  • userid (short) - person doing the dragging
  • subject (short) - person being dragged

drag_end

  • userid (short) - person doing the dragging
  • subject (short) - person being dragged

player_incapacitated

when a player becomes incapacitated. This is also called when a tank is killed.

  • userid (short) - person who became incapacitated
  • attacker (short) - user ID who made us incapacitated
  • attackerentid (long) - if attacker not player, entindex of who made us incapacitated
  • weapon (string) - weapon name attacker used
  • type (long) - damage type

player_incapacitated_start

when a player is about to become incapacitated, so you can see his last living state

  • userid (short) - person who became incapacitated
  • attacker (short) - user ID who made us incapacitated
  • attackerentid (long) - if attacker not player, entindex of who made us incapacitated
  • weapon (string) - weapon name attacker used
  • type (long) - damage type

player_entered_start_area

when a player spawns into the player start area

  • userid (short) - person who entered

player_first_spawn

when a player spawns for the first time in a given mission

  • userid (short) - person who spawned
  • map_name (string) -
  • isbot (bool) -


player_left_start_area

when a player leaves the player start area

  • userid (short) - person who left

player_left_safe_area

when a player leaves the safe area

  • userid (short) - person who left
  • playercount (byte) -

player_entered_checkpoint

when a basecombatcharacter enters a checkpoint area

  • userid (short) - player who entered
  • entityid (long) - If not a player, the entity index of the one entering
  • door (long) - Entindex of the checkpoint door the player entered to get here.
  • area (long) -
  • doorname (string) - name of the entity they see

player_left_checkpoint

when a player leaves a checkpoint area

  • userid (short) - player who left
  • entityid (long) - If not a player, the entity index of the one exiting
  • area (long) -

player_shoved

Issues: Will not fire when shoving a survivor that is currently in combat.

  • userid (short) - player index who was shoved
  • attacker (short) - player index who attacked them

entity_shoved

  • entityid (short) - the entity index of the one who was shoved
  • attacker (short) - player index who attacked them

player_jump_apex

  • userid (short) - player who jumped

player_blocked

  • userid (short) - player index who was trying to move
  • blocker (short) - player index who kept them from moving

player_now_it

  • userid (short) - Player who is now it
  • attacker (short) - player that did the it-ing
  • exploded (bool) - whether it was vomit or explosion
  • infected (bool) - is the vomit infectious
  • by_boomer (bool) - came from a boomer

player_no_longer_it

  • userid (short) - Player who is now no longer it

witch_harasser_set

  • userid (short) - Player who woke up the witch
  • witchid (long) - Entindex of witch woken up
  • first (bool) - First time the witch set a harasser

witch_spawn

  • witchid (long) - Entindex of witch spawning right now.

witch_killed

  • userid (short) - Player who killed the witch
  • witchid (long) - Entindex of witch that was killed.
  • oneshot (bool) - TRUE if the Witch was killed with one shot
  • melee_only (bool) - TRUE if the witch was only killed by melee attacks (no blast, burn, or bullet damage)
  • bride (bool) - bride variant?

tank_spawn

  • userid (short) - User ID of the tank spawning now
  • tankid (long) - Entindex of tank spawning right now.

melee_kill

  • userid (short) - Player who bashed the infected
  • entityid (long) - Entindex of infected what got killed
  • ambush (bool) - Infected was unaware when killed

area_cleared

  • userid (short) - person who cleared the area
  • area (long) - id of the cleared area

award_earned

  • userid (short) - player who earned the award
  • entityid (long) - client likes ent id
  • subjectentid (long) - entity id of other party in the award, if any
  • award (short) - id of award earned

tongue_grab

  • userid (short) - player who did the grabbing
  • victim (short) - player that got grabbed

tongue_broke_bent

  • userid (short) - Tongue owner

tongue_broke_victim_died

  • userid (short) - Tongue owner

tongue_release

Fired in all cases where the tongue releases a victim, whether choked or not, etc.

Note.pngNote:
  • Fires twice in all release cases, except tongue_broke_bent where it only fires once.
  • Second firation will return distance and victim parameters as 0.
  • userid (short) - The tongue owner
  • victim (short) - The (now released) victim
  • distance (long) - Distance the victim was dragged.


choke_start

  • userid (short) - The choker
  • victim (short) - The person being choked

choke_end

  • userid (short) - The choker
  • victim (short) - The person being choked


choke_stopped

Called when a smoker tongue is cleared on a choked player, fires alongside choke_end (choke_stopped fires first).

Note.pngNote:Does not fire when (choke_end still fires):
  • The smoker is staggered with propane/oxygen tank, pipe bomb, explosive ammo, grenade launcher, boomer explosion, and charger impact.
  • Another special takes over the pinned survivor or kills the smoker.
  • The smoker is killed by gascan, firework box, molotov, and incendiary ammo.
  • The smoker ledge-hanged the survivor.
  • Using Stagger() on either the smoker or the survivor.

Issues: While the event does not fire while staggering the smoker with the methods above, it will fire when it is killed using only the grenade launcher and explosive ammo.

  • userid (short) - Who stopped it
  • victim (short) - And who was being choked
  • smoker (short) - The tongue owner
  • release_type (short) - How did it break?


tongue_pull_stopped

Called when a smoker tongue is cleared on a dragging player. Includes cuts.

Note.pngNote:Does not fire when:
  • The smoker is staggered with propane/oxygen tank, pipe bomb, explosive ammo, grenade launcher, boomer explosion, and charger impact.
  • Another special takes over the pinned survivor or kills the smoker.
  • The smoker is killed by gascan, firework box, molotov, and incendiary ammo.
  • The smoker ledge-hanged the survivor.
  • Using Stagger() on either the smoker or the survivor.

Issues: While the event does not fire while staggering the smoker with the methods above, it will fire when it is killed using only the grenade launcher and explosive ammo.

  • userid (short) - Who stopped it
  • victim (short) - And who was being pulled
  • smoker (short) - The tongue owner
  • release_type (short) - How did it break?
  • damage_type (long) - bullet, slash, chainsaw


lunge_shove

  • userid (short) - player who did the lunging
  • victim (short) - player that got lunged

lunge_pounce

  • userid (short) - player who did the lunging
  • victim (short) - player that got lunged
  • distance (long) - Distance from pounce start to contact
  • damage (short) -

pounce_end

  • userid (short) - Player who did the pouncing
  • victim (short) - And who was being pounced

pounce_stopped

Fires whenever a player clearing a hunter dominating a survivor, fires alongside pounce_end (pounce_stopped is fired first).

Note.pngNote:
  • Will not fire if staggered by pipe bomb, propane/oxygen tank, explosive ammo, grenade_launcher, boomer explosion, charger impact, and Stagger(). (pounce_end will still fire)
  • Fires if the hunter killed by any methods above, except boomer explosion and charger impact.
  • A special that kills the hunter will return userid as the special's userid.
  • Killing the hunter by shoving will fire this event before player_hurt. However, killing it by any other means will fire the event after player_hurt.

Issues: Shoving a hunter right after it pounces a survivor will not release the survivor, but the event will still fire.

  • userid (short) - Who stopped it
  • victim (short) - And who was being pounced

pounce_attempt_stopped

  • userid (short) - Who stopped it
  • weaponid (short) - used weapon ID

fatal_vomit

  • userid (short) - Who vomited
  • victim (short) - And who was killed or incapped

survivor_call_for_help

  • userid (short) - The actual player entity who is awaiting rescue.
  • subject (long) - SurvivorRescue entity representing the player who needs to be rescued from the closet (used for position)

survivor_rescued

  • rescuer (short) - player that did the rescuing
  • victim (short) - the survivor being rescued
  • dooridx (long) - ent index of the rescue door

survivor_rescue_abandoned

  • None (None) -

relocated

  • userid (short) - player who was relocated

respawning

  • userid (short) - player who started respawning

tank_frustrated

  • userid (short) - player who was culled

weapon_given

  • userid (short) - player who got the weapon
  • giver (short) - player that did the giving
  • weapon (short) - weapon id given
  • weaponentid (short) - weapon entity id

weapon_drop

Called: When an item is removed from a survivor's inventory
Related Events: Called before heal_success, defibrillator_used, upgrade_pack_used, but called after pills_used and adrenaline_used

  • userid (short) - player who dropped the weapon
  • item (string) - either a weapon such as 'tmp' or 'hegrenade', or an item such as 'nvgs'
  • propid (short) - entindex of the dropped weapon

weapon_drop_to_prop

When a player drops an item that turns into a prop, such as gas can, firework box, propane tank, oxygen tank, cola bottles, gnome, etc.

  • userid (short) - player who dropped the weapon
  • item (string) - weapon string "weapon_*"
  • propid (short) - entindex of the dropped weapon

break_breakable

Override from gameevents.res

  • userid (short) - userid of breaker
  • entindex (long) - entindex of thing breaking
  • material (byte) - BREAK_GLASS, BREAK_WOOD, etc
  • hulkonly (bool) - SF_BREAK_HULK_ONLY
  • achievement (short) - tag to identify achievement on the client

achievement_earned

  • player (byte) - entindex of the player
  • achievement (short) - achievement ID

spec_target_updated

  • None (None) -

spawner_give_item

A spawner has given a player an item (weapon, pills, ammo, health kit, etc)

  • userid (short) - Item recipient
  • item (string) - Name of item given
  • spawner (long) - entindex of the spawner entity

create_panic_event

A panic event has been created, though not necessarily started

  • userid (short) - player who was started the panic

explain_pills

  • subject (long) - The weapon_pain_pills spawner that will be indicated

explain_weapons

  • subject (long) - The weapon_pain_pills spawner that will be indicated

entity_visible

  • userid (short) - The player who sees the entity
  • subject (long) - Entindex of the entity they see
  • classname (string) - Classname of the entity they see
  • entityname (string) - name of the entity they see

weapon_spawn_visible

  • userid (short) - The player who sees the entity
  • subject (long) - Entindex of the entity they see
  • weaponname (string) - weapon name, or "melee"
  • subtype (string) - melee weapon name

boomer_near

  • userid (short) - The boomer
  • victim (short) - The survivor whom the boomer has gotten very close to

explain_pre_radio

explain the rescue radio will remind you to ready for the finale

  • userid (short) -
  • subject (long) -

started_pre_radio

explain the rescue radio will remind you to ready for the finale

  • userid (short) -
  • subject (long) -

explain_radio

explain the rescue radio will start the finale

  • userid (short) -
  • subject (long) -

explain_gas_truck

explain how pulling the lever on the gas truck will start the finale

  • userid (short) -
  • subject (long) - The lever

explain_panic_button

explain that pressing this button will start a panic event.

  • userid (short) -
  • subject (long) - The panic button

explain_elevator_button

explain how to operate the hospital elevator button.

  • userid (short) -
  • subject (long) - The button

explain_lift_button

explain how to operate the lift button.

  • userid (short) -
  • subject (long) - The lift button

explain_church_door

explain how to provoke the crazy church guy.

  • userid (short) -
  • subject (long) - The saferoom door

explain_emergency_door

explain how to open the emergency door.

  • userid (short) -
  • subject (long) - The door

explain_crane

explain how to lower the box on the crane.

  • userid (short) -
  • subject (long) - The lever/button

explain_bridge

explain how to close the gates to make a bridge.

  • userid (short) -
  • subject (long) - The button

explain_gas_can_panic

explain how to shoot the gas can.

  • userid (short) -
  • subject (long) - The gas can

explain_van_panic

explain how to start the van.

  • userid (short) -
  • subject (long) - The van

explain_mainstreet

explain how to lower the forklift

  • userid (short) -
  • subject (long) - The forklift

explain_train_lever

explain how to operate the train lever.

  • userid (short) -
  • subject (long) - The lever on box car

explain_disturbance

explain that disturbances (car alarm) attract infected horde

  • userid (short) -
  • subject (long) - The source of disturbance

explain_scavenge_goal

explain where to put the scavenge mode items

  • userid (short) -
  • subject (long) - The collection device

explain_scavenge_leave_area

explain that leaving the area, starts round

  • userid (short) -
  • subject (long) - The entity

begin_scavenge_overtime

enter overtime in a scavenge round

scavenge_round_start

a scavenge round has begun

  • round (byte) - round number, 1 based
  • firsthalf (bool) - start of the first half of the round


scavenge_round_halftime

a scavenge round is in halftime

scavenge_round_finished

a scavenge round has ended

scavenge_score_tied

a team just tied the score

versus_round_start

a versus round has begun

gascan_pour_blocked

can't pour the gas, someone else already is

  • userid (short) -

gascan_pour_completed

player finished pouring a can

  • userid (short) -

gascan_dropped

  • userid (short) -

gascan_pour_interrupted

we got interuppted pouring the gas can

  • userid (short) - person who interuppted us

scavenge_match_finished

  • winners (byte) - winner team

versus_match_finished

  • winners (byte) - winner team

use_target

a new use target has been found

  • targetid (long) - Entindex of the use target
  • classname (string) - classname of the use target
  • isprop (bool) - is this a prop that can be carried

player_use

Called: When a Survivor presses +USE on a useable entity. i.e. Weapons, items, doors
Related Events: If targetid is an item, item_pickup will be called prior to player_use

Note.pngNote: It will not fire when using a mounted gun.
  • userid (short) - userid of user
  • targetid (long) - Entindex of the used entity

friendly_fire

  • attacker (short) - player who fired the weapon
  • victim (short) - player who got shot
  • guilty (short) - player who was at fault
  • type (long) - damage type

gameinstructor_draw

  • None (None) -

gameinstructor_nodraw

  • None (None) -

request_weapon_stats

  • userid (short) - userid of user requesting their stats

player_talking_state

  • player (byte) -
  • istalking (bool) -

weapon_pickup

client event for player has picked up a weapon. If that does not work, try using the "item_pickup" event.

  • context (byte) - split screen message context
  • weaponid (byte) -
  • weaponslot (byte) -
  • dropped_by_infected (byte) - gender of the Infected that dropped the weapon


hunter_punched

  • userid (short) - player who caused ignition
  • hunteruserid (long) - user ID of Hunter
  • islunging (bool) - TRUE if the Hunter was in the act of lunging

hunter_headshot

  • userid (short) - player who made the headshot
  • hunteruserid (long) - user ID of Hunter
  • islunging (bool) - TRUE if the Hunter was in the act of lunging

zombie_ignited

  • userid (short) - player who caused ignition
  • gender (short) - gender (type) of the infected
  • entityid (long) - entity ID of Tank
  • victimname (string) - "Witch", "Tank", "Hunter", "Smoker", or "Infected"
  • fire_ammo (bool) - true if incendiary ammo was used

boomer_exploded

Related Events: Fires after player_death

  • userid (short) - Boomer that exploded
  • attacker (short) - player who caused the explosion
  • splashedbile (bool) - Exploding boomer splashed bile on Survivors

non_pistol_fired

  • userid (short) - User that fired a non-pistol weapon

weapon_fire_at_40

This is networked, special event for game instructor

  • userid (short) -
  • weapon (string) - used weapon name
  • weaponid (short) - used weapon ID
  • count (short) - number of bullets


total_ammo_below_40

sent for any ammo type, except those with max ammo 1, or infinite ammo, like pistols

  • userid (short) -

player_hurt_concise

Abbreviated version of 'player_hurt' that is networked

  • userid (short) - user ID who was hurt
  • attackerentid (long) - entity id who attacked, if attacker not a player, and userid therefore invalid
  • type (long) - damage type
  • dmg_health (short) - damage done to health


tank_killed

Issues: It will not fire if the tank is not a bot.

  • userid (short) - user ID of dead tank
  • attacker (short) - user id of killer
  • solo (bool) - TRUE if a player single-handedly killed the Tank
  • melee_only (bool) - TRUE if the tank was only killed by melee attacks (no blast, burn, or bullet damage)
  • l4d1_only (bool) - TRUE if l4d1 survivors inflicted damage and the l4d2 survivors did not)

tank_rock_killed

  • userid (short) - user id of killer


achievement_write_failed

Used for a notification message when an achievement fails to write

  • None (None) -


ghost_spawn_time

Used for clients to know how long until they become a ghost (and can spawn)

  • userid (short) - user ID of the player that is becoming a ghost
  • spawntime (short) - How long of a wait until player is a ghost


survival_at_30min

Used to know when we elapse 30 minutes on a survival map

survival_at_10min

Used to know when we elapse 10 minutes on a survival map

explain_pre_drawbridge

Point out the button that will start the gauntlet finale.

  • userid (short) -
  • subject (long) -

explain_drawbridge

  • userid (short) -
  • subject (long) -

explain_perimeter

  • userid (short) -
  • subject (long) -

explain_deactivate_alarm

  • userid (short) -
  • subject (long) -

explain_impound_lot

  • userid (short) -
  • subject (long) -

explain_decon

  • userid (short) -
  • subject (long) -

explain_mall_window

  • userid (short) -
  • subject (long) -

explain_mall_alarm

  • userid (short) -
  • subject (long) -

explain_coaster

  • userid (short) -
  • subject (long) -

explain_coaster_stop

  • userid (short) -
  • subject (long) -

explain_decon_wait

  • userid (short) -
  • subject (long) -

gauntlet_finale_start

explain_float

  • userid (short) -
  • subject (long) -

explain_ferry_button

  • userid (short) -
  • subject (long) -

explain_hatch_button

  • userid (short) -
  • subject (long) -

explain_shack_button

  • userid (short) -
  • subject (long) -

upgrade_incendiary_ammo

  • userid (short) -

upgrade_explosive_ammo

  • userid (short) -

receive_upgrade

  • userid (short) -
  • upgrade (string) -

explain_vehicle_arrival

  • subject (long) -

mounted_gun_start

  • userid (short) -
  • subject (long) -

mounted_gun_overheated

  • userid (short) -

explain_burger_sign

  • userid (short) -
  • subject (long) -

explain_carousel_button

  • userid (short) -
  • subject (long) -

explain_carousel_destination

  • userid (short) -
  • subject (long) -

explain_stage_lighting

  • userid (short) -
  • subject (long) -

explain_stage_finale_start

  • userid (short) -
  • subject (long) -

explain_stage_survival_start

  • userid (short) -
  • subject (long) -

ability_out_of_range

  • userid (short) -
  • ability (string) - ability classname

explain_stage_pyrotechnics

  • userid (short) -
  • subject (long) -

explain_c3m4_radio1

  • userid (short) -
  • subject (long) -

explain_c3m4_radio2

  • userid (short) -
  • subject (long) -

explain_gates_are_open

  • userid (short) -
  • subject (long) -

explain_c2m4_ticketbooth

  • userid (short) -
  • subject (long) -

explain_c3m4_rescue

  • userid (short) -
  • subject (long) -

explain_hotel_elevator_doors

  • userid (short) -
  • subject (long) -

explain_gun_shop_tanker

  • userid (short) -
  • subject (long) -

explain_gun_shop

  • userid (short) -
  • subject (long) -

explain_store_alarm

  • userid (short) -
  • subject (long) -

explain_store_item

  • userid (short) -
  • subject (long) -

explain_store_item_stop

  • userid (short) -
  • subject (long) -

explain_survival_generic

  • userid (short) -
  • subject (long) -

explain_survival_alarm

  • userid (short) -
  • subject (long) -

explain_survival_radio

  • userid (short) -
  • subject (long) -

explain_survival_carousel

  • userid (short) -
  • subject (long) -

explain_return_item

  • userid (short) -
  • subject (long) -

explain_save_items

  • userid (short) -
  • subject (long) -

spit_burst

Triggers even after Spitter's death.Called: Triggers when Spitter's spit hits the ground.

  • userid (short) -
  • subject (long) -


entered_spit

  • userid (short) -
  • subject (long) -

temp_c4m1_getgas

  • userid (short) -
  • subject (long) -

temp_c4m3_return_to_boat

  • userid (short) -
  • subject (long) -

explain_c1m4_finale

  • userid (short) -
  • subject (long) -

c1m4_scavenge_instructions

  • userid (short) -
  • subject (long) -

punched_clown

  • userid (short) - player who punched the clown

charger_killed

  • userid (short) - user ID of dead charger
  • attacker (short) - user id of killer
  • melee (bool) - TRUE if a player killed the charger with a melee weapon
  • charging (bool) - TRUE if the charger was charging when it died

spitter_killed

Called: Triggers in Spitter's death.

  • userid (short) - user ID of dead spitter
  • attacker (short) - user id of killer
  • has_spit (bool) - TRUE if the spitter spit at some point


jockey_ride

  • userid (short) - player who did the lunging
  • victim (short) - player that got lunged

jockey_ride_end

Fires in all cases where a jockey releases the survivor.

Note.pngNote:rescuer will return 0 when:
  • The jockey is being cleared by shoving.
  • Another special takes over the jockeyed survivor.
  • The commons kill the biled jockey.
  • The jockey incaps the survivor, including ledge-hangs.
  • The jockey is killed or stumbled by a charger impact.
Note.pngNote:
  • A jockey stumbled by a boomer explosion will return rescuer parameter as the boomer's userid.
  • Using Stagger() on the jockey will return rescuer parameter as the jockey's userid.
  • Using Stagger() on the survivor will return rescuer parameter as the survivor's userid.
  • userid (short) - player who did the lunging
  • victim (short) - player that got lunged
  • rescuer (short) - Who stopped it
  • ride_length (float) - Duration of our ride


jockey_punched

  • userid (short) - user ID of player that shoved the jockey
  • jockeyuserid (long) - user ID of Jockey
  • islunging (bool) - TRUE if Jockey was in the act of lunging

jockey_headshot

  • userid (short) - user ID of player that landed a headshot on the Jockey
  • jockeyuserid (long) - user ID of Jockey
  • islunging (bool) - TRUE if Jockey was in the act of lunging

jockey_killed

  • userid (short) - user ID of dead jockey
  • attacker (short) - user id of killer
  • weapon (string) - weapon name

non_melee_fired

  • userid (short) - User that fired a non-melee weapon

infected_decapitated

  • userid (short) - userid of the player who did the decapitation
  • weapon (string) - melee weapon name


upgrade_pack_added

  • upgradeid (short) -
  • userid (short) -

vomit_bomb_tank

  • userid (short) - userid of the player who used the bomb

triggered_car_alarm

  • userid (short) - user ID of player who activated car alarm

panic_event_finished

charger_charge_start

The moment when the charger starts chargingIssues: Called more than once per ability use. For consistency, check ability_use
Issues: Can be called after charger_charge_end. Use ability_use for an alternative start to end relationship.

  • userid (short) - user ID of the charger


charger_charge_end

  • userid (short) - user ID of the charger

charger_carry_start

The moment when the charger grabs a survivor

Icon-Bug.pngBug*:Will not fire when charger stops charging right after it carries a survivor, usually happens when the survivor is near a wall. Subsequently, charger_carry_end will not fire.
  • userid (short) - user ID of the charger
  • victim (short) - user ID of the player who was charged

charger_carry_end

The moment when the charger stops charging a survivor (and will soon start pummeling)

  • userid (short) - user ID of the charger
  • victim (short) - user ID of the player who was charged

charger_carry_kill

Note.pngNote: Seems to only work on competitive gamemodes, like versus.

When a charger kills a survivor with a carry.

  • userid (short) - user ID of the charger
  • victim (short) - user ID of the victim

charger_impact

When a charger impacts a survivor they aren't carrying

  • userid (short) - user ID of the charger
  • victim (short) - user ID of the player who was impacted

charger_pummel_start

The moment when the charger starts pummeling a survivor

  • userid (short) - user ID of the charger
  • victim (short) - user ID of the player who was charged

charger_pummel_end

When the charger is cleared from the survivor or the survivor dies.

Note.pngNote:
  • Killing the charger or survivor being pummeled to death will return rescuer as 0.
  • It will only return rescuer as the survivor's userid when staggered by pipe bomb, explosive ammo, propane/oxygen tank.
  • Using Stagger() on the survivor will return rescuer as 0.
  • Using Stagger() on the charger will return rescuer as the charger's userid.
  • userid (short) - user ID of the charger
  • victim (short) - user ID of the player who was charged
  • rescuer (short) - user ID of the player who rescued them
  • strongman_bell_knocked_off

    The arcade bell on c2m4_barns

    • userid (short) -
    • subject (short) -

    molotov_thrown

    • userid (short) -

    gas_can_forced_drop

    • userid (short) - player that forced the drop
    • victim (short) - player that dropped it

    explain_need_gnome_to_continue

    • none (none) -

    explain_survivor_glows_disabled

    • userid (short) - The player we're explaining to

    explain_item_glows_disabled

    • userid (short) - The player we're explaining to

    explain_rescue_disabled

    • userid (short) - The player we're explaining to

    explain_bodyshots_reduced

    • userid (short) - The player we're explaining to

    explain_witch_instant_kill

    • userid (short) - The player we're explaining to

    set_instructor_group_enabled

    • group (string) -
    • enabled (short) -

    stashwhacker_game_won

    • userid (short) -
    • subject (short) -

    versus_marker_reached

    • userid (short) -
    • marker (short) -

    start_score_animation

    survival_round_start

    scavenge_gas_can_destroyed

    • userid (short) - The player that destroyed it

    explain_sewer_gate

    • userid (short) -
    • subject (long) -

    explain_sewer_run

    • userid (short) -
    • subject (long) -

    explain_c6m3_finale

    • userid (short) -
    • subject (long) -

    finale_bridge_lowering

    • userid (short) -
    • subject (long) -

    m60_streak_ended

    I was holding down the m60 trigger, and now I'm not

    • none (none) -

    chair_charged

    • userid (short) -

    song_played

    • none (none) -

    foot_locker_opened

    • userid (short) -

    player_connect_full

    • userid (short) -

    player_say

    • userid (short) -
    • text (string) -