Difference between revisions of "Navigation Meshes (L4D)"

From Valve Developer Community
Jump to: navigation, search
(Marking: Reformatted to use tables)
(Marking: More simple and understandable info to navigation meshes! (Can't be summed up here) And more todos of course... We probably need a reverse engineer to find out what OBSTACLE_TOP and STOP_SCAN does)
Line 16: Line 16:
 
! Attribute !! Description
 
! Attribute !! Description
 
|-
 
|-
| BATTLEFIELD || Designates a region where a planned crescendo event will play out. Mobs will spawn and swarm dynamically inside this area. Should be a large region of the map, capable of containing a BATTLESTATION, and many spawn-friendly/mob-related areas within it. Survivors should be located inside this area at the time of the panic event - it is essential to the effect this attribute is intended to create. Do not use this attribute in gauntlet events, only holdout events.
+
| BATTLEFIELD || Designates a region where a planned crescendo event will play out. Infected spawning, except in Versus modes, will halt so long Survivors reside in it. Once the event starts, Mobs will spawn and swarm dynamically ''only'' inside this area; Infected spawning comes to a halt if Survivors manage to escape the region.  
 +
 
 +
This should be applied to a large region of the map; capable of containing a<code>BATTLESTATION</code>and many Infected spawn-friendly areas within it. Should the play area contain a way for Survivors to escape ahead, or the playing field constantly changes (like Gauntlet events), then this should not be used.
 
|-
 
|-
| BATTLESTATION || Indicates a strong defensive area that contains supplies/weapons for use during a panic event.  Survivor bots will consider this area as important, and will use or protect it as long as other survivors are nearby. It is intended to be used in carefully selected locations of BATTLEFIELD and FINALE regions.
+
| BATTLESTATION || Indicates a strong defensive area for a panic event, usually next to supplies/weapons. Intended to be used only in areas containing BATTLEFIELD or FINALE attribute.
 +
 
 +
In {{l4d}}, Survivor bots may roam and reside in these areas before an event starts so long they think they aren't too far from human players. However, they may give up their station when an event starts, or they take damage, running back near a human player.
 
|-
 
|-
| BREAKABLEWALL || Indicate to infected if a wall is breakable or not. The infected attack the wall until it breaks.
+
| BREAKABLEWALL || No effect, not used by [[func_breakable]] either. {{todo|Is this meant for {{css}} only?}}
 
|-
 
|-
| CHECKPOINT || Designates the start/safe-room areas of the map. The round starts when a survivor leaves this area, and ends when the door is closed at the ending checkpoint with only the survivors inside. Infected are prohibited from spawning inside this area at all times.
+
| CHECKPOINT || Designates the start/safe-room areas of the map. The round starts when a survivor leaves this area, and ends when the door is closed at the ending checkpoint with only the survivors inside. Infected are prohibited from spawning inside this area at all times.
 
|-
 
|-
 
| CLIFF || Doesn't do anything. Used only by the nav generation system to keep a note on nav square edges.
 
| CLIFF || Doesn't do anything. Used only by the nav generation system to keep a note on nav square edges.
 
|-
 
|-
| CROUCH || Only has an effect in Counter-Strike: Source. In L4D, its only used for flow purposes; Bots take areas with CROUCH requiring more time to use when pathfinding. This is also not necessary for bots if it worked, as all bots crouch automatically by themselves while disregarding navigation meshes.
+
| CROUCH || Cut down the navigation time needed for this mesh, as bots need to crouch here. Automatically added by a<code>nav_analyze</code>session.
 +
 
 +
In {{l4ds}}, All types of bots crouch automatically independent of navigation meshes.
 +
In {{css}}, This attribute makes bots crouch, like as one expects.
 
|-
 
|-
| DONT_HIDE || Marks areas that are not suitable hiding spots. Could be strictly a Counter-Strike: Source leftover.  
+
| DONT_HIDE || Marks areas that are not suitable hiding spots.
{{todo|Does this still apply to L4D2?}}
+
{{todo|Does this still apply to {{l4ds}}? Verify with Boomers or Smokers.}}
 
|-
 
|-
| DOOR || Marks areas in which a door is located.
+
| DOOR || Marks areas in which a door is located, perhaps just for flow calculations.aA Automatically added by the game during a nav_analyze.
{{note|Automatically added by the game during a nav_analyze. Rarely needs manual marking.}}
 
 
|-
 
|-
 
| EMPTY || Prevents wandering infected from being populated in this location.  Useful for places outside the survivors playable area, or any other place you do not want wandering/sleeping infected to spawn (e.g. rooftops & surfaces infected fall off of).{{note|Does not affect mobs/special-infected.}}
 
| EMPTY || Prevents wandering infected from being populated in this location.  Useful for places outside the survivors playable area, or any other place you do not want wandering/sleeping infected to spawn (e.g. rooftops & surfaces infected fall off of).{{note|Does not affect mobs/special-infected.}}
 
|-
 
|-
| ESCAPE_ROUTE || Basic guideline path of map from start to finish by linking spawns/checkpoints to the ending checkpoint/finale. It should be found using the nav_analyze command, and may not work properly if drawn manually. This path helps the game/AI to make decisions based on routes and level progression.
+
| 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. Marking areas with this should be left strictly for the<code>nav_analyze</code>command.
 
|-
 
|-
| FINALE || Indicates a finale area, and controls the spawning of '''ALL'''infected during a Finale Sequence. Once the sequence has been started, only areas marked with FINALE will spawn infected.  Should be used extensively across your finale area, and contain a BATTLESTATION within it.
+
| FINALE || Indicates a finale area. Has mostly similar characteristics to<code>BATTLESTATION</code>attribute, although doesn't mean one can replace the other. Like<code>BATTLESTATION/code>, this should be used extensively across your finale area, and contain a BATTLESTATION within it.
 
|-
 
|-
| LYINGDOWN || Causes zombies to lie down when not aroused by player. It can be found used in C2M1 (Dark Carnival) along the freeway ramp, the motel pool of dead bodies, and along the stream on the way to Whispering Oaks.
+
| LYINGDOWN{{l4d2}} || Causes zombies to lie down when not aroused by player. Found in<code>c2m1_highway</code>(Dark Carnival - Motel) along the dead body piles at the freeway ramp, the motel pool of dead bodies, and the stream itself when on the way to Whispering Oaks.
 
|-
 
|-
| MOB_ONLY || The name suggests it could be used to only allow mobs through the area. It is caused by switching the ''Breakable By'' property to ''All Infected'' on nearby props and breakables. This can't be set manually (at least under Left 4 Dead 1).
+
| MOB_ONLY || Only Infected mobs are capable of accessing this area.
 +
This can't be set manually, and is only set by entities such as [[func_breakable]] with<code>''All infected''</code>property, or by a [[func_nav_attribute_region]].
 
|-
 
|-
| NOT_CLEARABLE || Prevents an area from being cleared, and allows infected to spawn here indefinitely. Used in the outer-most areas survivors are able to attack or have line-of-sight to, but can't really see (e.g. through fog).
+
| NOT_CLEARABLE || Prevents an area from being "cleared" by Survivors, and allows infected to spawn here indefinitely; Cleared areas are not used by the Director to spawn infected, and '''NOT_CLEARABLE''' modifies such a rule.
Potential area for mob spawns when not in the line-of-sight. If the only mob spawn areas available in a fully cleared map are constrained to an area marked with '''NOT_CLEARABLE''' that is within survivor LOS, the director for will wait for survivors to look away before a mob is spawned.
+
Used in the outer-most areas survivors are able to attack or have line-of-sight to, but can't really see (e.g. through fog).
Use this attribute in conjunction with OBSCURED if a nav area is known to be obscured. {{note|Nav-squares are 'cleared' once survivors view and remove them of all infected. Cleared areas cannot spawn infected. '''NOT_CLEARABLE''' modifies such a rule.}}
+
A navigation mesh is 'cleared' once survivors view the area, and remove them of all spawned infected.
 
|-
 
|-
| NO_MERGE || Disallows this navigation mesh being merged with other meshes. Also used during navigation mesh generation.
+
| NO_MERGE || Disallows this navigation mesh being merged with other meshes. Only used during navigation mesh generation; trying to apply this otherwise has no effect.
 
|-
 
|-
 
| NO_MOBS || Prevents infected mobs from spawning in this location. Commonly used to help mobs spawn further away from survivors and in more secluded areas of the map.   
 
| NO_MOBS || Prevents infected mobs from spawning in this location. Commonly used to help mobs spawn further away from survivors and in more secluded areas of the map.   
 
Also used to keep sources of mobs from appearing unnatural or odd, such as spawning on rooftops of certain buildings.  A clever example of NO_MOBS is in the "drainage" level of the Death Toll campaign.  It is used in the long pipes so that infected must spawn in the upper areas and run at you down the lengths of the pipe, rather than just around the corners.
 
Also used to keep sources of mobs from appearing unnatural or odd, such as spawning on rooftops of certain buildings.  A clever example of NO_MOBS is in the "drainage" level of the Death Toll campaign.  It is used in the long pipes so that infected must spawn in the upper areas and run at you down the lengths of the pipe, rather than just around the corners.
 
|-
 
|-
| NOTHREAT || It may be used to prohibit potential boss infected (tank & witch) spawns and possibly special infected. It is often seen alongside attributes '''EMPTY''' and '''NO_MOBS'''.
+
| NOTHREAT{{l4d2}} || Navigation meshes with this attribute will not allow<code>THREAT</code>to perform its action when it is applied on itself.
The combination may suggest nav areas that are desired for infected to be able to go to but not spawn there. It would allow common infected to navigate to that area when a pipe bomb or bile bomb is placed there. This can be seen in c1m1_hotel end-saferoom and the perimeter around the hotel where the only way to access that area is to fall from a deadly height. In c1m2_streets, '''NOTHREAT''' is added to nav areas such as ones through and near a doorway, under a walkway bridge passing, and near the scene where a cinematic explosion occurs.
 
<br>{{todo|Properly document}}
 
 
|-
 
|-
 
| OBSCURED || Affects the amount and manner of which infected can spawn.  This is a very important navigation attribute, use both wisely and with caution.
 
| OBSCURED || Affects the amount and manner of which infected can spawn.  This is a very important navigation attribute, use both wisely and with caution.
Line 61: Line 66:
 
Allows infected to spawn even when there is line-of-sight to a survivor. Useful in unreachable areas with heavy fog, or areas with props that don't block line-of-sight in the engine, but still obscure the survivors view on all sides (e.g. bushes & leafy trees).  Bot line-of-sight is also blocked to prevent omniscient behavior. {{tip|Props that have collisions disabled are always unable to block line-of-sight and will need the help of OBSCURED}}
 
Allows infected to spawn even when there is line-of-sight to a survivor. Useful in unreachable areas with heavy fog, or areas with props that don't block line-of-sight in the engine, but still obscure the survivors view on all sides (e.g. bushes & leafy trees).  Bot line-of-sight is also blocked to prevent omniscient behavior. {{tip|Props that have collisions disabled are always unable to block line-of-sight and will need the help of OBSCURED}}
 
|-
 
|-
| OBSTACLE_TOP || Some nav areas on top of props don't have this attribute but infected and survivor bots can still can climb over fine.
+
| OBSTACLE_TOP || No effect, not related to [[func_nav_avoidance_obstacle]].
In c1m2_streets, nav areas with this attribute are seen on top of props that require infected to climb over, such as concrete road blocks and low-lying fences blocking the streets. It is not consistently marked for all the nav areas on top of those props.
+
Can be found in<code>c1m2_streets</code>'s Gunshop. Nav areas with this attribute are seen on top of props that require infected to climb over, such as concrete road blocks and low-lying fences blocking the streets. It is not consistently marked for all the nav areas on top of those props.
<br>{{todo|Properly document.}}
+
<br>{{todo|Lacking in info! We need to find out more somehow.}}
 
|-
 
|-
| PLAYERCLIP ||  Marks an area of the navmesh which has a [[Player clip]] texture on it. Survivors will not go to this area, but infected will still use it - great for creating zombie spawn closets or infected-only ladders.
+
| PLAYERCLIP ||  Marked automatically if a brush with the [[Player clip]] texture is on it. Automatically considered blocked by Survivors, but infected will still use it - great for creating zombie spawn closets or infected-only ladders.
 
|-
 
|-
| PLAYER_START || This attribute is used in the exact nav mesh area(s) that the players spawn in. This appears to only be used in the very first level of each campaign - likely because after the first level it cannot be guaranteed where a player will spawn into the game (since you load relative to the landmark).
+
| PLAYER_START || This attribute is to be applied in the exact nav mesh area(s) that the players spawn in, so flow computing will work as intended. Only necessary for the first level of each campaign.  
 
|-
 
|-
| PRECISE || Used to mark narrow pathways such as the ticket counters and exposed support-beams in the subway/generator area of No Mercy.
+
| PRECISE || Defines an area that requires precision to navigate properly. Bots will avoid having random variations to their pathfinding while on areas marked with this.
 
|-
 
|-
| RESCUE_CLOSET || Marks off the location of rescue closets inside the level. Usually automatically added by the game during a nav_analyze.
+
| RESCUE_CLOSET || Marks off the location of rescue closets inside the level. Automatically assigned during a<code>nav_analyze</code>session.
 
|-
 
|-
 
| RESCUE_VEHICLE || Marks where survivors should go to during rescue.  Used only in a Finale sequence and remains locked until "FinaleEscapeVehicleReadyForSurvivors" is fired.  Area covered in RESCUE_VEHICLE should be the location of the rescue vehicle once it is in position.  In some cases, a lead-in must be made to make the path onto the vehicle navigable (see 'No Mercy' finale).
 
| RESCUE_VEHICLE || Marks where survivors should go to during rescue.  Used only in a Finale sequence and remains locked until "FinaleEscapeVehicleReadyForSurvivors" is fired.  Area covered in RESCUE_VEHICLE should be the location of the rescue vehicle once it is in position.  In some cases, a lead-in must be made to make the path onto the vehicle navigable (see 'No Mercy' finale).
 
|-
 
|-
| STOP_SCAN || Rarely used. Function unknown. Claimed by some to be helpful for bots around ladders and stair cases, but this is speculation.<br>{{todo|Properly document}}
+
| STOP_SCAN || Function unknown. {{todo|Properly document}}
 
|-
 
|-
| STAIRS || Lets the bots know that they are walking on stairs and walking towards ledges. May disallow infected from trying to slowly climb up stairs. Use '''nav_check_stairs''' to reupdate Stairs attributes.
+
| STAIRS || Bots treat areas up to 180(?) H/Us high as flat ground; Useful in disallowing Commons from climbing or making Survivor Bots not jump. {{warning|Chargers and Hunters bots will not their abilities on these areas, presumably they're looking for targets straight ahead of them.}} {{note|Command<code>nav_check_stairs</code>can be useful for reupdating the nav during editing.}}
 
|-
 
|-
| TANK_ONLY || This area seems to be exclusively reserved for the tank. Bots won't use it and the flow won't compute through them. It is caused by switching the ''Breakable By'' property to ''Tank only'' on nearby props and breakables. This can't be set manually (at least under Left 4 Dead 1).
+
| TANK_ONLY || All bots, but Tanks will only navigate through this. Thus the flow won't compute through navigation meshes using this attribute.
 +
This can't be set manually, and is only set by entities such as [[prop_dynamic]] to<code>''Tank only''</code>property, or by a [[script_nav_attribute_region]].
 
|-
 
|-
| THREAT || Added automatically by the game during a nav_analyze. Boss Infected (tank & witch) should spawn in these areas.
+
| THREAT || Acts as spawn area suggestions for Boss Infected (Tank & wWtch). Only nav areas along the<code>ESCAPE_ROUTE</code>path are candidates for<code>THREAT</code>attribute. If the respective portion of the escape route path has already been reached,<code>THREAT</code>will be removed automatically. Requires<code>nav_analyze</code>to appear naturally.
Single nav areas along the escape route are marked with '''THREAT''' and are subsequently removed when that portion of the escape route has already been reached.
 
<br>{{todo|Could it be that those are potential spots for boss infected to spawn along an escape_route?}}
 
 
|-
 
|-
| UNDERWATER || Obviously, this marking means that the area is under water. This property is automatically added by the engine during a ''nav_generate'' and/or ''nav_analyze''. This can be found in every map that has water, including ''C5M3'' (Left 4 Dead 2: ''The Parish'') when going through the sewers, before the multiple alarm car area.
+
| UNDERWATER || Added automatically when a navigation mesh is created / generated underwater. Unknown if this does anything..
 
|}
 
|}
  
Obsolete Attributes, for legacy sake.
+
=== Obsolete Attributes ===
 +
Attributes below are defunct leftovers from {{css}}, but still available to use. They will have no effect on if applied, so the description applies only to {{css}}. {{note|The list is not exclusive to {{l4ds}}, and also is applicable for {{tf2}}{{csgo}}.}}
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Attribute !! Description
+
! Attribute !! Description {{css}}
 
|-
 
|-
| AVOID || Obsolete. Counter-Strike: Source leftover.
+
| AVOID || Makes a mesh's navigation time be interpreted as x1.25 more expensive for bots. {{todo|x2 or x1.25?}}
 
|-
 
|-
| JUMP || Obsolete. Counter-Strike: Source leftover.
+
| JUMP || Force bots to jump when they enter this mesh. In {{l4ds}}, Survivor and Infected bots already automatically jump / climb based on navigation mesh connections.
Could be used for organization purposes. Notably, it may still prevent itself being used as a hiding spot. This is also not very needed for bots if it worked, as all bots jump automatically based on navigation mesh connections.
 
 
|-
 
|-
| NO_HOSTAGES || Obsolete. Counter-Strike: Source leftover.
+
| NO_HOSTAGES || {{todo|Don't put hostages here?}}
 
|-
 
|-
| NO_JUMP || Obsolete. Counter-Strike: Source leftover.
+
| NO_JUMP || Prevent attempts to jump in this navigation mesh.
 
|-
 
|-
| RUN || Obsolete. Counter-Strike: Source leftover.
+
| RUN || Maintain running speed and don't slow down.
 
|-
 
|-
| STOP || Obsolete. Counter-Strike: Source leftover.
+
| STOP || Halt for one second when entering this navigation mesh.
 
|-
 
|-
| STAND || Obsolete. Counter-Strike: Source leftover.
+
| STAND || Ignore entering crouching.
 
|-
 
|-
| TRANSIENT || Obsolete. Counter-Strike: Source leftover.
+
| TRANSIENT || Area may be unusable, so consider it expensive to navigate when a round is active.
 
|-
 
|-
| WALK || Obsolete. Counter-Strike: Source leftover.
+
| WALK || Hold down the<code>+walk</code>key.
 
|}
 
|}
  

Revision as of 03:19, 10 April 2021

Español

Left 4 Dead uses the navigation mesh to spawn infected. The director uses the Navigation Mesh when deciding where to spawn infected as well as other factors such as light intensity and line of site. By altering the mesh, it is possible to change the type of infected spawning (such as hospital patients and so on) and the density of their spawn.

Tip.png Tip: The automatically generated navigation mesh looks for objects on a grid of 25 units. If object protrude into this grid it may not generate a navigation block at that location. An easy way to view the grid is to open the Hammer configuration. Under "2D Views" set the "Highlight every 'x' grid lines" to 25 units. Now you can place objects knowing exactly how the navigation grid will be generated around them.

NOTE: This article was written with experimental information and may not be 100% accurate. This article also assumes that you have read and understood the Navigation Meshes article.

Marking

Marking is as important in Left 4 Dead than it is in Counterstrike. While in counterstrike it affects how bots behave, in Left 4 Dead it both controls how they behave and how they spawn. By marking an area with certain attributes certain spawning behaviours can be created. Marking is the same as in Counterstrike, except with extra attributes, such as:

Available attributes for marking areas in Navigation Mesh editing mode.

Attribute Description
BATTLEFIELD Designates a region where a planned crescendo event will play out. Infected spawning, except in Versus modes, will halt so long Survivors reside in it. Once the event starts, Mobs will spawn and swarm dynamically only inside this area; Infected spawning comes to a halt if Survivors manage to escape the region.

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

BATTLESTATION Indicates a strong defensive area for a panic event, usually next to supplies/weapons. Intended to be used only in areas containing BATTLEFIELD or FINALE attribute.

In Left 4 Dead, Survivor bots may roam and reside in these areas before an event starts so long they think they aren't too far from human players. However, they may give up their station when an event starts, or they take damage, running back near a human player.

BREAKABLEWALL No effect, not used by func_breakable either. To do: Is this meant for Counter-Strike: Source only?
CHECKPOINT Designates the start/safe-room areas of the map. The round starts when a survivor leaves this area, and ends when the door is closed at the ending checkpoint with only the survivors inside. Infected are prohibited from spawning inside this area at all times.
CLIFF Doesn't do anything. Used only by the nav generation system to keep a note on nav square edges.
CROUCH Cut down the navigation time needed for this mesh, as bots need to crouch here. Automatically added by anav_analyzesession.

In Left 4 Dead Left 4 Dead 2, All types of bots crouch automatically independent of navigation meshes. In Counter-Strike: Source, This attribute makes bots crouch, like as one expects.

DONT_HIDE Marks areas that are not suitable hiding spots.

To do: Does this still apply to Left 4 Dead Left 4 Dead 2? Verify with Boomers or Smokers.

DOOR Marks areas in which a door is located, perhaps just for flow calculations.aA Automatically added by the game during a nav_analyze.
EMPTY Prevents wandering infected from being populated in this location. Useful for places outside the survivors playable area, or any other place you do not want wandering/sleeping infected to spawn (e.g. rooftops & surfaces infected fall off of).
Note.png Note: Does not affect mobs/special-infected.
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. Marking areas with this should be left strictly for thenav_analyzecommand.
FINALE Indicates a finale area. Has mostly similar characteristics toBATTLESTATIONattribute, although doesn't mean one can replace the other. LikeBATTLESTATION/code>, this should be used extensively across your finale area, and contain a BATTLESTATION within it.
LYINGDOWNLeft 4 Dead 2 Causes zombies to lie down when not aroused by player. Found inc2m1_highway(Dark Carnival - Motel) along the dead body piles at the freeway ramp, the motel pool of dead bodies, and the stream itself when on the way to Whispering Oaks.
MOB_ONLY Only Infected mobs are capable of accessing this area.

This can't be set manually, and is only set by entities such as func_breakable withAll infectedproperty, or by a func_nav_attribute_region.

NOT_CLEARABLE Prevents an area from being "cleared" by Survivors, and allows infected to spawn here indefinitely; Cleared areas are not used by the Director to spawn infected, and NOT_CLEARABLE modifies such a rule.

Used in the outer-most areas survivors are able to attack or have line-of-sight to, but can't really see (e.g. through fog). A navigation mesh is 'cleared' once survivors view the area, and remove them of all spawned infected.

NO_MERGE Disallows this navigation mesh being merged with other meshes. Only used during navigation mesh generation; trying to apply this otherwise has no effect.
NO_MOBS Prevents infected mobs from spawning in this location. Commonly used to help mobs spawn further away from survivors and in more secluded areas of the map.

Also used to keep sources of mobs from appearing unnatural or odd, such as spawning on rooftops of certain buildings. A clever example of NO_MOBS is in the "drainage" level of the Death Toll campaign. It is used in the long pipes so that infected must spawn in the upper areas and run at you down the lengths of the pipe, rather than just around the corners.

NOTHREATLeft 4 Dead 2 Navigation meshes with this attribute will not allowTHREATto perform its action when it is applied on itself.
OBSCURED Affects the amount and manner of which infected can spawn. This is a very important navigation attribute, use both wisely and with caution.

There are two primary uses: Indicates that the area is not viewable by survivors, and allows the director to spawn flowing, or large waves of mobs. It is often used in blocked alleyways and other areas that survivors cannot view. The director can still create effective mobs without the use of OBSCURED, but they will usually be further outside the survivor PVS.

Allows infected to spawn even when there is line-of-sight to a survivor. Useful in unreachable areas with heavy fog, or areas with props that don't block line-of-sight in the engine, but still obscure the survivors view on all sides (e.g. bushes & leafy trees). Bot line-of-sight is also blocked to prevent omniscient behavior.
Tip.png Tip: Props that have collisions disabled are always unable to block line-of-sight and will need the help of OBSCURED
OBSTACLE_TOP No effect, not related to func_nav_avoidance_obstacle.

Can be found inc1m2_streets's Gunshop. Nav areas with this attribute are seen on top of props that require infected to climb over, such as concrete road blocks and low-lying fences blocking the streets. It is not consistently marked for all the nav areas on top of those props.
To do: Lacking in info! We need to find out more somehow.

PLAYERCLIP Marked automatically if a brush with the Player clip texture is on it. Automatically considered blocked by Survivors, but infected will still use it - great for creating zombie spawn closets or infected-only ladders.
PLAYER_START This attribute is to be applied in the exact nav mesh area(s) that the players spawn in, so flow computing will work as intended. Only necessary for the first level of each campaign.
PRECISE Defines an area that requires precision to navigate properly. Bots will avoid having random variations to their pathfinding while on areas marked with this.
RESCUE_CLOSET Marks off the location of rescue closets inside the level. Automatically assigned during anav_analyzesession.
RESCUE_VEHICLE Marks where survivors should go to during rescue. Used only in a Finale sequence and remains locked until "FinaleEscapeVehicleReadyForSurvivors" is fired. Area covered in RESCUE_VEHICLE should be the location of the rescue vehicle once it is in position. In some cases, a lead-in must be made to make the path onto the vehicle navigable (see 'No Mercy' finale).
STOP_SCAN Function unknown. To do: Properly document
STAIRS Bots treat areas up to 180(?) H/Us high as flat ground; Useful in disallowing Commons from climbing or making Survivor Bots not jump.
Warning.png Warning: Chargers and Hunters bots will not their abilities on these areas, presumably they're looking for targets straight ahead of them.
Note.png Note: Commandnav_check_stairscan be useful for reupdating the nav during editing.
TANK_ONLY All bots, but Tanks will only navigate through this. Thus the flow won't compute through navigation meshes using this attribute.

This can't be set manually, and is only set by entities such as prop_dynamic toTank onlyproperty, or by a script_nav_attribute_region.

THREAT Acts as spawn area suggestions for Boss Infected (Tank & wWtch). Only nav areas along theESCAPE_ROUTEpath are candidates forTHREATattribute. If the respective portion of the escape route path has already been reached,THREATwill be removed automatically. Requiresnav_analyzeto appear naturally.
UNDERWATER Added automatically when a navigation mesh is created / generated underwater. Unknown if this does anything..

Obsolete Attributes

Attributes below are defunct leftovers from Counter-Strike: Source, but still available to use. They will have no effect on if applied, so the description applies only to Counter-Strike: Source.

Note.png Note: The list is not exclusive to Left 4 Dead Left 4 Dead 2, and also is applicable for Team Fortress 2Counter-Strike: Global Offensive.
Attribute Description Counter-Strike: Source
AVOID Makes a mesh's navigation time be interpreted as x1.25 more expensive for bots. To do: x2 or x1.25?
JUMP Force bots to jump when they enter this mesh. In Left 4 Dead Left 4 Dead 2, Survivor and Infected bots already automatically jump / climb based on navigation mesh connections.
NO_HOSTAGES To do: Don't put hostages here?
NO_JUMP Prevent attempts to jump in this navigation mesh.
RUN Maintain running speed and don't slow down.
STOP Halt for one second when entering this navigation mesh.
STAND Ignore entering crouching.
TRANSIENT Area may be unusable, so consider it expensive to navigate when a round is active.
WALK Hold down the+walkkey.

Place names

See also