Skip to content

Navmesh Generation and Editing

The navmesh is the data structure that the Unturned™ runtime uses for AI pathfinding. Zombies, animals, and NPCs compute paths through the navmesh to navigate the map. A map without a valid navmesh produces zombies that stand in place at their spawn point, animals that never wander from their spawn zone, and NPCs that cannot reach their waypoints. The navmesh is baked in the Unity Editor using Unity's built-in NavMesh system, then exported with the map bundle and consumed by the game runtime at load time.

This article documents the 57 Studios™ workflow for generating and editing navmesh for custom Unturned™ maps. It covers the bake process from boundary definition to finalized output, the agent settings that calibrate the navmesh for zombie and animal movement, the manual navmesh editing tools for adjusting bake results, connection points (Off-Mesh Links) that bridge gaps across doorways and staircases, navmesh behavior on sloped terrain and water surfaces, and the diagnostic workflow for the most common pathfinding failures. This article assumes the reader has a completed map project with terrain and objects placed and is ready to add AI navigation support.

Unity Scene view showing baked blue navmesh surface over a custom map terrain with Off-Mesh Link arcs visualized

Documentation source: This article synthesizes the official Smartly Dressed Games modding documentation for navmesh configuration, combined with empirical validation across 57 Studios cohort mapping projects. The companion reference article Navmesh and Pathfinding covers the full Off-Mesh Link and NavMeshObstacle configuration at greater depth.

Prerequisites

  • Unity 2022.3 LTS installed with the Unturned™ map project open. The scene must contain terrain and placed objects that define the walkable and non-walkable surfaces.
  • The Navigation panel (Window > AI > Navigation) accessible in the Unity Editor. This is the primary interface for navmesh configuration and baking.
  • A map that has been exported and tested at least once in single-player to confirm the basic map loading pipeline works, even if the navmesh has not yet been baked.
  • Familiarity with the Unity Editor Scene view, the Inspector, and the GameObject hierarchy.

What you will learn

  • How Unity's NavMesh system works and how the baked output flows into the Unturned™ runtime.
  • How to define navmesh bake bounds using Navigation Static geometry markers.
  • How to configure agent settings (radius, height, slope, step height) for Unturned™ zombies and animals.
  • How to execute the navmesh bake and inspect the resulting coverage.
  • How to use the navmesh visualization overlay to identify coverage gaps and errors.
  • How to edit the navmesh manually using NavMeshObstacle components and geometry re-marking.
  • How to place Off-Mesh Links across doorways, staircases, ledges, and vehicle-sized gaps.
  • How navmesh interacts with sloped terrain and water surfaces.
  • How to diagnose and fix the three most common pathfinding failures: zombies standing in place, zombies walking through walls, and zombies teleporting or vanishing.

How the Unity NavMesh system works

The navmesh is a triangulated polygon mesh that represents the walkable surface of the map. The Unity NavMesh system performs a voxelization pass against the scene's geometry, identifying all surfaces that meet the agent's movement criteria (slope angle, clearance height, navigable width). The voxelized data is then converted into a polygonal mesh that the AI pathfinding system uses for A* pathfinding at runtime.

As shown in the sequence diagram above, the bake is a pre-computation step that produces a static data file. The navmesh is not computed at runtime; it is loaded from the NavMesh.asset file when the map bundle is mounted. This means any change to the map's geometry requires a rebake before the change is reflected in zombie pathfinding.

The distinction between bake-time and runtime is critical for troubleshooting. A zombie that walks into a wall is experiencing a navmesh that does not match the current scene geometry (either because the geometry changed after baking or because the geometry was never marked as Navigation Static). A zombie that refuses to move at all is experiencing a no-path condition where no walkable surface exists at or near its spawn point.

Defining navmesh bounds

The navmesh bake area is not defined by a bounding box or volume. Instead, the bake considers every GameObject in the scene that is marked with the Navigation Static flag. The navmesh is generated wherever those GameObjects provide a walkable surface within the agent's movement parameters.

