Difference between revisions of "List of L4D Series Nav Mesh Attributes"

From Valve Developer Community
Jump to: navigation, search
m (used line breaks instead of <br><br> for PRECISE)
(NO_MOBS; RESCUE_VEHICLE; BREAKABLEWALL; DAMAGING; AVOID; CROUCH)
Line 1: Line 1:
{{lang|List of L4D2 Nav Mesh Attributes|title= List of L4D2 Navigation Mesh Attributes}}
+
{{lang|List of L4D Series Navigation Mesh Attributes|title= List of L4D2 Navigation Mesh Attributes}}
 
In {{l4ds}}, [[Navigation Meshes|Navigation Mesh]] 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.
 
In {{l4ds}}, [[Navigation Meshes|Navigation Mesh]] 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.
  
Line 30: Line 30:
 
Usually found in outer-most areas survivors have attackable line-of-sight to, but can't really see (e.g. through fog).
 
Usually found in outer-most areas survivors have attackable line-of-sight to, but can't really see (e.g. through fog).
 
|-
 
|-
| style="text-align:center;"| <code>NO_MOBS</code> || style="padding:6px;"| Prevents Mobs from spawning, and also prevents both Special Infecteds and Mobs spawning in<code style="color:#E5E5E5;">BATTLEFIELD</code>areas. Commonly used to manipulate Mobs to spawn either in desirable or more interesting areas, and also to keep Mobs away from known unnatural spawns, like the entire mob spawning in a small room.
+
| style="text-align:center;"| <code>NO_MOBS</code> || style="padding:6px;"| Prevents Mobs and player Tanks from spawning, but also prevents Special Infecteds from spawning in<code style="color:#E5E5E5;">BATTLEFIELD</code>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 of<code style="color:#E5E5E5;">NO_MOBS</code>is in the<code style="color:#E5E5E5;">c10m2_drainage</code>map, Death Toll - Drainage.<code style="color:#E5E5E5;">NO_MOBS</code>is 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.
 
A clever example of<code style="color:#E5E5E5;">NO_MOBS</code>is in the<code style="color:#E5E5E5;">c10m2_drainage</code>map, Death Toll - Drainage.<code style="color:#E5E5E5;">NO_MOBS</code>is 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.
Line 42: Line 42:
 
| style="text-align:center;"| <code>PLAYER_START</code> || style="padding:6px;"| 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.
 
| style="text-align:center;"| <code>PLAYER_START</code> || style="padding:6px;"| 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.
 
|-
 
