Left 4 Dead 2 - Valve
An update has been released for Left 4 Dead 2.

- Fixed "New Haircut" achievement to not allow club-type melee weapons.
- Additional prevention of getting disconnected when spamming the scroll wheel.
- In Survival mode, if a special infected reports as stuck for more than two minutes it will suicide.
- Compiled captions and subtitles from dlc1.
- Fixed a couple instances where tank could spawn outside the warp check zone (but was intended to be warped)
- Added nav in ground in outer areas so that throwing a bile out there doesn't cause infected to just stand around.
- Blood Harvest 2 Warehouse Survival: shortened a nav blocker next to some stairs.
- Check for Realism in addition to Coop base mode for all exploit fixes to prevent some shortcut fixes from spawning in Realism Coop.
- Moved 64 exploit blocks to Versus-only, most notably Dark Carnival 3 Coaster, Parish 5 Bridge and Dead Air 2 Crane.

Rocket Dude:
- removed PlayerUnderWater()
- added Speedrunner stats ( local use only )
- improved script performance
- fixed script enabling glows for projectiles on multiple ticks
- removed obsolete code precaching an early dev model

Tank Run:
- During the finale, the double-Tank spawns are now set to 40 seconds instead of the normal 20 second timer.

Versus:
- Increased max ghost spawn timers to 24 seconds.
- Fixed witches time to kill on incapacitated survivors being faster than intended - it should now take the same time as pre-update.

Survival:
- Cane Field: Moved the ammo pile on the roof slightly.
- Float: Removed the ammo pile inside the house at the bottom of the stairs.
- Generator Room: Fixed ZombieDiscardRange not working properly.
- Crash Course Bridge: Marked nav areas behind a fence as NO MOBS.
- Gun Store: Clipped exploit area above barricades where infected wouldn't path to the Survivors.
- Cold Stream Junkyard: Removed alarmed car that's out-of-map.
- Terminal: Fixed ZombieSpawnRange not working properly.
- Waterfront: Blocked additional nav areas in an alley to prevent the Tank from getting stuck.

Versus Survival:
- The train door will now automatically open when the countdown timer reaches 0 on Train Car.

c1m1:
- Fixed issue where survivor bots refused to path through the kitchen fire area.
c1m3:
- Moved an exposed stairwell hurt trigger down inside a vending machine to stop it from killing players.
c2m2:
- Fixed a forklift being breakable by survivors
c3m3:
- Slightly adjusted an infected ladder to improve usability
c4m1 + c4m4:
- Blocked survivor access to a rooftop next to the playground commonly used to grief
- Added a ladder from map 2/3 for consistency between maps and to help players who fall off the safe room roof
c5m2:
- Added an infected ladder to get out of a stuck spot
- Added a hittable dumpster behind the bathrooms in the park
- Replaced a prop ladder on top of the bus station with an infected ladder
c5m3:
- Replaced a prop ladder with an infected ladder (behind the fence immediately after survivors drop towards the cemetery)
- Added an extra ladder to the above mentioned fence
c7m1:
- Fixed grenade launcher spawns having an incorrect count.
c8m1:
- Added a clip to prevent players movement being obstructed by a ladder near the car alarm
c11m1:
- Added wrong way signs above the greenhouse safe room
Last Stand:
- Fixed rescue closet spawns in the Junkyard so Survivors don't get stuck in the floor or wall.
Sep 28, 2020
Left 4 Dead 2 - Valve
An update has been released for Left 4 Dead 2.

- Reoriented some of the new HUD images
- Updated several nav meshes based on feedback
- Fixed a bug where a door model was lacking prop data
- Fixed spontaneous muzzle flashes on certain rifles when playing online
- Adjusted knife's attack delay
- Fixed c10m3 versus survival tank spawn issue
- Fixed stuck spots on a few survival maps
- Various other fixes to the nav mesh from feedback
- Fixed a typo in one of the new shotgun sounds
- Fixed material sorting issues with skin mods on Molotov world model

Achievements:
- Only award "Fat Ninja" for a direct vomit attack, not a boomer explosion.
- Fixed "Golden Freeman" not awarding pickups on dedicated servers.
- Award survival medals to the entire team, including dead players.
- Fixed "The Big Ten" and "Supreme Survivalist" not unlocking on dedicated servers.
- Only award "The Last Frontier" on the Last Stand campaign.
- Don't award Survival achievements in Versus Survival and vice-versa

