List of L4D Series Nav Mesh Attributes

From Valve Developer Community
Jump to: navigation, search
English (en)中文 (zh)

In Left 4 Dead series, Navigation Mesh (or nav mesh / nav for short) play very important roles for the infected AI, and thus there are plently of attributes possessing very unique behaviors, intending to be applied by the level designer. Some are also necessary for a map to work.

There are two types of nav attributes, and these are what they do...

Spawn Attributes ('TERROR')

These attributes are visualised only with thez_debug 1command, where the unique color of an attribute fills the insides of the highlighted navigation areas. Colors of multiple Spawn Attributes do not mix, and one will always override the other.

Attribute Description
BATTLEFIELD Designated regions where a planned crescendo event will play out. All infected spawning, except Versus modes, will halt so long Survivors stay in it. Once a panic event starts, ALL infected bots spawns only at areas designated byBATTLEFIELDattributes, meaning infected spawning halts if Survivors manage to step out the regions.

 Should be applied to large regions of nav areas in the map; capable of containing many Infected spawn-friendly areas within it, and aBATTLESTATIONarea. If the play area has a way for Survivors to escape ahead, or the playing field constantly changes (like Gauntlet events), then this should not be used.

BATTLESTATION Indicates to Survivor Bots a strong defensive area for a panic event, usually next to supplies/weapons. Survivor bots may roam then reside in these nav areas before/during a panic event, giving it up when they think its unsafe (E.g. Too far from any human player). Intended only for nav areas already containing either aBATTLEFIELDorFINALE attribute.

 In Left 4 Dead 2, this attribute's behavior is mostly disabled, but can be brought back with thesb_allow_leading/allow_all_bot_survivor_teamcommands.

CHECKPOINT Designates the start/transition areas of the map. The round starts when a survivor leaves this area, and ends with all and only the survivors standing on this, with the saferoom door closed.
Note.pngNote:Prohibits spawning of Player controlled Specials.
EMPTY Prevents only wandering/resting Commons from being populated. Useful to prevent commons hogging the limit in places where they play no role, usually outside the survivors's playable areas. (e.g. building rooftops).
FINALE Indicates a finale area. Otherwise characteristics are similar toBATTLEFIELDattribute. This should be used extensively across your finale's nav areas, and contain aBATTLESTATIONattribute within it.
(only in Left 4 Dead 2)
Commons lie down and rest when not aroused by player.
NOT_CLEARABLE Prevents a nav area from being marked "cleared" by Survivors, which would otherwise disallow non-player infecteds from spawning; A nav area is 'cleared' once survivors have seen it, and removed all of its spawned infected.

 Usually found in outer-most areas survivors have attackable line-of-sight to, but can't really see (e.g. through fog).

NO_MOBS Prevents Mobs and player Tanks from spawning, but also prevents Specials from spawning inBATTLEFIELDnav areas. Good for making Mobs spawn desirable or more interesting areas, or to keep Mobs away from known areas that cause unnatural spawning.

 A clever example ofNO_MOBSis in thec10m2_drainagemap, Death Toll - Drainage.NO_MOBSis used in the long pipes, so that Mobs must spawn in the upper areas and run at you down the lengths of the pipe, rather than just around the corners.

(only in Left 4 Dead 2)
DisallowTHREATattribute from doing anything, if it is applied on the same nav area.
OBSCURED A very powerful nav attribute; Allows infected to spawn even when there is line-of-sight to a survivor. To be used in nav areas that are visually obscured, yet not considered so by the Director. For example, tree props. Survivor bots's line-of-sight to these nav areas are blocked to prevent omniscient behavior.
The Director can still create effective Mobs without theOBSCUREDattribute, but will usually be much further outside the survivors's PVS compared to without.
Note.pngNote:Props that have collisions disabled are always unable to block line-of-sight.
RESCUE_VEHICLE Blocks a nav area until the info_director input "FinaleEscapeVehicleReadyForSurvivors" is fired, which then unblocks nav areas with this attribute.

 In Left 4 Dead 2, the VScript method NavMesh.UnblockRescueVehicleNav() can also be used to unblockRESCUE_VEHICLEattributes.

STOP_SCAN Infected bots won't navigate through this. IfSTOP_SCANattribute occupies a path entrance, Infected will spawn beyond the entrance if all Survivors pass it.
Warning.pngWarning:If all survivors stand on this, no infected will spawn!


Spawn Attributes automatically added by the game, usually unnecessary to be marked manually in any way.

Attribute Description
DOOR Survivor bots will monitor this nav area for interactable doors, while Infected bots may consider path alternatives if the door is closed. Also blocks off the spreading of theRESCUE_CLOSETattribute. Automatically assigned by prop_door_rotating .

 When the door is destroyed, the attribute renames itself to the DESTROYED_DOOR name.

ESCAPE_ROUTE Basic guideline path of map from start to finish by linking spawns/checkpoints to the ending checkpoint/finale. This path helps the game/AI to make proper decisions based on routes and level progression.

 This should be left untouched, and let anav_analyzesession handle this.