Marking geometry as Navigation Static

  1. In the Unity Hierarchy, select the terrain GameObject. In the Inspector, locate the Static flags dropdown in the top-right corner of the Inspector header.
  2. Enable the Navigation Static flag. If the top-level Static checkbox is enabled, all sub-flags including Navigation Static are automatically enabled.
  3. Select all building prefabs, wall objects, bridges, stairs, and barriers in the scene. Enable Navigation Static on each.
  4. When prompted, apply the change to all child GameObjects. A building prefab that has its top-level Navigation Static flag enabled but whose child walls and floors are not flagged will produce a navmesh that treats those walls and floors as nonexistent.
  5. Confirm that dynamic objects (vehicles, doors, destructible props) are NOT marked Navigation Static. These objects require NavMeshObstacle components for runtime carving, not static navmesh inclusion.
Object typeNavigation StaticRationale
TerrainRequiredThe primary walkable surface
Building floorsRequiredZombies must walk inside buildings
Building wallsRequiredWalls block zombie movement
Stairs and rampsRequiredVertical transitions
BridgesRequiredCross-terrain traversal
VehiclesDo NOT markDynamic; use NavMeshObstacle
DoorsDo NOT markDynamic; use Off-Mesh Links
Small propsDo NOT markToo small for navmesh voxelization
Foliage and grassDo NOT markNot walkable surfaces

What happens when geometry is not marked Navigation Static

The navmesh bake is completely blind to geometry that lacks the Navigation Static flag. A wall that is not marked Navigation Static is invisible to the bake: the navmesh is generated through the wall as if it does not exist. A building floor that is not marked Navigation Static produces a hole in the navmesh where the floor should be. A staircase that is not marked Navigation Static severs the navmesh connection between the ground floor and the upper floor, even if an Off-Mesh Link is placed.

The most common navmesh failure in first-time map projects is a building whose walls are not marked Navigation Static, producing a navmesh that flows through the walls and leading to zombies that walk directly through them.

Configuring agent settings

Agent settings define the physical dimensions and movement capabilities of the AI agent that the navmesh is baked for. The navmesh is calibrated to the agent, not the other way around: a navmesh baked for a small, agile agent is different from one baked for a large, slow agent. The agent settings for Unturned™ zombies and animals use the same set of parameters but with different values.

Zombie agent settings

The following values are the 57 Studios cohort-validated settings for standard Unturned™ zombies. These values produce a navmesh that matches zombie movement behavior across all official and custom maps.

SettingValueRationale
Agent Radius0.4 mMust be less than half the narrowest doorway width. Standard doorways in the Unturned™ asset library are 1.0-1.2 m wide, which passes the 0.8 m minimum.
Agent Height1.8 mStandard zombie standing height. Clearance under 1.8 m is treated as unwalkable.
Max Slope45 degreesZombies can navigate slopes up to 45 degrees. Steeper slopes are excluded from the navmesh.
Step Height0.4 mMatches the standard stair riser height for Unturned™ building interiors. Steps higher than 0.4 m require an Off-Mesh Link.

Animal agent settings

Animals use the same agent type as zombies in most map projects. The 57 Studios cohort recommendation is to use a single agent type for all ground-based AI and to reserve custom agent types only for maps with specialized AI that requires different movement parameters (boss zombies, flying animals, vehicles with AI drivers).

Voxelization settings

The Advanced panel in the Navigation window exposes voxelization settings that control bake resolution.

SettingValueDescription
Voxel Size0.1667 mControls bake resolution. Smaller values produce finer detail but longer bake times. The default of Agent Radius / 3 is appropriate for most maps.
Min Region Area2 sq mRemoves navmesh islands smaller than this area. Prevents tiny isolated navmesh patches from generating useless pathfinding targets.
Height MeshEnabledGenerates a height mesh for accurate vertical positioning on sloped terrain. Must be enabled for correct zombie behavior on hills and ramps.
Manual Voxel SizeDisabledEnable only when specific fine-detail baking is needed for a section of the map.