Survival:
- Waterfront - Removed cars outside the playable area to prevent infected from getting stuck.
- Generator Room - Increased ZombieDiscardRange.
- Church - Removed Laser Sights.
- Streets - Swapped the Military Sniper and the Ammo Pile spawns around.
- Warehouse - Removed mortar bags from under some stairs.
- Cold Stream Junkyard - Removed Laser Sights.

Versus Survival:
- Made it so the plane crash will trigger if the countdown timer reaches 0 on Runway.
- The Save 4 Less store door will now open when the timer reaches 0 on Gun Store.
- The alarmed door will now open when the timer reaches 0 on Warehouse.

Tank Run:
- Updated finales so rescue timer won't appear in Scavenge finales (you need to collect all the gas cans).
- Fixed The Sacrifice finale not working properly.
- Two Tanks will now spawn at once during the non-Scavenge finales.
Sep 25, 2020
Left 4 Dead 2 - Valve
An update has been released for Left 4 Dead 2.

- Fixed voice data overflow on servers.
- Fixed carried prop collision to not interfere with bot movement.
- Fixed laser-sighted weapon spawn exploit in the gun shop.
- Reduced some ambient dialog frequency.
Sep 25, 2020
Left 4 Dead 2 - Valve
An update has been released for Left 4 Dead 2.

- Prevent a server crash when using voice chat.
- Prevent gas can tunneling.
- Fixed an animation bug with weapon melee.
- Updated localizations
- Updated Rocket Dude mutation.
Left 4 Dead 2 - Valve
The Last Stand Community Update has been released!
Visit https://www.l4d.com/laststand/ for all of the details.

Summary of the more than 1000 changes across the entire game:

- Fixed an exploit that could lag or crash a server by spawning infinite pistols.
- Rate-limit commands to prevent client command DOS attacks against servers.
- Fixed the ability to bypass the damage filter on the gas station's rolling door by going idle.
- Fixed avoiding damage from the charger by toggling in/out of idle while being body slammed.
- Fixed clearing the boomer screenspace effect by taking a break.
- Fix griefing exploit where a survivor would fire the grenade launcher and then switch to spectator to skip the friendly-fire check
- Record the team of a vote caller at the time the vote is called, so if the caller disconnects the other players can still have their votes checked against the caller's team. Fixes team-based votes locking out new voters if the caller disconnects.
- Build a map load command on the server instead of directly executing the command that's received as part of the server reservation packet. Fixed potential server takeover exploit.
- Fixed SI ghosts playing jump landing sounds
- Prevent players from joining the survivor team as a character already occupied by a human player.
- Marked "voice_all_icons" (used for testing) as a cheat command. Clear the voice state whenever the value changes so voice bubbles don't stay visible when switching between cheat enabled/disabled games.
- Marked cl_survivor_light_* cvars as cheats.
- Made survivor_teammatefocus_* convars replicated, so they can still be used as a legitimate way to play but are forced to be consistent for all clients.
- Removed a three-second window where an infected player could force a faster transition from the observer state to the ghost state by pressing a key.
- Don't spam open/close door client commands while the door is in the process of opening or closing.

- Fixed spawn areas permanently excluded from spawn set when a survivor dies, idles, or changes character.
- Fixed mobs unable to spawn if survivors stand in specific areas during a finale.
- Always restore the default pain pills decay rate when the director resets.
- Fixed the L4D1 survivor gestures not playing on dedicated servers.
- Allow SI to destroy breakables in finale areas during survival and scavenge modes once the round begins.
- Fixed breakables sometimes failing to unblock the nav when they break.
- Don't stumble the charger if the charge attack starts while already in contact with the victim.
- Fixed L4D1 survivors not selecting their canonical preferred weapons when scavenging.
- Allow survivors to pick up ammo while fighting a tank or in close combat if they are less than 40% full.
- Bots will use pills only if health < 50
- Bots consider health to be critical at < 30 (was 40). This means real health must be < 5 before a bot will use first-aid over a full temp health buffer.
- Fixed a few cases where specials may choose to wait in an ambush position when the game mode says they should be assaulting the survivors
- If a chase path that's trying to lead the target fails, fall back to a non-leading path. Leading paths that run off a cliff aren't always handled properly and can cause the target to be treated as unreachable.
- Revised the logic for fitting both tank and witch spawn locations into the flow. Previously they would frequently collide and the witch would get culled; now they should always find some combination of spawn locations that fit the within the map constraints.
- Fixed the director's "arc value" not always handling campaigns shorter than five maps correctly.