PLAYER_START Functionally similar to CHECKPOINT, but does not reduce spitter's acid spreading or pauses spawning of mobs and specials. Automatically assigned by info_player_start .
Note.pngNote:If used in the starting saferoom, all dead players from the previous chapter will spawn with 100% HP instead of 50%.
RESCUE_CLOSET A Rescue closet room, spreading of attributes contained byDOORattribute. Wanderers are not allowed in this. Automatically assigned during anav_analyzesession.
THREAT Acts as spawn suggestions for AI Boss Infecteds (Tank & Witch). Only nav areas along theESCAPE_ROUTEpath are candidates forTHREATattribute. If its closest escape route path has already been reached by survivors,THREATwill be removed.

 Requiresnav_analyzeto be automatically marked at random areas.

Base Attributes

Attribtes that are stored the same way Counter-Strike: Source's debut attributes are.

Unlike Spawn Attributes, these don't fill a nav area with colors. They instead may have their own identifable pattern/shape made with lines, and can appear simulatiously with each other's. When recently hovered over, their names are shown for a short period.

AttributesMOB_ONLYandTANK_ONLYfill nav areas with colors, but are both technically Base Attributes, as their colors overlap with other Spawn Attributes.

Attribute Description Counter-Strike: Source's Addendum
PRECISE Disables "obstacle avoidance" behavior, which bots then no longer keep a distance from nearby characters or world geometry / prop_static entities. Can be visualized withnb_debug PATHactive (green cuboids).

This attribute is for narrow areas close to said "obstacles", as bots then avoid unwise decisions like walking off and falling.

Identical, but bots are forced to face this nav area when navigating towards it.


Base attributes automatically added by the game, usually unnecessary to be marked manually in any way.

Attribute Description Counter-Strike: Source's Addendum
BLOCKED_ZOMBIE Similar toSTOP_SCANattribute, but all players (Survivors and Specials) and NPCs (Commons and Witches) who enter this nav area won't have their "last known nav area" be updated. Cannot be manually applied; requires func_nav_blocker entity with teamToBlock set to 3. -none-
BLOCKED_SURVIVOR Similar toBLOCKED_ZOMBIEattribute, but instead blocks Survivor bot navigations. Jockies on survivors avoid this. Cannot be manually applied; requiresPLAYERCLIPattribute or script_nav_blocker entity with teamToBlock set to 2.
Warning.pngWarning:Infecteds can sometimes spawn on this, and they will think they aren't in any nav areas!
(only in Left 4 Dead 2)
Infected bots dislike navigating through this, except Smokers. Assigned by prop_wall_breakable on map load. -none-
DAMAGING Bots dislike navigating through this, except Jockies on a survivor. Cannot be manually applied, only entities like witch or trigger_hurt are able to apply this to nav areas. -none-
MOB_ONLY Only Mobs will navigate through this. The flow also won't compute through nav areas using this attribute.
This can't be set manually! Only settable by entities such as func_breakable withAll Infectedfor Breakable by property, or a func_nav_attribute_region entity.
Warning.pngWarning:This attribute doesn't persist on round restarts!
NO_MERGE Disallows this nav areas from being merged with other areas. Only usable during nav mesh generation to not merge areas withJUMPattribute, orOBSTACLE_TOPattribute. Can be manually applied but won't be visible. No differences.
OBSTRUCTED Survivor bots dislike navigating this. Cannot be manually applied, only entities like prop_physics or func_nav_avoidance_obstacle are able to apply this to nav areas. -none-
(only in Left 4 Dead 2)
Applied when intersecting with a brush having the Player clip texture. Blocks flow but also sets-9999for its own's flow. Automatically addsBLOCKED_SURVIVORattribute. -none-
STAIRS Treats oncoming areas as even ground, so bots also disregard jumping for high ground, but still jump over gaps. Also disallows Commons from climbing. Identical, but Commons don't exist in this game.
TANK_ONLY Only Tanks will navigate through this. The flow also won't compute through nav areas using this attribute.
This can't be set manually! Only settable by entities such as prop_dynamic withTank onlyfor Breakable by property, or a script_nav_attribute_region entity.
Warning.pngWarning:This attribute doesn't persist on round restarts!


Defunct / Deprecated leftover attributes from Counter-Strike: Source. These attributes either have no practical functionality, or is superseded by existing attributes. but still can be applied.

