Custom Map Creation: Project Setup
A map author opens the Unturned™ map editor, chooses a map size, and immediately encounters a series of configuration decisions that determine everything that follows: terrain resolution, material layer count, foliage density limits, navmesh bake time, and the performance ceiling for players who will load the map. Every decision at the project setup stage propagates forward into every stage that follows. A map started with the wrong size or an insufficient material layer count cannot be corrected later without restarting the terrain from scratch.
This article documents the 57 Studios™ cohort-validated workflow for setting up an Unturned™ custom map project. It covers map size selection, terrain heightmap authoring, material splatmap configuration, texture slot assignment, foliage placement settings, light probe placement, skybox configuration, and navmesh preparation. The article assumes the reader has Unity 2022.3 installed and is familiar with the Unturned map editor. If those prerequisites are not met, see Unity Setup and the Getting Started guide before continuing here.

Prerequisites
- Unity 2022.3 LTS installed via Unity Hub. See Unity Setup.
- Unturned™ installed through Steam with the map editor accessible from the main menu.
- A working project folder structure following the 57 Studios™ naming convention. See Objects and Structures Assets for the folder layout used by the previous stage in the pipeline.
- Familiarity with the Unturned™ map editor interface (Terrain, Foliage, Roads, Objects, and Players panels).
- Notepad++ or another plain-text editor for authoring
.datconfiguration files.
What you'll learn
- How to select the correct map size for your project goals and avoid the pitfalls of choosing too large or too small.
- How the Unturned terrain heightmap and material splatmap relate to each other and to the Unity Terrain component.
- How to configure material slots and assign textures to terrain layers so that each biome zone paints correctly.
- How to place foliage using the Foliage panel so that grass, brush, and detail meshes distribute at the correct density.
- How to place light probes so that interior and shadowed spaces receive indirect illumination without banding.
- How to configure the skybox so that ambient lighting, fog color, and sun position match your map's intended atmosphere.
- How to prepare the terrain for navmesh baking so that zombie and animal pathfinding succeeds on your map.
Background: the Unturned map editor and Unity
Unturned™ maps are Unity Terrain assets packaged for distribution through the game's modding system. The map editor is an in-game tool that exposes a subset of Unity's terrain authoring capabilities — heightmap sculpting, texture splatting, foliage placement, and object placement — through a UI designed for game-level work rather than asset creation. Behind the editor, the map is a Unity scene containing one or more Terrain components, each with a TerrainData asset that stores the heightmap, splatmap, and foliage distribution data.
The relationship between the in-game map editor and Unity is not bidirectional at the terrain data level. Heightmap and splatmap data authored in the Unturned map editor is stored in the game's map folder, not in a Unity project. Prefabs, objects, and structures authored in Unity are imported into the map through the modding pipeline. The cohort's mental model is that the map editor is the terrain and level-design tool, and Unity is the asset-authoring tool; the two communicate through the master bundle and object asset pipeline, not through shared project files.
The diagram above is the cohort's reference pipeline for a complete map project. This article covers the "Unturned Map Editor" stage — the decisions made inside the editor that shape everything downstream.
Map size selection
The map size is the first and most consequential decision in a map project. It determines the terrain resolution, the number of Unity Terrain tiles, the maximum number of objects, the foliage density ceiling, and the performance profile for every player who loads the map. The map size cannot be changed after terrain authoring begins without discarding all heightmap and splatmap data.
Unturned™ offers five map size presets. The cohort-validated characteristics of each are documented below.
Size comparison table
| Size | Terrain tiles | Heightmap resolution | Splatmap resolution | Object limit | Recommended use |
|---|---|---|---|---|---|
| Tiny | 1 tile | 512 × 512 | 512 × 512 | ~500 | Tutorial maps, proof-of-concept, single-structure showcases |
| Small | 2 × 2 tiles | 512 × 512 per tile | 512 × 512 per tile | ~2,000 | Small survival arenas, focused roleplay maps, event maps |
| Medium | 4 × 4 tiles | 512 × 512 per tile | 512 × 512 per tile | ~8,000 | Standard survival maps, multi-biome maps, most published maps |
| Large | 8 × 8 tiles | 512 × 512 per tile | 512 × 512 per tile | ~25,000 | Open-world survival, large roleplay servers, multiple distinct zones |
| Insane | 16 × 16 tiles | 512 × 512 per tile | 512 × 512 per tile | ~80,000 | Mega-maps, modding showcases, server-hosted large player counts |
Map size is permanent
Once terrain sculpting begins on a map size, changing the size requires deleting the Level/ folder and starting over. Heightmap and splatmap data are resolution-specific and cannot be rescaled without visible quality loss. Choose the size before placing a single stroke with the terrain brush.
Size selection guidance
Tiny is appropriate for maps that serve a single purpose: a weapon-testing arena, a vehicle showcase island, a tutorial corridor. Most survival maps cannot be built at Tiny because the object limit prevents placing enough loot spawns, structures, and navigation markers for a satisfying experience.
Small is the cohort-recommended starting size for a modder's first map. It is large enough to contain two or three distinct zones, a small town, and a network of roads, while remaining small enough that bake times (navmesh, light probe groups) are measured in minutes rather than hours.
Medium is the standard size for a published Unturned™ survival map. The vanilla maps Washington, PEI, and Yukon are Medium-sized. Medium provides enough space for multiple biomes, a meaningful road network, and a full loot economy without the performance overhead of Large.
Large is the correct choice for roleplay servers that need separate districts, multiple towns, and large wilderness areas between points of interest. Large maps carry significant bake time costs and require a well-organized object placement strategy to stay within budget.
Insane should only be selected if the use case genuinely requires it. Navmesh baking on an Insane map can take hours. The object count ceiling means that each zone must be authored very sparingly. The cohort's recommendation is that fewer than five percent of published maps warrant the Insane size.
Performance implication
The size selection affects client performance at load time. A Large map loads more terrain tiles, more foliage, and more objects than a Medium map. On servers with 20+ players, Large and Insane maps produce noticeably longer load times for clients on average hardware. If the target audience is public servers with unrestricted player counts, Medium is the responsible choice unless there is a documented design requirement for additional space.
Creating the map project
Step 1: Open the map editor
- Launch Unturned™ from Steam.
- From the main menu, select Play → Create New Map.
- In the map creation dialog, enter a map name. The name must be alphanumeric with underscores — no spaces, no special characters.
- Select the map size using the size selector. Refer to the size comparison table above.
- Click Create. Unturned generates the map folder at
%USERPROFILE%\Documents\My Games\Unturned\Maps\<MapName>\.
Map folder location
The map folder path on Windows is C:\Users\<username>\Documents\My Games\Unturned\Maps\<MapName>\. The Level\ subfolder contains all terrain data. The Bundle\ subfolder contains the master bundle for any custom assets used on the map. Keep both subfolders backed up during development; losing either requires reauthoring from scratch.
Step 2: Inspect the generated Level.dat
The Level\Level.dat file is the root configuration for the map. Open it in a plain-text editor. The cohort-validated fields to set at project creation are:
Name MyMapName
Size Medium
Difficulty Normal
Has_Global_Fog true
Fog_Color 0.6 0.65 0.7
Fog_Intensity 0.05
Ambient 0.15 0.15 0.18| Field | Purpose | Cohort-validated default |
|---|---|---|
Name | The display name shown in the server browser and main menu. May contain spaces and special characters (unlike the folder name). | Match the folder name on first publish; rename after. |
Size | Must match the size selected at creation. Do not change manually. | Set by the editor; do not override. |
Difficulty | Controls zombie count, loot rate, and survival pressure. Values: Easy, Normal, Hard. | Normal for most maps. |
Has_Global_Fog | Enables the global volumetric fog that gives Unturned its characteristic distance haze. | true |
Fog_Color | The RGB fog color in 0–1 range. | 0.6 0.65 0.7 (cool overcast; adjust per biome). |
Fog_Intensity | The fog density coefficient. Higher values obscure more distance. | 0.05 |
Ambient | The ambient light color applied to all geometry. | 0.15 0.15 0.18 (neutral dark for night survival feel). |
Do not change the Size field manually
The Size field in Level.dat is read by the Unturned runtime to determine how many terrain tiles to load. Changing it manually without regenerating the terrain data produces a mismatch that crashes the map load. Always change map size through the editor's Create New Map dialog.
Terrain heightmap authoring
The terrain heightmap is a 16-bit grayscale image that encodes the elevation of each point on the terrain surface. In Unturned, the heightmap is authored exclusively through the map editor's Terrain panel using the sculpting brushes. There is no external import path for heightmap data in the standard workflow; if an external heightmap is required (e.g., a real-world DEM import), it must be applied through a Unity Terrain import workflow before the map is opened in the game editor.
Terrain panel overview
Open the map editor and navigate to Terrain → Heightmap. The panel exposes the following brush controls:
| Control | Function |
|---|---|
| Mode | The sculpting mode. Common values: Sculpt (raise/lower), Flatten (normalize to a target height), Smooth (blur sharp edges), Ramp (linear slope between two points). |
| Strength | The intensity of each brush stroke. 0.01–0.1 is the cohort-recommended range for fine terrain work; 0.5+ is appropriate for broad elevation changes. |
| Size | The brush radius in terrain units. Match this to the scale of the feature being sculpted. |
| Height | The target height used in Flatten mode. |
| Filter | The brush falloff profile. Smooth falloff avoids sharp edges at the brush boundary. |
Cohort-validated heightmap workflow
The 57 Studios™ cohort authors heightmaps in three passes:
Pass 1 — Macro elevation. Use a large brush (size 80–120) at low strength (0.05) to establish the major elevation regions of the map: which zones are highlands, which are lowlands, where the rivers and valleys will run. This pass should take no more than 20–30 minutes and should produce a readable elevation silhouette when viewed from above.
Pass 2 — Meso terrain. Reduce brush size to 30–60 and strength to 0.02–0.05. Define the hills, ridgelines, cliff faces, and lake basins. The goal of this pass is to produce the playable terrain shapes — the hills players will crest, the valleys they will move through, the cliff edges that create height advantage.
Pass 3 — Micro detail. Reduce brush size to 5–20 and strength to 0.01–0.02. Add erosion traces, rock shelves, minor slope variation, and riverbank irregularity. This pass is where terrain feels handcrafted rather than programmatically generated. The Smooth mode is particularly useful here to blend sharp transitions from earlier passes.
Pro tip
Before beginning Pass 3, duplicate the map folder as a backup. Micro-detail work is difficult to reverse without the Smooth brush, and an aggressive Smooth pass can undo significant macro work if applied at too large a size. The cohort recommendation is to keep a Level_pass2_backup/ folder alongside Level/ during the micro-detail pass and delete it only after testing confirms the terrain is satisfactory.
Heightmap export for reference
The map editor does not expose a direct heightmap export function. For reference purposes (e.g., sharing with a collaborator or importing into image editing software for analysis), the heightmap PNG can be found at Level\Terrain\Heightmap.png. This file is 16-bit grayscale. Most image editors require explicit 16-bit mode to read it correctly; Photoshop reads it correctly with the "16 Bits/Channel" mode active.

