Common L4D Mapping Problems: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
mNo edit summary
Line 33: Line 33:
* '''Missing Battlefield check found N areas'''
* '''Missing Battlefield check found N areas'''
* '''GetGoalArea: Cannot find SPAWN_RESCUE_CLOSET area in FINALE, thus cannot guarantee reachability of goal area.'''
* '''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 <code>mark RESCUE_CLOSET</code> console command to identify the closet/room as a rescue area. This process is explained above in "NAV MARKING". Equally important is labeling the "player start" and checkpoint meshes using <code>mark CHECKPOINT</code> and <code>mark PLAYER_START</code> 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 <code>mark RESCUE_CLOSET</code> 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 using <code>mark CHECKPOINT</code> and <code>mark PLAYER_START</code> respectively.  
* '''GetGoalArea: Cannot find end area - no checkpoint or finale located.'''
* '''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 <code>mark CHECKPOINT</code>. 3.) Not identifying a navigation mesh with <code>mark FINALE</code>.
** 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 <code>mark CHECKPOINT</code>. 3.) Not identifying a navigation mesh with <code>mark FINALE</code>.
* '''ComputeFlowDistances: ERROR - Cannot compute flow.'''
* '''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/final checkpoint. If there are any breaks in the navigation mesh (meshes that are not connected via <code>nav_connect</code> or <code>nav_splice</code>), L4D cannot compute the path necessary to travel the map. {{note|<code>Nav_generate</code> can leave certain essential meshes from being connected, sometimes manual connection is required.}}
** 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 <code>nav_connect</code> or <code>nav_splice</code>), L4D cannot compute the path necessary to travel the map. {{note|<code>Nav_generate</code> 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 <code>info_player_start</code>, <code>info_director</code>, and a nav mesh, then follow the steps in "One method for changing levels" and "Building the navigation mesh" above.}}
{{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 <code>info_player_start</code>, <code>info_director</code>, and a nav mesh, then follow the steps in "One method for changing levels" and "Building the navigation mesh" above.}}

Revision as of 14:05, 24 January 2009

This is a collection of Frequently Asked Questions and common error messages related to mapping in Left 4 Dead.

FAQ

  • Why does a newly compiled map crash after opening it in L4D?
    • Left 4 Dead requires the file "stringtable_dictionary.dct" to be packed 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. A tutorial for packing the file into the map during compile automatically is available here.


  • 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".


  • Why won't the survivor bots move?


  • 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.


  • 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 VS Mode?
    • VS Mode is enabled through the map's name. To create a VS Mode map, simply prefix the map's name with "l4d_vs_". For example, if you had a map named "oiltanker_engineroom", to make it into a VS map, just rename it to "l4d_vs_oiltanker_engineroom".


Error messages and what they mean

Navigation mesh related errors

  • 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".

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 using mark CHECKPOINT and mark PLAYER_START respectively.
  • 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.
  • 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 or nav_splice), L4D cannot compute the path necessary to travel the map.
      Note.pngNote:Nav_generate can leave certain essential meshes from being connected, sometimes manual connection is required.
Note.pngNote: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 "One method for changing levels" and "Building the navigation mesh" above.

Others

  • 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
  • Engine Error: CModelLoader::FindModel: NULL name
    • This is caused by compiling the map using an outdated FGD. Older FGDs do not have the new values for the env_fog and light_environment entities, therefore you are compiling a BSP with missing information.
  • Assert, File: U:\dev\terror\src\tier0\memstd.cpp, Line: 1623, Assert: ***** OUT OF MEMORY! attempted allocation size: 536873088 ****
    • Underneath this error message, there is a button labeled "Break in Dubugger". Click this. Your game will crash, but once you relaunch, load your map again. It should load up fine the second time.
    • Alternatively, next to the "Ignore this assertion [#] time(s)", putting any number for how many times you would like the engine to skip that error.

See also