The navmesh bake process

The bake process transforms the Navigation Static geometry and agent settings into the final navmesh data file.

Step-by-step bake procedure

  1. Open the Navigation panel (Window > AI > Navigation).
  2. Select the Bake tab.
  3. Confirm agent settings match the cohort-validated values: Agent Radius 0.4, Agent Height 1.8, Max Slope 45, Step Height 0.4.
  4. Expand the Advanced section. Enable Height Mesh. Confirm Min Region Area is 2.
  5. Click the Bake button at the bottom of the Navigation window.
  6. The bake progress appears in the Unity Editor status bar. A Medium map (1024x1024 terrain with moderate object density) typically completes in 1-5 minutes.
  7. After the bake completes, the navmesh is displayed as a blue overlay on walkable surfaces in the Unity Scene view. Areas not covered in blue are not walkable.

What a successful bake looks like

A successful bake on a Medium survival map with standard terrain and building geometry should produce the following visual pattern in the navmesh overlay.

Surface typeExpected navmesh coverageNotes
Flat terrainFull blue coverageAll terrain with slope under 45 degrees
Sloped terrainBlue coverage on slopes under 45 degreesSteeper slopes are excluded
Building interiorsBlue coverage on all floorsFloors must be marked Navigation Static
DoorwaysGap in coverageRequires Off-Mesh Link to bridge
StaircasesNo coverage on individual stepsRequires Off-Mesh Link to bridge
Wall topsNo coverageWalls should not be walkable
Roof surfacesNo coverage unless intentionalRemove Navigation Static from roofs
WaterNo coverageWater is not walkable

Saving the baked navmesh

After baking, save the Unity scene. The navmesh is stored in a NavMesh.asset file that Unity creates alongside the scene file. An unsaved bake is not persisted and will not be included in the map export. The 57 Studios cohort recommendation is to save the scene immediately after every bake and to verify that the NavMesh.asset file exists in the scene directory before exporting the map.

Visualizing the navmesh

The Unity Scene view provides a navmesh visualization overlay that shows the coverage surface, coverage gaps, and Off-Mesh Links.

Enabling the overlay

  1. In the Navigation panel, select the Bake tab.
  2. The navmesh overlay is displayed automatically in the Scene view after a bake completes.
  3. Use the Scene Filter dropdown in the Navigation panel to isolate the navmesh visualization from other scene elements. The filter shows only the navmesh surface and hides all geometry, which makes coverage gaps easier to identify.

Reading the visualization

Visualization elementMeaningAction required
Blue surfaceWalkable area where AI can pathfindNone if coverage is correct
White gap in blueArea not covered by navmeshMay be intentional (wall, water) or an error (missing Navigation Static flag)
Blue surface inside a wallNavmesh generated inside wall geometryWall is too thin for voxelization; increase wall thickness
Arc connecting two blue areasOff-Mesh Link bridging a gapConfirm both endpoints land on blue surface
No blue surface anywhereNo Navigation Static geometry in sceneMark terrain and objects as Navigation Static

The 57 Studios cohort recommendation is to inspect every building interior and every zombie spawn region in the navigation overlay after each bake. A missing coverage patch at a spawn region means zombies in that area will never move.

Manual navmesh editing

The navmesh cannot be painted or sculpted directly in the Unity Editor. There is no brush tool for navmesh. Manual editing is performed indirectly by changing which geometry is marked Navigation Static, by adding NavMeshObstacle components to carve holes, and by adding Off-Mesh Links to bridge connections.

Removing unwanted navmesh coverage