Material splatmap and terrain layers
The terrain material splatmap controls which texture appears on each region of the terrain surface. In Unturned™, the splatmap is a multi-channel image where each channel encodes the weight of one terrain material layer. Up to eight material layers are supported per terrain tile.
Material layer concepts
Each terrain tile supports up to eight material layers. Each layer is a pairing of:
- An Albedo texture — the visible surface color and detail texture, tiled across the terrain.
- A Normal map — the per-texel surface normal that determines how light interacts with the terrain surface at micro scale.
- A metallic / smoothness map (optional) — controls PBR metallic and smoothness values per texel for terrain materials that need them (e.g., wet rock, ice).
The splatmap encodes, for each terrain texel, the blend weight of each layer from 0 (absent) to 1 (fully dominant). At most terrain points, one or two layers are blended; the editor's paint brush handles the weight distribution automatically.
Cohort-recommended layer assignment
The cohort's convention for layer slot assignment on a standard Medium survival map is:
| Layer slot | Terrain material | Use case |
|---|---|---|
| 0 | Grass (base green) | Default ground cover; fills the map before any painting. |
| 1 | Dirt / bare soil | Paths, cleared areas, construction zones. |
| 2 | Rock / stone | Cliff faces, rock outcroppings, mountain zones. |
| 3 | Sand / gravel | Riverbanks, beaches, dry riverbeds. |
| 4 | Mud / wet soil | Wetlands, riverbed transitions, flooded areas. |
| 5 | Snow / tundra | High-elevation zones, northern biomes. |
| 6 | Dead grass / scrubland | Transitional zones, irradiated areas, autumn-feel zones. |
| 7 | Road asphalt / concrete | Under road objects; gives a paved appearance at road edges. |
Layer 0 is the base coat
Layer 0 is painted across the entire terrain automatically when the map is created. It is the layer that appears where no other layer has been applied. Always assign the most broadly applicable material to Layer 0 — typically the primary ground cover texture (grass for forest maps, sand for desert maps, tundra for arctic maps). Every other layer is painted on top of Layer 0.
Adding a material layer in the map editor
- Open the map editor and navigate to Terrain → Materials.
- Click Add Material Layer.
- In the material selector, browse to the terrain material asset. For cohort-authored terrain textures, assets are in the map's
Bundle\folder. For vanilla terrain textures, select from the Unturned-provided material library. - Confirm the material's Albedo and Normal Map are correctly assigned in the material inspector.
- Repeat for each layer slot up to the required count.
- The layer order in the panel corresponds to the splatmap channel order. Layer 0 is RGBA channel R of the first splatmap texture; Layer 1 is G; Layer 2 is B; Layer 3 is A; Layer 4 begins a second splatmap texture if it exists.
Eight-layer limit per tile
The Unturned terrain system supports a maximum of eight material layers per terrain tile. Attempting to add a ninth layer produces an error and the layer is not applied. If the map requires more than eight distinct terrain materials, the cohort recommendation is to prioritize the eight most visually distinct zones and handle edge-case materials (e.g., a small irradiated area) through placed objects rather than terrain painting.
Painting the splatmap
- Navigate to Terrain → Paint in the map editor.
- Select the material layer to paint using the layer selector.
- Adjust brush size and strength. For broad biome boundaries, use size 80–120 at strength 0.3–0.6. For blended transitions, reduce strength to 0.05–0.15 and use a smooth falloff brush.
- Paint the terrain surface. The map editor updates the splatmap in real time as brush strokes are applied.
- Use the Smooth mode on the splatmap brush to blend harsh transitions between layers. A smooth transition between grass and rock at a cliff base looks more natural than a sharp boundary.
Texture slot assignment and authoring custom terrain materials
The terrain materials used in Unturned™ maps can be either vanilla materials provided by the game or custom materials authored by the map creator and bundled in the map's Bundle\ folder.
Vanilla terrain materials
Vanilla terrain textures are available through the map editor's material picker without any additional steps. They are the starting point for most maps. The cohort recommends beginning with vanilla materials and replacing them with custom materials only after the map's biome layout and splatmap are confirmed.
Custom terrain materials
Custom terrain materials are authored in Unity and exported as part of the map's master bundle. The workflow is:
- Open the map's Unity project.
- Create a
TerrainMaterials/folder in the project'sAssets/directory. - For each custom terrain material, create a Unity material using the
Nature/Terrain/Diffuseshader (legacy) or theURP/Terrain/Litshader (URP projects). - Assign the Albedo texture, Normal Map, and optional Metallic/Smoothness map.
- Set the tiling values. The cohort-validated tiling for a 512 × 512 heightmap terrain tile is 60 × 60 for base grass, 30 × 30 for rock textures, and 80 × 80 for sand.
- Export the material as part of the master bundle. See Objects and Structures Assets for the bundle export workflow.
- Copy the exported bundle to the map's
Bundle\folder. - In the map editor, assign the custom material in the material layer selector.
Tiling and visual scale
Tiling determines how many times the texture repeats across the terrain tile. A very high tiling value (e.g., 200 × 200) produces a fine-grained texture that looks detailed up close but repeats visibly at distance. A low tiling value (e.g., 20 × 20) produces a large-grain texture that looks natural from above but blurry up close. The cohort-validated approach is to use a detail normal map at high tiling overlaid on a base albedo at low tiling to achieve both macro color and micro surface detail without visible repetition.
Texture requirements for terrain materials
| Texture | Format | Minimum resolution | Recommended resolution |
|---|---|---|---|
| Albedo | PNG or TGA, RGB | 512 × 512 | 1024 × 1024 |
| Normal Map | PNG or TGA, RGB (Unity Normal Map import type) | 512 × 512 | 1024 × 1024 |
| Metallic/Smoothness | PNG or TGA, RGBA | 256 × 256 | 512 × 512 |
Unity compresses terrain textures at import time. The cohort recommendation is to import at Automatic compression (DXT1 for Albedo, DXT5 for Normal Map) unless the terrain material is a showcase asset where quality is paramount, in which case import at High Quality or uncompressed.
Foliage placement
Foliage in Unturned™ refers to the detail meshes (grass blades, small rocks, flower clusters, ground clutter) that are placed procedurally on the terrain surface by the foliage system. Foliage is distinct from placed objects — it is authored as a density map, not as individual positioned instances.
Foliage panel overview
Open the map editor and navigate to Foliage. The panel exposes:
| Control | Function |
|---|---|
| Asset | The foliage detail mesh asset to place. |
| Density | The target density, expressed as instances per terrain unit area. |
| Radius | The brush radius used to paint foliage. |
| Strength | The rate at which density is applied per brush stroke. |
| Exact | When enabled, places instances at exact density rather than using a stochastic distribution. |
| Erase | When enabled, removes foliage instances under the brush instead of adding them. |
Cohort-validated foliage workflow
The 57 Studios™ cohort authors foliage in two passes:
Pass 1 — Ground cover. Paint the base grass or tundra foliage across all areas that the terrain splatmap shows as grass, tundra, or scrubland. Use a large brush at moderate strength (0.4–0.6) and density (0.3–0.5). This pass provides the visual ground cover that players see while moving through open terrain.
Pass 2 — Detail foliage. Add secondary foliage types (flowers, small rocks, ground clutter) at lower density (0.05–0.15) on top of the base cover. Use a smaller brush for targeted placement. Concentrate detail foliage around points of interest, building perimeters, and path edges to create visual richness where players spend time.
Foliage density and performance
High foliage density is the leading cause of low frame rate on custom Unturned maps. The Unturned foliage renderer instances detail meshes per terrain tile; a tile with density 1.0 across its full surface may contain tens of thousands of instances. The cohort recommendation is to keep base ground cover at density 0.3–0.5 and detail foliage at density 0.05–0.15, and to test frame rate in the map editor's performance mode before finalizing foliage settings.
Foliage asset requirements
Custom foliage assets are authored in Unity as detail mesh prefabs. Requirements:
- The detail mesh must be a single-LOD static mesh with a foliage-appropriate shader (wind-responsive, alpha-tested for grass blades).
- The mesh must be in the map's master bundle.
- The
.datfile for the foliage asset must specify the density limits and the applicable terrain material layers.
For the grass-blade bend angle configuration that determines how wind affects foliage, see The Optimal Angle for Grass Blades in Foliage, which covers the full foliage detail-mesh configuration.
Light probe placement
Light probes are Unity components that sample the indirect lighting environment at specific world positions and store that data for use by dynamic objects and portable static objects that cannot be lightmapped. In Unturned™ maps, light probes determine how zombies, players, vehicles, and items appear in shadow and under tree canopy — the difference between a zombie that looks correctly shaded in a dark barn and one that appears uniformly lit as if standing in open sunlight.
Why light probes matter for Unturned maps
Unturned™ renders the map using Unity's light baking system. Static terrain and static objects receive baked lightmaps that capture indirect illumination accurately. Dynamic objects — players, zombies, vehicles, dropped items — use the light probe network instead of lightmaps. A map with no light probes makes all dynamic objects appear as if they are standing in the ambient lighting regardless of their actual position, which looks incorrect in any location with meaningful light/shadow variation (interiors, forest canopy, underground bunkers).
Cohort-validated light probe placement strategy
The 57 Studios™ cohort places light probes in a regular grid across the map, with additional probes in locations where lighting changes significantly over a short distance.
| Zone type | Probe spacing | Notes |
|---|---|---|
| Open terrain (fields, roads) | 20–30 terrain units | Regular grid. Lighting changes slowly across open space. |
| Under forest canopy | 8–12 terrain units | Lighting varies from gap to gap between tree crowns. |
| Interior spaces (buildings, bunkers) | 4–8 terrain units | Lighting drops sharply from doorway to interior. Probe at doorways, in corners, and at ceiling height. |
| Cliff transitions | 6–10 terrain units | Light/shadow transitions at cliff bases are sharp. |
No light probes = banding artifacts
A map published without light probes produces visible banding on dynamic objects in shadowed areas. Players and zombies will appear uniformly lit or, in some configurations, pitch black in shadow zones. The cohort recommendation is to place a minimum probe grid at project setup — even a coarse 30-unit grid is better than no probes at all — and to refine probe density in the bake pass before publication.
Adding light probes in the map editor
The map editor does not expose a native light probe placement tool. Light probes for Unturned™ maps are placed in a Unity scene and exported as a probe asset. The workflow is:
- Open the Unity project associated with the map.
- Create a new empty GameObject named
LightProbeGroup. - Add a
Light Probe Groupcomponent. - Use the component's "Add Probe" and "Select All / Edit" tools to position probes across the map following the spacing guidelines above.
- Place the
LightProbeGroupat scene origin (0, 0, 0) so that the probe positions in world space match the map's terrain coordinate system. - Export the probe asset with the master bundle.
- In the map editor, import the light probe asset via the Lighting panel.
Light probe bake time
Light probe baking is performed by Unity's progressive lightmapper. Bake time scales with probe count and scene complexity. A Medium map with a 30-unit probe grid typically bakes in 5–15 minutes on a modern workstation. A Large map with a 10-unit probe grid in all interior spaces can take 30–90 minutes. Plan the bake pass into the map development schedule.
Skybox configuration
The skybox determines what players see in every direction when looking away from the terrain: the sky color gradient, cloud rendering, sun disc, moon, and stars. The skybox also drives Unturned's day/night cycle visually and contributes to ambient lighting calculations.
Skybox types
| Skybox type | Description | Cohort recommendation |
|---|---|---|
| Procedural | Unity's built-in procedural sky. Atmospheric scattering simulation. Configurable sun size, sun convergence, atmosphere thickness, sky tint, ground color. | Recommended starting point. |
| Panoramic | A 360° HDR panorama image mapped onto the sky sphere. Produces photorealistic skies from real-world HDR captures. | Use for showcase maps or maps targeting a very specific atmosphere. |
| Cubemap | A six-face skybox texture set. Lower resolution than panoramic but lighter on GPU. | Use for performance-sensitive maps targeting older hardware. |
Cohort-validated procedural skybox settings
The cohort-validated procedural skybox starting settings for a standard Medium survival map are:
| Setting | Value | Notes |
|---|---|---|
| Sun Size | 0.04 | A realistic sun disc size. Larger values produce a stylized look. |
| Sun Size Convergence | 5 | The atmospheric convergence. Higher values produce a sharper sun disc. |
| Atmosphere Thickness | 1.2 | Slightly denser atmosphere than the Unity default. Produces a less pure blue sky, appropriate for a post-apocalyptic atmosphere. |
| Sky Tint | (0.52, 0.60, 0.70) | Slightly desaturated blue-gray. Matches Unturned's characteristic color palette. |
| Ground | (0.15, 0.14, 0.13) | A neutral dark-earth ground color visible when looking straight down. |
| Exposure | 1.1 | Slightly above neutral. |
Fog color coherence
The fog color in Level.dat should be derived from the skybox's horizon color. If the skybox produces a warm orange horizon at sunset, the fog color should shift toward warm orange during that time of day. Unturned's day/night cycle interpolates fog color over time; the start and end keyframes in the cycle configuration should be authored to match the skybox. A mismatch between fog color and sky color at the horizon is visually jarring and is frequently reported by playtesters.
Configuring the skybox in Level.dat
The skybox configuration fields in Level.dat that affect the in-game appearance:
Sky_Zenith 0.20 0.25 0.35
Sky_Horizon 0.52 0.60 0.70
Sky_Fog 0.60 0.65 0.70
Sky_Sun_Color 1.0 0.95 0.85
Sky_Moon_Color 0.6 0.65 0.75
Sky_Stars_Visible true
Day_Length 1800
Night_Length 600| Field | Purpose | Cohort default |
|---|---|---|
Sky_Zenith | The sky color at the top of the dome. | 0.20 0.25 0.35 (dark blue) |
Sky_Horizon | The sky color at the horizon. | 0.52 0.60 0.70 (muted blue-gray) |
Sky_Fog | The fog color during daytime. Should match or derive from the horizon color. | 0.60 0.65 0.70 |
Sky_Sun_Color | The sun light color during daytime. | 1.0 0.95 0.85 (warm white) |
Sky_Moon_Color | The moon and ambient light color during nighttime. | 0.6 0.65 0.75 (cool blue-gray) |
Sky_Stars_Visible | Whether stars appear at night. | true |
Day_Length | The number of real-world seconds per in-game day. | 1800 (30 minutes per day) |
Night_Length | The number of real-world seconds per in-game night. | 600 (10 minutes per night) |
Navmesh preparation
The navmesh is the data structure that Unturned's pathfinding system uses to navigate zombies and animals across the terrain. A navmesh is a collection of convex polygons that represent walkable surface areas. Zombies navigate by computing paths through the navmesh graph from their current position to their target position. Without a navmesh, or with a navmesh that does not cover the terrain correctly, zombies stand still, clip through terrain, or navigate incorrectly.
Navmesh baking overview
Navmesh baking is performed in Unity using the AI → Navigation window. The bake process analyzes the terrain geometry (heightmap surface, placed objects, and colliders) and generates the walkable polygon mesh. The bake result is stored as a NavMeshData asset in the Unity project and exported in the map's master bundle.
The navmesh preparation steps at project setup are:
Step 1 — Set navigation static flags. In Unity, open the scene containing the map terrain. Select the terrain GameObject. In the Inspector's Navigation tab, confirm that the terrain is flagged as Navigation Static and Walkable. Any static object that should block navigation (walls, large boulders, building footprints) should also be flagged as Navigation Static.
Step 2 — Configure agent settings. Open AI → Navigation → Agents. The Unturned zombie agent settings are:
| Setting | Value | Rationale |
|---|---|---|
| Agent Radius | 0.35 m | Slightly less than the zombie collision radius. Allows zombies to navigate through doorways. |
| Agent Height | 1.8 m | Zombie standing height. |
| Max Slope | 45° | Zombies can navigate slopes up to 45°. Steeper slopes are excluded from the navmesh. |
| Step Height | 0.4 m | The maximum vertical step the agent can climb without a slope. Matches Unturned's stair geometry. |
Step 3 — Confirm terrain completion before baking. The navmesh bake reads the terrain heightmap at the time of baking. If the heightmap changes after the bake (additional sculpting passes), the navmesh must be rebaked. The cohort recommendation is to treat the navmesh bake as the final step before light baking, not an intermediate step during terrain authoring. Baking on an incomplete terrain wastes bake time and produces a navmesh that is invalid after the next sculpting pass.
Step 4 — Bake. Click Bake in the Navigation window. Monitor the progress bar. For a Medium map with a completed heightmap, the bake typically completes in 3–8 minutes. A Large map bakes in 15–45 minutes.
Step 5 — Visual inspection. After baking, the navmesh is displayed as a blue overlay on walkable terrain in the Scene view. Inspect the navmesh for:
- Gaps in the navmesh on walkable terrain. Indicates a collider is blocking navigation where it should not be, or the terrain slope exceeded the Max Slope threshold.
- Navmesh extending onto non-walkable surfaces. Indicates that a collider meant to block navigation is missing the Navigation Static flag or the Walkable area type was applied incorrectly.
- Missing navmesh in interior spaces. Interiors require the Off-Mesh Link configuration documented in Navmesh and Pathfinding.
Rebake after major terrain changes
Any sculpting pass that changes the heightmap in an area where the navmesh is already baked requires a full rebake. The navmesh does not update incrementally; partial rebakes are not supported. The cohort recommendation is to lock the heightmap (no further sculpting) before the navmesh bake and to document the heightmap as "final" in the map's development log before proceeding.

