Common L4D Mapping Problems
Jump to navigation
Jump to search
This is a collection of Frequently Asked Questions and common error messages related to mapping for Left 4 Dead.
FAQ
- Why does a newly compiled map crash L4D after being loaded?
- Left 4 Dead requires the file "stringtable_dictionary.dct" to be embedded inside the BSP to open it. If the file is not present L4D will pack the file inside the BSP, but will crash in the process. To prevent this from happening, you can configure Hammer to automatically pack a "stringtable_dictionary.dct" file into your BSP during the compile process. To do this, follow the tutorial here. The "stringtable_dictionary.dct" file itself can be obtained from that tutorial, or extracted from an official L4D map using a tool like Pakrat.
- How do I make the infected spawn?
- Your map must have a info_director that is enabled, you also may have to use the console command "director_start". For wandering zombies to be spawned when you load the map, the director needs to be able to compute a path from the start to the finish. See Navigation Meshes and the official L4D Level Design Docs for more info
- Why won't the survivor bots move?
- The most likely cause is a faulty or missing ".nav" file. See Navigation Meshes
- Why is the molotov fire / Smoker's smoke cloud not visible in-game?
- This is usually due to the lack of a
env_fog_controller
entity. Also, check to make sure there were no errors generated during the map's compile process.
- This is usually due to the lack of a
- Why won't my rescue closets work?
- Rescue closets will not function correctly if there are any nav errors present in the map (the "NAV ERRORS - Map is unplayable!" message appears in game). You will want to make sure the map's nav mesh is properly set-up.
- How do I play my map in Versus Mode or Survival Mode?
- To play your map in Versus or Survival mode, first set the CVAR "mp_gamemode" to "versus" or "survival" (respectively), then load your map using the "map" command. So if you wanted to play your map "warehouse.bsp" in survival mode, you would type in the console (while on the main menu) "mp_gamemode survival; map warehouse". Similarly, if you wanted to switch back to regular campaign mode, type "mp_gamemode coop; map warehouse". (Note 1: "coop" and "campaign" are synonymous when using the mp_gamemode command) (Note 2: If you're already in a game running locally, you can switch gametypes by using the "mp_gamemode" command, then the "changelevel" command.)
- I followed the tutorial here to use L4D resources in Hammer, but some textures I use still don't show up in-game (they appear as purple and black checkers). Why is this?
- Textures in the texture browser in Hammer aren't necessarily available resources in Left 4 Dead. Many materials in Hammer are found in the "source materials.gcf" and "source 2007 shared materials.gcf" files under "SteamApps", which Left 4 Dead doesn't mount. To test if they are readily available, click the "Open Source" button when in the texture browser. If the material is part of the L4D resources, some program should open with the VMT file you selected. If nothing happens, the material is likely not included with Left 4 Dead and should not be used inside the map.
- Why does the copy of Hammer included with the L4D SDK take several minutes to launch?
- L4D utilizes a different file structure from other Source based games. Hammer also searches through all the game's textures, models, VGUI materials and sounds as well as loading different shaders. These checks can equate to thousands of individual process events.
- Why doesn't my custom map load when using -tools mode?
- When loading the -tools mode version of L4D, press F10 to switch to the game, bring down the console and set sv_lan 1.
- Why is the rain particles splash when hitting the floor/objects nearly impossible to see / very transparent?
- You must compile your map with HDR enabled for the rain splash effect to be clearly visible.
- Why doesn't the game recognise/play custom sounds I place in the sound directory even though they are in the correct format?
- Custom sounds in L4D require that you rebuild the audio cache before the engine will see them. Ingame, type snd_rebuildaudiocache into the console. When it is finished your sounds will work ingame.
- After compiling my map without vrad to quickly test small changes, the map became full bright, but now even when I compile with vrad, my map is still fully lit up.
- The game engine automatically sets mat_fullbright 1 when loading a map that hasn't been compiled with vrad. However, L4D does not turn it off automatically when loading a map that has been compiled with vrad. If you leave L4D open during development in a window and reload your map after a full vrad compile, you must manually set mat_fullbright 0. After setting mat_fullbright to "0", you may need to reload your map for it to display correctly.
- Why does L4D ignore my info_survivor_position? I can only use info_player_start?
- There is a bug with logic_auto's onmapspawn in conjunction with using it to call an info_directors forcesurvivor input which does not allow it to function properly unless your map is loaded as a campaign. Instead, set up the info_director to have a name then in the info_directors output, have it trigger itself once to call forcesurvivorpositions with 0.00 delay, then again with releasesurvivorpositions with 0.01 delay.
Error messages and what they mean
General
- ***VPK: FindFile Attempting to use full path with VPK file!
- N/A, but this error can be safely ignored
- WARN: CL4DBasePanel::UpdateProgressBar called outside of level loading, discarded!
- Engine Error: 81/ - weapon_ammo_spawn: UTIL_SetModel: not precached: models/props_unique/spawn_apartment/coffeeammo.mdl
- Steam Validation Rejected
- Make sure that you have "+sv_lan 1" set in your game's launch options.
If you're compiling without the official SDK, the 2 errors below are likely due to the BSP missing a "stringtable_dictionary.dct" file. For more information on fixing this, see "Why does a newly compiled map crash after being loaded in L4D?" above.
- Engine Error: CModelLoader::FindModel: NULL name
- This can be caused due to compiling the map using an outdated FGD. Older FGDs do not have the new values for the
env_fog
andlight_environment
entities, therefore you are compiling a BSP with missing information.
- This can be caused due to compiling the map using an outdated FGD. Older FGDs do not have the new values for the
- Assert, File: U:\dev\terror\src\tier0\memstd.cpp, Line: 1623, Assert: ***** OUT OF MEMORY! attempted allocation size: 536873088 ****
- If the map crashed once, you can try relaunching L4D and load your map again. It should load up fine the second time.
- Also try turning Multicore Rendering off, if turned on.
- The nav file was built for an older compile.
- This error message means the ".nav" file for a map is older then the ".bsp" itself. This should not be a problem unless the map's layout was changed after the ".nav" file was created. This can be remedied by running
nav_analyze
in the console after changes are made to the ".bsp".
- This error message means the ".nav" file for a map is older then the ".bsp" itself. This should not be a problem unless the map's layout was changed after the ".nav" file was created. This can be remedied by running
The nav errors below will cause the message "NAV ERRORS - Map is unplayable!" to be displayed in game when the map is loaded.
- Missing nav file.
- Missing Battlefield check found N areas
- GetGoalArea: Cannot find SPAWN_RESCUE_CLOSET area in FINALE, thus cannot guarantee reachability of goal area.
- Regarding respawn closets; there are 2 essential steps for making them work properly. Place 3 Info survivor position entities in a room or closet then in game use the
mark RESCUE_CLOSET
console command to identify the closet/room as a rescue area. This process is explained in Navigation Meshes. Equally important is labeling the "player start" and checkpoint meshes usingmark CHECKPOINT
andmark PLAYER_START
respectively.
- Regarding respawn closets; there are 2 essential steps for making them work properly. Place 3 Info survivor position entities in a room or closet then in game use the
- GetGoalArea: Cannot find end area - no checkpoint or finale located.
- This error is due to lack of one of the following:
- 1) A missing Prop door rotating checkpoint entity.
- 2) Not identifying a navigation mesh with
mark CHECKPOINT
. - 3) Not identifying a navigation mesh with
mark FINALE
. - 4) Not properly using a trigger_changelevel with its correct info_landmark or not using it at all.
- This error is due to lack of one of the following:
- ComputeFlowDistances: ERROR - Cannot compute flow.
- The "Flow" of the map refers to the ability of the AI to travel from the spawn location to the designated Saferoom/finale checkpoint. If there are any breaks in the navigation mesh (meshes that are not connected via
nav_connect
ornav_splice
), L4D cannot compute the path necessary to travel the map. The map need to be fully playable for the game to compute the flow. Which means a fully working spawn room and a fully working safe room are mandatory.Note:
Nav_generate
can leave certain essential meshes from being connected, sometimes manual connection is required.Note:It is possible to remove the "NAV ERRORS - Map is unplayable!" error message. One method found is to make sure your map has an
info_player_start
,info_director
, and a nav mesh, then follow the steps in "The safe house and changing levels " and "Building the navigation mesh" in Your First Left 4 Dead Map.
- The "Flow" of the map refers to the ability of the AI to travel from the spawn location to the designated Saferoom/finale checkpoint. If there are any breaks in the navigation mesh (meshes that are not connected via
- The game crashes when using nav_delete?
- Use director_stop and then nb_remove_all to make sure all survivor bots and infected are removed before editing your nav mesh.