- Allow competitive achievements (versus, scavenge) to also be earned in Versus Survival.
- Incapped survivors are counted as escaped if they're in the rescue vehicle.
- Enabled CS weapons for all players
- Viewmodels use the skin value of the world pickup model, same as gas cans.
- When a weapon is holstered, transfer the current skin to the addon model.
- Clear the viewmodel fire layer when performing a melee attack to fix the stuck helping hand bug.
- Fixed the mp5's melee shove canceling its reload animation.
- Turned on boomer gibs by default, except in low violence mode.
- Restored burn skins for infected
- Fixed witch kills getting recorded as common zombie kills in the stats.
- Increased "ammo_shotgun_max" from 56 to 72

- Removed "Single Player" option from the main menu carousel.
- Enabled the "Private Game" option in lobby permissions.
- Added a rematch vote to the end of versus survival matches.
- Fixed voice chat not working in lobbies.
- No vote cooldown in singleplayer modes
- Allow "Change all-talk" vote in versus survival mode.
- cl_downloadfilter defaults to "none"
- Fixed genericpanellist not drawing panels when they extended beyond both the top and bottom of the frame.
- Suppress warnings about func_orator not having a model

AND MORE
- Hundreds of fixes and tweaks to animations, models, dialog, map layouts and exploits.

Steam Input
- Added a Joystick style action that can receive console-style aim assist
- Fixed the “Turn Around” action
- Added a “Reset Camera” action for use with motion controls
- Rescaled mouse sensitivities so that the adjustment sliders in the configurator have more useful range
- Fix controller input on Orders/Response Quick Menu’s
- Fixed controllers not being able to skip to the end of the post-campaign stats scrawl

SCRIPTING AND MODDING

- CHANGES
- Run mapspawn_addon.nut for all active addons after the base version runs.
- Run scriptedmode_addon.nut and director_base_addon.nut for all active addons after the base version runs.
- Support for new population file overrides for the base game mode. So the load order is now "population.txt", "population_.txt", "population_.txt", which each script optionally overriding place definitions from the previous files.
- Any time the addon load order changes, both the director and the nav mesh immediately refresh their population data. Fixes campaigns using the wrong populations and errors from precaching the wrong models.
- Func_nav_attribute_region and point_nav_attribute_region will remove attributes if the spawn key "remove_attributes" is set to true.
- Allow scripts to force the witch bride spawn, regardless of the variant setting
- "InterceptChat" can return false to prevent sending the message to other clients.
- "DamageType" field of "ScriptAllowDamage" is now read/write, so it can be used to change the damage type.
- Fixed being unable to create subdirectories in /left4dead2/ems
- New game event "player_left_safe_area", called every time the first survivor leaves the start area regardless of map number, restarts, etc.
- Added the userid of the offending player to "triggered_car_alarm" game event.
- Fixed script funcs SetContext and SetContextNum not recognizing that a duration of zero means 'forever'. To avoid breaking existing scripts, the 'forever' parameter is now -1.
- Track convars set from script so they can be reverted when the session ends.
- New gender "police", can spawn & drop tonfas like the riot control commons, but doesn't have the protective gear.
- Added a new keyfield "weaponskin" to item and weapon spawners to set the skin of the spawned item or weapon. Supported by "weapon_item_spawn", "weapon_melee_spawn", "weapon_scavenge_item_spawn".
- Removed spurious parenthesis from "ToKVString" and "_tostring" script functions
- Director now calls into an optional script function "GetCustomScriptedStageProgress" during FINALE_CUSTOM_SCRIPTED stages. The function should return a value from 0-1 to indicate the completion percentage of the stage. The default time-based completion percentage is passed in as a parameter.
- Added weapon spawners and configurable spawner entries for CS weapons.


- NEW FUNCTIONS
CBaseEntity
GetMaxHealth
SetMaxHealth
GetModelName
SetModel( modelname )

CBaseAnimating
GetAttachmentBone, Get the named attachement's parent bone index
GetAttachmentOrigin, Get the attachment id's origin as vector
GetAttachmentAngles, Get the attachment id's angles as p,y,r vector
GetBoneOrigin, Get the bone id's origin vector
GetBoneAngles, Get the bone id's angles as a p,y,r vector
LookupActivity, Get the named activity index
LookupBone, Get the named bone index
LookupSequence, Looks up a sequence by sequence name or activity name
SetSequence, Set a sequence by id
ResetSequence, Reset a sequence by id. If the id is different than the current sequence, switch to the new sequence
GetSequence, Get the current sequence id
GetSequenceActivityName, Get the activity name for a sequence by id
GetSequenceName, Get a sequence name by id
GetSequenceDuration, Get a sequence duration by id
GetBodygroup, Get a bodygroup by id
GetBodygroupName, Get the bodygroup id's name
FindBodygroupByName, Find a bodygroup id by name
GetBodygroupPartName, Get name by group and part
SetBodygroup
GetModelScale
SetModelScale, (scale, change_duration) Changes a model's scale over time
SetPoseParameter, (id, value) Sets a pose parameter value