Common project setup failures and resolutions
The table below documents the most frequently reported project setup failures across the 57 Studios™ cohort, with their root causes and resolutions. These failures are specific to the project setup stage; runtime failures on a published map are documented in their respective pipeline articles.
| Symptom | Root cause | Resolution |
|---|---|---|
| Map does not appear in the server browser or map select list | Map folder name contains spaces or special characters | Rename the folder using only alphanumeric characters and underscores. Update the Name field in Level.dat separately. |
| Terrain is completely flat after opening the map editor | Heightmap was not authored before the map was exported or the terrain tile resolution does not match the Size field | Confirm the Size field in Level.dat matches the tile count on disk. Re-open the map in the editor and confirm the Terrain panel is active. |
| Material layers do not paint — brush strokes have no effect | The terrain is not selected in the map editor, or the selected layer index exceeds the layer count | Confirm a layer is selected in the Materials panel and that the layer count is at least 1. |
| Foliage appears on rock surfaces where it should not | The foliage asset's Layers field in the .dat is not restricted to the grass layer index | Edit the foliage .dat and set the Layers field to the grass layer index only. |
| Players and zombies appear uniformly lit in shadow zones | No light probes placed on the map, or the bake was not run after probe placement | Place a light probe grid and run the bake in Unity. Export the probe asset and import it in the map editor. |
| Fog color does not match the sky at the horizon | Fog_Color and Sky_Fog fields in Level.dat are authored independently without reference to each other | Set Sky_Fog to match Fog_Color. Derive both from the sky horizon color. |
| Navmesh gaps in flat open terrain | The terrain's Max Slope setting is too low, or a hidden collider is blocking the navmesh calculation | Inspect the scene for hidden colliders in the affected area. Confirm Max Slope is set to 45°. |
| Navmesh bake takes longer than 90 minutes on a Medium map | The scene contains an excessive number of static meshes flagged Navigation Static | Audit the scene for objects that do not need to block navigation and remove their Navigation Static flag. |
| Day/Night cycle appears frozen | Day_Length or Night_Length is set to 0 or is missing from Level.dat | Set both fields to positive non-zero values. The cohort default is 1800 and 600 respectively. |
| Sky appears solid gray with no sun or clouds | The skybox material is missing or the procedural sky material is not assigned | Assign the procedural sky material in the Skybox field of the Lighting Settings in Unity, then re-export the lighting data. |
The most common project setup mistake
The single most commonly reported setup failure across the cohort is beginning the navmesh bake before the heightmap is finalized. A navmesh baked against an incomplete heightmap is invalid the moment any sculpting pass changes the terrain surface in a baked area. Every additional sculpt-then-rebake cycle on a Medium map costs 3–8 minutes. The cohort recommendation — lock the heightmap before baking — eliminates this cost entirely.
Cross-references
The following articles cover the stages that follow project setup in the mapping pipeline:
- Spawn Tables — Configuring weighted spawn tables for items, animals, zombies, and vehicles on the map. The next article in the mapping pipeline.
- Navmesh and Pathfinding — Full navmesh bake workflow, Off-Mesh Link configuration, and pathfinding diagnostics. The third article in the mapping pipeline.
- The Optimal Angle for Grass Blades in Foliage — Complete foliage configuration including grass-blade bend angle. The fourth article in the mapping pipeline.
- Objects and Structures Assets — The previous stage in the pipeline. Custom objects used on the map are bundled here before being placed in the map editor.
- Unity Setup — The Unity install workflow that is a prerequisite for terrain material and light probe authoring.
- Smartly Dressed Games Modding Documentation — The official reference for Level.dat fields, map editor controls, and navmesh configuration options.
Frequently asked questions
What map size should I choose for my first map?
Small is the cohort-recommended size for a first map. It is large enough to contain a meaningful survival experience with two or three distinct zones while remaining small enough that bake times (navmesh, light probes) are in the single-digit minutes range. A first map started at Medium or Large often becomes difficult to populate because the space requires significantly more object placement, loot spawn authoring, and zone design than a first-time map author typically accounts for.
Can I change the map size after I have started terrain sculpting?
No. The map size determines the terrain tile count and heightmap resolution. Changing size after terrain data has been authored requires deleting the Level/ folder and starting over. The heightmap and splatmap data are not transferable between sizes. Select the size before any sculpting.
How many material layers does a typical survival map need?
Five to six layers cover most survival map use cases: a base grass layer, a dirt/path layer, a rock layer, a sand/gravel layer, a wetland/mud layer, and an optional snow or dead-grass layer for biome variation. Maps with a single biome (e.g., a full snow map) can work with three to four layers. Maps with eight distinct biome zones may use all eight slots.
Why do some parts of my terrain appear black after light baking?
Black terrain sections after baking indicate that those sections have no valid lightmap UV layout, or that the lightmapper failed to find a direct light path to those texels. Common causes: a terrain tile is not flagged as Contribute GI, the scene's directional light is disabled or set to zero intensity, or the lightmap resolution is too low for the terrain scale. Increase the Lightmap Resolution in the Lighting Settings and confirm the terrain's Mesh Renderer has Contribute GI enabled.
How many light probes does my map need?
The minimum is a grid sufficient to capture the major lighting transitions on the map. For a Medium map with open terrain and several building interiors, the cohort-validated minimum is approximately 200–400 probes: a 30-unit-spacing outdoor grid plus 4–8 probes per interior space. Maps with dense forest or many interiors need proportionally more. A map with fewer than 50 probes will have visible banding on dynamic objects in varied lighting conditions.
My zombies are not navigating correctly. What should I check first?
Confirm that the navmesh was baked after the heightmap was finalized. If any terrain sculpting happened after the last bake, the navmesh is stale and must be rebaked. The second check is whether the terrain is flagged as Navigation Static in Unity. The third is whether the agent settings (radius, slope, step height) match the values documented in this article. See Navmesh and Pathfinding for the full diagnostic workflow.
Can foliage be painted only on specific terrain material layers?
Yes. The foliage asset's .dat file specifies which terrain material layers the foliage is eligible to appear on. Grass foliage can be restricted to the grass material layer so that it does not appear on rock or sand zones. The Layers field in the foliage .dat takes a space-separated list of layer indices. Confirming this field is correctly set is the first step when foliage appears in unexpected locations.
How do I prevent foliage from appearing inside buildings?
Foliage respects Unity's terrain surface; it does not appear where the terrain surface is covered by an opaque collider. For buildings placed flat on the terrain, the building's floor collider acts as an occluder and foliage does not spawn under it. If foliage appears inside a building, confirm that the building's floor has a collider and that the collider's y position is at or above the terrain surface. Buildings with thin floors or floors positioned below the terrain surface will not occlude foliage correctly.
What is the correct fog color for a post-apocalyptic survival map?
The cohort-validated starting point is a cool gray-blue: 0.60 0.65 0.70 in 0–1 RGB. This matches Unturned's vanilla map palette and reads as overcast northern sky haze. Warmer maps (desert, temperate summer) benefit from a slightly warmer fog: 0.68 0.65 0.60. Arctic or winter maps benefit from a cooler, whiter fog: 0.75 0.80 0.85. The rule of thumb is to derive the fog color from the sky horizon color — if the horizon is warm, the fog should be warm; if the horizon is cool, the fog should be cool.
How long does a full project setup take for a Medium map?
The cohort benchmark for a Medium map project setup from blank map creation to navmesh bake complete is approximately 8–14 hours spread across multiple sessions: 2–4 hours for heightmap (three passes), 2–3 hours for splatmap painting, 1–2 hours for foliage, 1–2 hours for light probe placement and bake, and 30–60 minutes for skybox and Level.dat configuration. These figures assume the modder is familiar with the map editor and has terrain textures prepared. A first-time map author should budget 20–30 hours for the same stage.
Can I import a real-world heightmap into my Unturned map?
Not directly through the map editor. Real-world heightmap data (e.g., from USGS or Terrain.party) must be imported into a Unity Terrain component first, then the terrain scene must be packaged for Unturned. The workflow for heightmap import is outside the scope of this article; it requires Unity Terrain tools and a format conversion step from the source heightmap format (typically GeoTIFF or 16-bit PNG) to Unity's terrain heightmap binary format. Consult the Smartly Dressed Games Modding Documentation for the terrain data import specification.
What happens if I do not configure the skybox?
If the skybox fields in Level.dat are absent, Unturned falls back to its default sky configuration — a neutral daylight sky with standard fog. The fallback is functional but visually generic. It does not produce the characteristic atmosphere that distinguishes a polished published map from a developer-mode map. The cohort recommendation is to author the skybox configuration as one of the final steps in project setup, after the terrain and material palette are established, so the sky color can be tuned to complement the terrain color palette.
Appendix A: Level.dat project setup fields reference
A complete reference for the Level.dat fields relevant to project setup. Fields omitted from the table are documentation-covered in later pipeline stages.
| Field | Type | Description | Cohort default |
|---|---|---|---|
Name | string | Map display name. May contain spaces. | Match folder name initially. |
Size | enum | Map size. Set by editor; do not change manually. | Set at creation. |
Difficulty | enum | Survival difficulty. Values: Easy, Normal, Hard. | Normal |
Has_Global_Fog | bool | Enable global volumetric fog. | true |
Fog_Color | float3 | Fog color in 0–1 RGB. | 0.6 0.65 0.7 |
Fog_Intensity | float | Fog density coefficient. | 0.05 |
Ambient | float3 | Ambient light color in 0–1 RGB. | 0.15 0.15 0.18 |
Sky_Zenith | float3 | Sky color at zenith. | 0.20 0.25 0.35 |
Sky_Horizon | float3 | Sky color at horizon. | 0.52 0.60 0.70 |
Sky_Fog | float3 | Fog color (should match Fog_Color). | 0.60 0.65 0.70 |
Sky_Sun_Color | float3 | Directional sun light color. | 1.0 0.95 0.85 |
Sky_Moon_Color | float3 | Directional moon light color. | 0.6 0.65 0.75 |
Sky_Stars_Visible | bool | Whether stars render at night. | true |
Day_Length | uint32 | Real-world seconds per in-game day. | 1800 |
Night_Length | uint32 | Real-world seconds per in-game night. | 600 |
Appendix B: project setup checklist
Use this checklist at the end of project setup to confirm every stage is complete before proceeding to spawn tables.
| Stage | Checklist item | Status |
|---|---|---|
| Map creation | Map folder created at Documents\My Games\Unturned\Maps\<MapName>\ | |
| Map creation | Level.dat name, difficulty, and fog fields authored | |
| Heightmap | Three-pass sculpting complete (macro, meso, micro) | |
| Heightmap | Smooth pass applied to transition zones | |
| Heightmap | Pass 2 backup folder saved before micro-detail pass | |
| Splatmap | All required material layers added (5–8 layers recommended) | |
| Splatmap | Layer 0 (base coat) painted across full terrain | |
| Splatmap | All biome zones painted | |
| Splatmap | Smooth pass applied at all layer boundaries | |
| Foliage | Ground cover pass complete (density 0.3–0.5) | |
| Foliage | Detail foliage pass complete (density 0.05–0.15) | |
| Foliage | Frame rate tested in editor performance mode | |
| Light probes | Probe grid placed at minimum 30-unit outdoor spacing | |
| Light probes | Interior spaces probed (4–8 probes per interior) | |
| Light probes | Light probe bake complete | |
| Skybox | Skybox fields authored in Level.dat | |
| Skybox | Fog color matches sky horizon color | |
| Navmesh | Heightmap confirmed final before bake | |
| Navmesh | Terrain flagged Navigation Static in Unity | |
| Navmesh | Agent settings set (radius 0.35, slope 45°, step 0.4 m) | |
| Navmesh | Navmesh baked | |
| Navmesh | Visual inspection complete (no gaps, no non-walkable polygons) |
Appendix C: cohort benchmark data
The 57 Studios™ cohort measured project setup times across cohort members during the 2024 and 2025 cohort years. The benchmark is the time from map creation to navmesh bake complete.
| Experience level | Map size | Median setup time | Notes |
|---|---|---|---|
| First map | Small | 12 hours | Includes learning the map editor. |
| First map | Medium | 22 hours | Heightmap and splatmap authoring dominate. |
| Cohort-experienced (3+ maps) | Small | 4 hours | Editor familiarity reduces iteration time significantly. |
| Cohort-experienced (3+ maps) | Medium | 8 hours | Standard pipeline; terrain textures prepared in advance. |
| Cohort-master (10+ maps) | Large | 18 hours | Large navmesh bake is the primary time sink (45–90 min). |
The cohort's instrumentation identified that for first-time map authors, approximately 60% of project setup time is spent on heightmap authoring (three passes). The second largest time sink is navmesh bake investigation when the first bake produces unexpected gaps or coverage failures. The cohort recommendation for new map authors is to use Small as the learning size and to transition to Medium only after completing at least one Small map end-to-end.
Terrain performance optimization
Terrain rendering performance is a function of terrain resolution, material layer count, foliage density, and the number of tiles loaded simultaneously. All four variables are set during project setup. The cohort-validated performance targets for Unturned™ maps intended for public servers are documented below.
Target frame rate guidelines by map size
| Map size | Target client frame rate (mid-range hardware) | Maximum foliage density | Maximum material layers |
|---|---|---|---|
| Tiny | 120+ fps | 0.8 | 8 |
| Small | 90+ fps | 0.6 | 8 |
| Medium | 60+ fps | 0.5 | 8 |
| Large | 45+ fps | 0.35 | 6 |
| Insane | 30+ fps | 0.20 | 4 |
Mid-range hardware definition
The cohort defines mid-range hardware as a system with an Intel Core i5 (8th generation or equivalent), 16 GB RAM, and an NVIDIA GTX 1070 or equivalent GPU. This configuration represents a substantial portion of the Unturned player base as reported by the Steam Hardware Survey data through 2025. Maps that perform below the target frame rates on this configuration will receive performance complaints from a meaningful portion of the player base.
Performance levers at project setup
Material layer count. Each additional terrain material layer adds a rendering pass per terrain tile. On a Medium map, the difference between 4 layers and 8 layers is approximately 8–12% frame rate reduction on mid-range hardware. If the map's biome design can be achieved with 5 or 6 layers rather than 8, use the lower count.
Terrain tile count. Larger map sizes load more terrain tiles. Each tile is a separate draw call with its own lightmap and splatmap textures. The frame rate cost of the tile count is approximately linear: a Large map with 64 tiles has roughly 4× the terrain draw call cost of a Medium map with 16 tiles. This cost is fixed and cannot be reduced after the map size is chosen; it is one of the primary reasons the cohort recommends Medium for most published maps.
Heightmap resolution. Each terrain tile uses a 512 × 512 heightmap regardless of map size. The heightmap resolution is fixed and does not affect frame rate directly. It does affect the level of micro-detail achievable in the terrain — a larger map size does not increase per-tile detail resolution.
Foliage LOD. The foliage system applies distance-based LOD that reduces mesh complexity at range and culls foliage beyond a configurable maximum distance. The cohort recommendation is to set the foliage cull distance to 40–60 terrain units for ground cover and 20–30 units for detail foliage. Foliage rendered at greater distances contributes to frame rate cost without meaningful visual contribution.
Profile before optimizing
Before reducing foliage density or material layer count, profile the map in the editor's performance mode to identify which specific system is the frame rate bottleneck. Foliage is the most common bottleneck, but a complex road network or dense object placement can be the actual cause. Optimizing the wrong system wastes time and may degrade visual quality unnecessarily.
Best practices
The 57 Studios™ cohort has consolidated the following best practices from the project setup stage across maps authored between 2023 and 2026. These are the practices that consistently differentiate a polished published map from an unfinished or problematic release.
- Commit to map size before opening the terrain brush. The size selection is the highest-impact, lowest-reversibility decision in map development. Make it deliberately, document the rationale, and treat it as locked.
- Author heightmap in three distinct passes. Macro, meso, and micro passes with a smooth pass between each produces terrain that looks purposefully designed rather than randomly brushed. Blending passes together saves short-term time and costs significant quality.
- Assign Layer 0 to the map's dominant ground cover before painting anything else. Every other layer is painted on top of Layer 0. Starting with a poorly-chosen Layer 0 means repainting the entire terrain after the error is discovered.
- Use a smooth falloff brush at all splatmap layer boundaries. Hard transitions between terrain materials are the most common visual artifact on first-map releases. A 5–10 unit smooth transition at every boundary is the standard that vanilla Unturned maps maintain.
- Keep foliage density below 0.5 for ground cover and below 0.15 for detail foliage. These thresholds keep client frame rate acceptable on mid-range hardware. Dense foliage is the single most frequent cause of frame rate complaints on published maps.
- Place the light probe grid before running the bake. An incomplete probe layout cannot be corrected without a full rebake. Placing all probes — including interior spaces — before the first bake avoids a second full bake cycle.
- Lock the heightmap before baking the navmesh. A single sculpting stroke after a navmesh bake invalidates the bake in the affected area. Treating the heightmap as final before baking is the single practice that most reduces total bake time during map development.
- Author the skybox and fog fields in
Level.dattogether, in one session. Sky color, fog color, and ambient light are visually interdependent. Authoring them in separate sessions produces inconsistencies that are difficult to identify without a fresh eye. - Back up the
Level/folder before any major terrain change. Copy the folder toLevel_backup_<date>/before a significant heightmap or splatmap pass. Disk space is inexpensive; reauthoring a terrain from scratch is not. - Test the map in single-player after each major stage before proceeding to the next. A heightmap that loads correctly in single-player before splatmap authoring begins catches corrupted terrain data early. A splatmap that looks correct before foliage placement confirms layer assignments before density is layered on top. Stage-gate testing prevents compounding failures.
- Cross-reference the Smartly Dressed Games Modding Documentation for any field not documented here. The official documentation is the authoritative reference for
Level.datfields, map editor controls, and navmesh configuration. This article documents the cohort-validated workflow; the official documentation documents every available option.
Document history
| Version | Date | Author | Notes |
|---|---|---|---|
| 1.0 | 2025-03-10 | 57 Studios | Initial publication. Map size, heightmap, splatmap. |
| 1.1 | 2025-06-18 | 57 Studios | Added light probe placement, skybox configuration, navmesh prep. |
| 2.0 | 2026-05-18 | 57 Studios | Major revision. Added full foliage workflow, custom terrain material authoring, Level.dat reference table, project checklist, and cohort benchmark data. |
Closing note
Custom map creation in Unturned™ is a pipeline where each stage creates the foundation for the stage that follows. A well-authored heightmap makes splatmap painting precise. A well-authored splatmap makes foliage placement purposeful. Completed foliage and terrain make the light probe bake accurate. An accurate light probe bake makes the navmesh bake the final data structure rather than a repeated iteration step. The 57 Studios™ cohort recommendation is to treat each stage as a committed deliverable — finalize it, confirm it, and move to the next — rather than cycling between stages. The checklist in Appendix B provides a stage gate for each step so that the progression is deliberate and documented.
Continue to Spawn Tables for the loot economy configuration that runs on top of the terrain foundation built in this article.
The project setup stage is also where the map's identity is established — the biome character encoded in the splatmap layer palette, the atmospheric signature set by the skybox and fog values, and the navigable structure committed by the heightmap. These choices persist through the entire development lifecycle. Spawn table authoring, object placement, and navmesh refinement all respond to the terrain foundation; none of them can compensate for a terrain that does not support the map's design intent. The cohort's experience across maps published between 2023 and 2026 is that the maps that receive the strongest community reception are distinguished at the project setup stage, not at the polish stage. Starting well matters more than finishing fast.
For questions not addressed in this article, consult the Smartly Dressed Games Modding Documentation or the 57 Studios™ cohort Discord, where active map authors review work in progress and answer setup questions directly.
The mapping pipeline is designed so that each article builds directly on the previous one. The project setup article you have just read establishes the terrain, lighting, and navmesh foundation. The spawn tables article assigns the loot economy to that terrain. The navmesh article refines the pathfinding data after objects are placed. The foliage article completes the visual surface. Read them in order on the first pass through the pipeline; return to individual articles as reference during iterative development. Each article is written to stand alone as a reference once the full pipeline is understood, but the sequential read is the cohort-recommended introduction for any modder beginning their first custom Unturned™ map.
The 57 Studios™ mapping documentation is maintained by the cohort and updated as the Unturned™ modding API and map editor tooling evolve. The document history section of each article records the update cadence. If a field documented here behaves differently than described, cross-reference the Smartly Dressed Games Modding Documentation for the current specification — the official documentation supersedes this article in all cases of conflict.
Unturned™ is available on Steam at https://store.steampowered.com/app/304930/Unturned/. The map editor is included in the base game installation at no additional cost. Custom map creation does not require any paid Unity license; Unity Personal is sufficient for all stages of the mapping pipeline documented in this article.