When the navmesh covers a surface that should not be walkable (a roof surface, a decorative platform, a rock outcropping), the resolution is to remove the Navigation Static flag from that geometry and rebake.

  1. Select the GameObject with unwanted navmesh coverage.
  2. In the Inspector, disable the Navigation Static flag.
  3. The change is immediate. Rebake the navmesh to regenerate the surface without the unwanted coverage.
  4. If the unwanted coverage is on a mesh that is part of a larger prefab, consider adding a NavMeshObstacle component with Carve enabled instead of modifying the prefab, which would affect every instance of the prefab.

Adding navmesh coverage where it is missing

When the navmesh does not cover a surface that should be walkable (a floor that was not marked Navigation Static, a bridge that was added after the last bake), the resolution is to mark the geometry as Navigation Static and rebake.

  1. Select the GameObject. Enable Navigation Static.
  2. If the geometry is part of a prefab, confirm that all child meshes also have Navigation Static enabled. The prefab may have a mix of flagged and un-flagged children.
  3. Rebake the full navmesh. The new surface appears in the coverage after the bake completes.

Using NavMeshObstacle for selective removal

The NavMeshObstacle component carves a hole in the navmesh at the component's position at runtime. This is useful for geometry that cannot be removed from the Navigation Static set because it is shared with other coverage that must remain.

  1. Select the GameObject where the navmesh hole is needed.
  2. Add Component > Navigation > NavMeshObstacle.
  3. Set Shape to Box or Capsule. Size the obstacle to cover the area that should be unwalkable.
  4. Enable Carve. When Carve is enabled, the obstacle carves a hole in the navmesh at runtime.

The NavMeshObstacle approach is preferred over modifying prefab Navigation Static flags when the unwanted coverage is on a shared prefab instance. It targets a specific instance without affecting other instances of the same prefab.

Connection points across gaps

Off-Mesh Links are the mechanism for bridging gaps in the navmesh. They connect two navmesh regions that are not contiguous in the baked mesh: doorways, window openings, staircases, ledges, and vehicle-sized gaps.

ScenarioNavmesh behavior without linkLink type required
DoorwayNavmesh gap at door frameBidirectional
StaircaseNo connection between floorsBidirectional
Window openingNo connection between interior and exteriorBidirectional
Ledge dropAbrupt navmesh edge at ledgeOne-way (downward)
Vehicle doorNo connection through vehicle interiorBidirectional
Cave entranceSurface navmesh does not reach undergroundBidirectional
  1. Select the GameObject that is adjacent to the gap (the building prefab for a doorway, the floor section for a staircase).
  2. Add Component > Navigation > Off Mesh Link.
  3. Create two empty child GameObjects at the link endpoints: one named LinkStart, one named LinkEnd.
  4. Position LinkStart at one side of the gap, 0.5 meters from the edge, on the blue navmesh surface.
  5. Position LinkEnd at the other side of the gap, 0.5 meters from the edge, on the blue navmesh surface.
  6. In the Off Mesh Link component, assign LinkStart to the Start field and LinkEnd to the End field.
  7. Set Cost Override to 1 (default). Higher values make the link less preferred by pathfinding.
  8. Enable Bidirectional if the gap can be crossed in both directions. Disable for one-way drops.
  9. Enable the Activated flag. A disabled link is never used.
  10. Rebake the navmesh. The link appears as an arc in the navmesh visualization.

Off-Mesh Links whose endpoints are not on valid navmesh surface fail silently. The link appears in the visualization but is never used in pathfinding. The verification step is critical.

  1. After baking, inspect the Off-Mesh Link in the Scene view with navmesh visualization enabled.
  2. Confirm that both LinkStart and LinkEnd GameObjects are positioned on blue navmesh surface.
  3. Confirm the link arc connects two blue regions.
  4. If the endpoints are not on blue surface, move them closer to the center of the navmesh region and rebake.

The Max Slope setting (45 degrees by default) controls which terrain angles are included in the navmesh. Terrain slopes below 45 degrees are walkable. Slopes above 45 degrees are excluded.