CBaseFlex
GetCurrentScene, Returns the instance of the oldest active scene entity (if any).
GetSceneByIndex, Returns the instance of the scene entity at the specified index.
PlayScene, Play the specified .vcd file.
LookupAttachment
IsSequenceFinished

CTerrorPlayer
DropItem, Make the player drop an item/weapon
SwitchToItem, Make the player switch to an item/weapon
SnapEyeAngles, Sets the view angles
GiveItemWithSkin( itemname, skin )

CTerrorWeapon
GetMaxClip1
GetMaxClip2
GetDefaultClip1
GetDefaultClip2
Clip1
Clip2
SetClip1
SetClip2
GiveDefaultAmmo
Reload

CDirector
GetGameModeBase
GetMapName
GetSurvivorSet

ResponseCriteria
GetValue, ( entity, criteriaName ) - returns a string
GetTable, ( entity, table ) - returns a table of all criteria
HasCriterion, ( entity, criteriaName ) - returns true if the criterion exists

CBaseTrigger
Disable
Enable
IsTouching, ( entity )

Global
DebugDrawBoxAngles, Draw a debug oriented box (cent, min, max, angles(p,y,r), vRgb, a, duration)
ClientPrint, Print a client message
PrecacheSound
EmitAmbientSoundOn, Play named ambient sound on an entity.
StopAmbientSoundOn, Stop named ambient sound on an entity.
GetSoundDuration, Returns float duration of the sound. Takes soundname and optional actormodelname.
SetFakeClientConVarValue, Sets a USERINFO client ConVar for a fakeclient
ScreenShake, Start a screenshake with the following parameters. vecCenter, flAmplitude, flFrequency, flDuration, flRadius, eCommand( SHAKE_START = 0, SHAKE_STOP = 1 ), bAirShake
ScreenFade, Start a screenfade with the following parameters. player, red, green, blue, alpha, flFadeTime, flFadeHold, flags
PrecacheModel
IsModelPrecached
IsSoundPrecached
IsDedicatedServer
GetListenServerHost
HasPlayerControlledZombies
"AllowFallenSurvivorItem", optionally reject items from spawning on the fallen survivor.
ShouldPlayBossMusic

- SCRIPT ENTITIES
"script_func_button" - spawn a func_button from script via extents.
"script_clip_vphysics" - structured the same as other script-based trigger entities.
"script_nav_attribute_region" - uses extents instead of brushes.

- RESPONSE RULES
- Added survivor criteria "InRescueVehicle", set to 1 when the vehicle has arrived and the survivor is inside.
- Added "NumberOfTeamAlive", "NumberOfTeamIncapacitated", and "NumberOfTeamDead" to the set of response rules global criteria.

- MISSION KEYS
- Added a mission key "allow_boss_mix" to the "versus_boss_spawning" block to bypass a restriction on having both a tank and a witch in the first and last maps of a campaign.
- Created variant keys to set a different character model
HunterVariant
SmokerVariant
BoomerVariant
BoometteVariant
SpitterVariant
JockeyVariant
ChargerVariant
WitchVariant
Jul 24, 2019
Left 4 Dead 2 - Valve
An update has been released for Left 4 Dead 2.

- Fixed a potential remote code execution exploit. Reported via HackerOne.
- Updated tags in the Worshop Manager.
Jul 24, 2019
Left 4 Dead - Valve
An update has been released for Left 4 Dead.

- Fixed a potential remote code execution exploit. Reported via HackerOne.
Apr 26, 2019
Left 4 Dead 2 - Valve
An update has been released for Left 4 Dead 2.

- Fixed a potential remote code execution exploit. Reported via HackerOne.
Apr 26, 2019
Left 4 Dead - Valve
An update has been released for Left 4 Dead.

- Fixed a potential remote code execution exploit. Reported via HackerOne.
Feb 14, 2019
Left 4 Dead - Valve
An update has been released for Left 4 Dead.

- Dev command 'director_log_scavenge_items' can only be executed by the server. Reported via HackerOne.
...