Attribute Description Counter-Strike: Source's Addendum
AVOID In Left 4 Dead 2, only Jockies avoid this. No effect in Left 4 Dead. Makes all bots unprefer this mesh, sometimes outright avoiding it if its necessary before a jump.
CLIFF Scrapped leftover. Currently used by the nav generation system to indicate its being delicate on generating nav areas. Identical.
CROUCH In Left 4 Dead 2, Blocks all Specials from this nav area but Smokers, and also spawning of all Specials. No visible effect in Left 4 Dead. Automatically added by anav_analyzesession.
Note.pngNote:All types of bots already crouch automatically independent of nav areas.
Makes bots crouch.
DONT_HIDE While in anav_analyzesession, hiding spot markers (green and purple lines) generation is skipped for this nav area. Not used by any bots.
Note.pngNote:This can compress the nav file's size!
Identical, but the hiding spot markers aren't unused.
JUMP Prevents anything from ever spawning on it.
Note.pngNote:In Left 4 Dead series, All bots already automatically jump / climb based on nav connections.
Force bots to jump when they enter this nav area.
NO_HOSTAGES No effect. When leading a hostage, they won't navigate through this.
NO_JUMP Draws a red diamond on the nav area. Prevents jump attempts.
RUN Center of marked nav area is given a pair of blue arrows. Maintain running speed and don't slow down.
OBSTACLE_TOP Automatically added when a nav area is created above a prop entity.
Note.pngNote:Not related to func_nav_avoidance_obstacle entity.
STOP Center of marked nav area is given a red octagon. Halt for half a second when entering this nav area.
STAND No effect. Skip considering crouches only while in hiding spots.
TRANSIENT Turns the nav area's outlines into dotted lines. For every 2 seconds, see if this nav area is now blocked by something ifnav_editisn't enabled.
WALK Center of marked nav area is given a singular green arrows. Bots hold down the+walkkey on this, and are also not preferred to be navigated by bots.
UNDERWATER Nav area is given a blue square/rectangle, which resides near the outlines of the nav area. Added automatically when a nav area is created, and is touching the insides of water. Falling on this nav area from a high place will be safe.

Bit Values

This area seems to have incorrect values. After running scripts it appears that 2048 is checkpoint and not 4096. Take the values with precaution

Note.pngNote:This section may be moved to a new page in the future. If it has been one week since October 15 2021 GMT+8, this note is no longer relevant.

The * character designates a name created by the community for easy identification.

Tip.pngTip:Any attribute here can be used in func_nav_attribute_region by inserting their bit value as a flag!
Base Attributes
Name Bit
CROUCH 1 << 0 (1)
JUMP 1 << 1 (2)
PRECISE 1 << 2 (4)
NO_JUMP 1 << 3 (8)
STOP 1 << 4 (16)
RUN 1 << 5 (32)
WALK 1 << 6 (64)
AVOID 1 << 7 (128)
TRANSIENT 1 << 8 (256)
DONT_HIDE 1 << 9 (512)
STAND 1 << 10 (1024)
NO_HOSTAGES 1 << 11 (2048)
STAIRS 1 << 12 (4096)
NO_MERGE 1 << 13 (8192)
OBSTACLE_TOP 1 << 14 (16384)
CLIFF 1 << 15 (32768)
TANK_ONLY 1 << 16 (65536)
MOB_ONLY 1 << 17 (131072)
(only in Left 4 Dead 2)
1 << 18 (262144)
(only in Left 4 Dead 2)
1 << 19 (524288)
(only in Left 4 Dead 2)
1 << 27 (134217728)
(only in Left 4 Dead 2)
1 << 28 (268435456)
(only in Left 4 Dead 2)
1 << 29 (536870912)
NAV_MESH_HAS_ELEVATOR 1 << 30 (1073741824)
NAV_MESH_NAV_BLOCKER 1 << 31 (-2147483648)
L4D Series
Navigation Attribute
Spawn Attributes
Name Bit
(No name) 1 << 0 (1)
EMPTY 1 << 1 (2)
STOP_SCAN 1 << 2 (4)
(No name) 1 << 3 (8)
(No name) 1 << 4 (16)
FINALE 1 << 6 (64)
PLAYER_START 1 << 7 (128)
BATTLEFIELD 1 << 8 (256)
NOT_CLEARABLE 1 << 10 (1024)
CHECKPOINT 1 << 11 (2048)
OBSCURED 1 << 12 (4096)
NO_MOBS 1 << 13 (8192)
THREAT 1 << 14 (16384)
RESCUE_VEHICLE 1 << 15 (32768)
RESCUE_CLOSET 1 << 16 (65536)
ESCAPE_ROUTE 1 << 17 (131072)
DOOR or DESTROYED_DOOR 1 << 18 (262144)
(only in Left 4 Dead 2)
1 << 19 (524288)
(only in Left 4 Dead 2)
1 << 20 (1048576)
(only in Left 4 Dead 2)
1 << 24 (16777216)
(only in Left 4 Dead 2)
1 << 25 (33554432)
(only in Left 4 Dead 2)
1 << 26 (67108864)
(only in Left 4 Dead 2)
1 << 27 (134217728)
(only in Left 4 Dead 2)
1 << 28 (268435456)
(only in Left 4 Dead 2)
1 << 29 (536870912)
(only in Left 4 Dead 2)
1 << 30 (1073741824)
(only in Left 4 Dead 2)
1 << 31 (-2147483648)