Skip to content

Start typing to see game suggestions. This only suggests apps that have a store page.

Click anywhere outside the search field to close this popup.

Only apps with a store page are suggested. Enter Submit to view all results.

Left 4 Dead 2 update for 15 June 2021

Left 4 Dead 2 - Update

Share · View all patches · Build 6872237 · Last edited by Wendy

Patchnotes via Steam Community

An update has been released for Left 4 Dead 2.

Bug Fixes

  • Fixed file path for CricketBat.Miss sound event.
  • Fixed muzzle flash occurring if you melee immediately after shooting.
  • Fixed a crash on zero-byte VPKs.
  • Fixed a startup crash on Linux.
  • Fixed some memory leaks in VGUI.
  • Fixed text corruption when using emojis in player names or text.
  • Fixed some text corruption related to UTF-8 conversion in some instances on Linux.
  • Fixed some out-of-bounds reads with weapon indices.
  • Fixed fps_max being reset when loading a new map.
  • Fixed custom maps with no lights disabling lighting for the rest of the play session (mat_fullbright).
  • Fixed addon info being truncated much earlier on Linux.
  • Fixed selecting certain audio/video options via navigation via arrow keys or controller.
  • Fixed Widowed (No Border) option on Linux.
  • Fixed a crash if a script call to QueueSpeak() didn't pass any modifiers.
  • Fixed a possible crash if a script-defined forbidden target is destroyed.
  • Rebuilt gas can physics to fix an issue with falling through the world.
  • Fixed an issue in Rocket Dude with a player getting moved to spectator after a level transition.
  • Fixed two malformed player clips in c4m1 and c4m5.
  • Fixed some incorrect place names in Cold Stream nav.
  • Restored some missing commentary entities in c5m5.

Features and Updates

  • Added a Vulkan render backend (currently accessible through the -vulkan command line parameter).
  • Better support for ultrawide monitors in the UI and game (requires Vulkan if using Linux)
  • Marked the game as DPI-aware for high DPI displays.
  • Improved default settings for window size and type.
  • Improved full-screen quad rendering performance.
  • Made captions anti-aliased
  • Marked fps_max and viewmodel_fov as FCVAR_RELEASE.
  • Cvars 'survivor_incap_health' and 'survivor_incap_decay_rate' can now be changed after startup.
  • New cvar 'charger_pz_claw_damage'; functions the same as equivalent melee cvars for other specials.
  • New archived cvar "addons_hide_conflict_dialog" suppresses the warning dialog in the addons screen. Any conflicting addons will still be highlighted in red with conflicts printed to the console.
  • Added an FOV slider to the Multiplayer settings.
  • Added a +bench_demo [name] <stats output>  command line parameter which will run a demo, and quit after it is finished.
  • Added a -bench_settings [name] command line parameter to load a cfg/videobench{name}.txt file containing settings to load. There are a set of defaults provided, very_high_4k, very_high, high, medium and low.
  • Lobbies that connect via a forced server IP are not considered for "Official Only" Quick Match searches.
  • Overhauled UI usability on controller

    • Added controller button icons across the UI.

    • Made confirmation prompts accessible on controller.

    • Now able to select mutations on controller.

    • Now able to fully manage lobbys on controller.

    • Now able to manage addons on controller.

    • Now able to browse achievement details on controller.

    • The game instructor (in-game hints) now shows controller buttons and hints.

    • Added a flashlight binding to the default controller config.

    • Made the intro video skippable by any button on a Steam Controller.

New Scripting Hooks


FindRescueAreaTrigger() - Returns the trigger entity for the rescue area

GetDifficulty() - Returns the current difficulty as a numeric value

GetDifficultyString() - Returns the current difficulty as a string

HasConfigurableDifficultySetting() - Returns true if the mode supports more than a single difficulty






















IsLocationFoggedToSurvivors( vLocation )

GetTimeSinceSpecialZombieKilled( iClass )

GetClosestActivePipeBomb( origin )

RegisterForbiddenTarget( entity ) - Bots avoid damaging forbidden targets.

UnregisterForbiddenTarget( entity )












GetAliveDuration() - Returns the time the character has been alive (only valid when alive).

HasEverBeenInjured( team ) - Returns true if the character has ever been injured by a member of the given team.


GetCenter() - Get world space center of object - absolute coordinates

TakeDamageEx( hInflictor, hAttacker, hWeapon, vecDamageForce, vecDamagePosition, flDamage, nDamageType )


GetLastKnownArea() - Return the last nav area occupied - NULL if unknown.


GetNavAreaByID( areaID )

GetLadderByID( ladderID )

GetNavArea( origin, flBeneath ) - given a position in the world, return the nav area that is closest to or below that height.

GetNearestNavArea( origin, maxDist, checkLOS, checkGround ) - given a position in the world, return the nearest nav area that is closest to or below that height.

GetNavAreasInRadius( origin, radius, table ) - fills a passed in table of nav areas within the radius.

FindNavAreaAlongRay( startpos, endpos, ignoreAreaID )

GetNavAreaCount() - return total number of nav areas.

GetAllAreas( table ) - fills a passed in table of all nav areas.

GetObstructingEntities( table ) - fills a passed in table of all obstructing entities.

GetAreasWithAttributes( bits, table ) - fills a passed in table of all nav areas that have the specified attribute bits.