When the navmesh has a missing patch on terrain that appears walkable, the terrain slope in that area may exceed 45 degrees in the underlying heightmap data even if it appears gentle at the surface. The slope calculation is based on the heightmap's rate of change, not the visual appearance of the painted terrain.

  1. In the Unity Editor, select the terrain.
  2. Open the Terrain inspector and select the height manipulation tool.
  3. Enable the Slope visualization mode (available in the Terrain inspector's visualization options).
  4. Walk through the area with missing navmesh coverage. Areas colored red exceed 45 degrees.
  5. If the slope is genuinely too steep, use the Smooth brush on the terrain heightmap to reduce the angle below 45 degrees.
  6. Alternatively, increase the Max Slope setting to 50 degrees to provide additional margin. The 57 Studios cohort recommendation is to keep Max Slope at 45 degrees and adjust the terrain rather than the setting, because higher slope values allow zombies to traverse terrain that looks visually incorrect (zombies walking up near-vertical surfaces).

Slopes that are technically walkable but look wrong

When Max Slope is set to 50 or higher, zombies can traverse terrain that appears excessively steep to a human observer. The navmesh treats the slope as walkable because the agent's step height and radius allow it, but the visual result is zombies scaling cliff faces. The 57 Studios cohort recommendation is to keep Max Slope at 45 degrees and to add Off-Mesh Links or stepped terrain for traversable vertical transitions. A stepped approach (multiple flat platforms connected by Off-Mesh Links) produces a more visually natural result than a single high-slope surface that zombies can traverse but that looks incorrect to players observing from a distance.

Water surfaces are never walkable and do not generate navmesh. This is intentional: zombies cannot pathfind across water. The navmesh terminates at the water's edge.

Handling shallow water that zombies should traverse

If a water area is shallow enough that zombies should be able to walk through it (a river crossing, a flooded street), the water cannot remain as a standard water volume. The resolution is to lower the water surface below the terrain height in that area or to replace the water with a terrain-based riverbed that has no water volume assigned.

  1. In the Level Editor, identify the water volume in the shallow area.
  2. Lower the water volume below the terrain surface so that no water geometry exists at the crossing point.
  3. Use terrain painting to create a riverbed visual that looks like shallow water without the water volume's navmesh-blocking behavior.
  4. Rebake the navmesh. The terrain at the crossing point is now walkable and generates navmesh coverage.

Preventing zombies from walking into deep water

Zombies whose last valid path terminates at the water's edge may carry forward into the water due to momentum. The mitigation is to add a NavMeshObstacle carver or invisible barrier geometry at the water's edge to create a navmesh wall.

  1. Create an invisible barrier GameObject along the water's edge.
  2. Mark it as Navigation Static.
  3. Rebake the navmesh. The barrier creates a navmesh boundary that stops zombie paths at the water's edge.

Zombies not pathfinding: diagnostic workflow

When zombies stand in place, walk through walls, or teleport, the cause is almost always in one of three categories: no navmesh at the spawn point, navmesh disconnected from the player's position, or navmesh mismatch with the current geometry.

Diagnostic flowchart

As shown in the flowchart above, the diagnostic path depends on the observed symptom. The three symptoms cover the vast majority of navmesh failures in custom maps.

Fix 1: No navmesh at spawn point

When a zombie spawns and stands in place without ever moving, the spawn point is not on a valid navmesh surface. The zombie's AI controller checks the spawn point position against the navmesh at spawn time. If the position is off the navmesh, the engine returns a no-path result and the zombie remains stationary.

Resolution: Open the Level Editor and inspect the zombie spawn point position with navmesh visualization enabled. If the spawn point is in a white area (no coverage), move it onto blue coverage or adjust the navmesh to cover that area. A distance tolerance of 0.5 meters from the navmesh edge is applied by the engine; spawn points within 0.5 meters of a navmesh surface are treated as valid.

Fix 2: Navmesh walked through walls

When zombies walk directly through walls, the navmesh has been generated through the wall geometry. The wall is either not marked Navigation Static or is too thin for the voxelization pass to register.

Resolution: Select the wall in the Unity Hierarchy and confirm the Navigation Static flag is enabled. If it is enabled and the issue persists, measure the wall thickness. Walls thinner than 0.1 m may not voxelize correctly. Increase the wall mesh thickness to at least 0.2 m in the 3D modeling tool and re-import. Alternatively, add a NavMeshObstacle component with Carve enabled on the thin wall to cut a runtime hole in the navmesh.

Fix 3: Zombie teleportation or vanishing

When zombies disappear or teleport when approached, the most likely cause is overlapping navmesh bounds. The zombie's position oscillates between two navmesh regions that overlap, causing the AI controller to continuously recalculate the path and producing a visual vanishing effect.

Resolution: Open the navmesh editor in Unity. Inspect the navmesh bounds for any overlapping areas. Adjust the bounds so that each region is exclusive. If the overlap is between a building interior navmesh and the terrain navmesh, check that the building floor is at the correct height and that the building walls properly separate the interior from the exterior. Rebake after adjusting bounds.

Frequently asked questions

Why do zombies stand in place after spawning?

The spawn point is not on a valid navmesh surface. The zombie AI computes a path to the player at spawn time. If the spawn point is not within reach of the navmesh, the engine returns a no-path result and the zombie remains stationary. Verify by inspecting the navmesh visualization at the spawn point position and confirm the point is on blue surface or within 0.5 meters of it.

Why does my navmesh bake take over 10 minutes?

The primary factor is the voxel size setting in the Advanced panel. The default voxel size is Agent Radius / 3. Increasing the voxel size to Agent Radius / 2 (approximately 0.2 m for a zombie agent) reduces bake time significantly at the cost of reduced navmesh detail. For a 1024x1024 map, a voxel size of 0.2 m typically produces a bake under 3 minutes while retaining sufficient accuracy.

Can I have different navmesh agent types for different zombie variants?

Yes. Unity supports multiple agent types defined in the Navigation window's Agents tab. Each agent type requires a separate bake pass. In practice, most Unturned™ map projects use a single agent type for all zombie variants because the bake overhead for multiple agent types is significant and the behavioral difference between agent types is subtle.

Why does the navmesh cover the inside of my building but not the roof?

The roof geometry must be marked Navigation Static for the bake to generate navmesh on it. If the roof mesh normals point downward (ceiling orientation), the bake treats it as a non-walkable surface. Add the Navigation Static flag to the roof mesh and confirm the normals point upward. If the roof was imported with inverted normals, flip them in Blender or the modeling tool before re-importing.

How do I make a specific area completely unwalkable?

Add a NavMeshObstacle component to the geometry in that area with Carve enabled. The carve cuts a hole in the navmesh over the obstacle. For permanently impassable static geometry, remove the Navigation Static flag from the blocking geometry rather than adding a NavMeshObstacle.

Adding new geometry and rebaking may have disconnected previously connected navmesh regions. After rebaking, inspect all Off-Mesh Links in the affected area. Links whose endpoints are on navmesh regions that are now separated need to be extended or repositioned.

Can players interact with the navmesh at runtime?

No. Players are controlled directly by physics input and do not use the NavMesh system. The navmesh is consumed exclusively by AI agents. Player movement is not affected by navmesh coverage or gaps.

Will updating the navmesh affect an already-running server?

The navmesh is loaded when the map bundle is loaded at server start. A navmesh update requires redistributing the updated map bundle and restarting the server. There is no mechanism to hot-reload the navmesh without a server restart.

How do I bake navmesh for an underground bunker or cave?

Underground spaces must have their geometry marked Navigation Static and must have at least one Off-Mesh Link connecting the underground space to the surface navmesh at the entrance or exit. For a vertical shaft, use a one-way link downward from the shaft opening to the bunker floor and a separate one-way link upward from the bunker floor to the shaft opening.

My navmesh looks correct in Unity but zombies behave differently in-game. Why?

The Unity Editor's NavMesh visualization shows the baked surface, but it does not simulate the Unturned™ runtime's pathfinding behavior exactly. Export the map and test in single-player. If the issue persists, enable zombie debugging through the in-game console or check the server log for navmesh-related error messages.

Best practices

  • Bake the navmesh after the heightmap and all major object geometry are finalized. Each navmesh bake takes 1-5 minutes and every geometry change requires a rebake.
  • Mark all terrain and building geometry as Navigation Static before the first bake. Missing a surface at bake time produces a coverage gap that is invisible in the editor but causes zombies to stop at that surface in-game.
  • Use a single agent type for all ground-based AI unless the map has specialized movement requirements.
  • Save the Unity scene immediately after every bake. An unsaved bake is lost.
  • After baking, inspect the blue overlay in every building interior and every zombie spawn region. Missing coverage at a spawn point means zombies will not move.
  • Place Off-Mesh Links for every doorway, staircase, window opening, and ledge drop. Use the checklist in Appendix C to verify completeness.
  • Rebake after every editor session that changes Navigation Static geometry. An old navmesh produces pathfinding failures that are difficult to distinguish from other bugs.
  • Test navmesh in single-player before publishing. The Unity Editor's visualization is accurate for coverage but does not simulate runtime pathfinding edge cases.
  • Keep the Max Slope setting at 45 degrees. Higher values allow zombies to traverse terrain that appears visually incorrect.

Advanced considerations

Multi-level structures and floor separation

The navmesh is a 2.5D surface; it does not natively understand floor separations in multi-level buildings. Each floor generates navmesh independently. Off-Mesh Links at staircases and at vertical openings (elevator shafts, ladder hatches) are required to connect the levels.

For a building with three floors and one staircase, the required Off-Mesh Links are:

  1. Ground floor landing to first floor landing (bidirectional)
  2. First floor landing to second floor landing (bidirectional)

Each staircase requires its own pair of link endpoints. A single link that spans the entire staircase from ground floor to second floor will not bridge the first floor correctly because the link's endpoints must be on navmesh surfaces that exist at the same vertical level.

If the map includes vehicles that zombies should be able to climb onto or walk around (parked cars, shipping containers, flatbed trucks), the vehicle geometry must be handled carefully. Marking a vehicle prefab as Navigation Static is not recommended because vehicles that move or despawn leave orphan navmesh islands.

The 57 Studios cohort recommendation for vehicle navmesh is to use NavMeshObstacle components on large static vehicles (shipping containers, wrecked cars that never move) and to not include mobile vehicles in the navmesh at all. Zombies pathfind around mobile vehicles using agent avoidance at runtime, which is sufficient for gameplay purposes.

Some Unturned map projects use multiple Unity scenes to organize different regions or levels. The navmesh bake is a per-scene operation. Each scene generates its own NavMesh.asset file. At runtime, only the active scene's navmesh is loaded. If the map uses scene streaming (loading adjacent scenes as the player moves), each scene must have its own navmesh baked independently, and the navmesh boundaries at scene seams must align.

The 57 Studios cohort recommendation for multi-scene maps is to bake the navmesh for each scene separately, using identical agent settings across all scenes, and to verify that the navmesh at each scene seam is continuous (zombies can path across the seam without interruption). If zombies stop at a scene seam, the navmesh in one or both scenes is missing coverage at the seam position.

If the map uses Unity landscape tiles (Terrain components placed on a grid) rather than a single large terrain, each tile must be individually marked Navigation Static. The navmesh bake generates coverage across tile boundaries seamlessly as long as all tiles are flagged and their heights match at the seam.

Appendix A: Navmesh agent settings field reference

SettingLocationTypeDefaultDescription
Agent RadiusBake tabfloat (m)0.5Minimum width of a walkable gap. The gap must be at least 2x the radius.
Agent HeightBake tabfloat (m)2.0Minimum clearance height for a walkable surface.
Max SlopeBake tabfloat (deg)45Steepest terrain slope that is walkable.
Step HeightBake tabfloat (m)0.4Maximum height of a single traversable step.
Drop HeightBake tabfloat (m)0Maximum height of a ledge the agent can drop from. Requires Off-Mesh Link for nonzero values.
Jump DistanceBake tabfloat (m)0Maximum horizontal gap the agent can jump across. Requires Off-Mesh Link for nonzero values.
Min Region AreaAdvancedfloat (sq m)2Navmesh islands smaller than this are removed.
Height MeshAdvancedboolfalseGenerates vertical surface mesh for slope-accurate positioning.
Voxel SizeAdvancedfloat (m)Agent Radius / 3Resolution of the voxelization pass.
Tile SizeAdvancedint (voxels)256Size of each navmesh tile. Smaller tiles improve incremental carve performance.

Appendix B: Navmesh bake diagnostic table

SymptomMost likely causeResolution
No navmesh generatedNo geometry marked Navigation StaticMark terrain and all static objects Navigation Static and rebake
Gaps in navmesh on flat terrainAgent radius too large or geometry too narrowReduce agent radius to 0.4 m
Navmesh inside wallsWall geometry too thin for voxelizationIncrease wall thickness to 0.2 m or add NavMeshObstacle with Carve
Off-Mesh Link not usedEndpoints not on valid navmeshReposition endpoints onto blue navmesh surface and rebake
Navmesh covers roof surfacesRoof geometry marked Navigation Static unintentionallyRemove Navigation Static from non-walkable surfaces
Bake takes over 30 minutesVoxel size too small for map areaIncrease voxel size to 0.2 m and rebake
Navmesh missing on slope that looks walkableSlope exceeds Max Slope in heightmap dataSmooth terrain or increase Max Slope to 50 degrees
Cover gap at doorwayDoorway narrower than 2x agent radiusAdd Off-Mesh Link through the doorway
Navmesh disappears in section after rebakeNavigation Static flag removed during prefab updateRe-mark affected geometry Navigation Static
Zombies fall through terrain on spawnSpawn point positioned below navmesh surfaceRaise spawn point to ground level, within 0.5 m of navmesh
  • [ ] All exterior doorways have a bidirectional Off-Mesh Link with endpoints 0.5 m from the door frame on navmesh surface
  • [ ] All interior doorways connecting different navmesh regions have bidirectional links
  • [ ] Each staircase has a bidirectional Off-Mesh Link from bottom landing to top landing
  • [ ] Each window opening that players can exploit as a zombie entry point has an Off-Mesh Link
  • [ ] Drop-down ledges (rooftop to ground, upper story to lower story) have one-way links pointing downward
  • [ ] Each link's Start and End transforms are on visible blue navmesh surface in the Scene view
  • [ ] Each link's Activated flag is enabled
  • [ ] Bidirectional links have Bidirectional enabled; one-way links do not
  • [ ] After adding links, the scene has been saved and the navmesh has been rebaked
  • [ ] After rebake, each link appears as an arc in the navmesh visualization
  • [ ] The NavMesh.asset file exists in the scene directory after saving
  • [ ] The navmesh is included in the map export by confirming the bundle build includes the asset

Appendix D: Navmesh generation workflow quick reference

1. Mark all terrain and geometry as Navigation Static
2. Configure agent settings (Radius 0.4, Height 1.8, Max Slope 45, Step Height 0.4)
3. Enable Height Mesh in Advanced settings
4. Click Bake
5. Inspect the blue overlay in the Scene view
6. Add Off-Mesh Links for every gap (doorways, stairs, ledges)
7. Rebake after adding links
8. Verify link endpoints are on blue surface
9. Save the scene
10. Export the map and test in single-player

Cross-references

Document history

VersionDateAuthorNotes
1.02026-07-2657 StudiosInitial publication. Complete navmesh generation and editing guide with bake workflow, agent settings, Off-Mesh Links, slope and water handling, and diagnostic procedures.