|-
| style="text-align:center;"| <code>RESCUE_VEHICLE</code> || style="padding:6px;"| Blocks a navigation mesh until the{{ent|info_director}} input "''FinaleEscapeVehicleReadyForSurvivors''" is fired, which then unblocks navigation meshes with this attribute.
+
| style="text-align:center;"| <code>RESCUE_VEHICLE</code> || style="padding:6px;"| Blocks a navigation area until the{{ent|info_director}}input "''FinaleEscapeVehicleReadyForSurvivors''" is fired, which then unblocks navigation meshes with this attribute.
  
 
In {{l4d2}}, the [[VScript]] method [[List_of_L4D2_Script_Functions#CNavMesh|NavMesh.UnblockRescueVehicleNav()]] can also be used to unblock<code style="color:#E5E5E5;">RESCUE_VEHICLE</code>attributes.
 
In {{l4d2}}, the [[VScript]] method [[List_of_L4D2_Script_Functions#CNavMesh|NavMesh.UnblockRescueVehicleNav()]] can also be used to unblock<code style="color:#E5E5E5;">RESCUE_VEHICLE</code>attributes.
Line 103: Line 103:
 
|-
 
|-
 
| style="text-align:center;"| <code>BREAKABLEWALL</code><br>{{only|{{l4d2}}}}
 
| style="text-align:center;"| <code>BREAKABLEWALL</code><br>{{only|{{l4d2}}}}
| style="padding:6px;"| Infected bots dislike navigating this. Assigned by{{ent|prop_wall_breakable}} on map load.
+
| style="padding:6px;"| Infected bots dislike navigating this, except Smokers. Assigned by{{ent|prop_wall_breakable}} on map load.
 
| style="padding:6px;"| <nowiki>-none-</nowiki>
 
| style="padding:6px;"| <nowiki>-none-</nowiki>
 
|-
 
|-
 
| style="text-align:center;"| <code>DAMAGING</code>
 
| style="text-align:center;"| <code>DAMAGING</code>
| style="padding:6px;"| Bots dislike navigating this. Cannot be manually applied, only entities like{{ent|witch}}or{{ent|trigger_hurt}}are able to apply this to navigation meshes.
+
| style="padding:6px;"| Bots dislike navigating this, except Jockies on a survivor. Cannot be manually applied, only entities like{{ent|witch}}or{{ent|trigger_hurt}}are able to apply this to navigation meshes.
 
| style="padding:6px;"| <nowiki>-none-</nowiki>
 
| style="padding:6px;"| <nowiki>-none-</nowiki>
 
|-
 
|-
Line 135: Line 135:
 
| style="padding:6px;"| <nowiki>-none-</nowiki>
 
| style="padding:6px;"| <nowiki>-none-</nowiki>
 
|}
 
|}
 +
 
=== Obsolete ===
 
=== Obsolete ===
Defunct / Deprecated leftover attributes from {{css}}. These attributes either have no practical functionality, or is superseded by existing attributes. but still can be applied. {{note|The list is also mostly applicable for {{tf2}}!}}
+
Defunct / Deprecated leftover attributes from {{css}}. These attributes either have no practical functionality, or is superseded by existing attributes. but still can be applied.  
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Line 142: Line 143:
 
|-
 
|-
 
| style="text-align:center;"| <code>AVOID</code>
 
| style="text-align:center;"| <code>AVOID</code>
| style="padding:6px;"| Center of marked mesh is given a pair of red triangles with uneven size, where both tips points towards each other.
+
| style="padding:6px;"| Jockies dislike navigating this.
| style="padding:6px;"| Makes bots unprefer this mesh, sometimes outright avoiding it if its necessary before a jump.
+
| style="padding:6px;"| Makes all bots unprefer this mesh, sometimes outright avoiding it if its necessary before a jump.
 
|-
 
|-
 
| style="text-align:center;"| <code>CLIFF</code>
 
| style="text-align:center;"| <code>CLIFF</code>
Line 150: Line 151:
 
|-
 
|-
 
| style="text-align:center;"| <code>CROUCH</code>
 
| style="text-align:center;"| <code>CROUCH</code>
| style="padding:6px;"| Draws a blue diagonal line on the mesh, along with making Infected bots unprefer this mesh as much as<code style="color:#E5E5E5;">AVOID</code>attribute. Automatically added by a<code style="color:#E5E5E5; background-color: #202020;">nav_analyze</code>session. {{note|All types of bots already crouch automatically independent of navigation meshes.}}
+
| style="padding:6px;"| Infected bots unprefer this mesh as much as<code style="color:#E5E5E5;">AVOID</code>attribute intended, except Smokers. Automatically added by a<code style="color:#E5E5E5; background-color: #202020;">nav_analyze</code>session. {{note|All types of bots already crouch automatically independent of navigation meshes.}}
 
| style="padding:6px;"| Makes bots crouch.
 
| style="padding:6px;"| Makes bots crouch.
 
|-
 
|-

Revision as of 04:53, 22 July 2021

In Left 4 Dead Left 4 Dead 2, Navigation Mesh 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 Navigation Mesh attributes, and these are what they do...

'TERROR' / Spawn Attributes

These attributes are visualised only with thez_debug 1command, where the unique color of an attribute fills the insides of the highlighted navigation mesh. Colors of multiple 'TERROR' 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 meshes 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 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 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.png Note: Prohibits spawning of Player controlled special infecteds.
EMPTY Prevents only wandering/resting common infected 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 area, and contain aBATTLESTATIONattribute within it.
LYINGDOWN
(only in Left 4 Dead 2)
Commons lie down and rest when not aroused by player.
NOT_CLEARABLE Prevents an area from being marked "cleared" by Survivors, which would otherwise disallow non-player infecteds from spawning; A navigation mesh 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 Special Infecteds from spawning inBATTLEFIELDareas. 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.

NOTHREAT
(only in Left 4 Dead 2)
DisallowTHREATattribute from doing anything, if it is applied on the same navigation mesh.
OBSCURED A very powerful navigation attribute; Allows infected to spawn even when there is line-of-sight to a survivor. To be used in areas that are visually obscured, yet not considered so by the Director. For example, tree props. Survivor bots's line-of-sight to these 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.png Note: Props that have collisions disabled are always unable to block line-of-sight.
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.
RESCUE_VEHICLE Blocks a navigation area until theinfo_directorinput "FinaleEscapeVehicleReadyForSurvivors" is fired, which then unblocks navigation meshes 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.png Warning: If all survivors stand on this, no infected will spawn!

Automatic

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

Attribute Description
DOOR Indicates to Survivor bots this is a door, while Infected bots may consider faster path alternatives if the door is closed. Also blocks offRESCUE_CLOSETattribute's spreading. Automatically assigned byprop_door_rotatingif it isn't locked.
DESTROYED_DOOR Currently unknown; overridesDOORattribute when itsprop_door_rotatingis destroyed, or was applied at a Navigation Mesh withoutprop_door_rotatingentity.
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.
RESCUE_CLOSET A Rescue closet room, under containment fromDOORattribute. Automatically assigned during anav_analyzesession.
THREAT Acts as spawn suggestions for Boss Infecteds (Tank & Wtch). 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 be automatically marked at random areas.

Base Attributes

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

Unlike 'TERROR' 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 technically a "Base Attribute" as their colors overlap with other 'TERROR' attributes's.

Attribute Description Counter-Strike: Source's Addendum
PRECISE Disables "obstacle avoidance" behavior, which is used by bots to keep a distance from nearby characters or world geometry /prop_staticentities. Can be visualised withnb_debug PATHactive (green cuboids).

Place this attribute in narrow areas, so bots do not stay too close to the edge when obstacle avoidance kicks in.

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

Automatic

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

Attribute Description Counter-Strike: Source's Addendum
BLOCKED_INFECTED Similar toSTOP_SCANattribute, but can potentially block flow calculations if allowed. Cannot be manually applied, requiresfunc_nav_blockerentity. -none-
BLOCKED_SURVIVOR Similar toBLOCKED_INFECTEDattribute, but instead blocks Survivor bot navigations. Cannot be manually applied, requiresPLAYERCLIPattribute orscript_nav_blockerentity. -none-
BREAKABLEWALL
(only in Left 4 Dead 2)
Infected bots dislike navigating this, except Smokers. Assigned byprop_wall_breakable on map load. -none-
DAMAGING Bots dislike navigating this, except Jockies on a survivor. Cannot be manually applied, only entities likewitchortrigger_hurtare able to apply this to navigation meshes. -none-
MOB_ONLY Only Mobs will navigate through this. The navigation flow also won't compute through navigation meshes using this attribute. This can't be set manually! Only settable by entities such asfunc_breakablewithAll Infectedfor Breakable by property, or afunc_nav_attribute_regionentity.
Warning.png Warning: This attribute doesn't persist on round restarts!
-none-
NO_MERGE Disallows this navigation mesh from being merged with other meshes. Only usable during navigation mesh generation to not merge ares withJUMPattribute,OBSTACLE_TOPattribute, orSTAIRS attribute. Manually applying this will get it automatically removed. No differences.
OBSTRUCTED Survivor bots dislike navigating this. Cannot be manually applied, only entities likeprop_physicsorfunc_nav_avoidance_obstacleare able to apply this to navigation meshes. -none-
PLAYERCLIP Applied when intersecting with a brush having the Player clip texture. Jockies and Spitters avoid areas with this attribute. Automatically addsBLOCKED_SURVIVORattribute. -none-
STAIRS Treat oncoming areas as flat ground, also disallowing bots from jumping and Commons from climbing. Treats oncoming areas as flat ground, rather than ground we may need to jump to.
TANK_ONLY Only Tanks will navigate through this. The navigation flow also won't compute through navigation meshes using this attribute. This can't be set manually! Only settable by entities such asprop_dynamicwithTank onlyfor Breakable by property, or ascript_nav_attribute_regionentity.
Warning.png Warning: This attribute doesn't persist on round restarts!
-none-

Obsolete

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 Jockies dislike navigating this. 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 be more delicate on generating nav meshes. Identical.
CROUCH Infected bots unprefer this mesh as much asAVOIDattribute intended, except Smokers. Automatically added by anav_analyzesession.
Note.png Note: All types of bots already crouch automatically independent of navigation meshes.
Makes bots crouch.
DONT_HIDE While in anav_analyzesession, hiding spot markers (purple lines) generation is skipped for this nav area. Not used by any bots.
Note.png Note: This can compress the nav file's size!
Identical, but the hiding spot markers aren't unused.
JUMP Draws a green diagonal line on the mesh, along with making Infected bots unprefer this mesh, but also never spawning in this.
Note.png Note: In Left 4 Dead Left 4 Dead 2, All bots already automatically jump / climb based on nav connections.
Force bots to jump when they enter this mesh.
NO_HOSTAGES No effect. When leading a hostage, they won't navigate through this.
NO_JUMP Draws a red diamond on the nav mesh. Prevents jump attempts.
RUN Center of marked mesh is given a pair of blue arrows. Maintain running speed and don't slow down.
OBSTACLE_TOP Automatically added when a mesh is created above a prop entity.
Note.png Note: Not related tofunc_nav_avoidance_obstacleentity.
Identical.
STOP Center of marked mesh is given a red octagon. Halt for half a second when entering this navigation mesh.
STAND No effect. Skip considering crouches only while in hiding spots.
TRANSIENT Turns the mesh outlines into dotted lines. This mesh will recheck if it is blocked every 2 seconds.
WALK Center of marked mesh is given a singular green arrows. Bots hold down the+walkkey on this, and are also not preferred to be navigated by bots.
UNDERWATER Mesh is given a blue square/rectangle, which resides near the outlines of the mesh. Added automatically when a navigation mesh is created, and is touching the insides of water. Falling on this area from a high place will be safe.