NavAreaBuildPath( area, area, goalPos, flMaxPathLength, teamID, ignoreNavBlockers ) - returns true if a path exists.

NavAreaTravelDistance( area, area, flMaxPathLength ) - compute distance between two areas. Return -1 if can't reach 'endArea' from 'startArea'.


GetAllLadders( table ) - fills a passed in table of all nav ladders.

FindLadderAlongRay( startpos, endpos, ignoreArea )

GetNavAreasFromBuildPath( table ) - Fills table with areas from a path. Returns whether a path was found.

GetNavAreasOverlappingEntityExtent( entity, table ) - fills passed in table with areas overlapping entity's extent.

RegisterAvoidanceObstacle( entity )

UnregisterAvoidanceObstacle( entity )




ConnectTo( area, dir )

Disconnect( area )

IsConnected( area, dir )







GetDir() - Return the direction the ladder faces (ie: surface normal of climbable side).

GetPosAtHeight() - Return 2D coordinate of the ladder at a given height.

IsInUse() - Return true if someone is on this ladder (other than 'ignore').

IsUsableByTeam( team )



HasAttributes() - Nav area attribute bits




HasSpawnAttributes( attributes ) - Spawn attribute bits.


SetSpawnAttributes( attributes )

RemoveSpawnAttributes( attributes )


SetPlaceName( name )


GetCorner( cornerIndex ) - Get a corner position.

FindRandomSpot() - Get a random origin within the area extents.

GetSizeX() - Return the area size along the X axis.

GetSizeY() - Return the area size along the Y axis.

GetZ( pos ) - Return Z of area at (x,y) of 'pos'.

GetDistanceSquaredToPoint( pos ) - Return shortest distance between point and this area.

IsRoughlySquare() - Return true if this area is approximately square.

IsFlat() - Return true if this area is approximately flat.

IsDegenerate() - Return true if this area is badly formed.

IsVisible( point ) - Return true if area is visible from the given point.


IsCoplanar( area ) - Return true if this area and given area are approximately co-planar.

IsEdge( dir ) - Return true if there are no bi-directional links on the given side.

Contains( area ) - Return true if other area is on or above this area, but no others.

ContainsOrigin( point ) - Return true if given point is on or above this area, but no others.

IsOverlapping( area ) - Return true if 'area' overlaps our 2D extents.

IsOverlappingOrigin( pos, tolerance ) - Return true if 'pos' is within 2D extents of area.

GetAdjacentCount( dir ) - Get the number of adjacent areas in the given direction.

GetAdjacentAreas( dir, table ) - Fills a passed in table with all adjacent areas in the given direction.

GetAdjacentArea( dir, n ) - Return the n'th adjacent area in the given direction.

GetRandomAdjacentArea( dir ) - Return a random adjacent area in the given direction.

IsConnected( area, dir )

ConnectTo( area, dir ) - Connect this area to given area in given direction.

Disconnect( area ) - Disconnect this area from given area.

GetIncomingConnections( dir, table ) - Fills a passed in table with areas connected TO this area by a ONE-WAY link (ie: we have no connection back to them).

AddIncomingConnection( area, dir ) - Add areas that connect TO this area by a ONE-WAY link.

RemoveOrthogonalConnections() - Removes all connections in directions to left and right of specified direction.

ComputeDirection( point ) - Return direction from this area to the given point.

GetParent() - Returns the area just prior to this one in the search path.

GetParentHow() - Returns how we get from parent to us.

GetLadders( table ) - Fills a passed in table of ladders in direction.

ConnectToLadder( ladder )

DisconnectLadder( ladder )

IsConnectedLadder( ladder, dir )

GetElevator() - Returns the elevator if in an elevator's path.

GetElevatorAreas( table ) - Fills a passed in table with a collection of areas reachable via elevator from this area.

GetDoor() - Returns the door entity above the area.

IsDamaging() - Return true if continuous damage (eg: fire) is in this area.

MarkAsDamaging( duration ) - Mark this area is damaging for the next 'duration' seconds.

IsBlocked( team ) - Return true if team is blocked in this area.

MarkAsBlocked( team ) - Mark this area as blocked for a team.



IsCleared( player ) - Returns true if this area has been cleared for the player.

MarkAreaCleared( player ) - Mark this area as cleared for the player




IsSpawningAllowed() - Returns true if spawning is allowed in this area.

IsPotentiallyVisibleToTeam( team ) - Return true if any portion of this area is visible to anyone on the given team.

IsCompletelyVisibleToTeam( team ) - Return true if given area is completely visible from somewhere in this area by someone on the team.

HasAvoidanceObstacle( maxheight ) - Returns true if there's a large, immobile object obstructing this area.

MarkObstacleToAvoid( height ) - Marks the obstructed status of the nav area.

GetAvoidanceObstacleHeight() - Returns the maximum height of the obstruction above the ground.

GetPlayerCount( team ) - Return number of players of given team currently within this area (team of zero means any/all).

DebugDrawFilled() - Draw area as a filled rectangle of the given color.








left 4 dead 2 common Depot 551
  • Loading history…
left 4 dead 2 client Depot 552
  • Loading history…
left 4 dead 2 mac content Depot 553
  • Loading history…
Left 4 Dead 2 Linux Cotent Depot 554
  • Loading history…
left 4 dead 2 lv content Depot 555
  • Loading history…
SteamDB has been running ad-free since 2012.
Find out how you can contribute.