Generating the NAV File

9 Apr

UPDATE 04/2010 by cr0ybot:  Abandon all hope, ye who enter here!


This “tutorial” was written back in April of ’09, before Left4Dead’s SourceSDK update became publicly available in June ’09! Yes, that’s right, the first Left4Dead. Now, Valve has Left4Dead Authoring tools, and probably lots of documentation at the developer wiki. Therefore, everything I wrote here, trying to get a mod to work without official support, is probably wrong.

Proceed with caution.


Pre-NAV-generation checklist:

Starting Saferoom:

  • info_player_start
  • 4 info_survivor_position
  • info_director
  • env_fog_controller (Fog Enable = yes)
  • info_landmark
  • prop_door_rotating_checkpoint (“checkpoint_exit”; body = 1; Spawn Position = Closed)
  • 4 weapon_first_aid_kit_spawn
  • weapon_smg_spawn
  • weapon_pumpshotgun_spawn
  • weapon_ammo_spawn

Rescue Closets:

  • 3 info_survivor_rescue
  • prop_door_rotating

Ending Saferoom:

  • prop_door_rotating_checkpoint (“checkpoint_entrance”; body = 0; Spawn Position = Open)
  • info_landmark
  • trigger_changelevel (must touch floor)

In-game NAV Generation:

NOTE: If your map has an “event” that opens a crucial path, open the path in-game before you generate the NAV

sv_cheats 1
nav_edit 1
nav_mark_walkable (mark all levels, including rooftops)

After inevitable errors, check crucial NAV markers:

select_with_attribute CHECKPOINT
select_with_attribute RESCUE_CLOSET
select_with_attribute ESCAPE_ROUTE

Manually assign NAV markers by pointing at NAVS or using nav_gui to select:

mark CHECKPOINT (start and end room)

If you suspect disconnected NAVs, especially with stairs/ladders:

NOTE: using the flood select option in the nav_gui will allow you to easily find disconnected NAVs

General disconnections:

nav_trouble_report orphan
nav_mark (1st NAV)
nav_connect (2nd NAV)
nav_mark (2st NAV)
nav_connect (1nd NAV)


nav_mark (at base of ladder)
nav_connect (on ladder)
nav_mark (on ladder)
nav_connect (at top of ladder)


nav_mark (top or bottom)
nav_splice (other side)

If all else fails:

director_debug 1
nav_recompile_flow (untested)

Helping the NAV along:

mark OBSCURED (areas that zombies should spawn, like behind props)
mark EMPTY (areas that should be clear always; mobs will still spawn during panic events)
mark NO_MOBS (areas that will not spawn mobs)
mark BATTLEFIELD (apparently good for spawning zombies in wide-open areas)
mark PRECISE (AI should be careful to walk exactly where the NAV is located; good for tight ledges with a chance of falling)


One Response to “Generating the NAV File”


  1. Intermission « The Escape Route - April 7, 2010

    […] Cory was nice enough to update one of our most popular posts on the site, regarding the generation of NAV files in L4D. He’s thrown a disclaimer on it at the beginning explaining that the list he made there is […]

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: