Skip to content

Local Map Testing

A map that loads without errors in the Level Editor is not a map that loads in the game. The editor bypasses several runtime validation steps that the game engine applies at startup: the asset bundle loading sequence, the spawn table resolution pipeline, the navmesh validation pass, and the terrain streaming system. A map that appears finished in the editor can fail catastrophically when a player attempts to join it for the first time through the standard game client. The first game-client test is the earliest point at which the map author can confirm that the map is playable rather than merely editable.

This article documents the 57 Studios™ workflow for local map testing: hosting the map from the game client, executing verification commands for every major system, and diagnosing the most common first-test failures. The testing procedure covers map appearance in the level list, player spawn verification, zombie navmesh validation, loot table confirmation, lighting and weather inspection, and the crash and hang diagnostics that catch editor-to-game pipeline failures. The companion article Dedicated Server Testing and Validation covers the server-side testing that must follow a successful local test.

Player character standing in a custom map during a single-player testing session with the console open

Documentation source: This article synthesizes the official Smartly Dressed Games modding documentation for map testing and validation, combined with empirical validation across 57 Studios cohort mapping projects.

Prerequisites

  • A custom map project that loads without errors in the Unturned™ Level Editor. The spawn points, navmesh, spawn tables, Config.json, safezones, kill volumes, and player spawn points must all be authored.
  • The map folder copied to the game client's Maps/ directory. On a default Windows installation, this is C:\Program Files (x86)\Steam\steamapps\common\Unturned\Maps\.
  • Unturned™ installed and launchable in single-player mode.
  • Familiarity with the in-game console (tilde key) and the admin command set.
  • A backup of the map's project folder before beginning the testing procedure.

What you will learn

  • How to execute a pre-test checklist that catches the most common editor-to-game failures before the first game-client test.
  • How to copy the map to the game client's Maps/ directory and launch it in single-player.
  • How to execute the cohort-validated verification command sequence for spawns, navmesh, lighting, and custom assets.
  • How to verify lighting and weather transitions across the full day-night cycle.
  • How to identify, diagnose, and fix the most common first-test failures: map not appearing in the level list, all-white textures, infinite loading screens, player spawn underground, and items not spawning.

Pre-test checklist

The pre-test checklist is executed before the map is first loaded through the game client. Each item in the checklist catches a specific class of editor-to-game failure. A map that passes every item on this checklist has a substantially higher probability of passing the local test stage on the first attempt.

Pre-test itemHow to verifyFailure symptom if skipped
Spawn point set on valid terrainConfirm at least one player spawn point exists and is not clipped inside a colliderPlayer spawns underground or inside a wall
Navmesh baked with valid agent settingsConfirm navmesh covers all playable surface areas in the Unity Scene viewZombies stand still on open ground; zombies glitch through walls
Item spawn tables have at least one entry per tierOpen spawn table .dat files and confirm non-empty tier listsItems do not spawn on any lootable container
Zombie spawn tables have at least one entryOpen zombie spawn table .dat files and confirm non-empty listsNo zombies appear anywhere on the map
Level .asset file references the correct master bundleOpen the level .asset in Notepad++ and confirm the bundle nameMap returns to the main menu with no error when selected
All custom prefabs are assigned to a named asset bundleOpen Unity Editor and inspect the Asset Bundle column for every custom prefabWhite placeholder textures on custom assets
Custom textures use power-of-two dimensionsInspect texture dimensions in Unity import settingsGPU warnings or black textures on lower-end hardware
Water reflections enabled on only one volumeSelect each water volume and inspect the planar reflection propertySevere framerate drop in areas with multiple water volumes
Navmesh bounds do not overlapOpen the navmesh editor and inspect the overlap visualizationZombies appear and disappear in multiplayer
Config.json Version field is set to a starting valueOpen Config.json and confirm Version is set to 1.0.0.0 or similarNo operational failure, but version tracking is not initialized
Map folder name does not contain spaces or special charactersConfirm the map folder uses only alphanumeric characters and hyphensWorkshop upload tool may reject the folder path
Spawn table file names match the Table field on every spawn pointCross-reference each spawn point's Table field against the files in Level/Spawns/Items, vehicles, animals, or zombies do not spawn

The cohort recommendation is to execute the pre-test checklist as a formal sign-off step before the map is copied to the game client test environment. The checklist takes approximately 30 minutes for a first-time execution and approximately 10 minutes for subsequent passes after iteration.

Local testing procedure

The first game-client test is a single-player session hosted from the game client itself. This test exercises the asset loading pipeline, the terrain rendering, the spawn system, and the navmesh without the additional variable of network replication.

Step 1: Copy the map to the game client

  1. Navigate to the map's build output directory (the directory that contains Level/, Bundle/, and Config.json).
  2. Copy the entire map folder.
  3. Navigate to the game client's Maps/ directory: C:\Program Files (x86)\Steam\steamapps\common\Unturned\Maps\.
  4. Paste the map folder into the Maps/ directory.
  5. The folder name becomes the map's internal name. The folder name must not contain spaces.

Step 2: Launch the map in single-player

  1. Launch Unturned™ and select Singleplayer from the main menu.
  2. Find the map in the level list. If the map does not appear, see the diagnostic section below.
  3. Select the map and start the session.
  4. Observe the loading screen. The progress bar should advance past 50 percent within 30 seconds on a modern SSD.
  5. If the loading screen stalls or the map returns to the main menu, the issue is in the asset loading pipeline, not in the gameplay logic.

Step 3: Execute the verification command sequence

Once the world loads, press the tilde key to open the console and run the following commands in sequence.

CommandWhat it testsExpected resultFailure indication
/spawnPlayer spawn positionPlayer appears at the designated spawn pointPlayer appears in midair, underground, or inside a collider
/zombieZombie spawn systemA zombie spawns and begins walking on the navmeshZombie spawns but does not move; zombie does not spawn at all
/give Item_Animal_XAnimal spawn entryAn animal spawns/give does not autocomplete; animal spawns but does not pathfind
/vehicleVehicle spawn tableA vehicle appears if the map defines vehicle spawnsVehicle does not spawn
/cycle 0 through /cycle 7Time of day systemThe map transitions from day to nightTime does not change or lighting breaks during transition
/teleport x y z (distant coordinates)Terrain streaming at distancePlayer arrives at distant location, terrain loadsTerrain does not load; player falls through the world
/tp (near custom asset)Custom prefab renderingCustom asset appears with correct texturesAsset appears with white or pink placeholder material
/adminAdmin accessConsole confirms admin accessRequired for the above commands

Step 4: Walkthrough verification

After the command sequence passes, spend a minimum of 30 minutes walking through every distinct region of the map. Fast-travel using /teleport to each region and confirm:

Verification targetWhat to look forHow to test
Terrain renderingNo terrain seams, no floating terrain, no heightmap holesWalk across terrain boundaries between biome regions
Object placementNo floating objects, no objects clipping through terrainWalk through each authored area
Water renderingWater renders at correct height, no reflection doublingApproach each water volume
Foliage renderingGrass and trees appear in authored regionsWalk through foliage-dense areas
LightingDay-night cycle transitions without color shiftingUse /cycle to advance through the full day-night cycle
Custom asset texturesAll custom assets render with correct materialInspect every custom prefab
Navmesh coverageZombies walk to every area the author expects to be reachableSpawn a zombie and observe its path to the player's position
Loot table itemsItems appear in containers that the author configuredCheck every authored loot container
Safe zone boundariesSafe zone markers appear at correct positionsApproach each safezone area
Kill volume boundariesKill volume lines up with intended map edgesApproach the edge of the playable area on foot
Map boundariesPlayer cannot walk past the intended map edgeWalk toward the map edge in each cardinal direction

Verifying spawns in-game

The /give command is the primary tool for verifying that spawn tables produce the correct items. The command syntax is:

/give <table_name>

The engine looks up the spawn table by name and spawns one instance of a randomly selected item from the table. Run the command multiple times (10-20 times per table) to verify that the weight distribution produces the expected variety of items.

Spawn table verification procedure

  1. For each item spawn table on the map, run /give with the table name 10 times.
  2. Record which items appear. Compare the observed frequency to the expected probability based on the table's weight distribution.
  3. If a table always produces the same item, the table has only one entry or the weight distribution is extremely imbalanced.
  4. If a table produces no items, the table file does not exist or is malformed.
  5. If a table produces items that are not in the table's entry list, the table references a nested table that has different content than expected.

Vehicle spawn verification

  1. Run /vehicle in the console. The command spawns a random vehicle from the vehicle spawn table.
  2. Observe the vehicle spawn. The vehicle should appear at the player's position with the correct model and no collision artifacts.
  3. If the vehicle explodes on spawn, the vehicle spawn table references a vehicle type that is incompatible with the current spawn surface.

Zombie pathfinding verification

  1. Run /zombie to spawn a zombie near the player.
  2. Walk away from the zombie. The zombie should follow the player's path, avoiding obstacles and navigating through doorways.
  3. Walk behind a solid obstacle. The zombie should path around the obstacle.
  4. If the zombie stands in place, the navmesh does not reach the player's position.
  5. If the zombie walks through a wall, the navmesh was baked without the wall marked as Navigation Static.

Testing navmesh in-game

The in-game navmesh test is the single most important gameplay validation step. The Unity Editor's navmesh visualization shows the baked surface, but it does not simulate the Unturned™ runtime's pathfinding behavior exactly.

  1. Spawn at each player spawn point.
  2. From each spawn point, approach the nearest zombie spawn region.
  3. Confirm that zombies in the region detect the player and begin pathfinding.
  4. Walk through doorways, up staircases, and across bridges. Confirm that zombies follow the player through each transition.
  5. Walk to the edge of the map. Confirm that zombies stop at the map boundary and do not path into the void.
  6. Enter a building with multiple floors. Confirm that zombies can path from the ground floor to the upper floor via staircases.

Common navmesh test failures

Observed behaviorRoot causeFix
Zombie stands in place at spawnSpawn point not on navmeshMove zombie region or rebake navmesh
Zombie walks into a wallWall not marked Navigation StaticMark wall Navigation Static and rebake
Zombie teleports when approachedNavmesh bounds overlappingSeparate overlapping bounds and rebake
Zombie stops at doorwayOff-Mesh Link missing or endpoint not on navmeshAdd or reposition Off-Mesh Link
Zombie cannot reach upper floorMissing staircase Off-Mesh LinkAdd bidirectional link on staircase
Zombie walks off a ledgeNavmesh extends past intended boundaryTrim navmesh or add barrier at ledge

Verifying lighting and weather

The lighting and weather systems are difficult to evaluate in the Level Editor because the editor applies its own lighting overrides. The in-game test is the only reliable way to confirm that the map's lighting configuration produces the intended visual result.

Day-night cycle test

  1. Load the map in single-player.
  2. Open the console and run /cycle 0 to set the time to midnight.
  3. Observe the ambient light level, shadow behavior, and visibility.
  4. Run /cycle 1 through /cycle 7 sequentially. Each step advances the time by approximately 3 hours.
  5. At each step, observe:
    • The sun position and shadow direction
    • The ambient color and fog density
    • The visibility of point lights in interior areas
    • The transition smoothness between time steps

Weather test

If the map has a Weather_Override set in Config.json or uses weather volumes:

  1. Load the map in single-player.
  2. Open the console and run the weather command if available (@weather <type>).
  3. Observe the weather effect: rain particle systems, snow accumulation, fog density changes.
  4. Confirm that the weather does not produce visual artifacts: rain falling through interior ceilings, snow accumulating on water surfaces, fog clipping through geometry.

What to look for at different sun angles

Sun elevationVisual effectGameplay impact
60-90 degrees (high noon)Short, dark shadows under objectsZombies are easy to spot; minimal stealth advantage from shadows
30-50 degrees (standard midday)Medium-length shadows at consistent angleBalanced visibility; suitable for most maps
10-20 degrees (dawn/dusk)Long shadows cast across terrainSignificant stealth advantage in shadow zones
0-10 degrees (twilight)Very long shadows; minimal direct lightFlashlights become important; near-darkness in shadow zones

Common first-test failures

The table below maps every common first-test failure to its most likely cause and the resolution validated by the cohort.

SymptomMost likely causeResolution
Map does not appear in level listLevel .asset file missing, malformed, or referencing wrong bundleOpen the level .asset; confirm file exists at map root; confirm Bundle field matches master bundle name
Map appears but returns to main menu when selectedLevel .asset Bundle field points to non-existent master bundleCorrect Bundle field to match the asset bundle the map's prefabs are assigned to
All custom textures render as white or pinkAsset bundle missing or corrupt; prefab references bundle that was not rebuiltRebuild the asset bundle in Unity Editor; confirm all custom prefabs are assigned to the bundle
Map loads to infinite loading screenMissing asset referenced by a spawn table or a prefab that the engine cannot resolveRun ValidateAssets; inspect Client.log for "missing" or "not found" entries
Player spawns underground or inside a wallSpawn point placed on a collider or below terrain surfaceMove spawn point to clear area on valid terrain; rebake navmesh
Zombies stand still and do not react to playerNavmesh not baked or navmesh has gaps preventing pathfindingOpen navmesh editor; confirm bake bounds cover all playable terrain; rebake
Zombies teleport or vanish when approachedOverlapping navmesh boundsOpen navmesh editor; find overlapping zones; adjust bounds; rebake
Items do not spawn in lootable containersSpawn table files empty or malformed; container references wrong table IDOpen spawn table; confirm at least one tier has non-empty item list; confirm table name matches
Game crashes when camera points at specific angleBroken occlusion culling or culling volume incorrectly configuredRemove or re-configure the occlusion culling volume in the affected area
Game crashes when entering a specific buildingObject with broken collider or meshLocate building in editor; inspect each object for broken mesh filters or renderers
Water appears but has severe framerate dropMultiple water volumes with planar reflections enabledDisable planar reflections on all but one water volume

Map not appearing in level list: diagnostic workflow

When the map does not appear in the single-player level list after being copied to the Maps/ directory, the cause is almost always in the level .asset file or the folder structure.

Diagnostic flowchart

Resolution steps

  1. Confirm the map folder is in C:\Program Files (x86)\Steam\steamapps\common\Unturned\Maps\. Subfolders within Maps/ are not detected; the map folder must be directly inside Maps/.
  2. Confirm the folder name uses only alphanumeric characters and hyphens. Spaces, underscores, and special characters may cause the folder to be ignored.
  3. Confirm the level .asset file exists at the map root (not inside Level/). The file name must match the folder name with a .asset extension. If the folder is named MyMap, the level .asset file must be named MyMap.asset.
  4. Open the level .asset file in Notepad++. Confirm the Bundle field references a valid master bundle name that exists in the map's Bundles/ directory.
  5. If the level .asset file is missing, restore it from the Unity Editor project's export output. The file is generated when the map is exported from the editor.

Frequently asked questions

Why does my map not appear in the single-player level list?

The most common cause is a missing or malformed level .asset file. The file must be in the map folder root and must reference a valid asset bundle and terrain configuration. The second most common cause is that the map folder is in the wrong directory or contains spaces in the folder name.

Why are all my custom assets white in-game?

White or pink textures indicate that the asset bundle containing the textures has not been loaded, or that the asset bundle was rebuilt without the textures. Rebuild the asset bundle in Unity Editor, confirm that every custom prefab is assigned to the bundle, and re-copy the bundle file to the map's Bundles/ directory.

Why does my map load forever on the loading screen?

An infinite loading screen indicates that the engine is trying to resolve a missing asset reference and never completes the resolution. The most common cause is a spawn table entry that references an item or vehicle ID that does not exist in any loaded mod. Run the -ValidateAssets flag and inspect the asset load log for missing reference errors.

Why do my zombies not walk anywhere?

Zombies that stand still after spawning indicate that the navmesh has not been baked or that the navmesh is not covering the player's position. Open the navmesh editor in Unity, confirm the bake bounds cover all playable terrain, and rebake.

My map works in single-player but not when I host from the game client. Why?

Hosting a server from the game client uses a different code path than single-player. The most common cause is that the map references assets that are available in the single-player context but not when hosting. The dedicated server test is the definitive test for server-side compatibility.

How do I test whether my spawn tables are balanced?

Count how many items of each tier the player encounters during a 30-minute walkthrough. If the player finds Tier3 items within the first 5 minutes, the Tier3 weight is too high. If the player never finds a Tier2 item after 30 minutes, the Tier2 weight is too low. Adjust weights and re-test.

What is the minimum time I should spend testing a map locally?

The 57 Studios cohort recommendation is a minimum of 30 minutes of active walkthrough plus the verification command sequence. A map with complex terrain, multiple biomes, or extensive custom content may require 2-3 hours of local testing to verify every area.

How do I test map boundaries without falling off the map?

Use the /teleport command to move to coordinates near the map edge, then approach the edge on foot. The command /teleport 0 0 0 moves the player to the world origin. Use coordinates near the map edge to test each boundary. If the player falls through the terrain, the spawn point is below the navmesh surface or the terrain has a hole.

Can I test the map with different graphical settings?

Yes. After loading the map in single-player, open the graphics settings and change the render quality, shadow quality, and terrain detail settings. Walk through a dense area at each setting level. This catches rendering issues that only appear at specific graphics settings.

My map has no errors but the framerate is very low. What should I check?

The most common framerate issues are: multiple water volumes with planar reflections enabled, excessive vertex count on custom objects, oversized textures (2048x2048+ on every object), and missing LOD groups on large objects. Inspect each category and optimize the largest contributors.

Repeated testing across build iterations

Each time the map is modified and re-exported, the local test must be repeated. Not all changes require the full 30-minute walkthrough, but the verification command sequence should always be executed.

Test scope by change type

Change typeRequired test scopeEstimated time
Config.json editLoad map, verify HUD and gameplay changes5-10 minutes
Spawn table editRun /give on affected tables, check containers10-15 minutes
Object placement changeWalk through affected area, check navmesh10-20 minutes
Terrain heightmap editWalk through affected area, check boundaries15-30 minutes
Navmesh rebakeWalk through all zombie regions, test pathfinding20-30 minutes
New custom asset addedInspect asset at multiple camera angles10-15 minutes
Full map revisionFull 30+ minute walkthrough + all commands30-60 minutes

The 57 Studios cohort recommendation is to maintain a test log that records which areas were tested in each session, which tests passed, and which tests failed. The test log helps identify regressions when a change in one area breaks functionality in an unrelated area.

Rapid iteration workflow

For rapid iteration cycles (edit-export-test-repeat), the following workflow minimizes the time between edit and test:

  1. Make the edit in the Level Editor or Unity Editor.
  2. Export the map. The export process should take under 30 seconds for a map with no bundle changes.
  3. If asset bundles changed, rebuild the bundles. This step may take 1-5 minutes.
  4. Copy the map folder to the game client's Maps/ directory, overwriting the previous version.
  5. Launch the game client and load the map.
  6. Execute only the verification commands relevant to the change.
  7. If the test passes, proceed to the next edit. If it fails, return to step 1.

The cohort's measured median time for a rapid iteration cycle is 3-5 minutes for a Config.json change, 5-10 minutes for a spawn table edit, and 10-20 minutes for a navmesh rebake.

Best practices

  • Execute the pre-test checklist before the first game-client test. Skipping this step is the leading cause of multi-hour diagnostic sessions.
  • Spend a minimum of 30 minutes walking through every distinct region of the map during the local test.
  • Use the verification command sequence on every build iteration, even for minor changes.
  • Test the full day-night cycle using the /cycle command. Lighting that looks correct at noon may look incorrect at midnight.
  • Test every spawn table by using /give with the table name 10-20 times per table.
  • Test every vehicle spawn point by using /vehicle and observing the spawn behavior.
  • Test every zombie region by approaching it and observing zombie pathfinding.
  • Test map boundaries in all four cardinal directions.
  • Document test results in the map project file for reference during iterative development.
  • Keep a backup of the map project folder before beginning the testing procedure. A failed test that requires reverting changes is easier to recover from with a backup.

Performance profiling during local testing

The local test is also an opportunity to profile the map's performance. The game client provides several tools for evaluating framerate and identifying performance bottlenecks.

Framerate monitoring

  1. Enable the in-game FPS counter: @fps in the console.
  2. Walk through each region of the map and record the minimum and maximum framerate.
  3. Areas with framerate consistently below 30 FPS on the author's development hardware will perform poorly on lower-end hardware.
  4. The 57 Studios cohort benchmark for acceptable performance is a minimum of 45 FPS in all areas on a mid-range gaming PC (CPU from 2020 or later, dedicated GPU from 2020 or later).

Identifying performance bottlenecks

Observed symptomLikely bottleneckMitigation
Low FPS when looking in a specific directionToo many draw calls in that view directionReduce object density; merge materials; enable batching
Low FPS when approaching waterWater volume with planar reflectionsDisable reflections; use only one reflecting water volume
Low FPS when entering a buildingHigh vertex count on interior meshesReduce polygon count; add LOD groups
Stuttering when moving across terrainTerrain streaming system overloadedReduce terrain resolution; reduce detail distance
Low FPS with many zombies on screenZombie mesh and animation overheadReduce zombie density in Config.json
Consistent low FPS everywhereOverall scene complexity too highReduce total object count; merge materials; lower texture sizes

Cross-referencing test results with the project file

After each local testing session, record the results in the map project file. The test log serves as a reference for future iterations and helps identify regressions.

Test log template

Test Date: YYYY-MM-DD
Map Version: X.X.X.X
Tester: [Name]

PRE-TEST CHECKLIST: [PASS/FAIL]
- Spawn point on valid terrain: [OK/FAIL]
- Navmesh baked: [OK/FAIL]
- Spawn tables non-empty: [OK/FAIL]
- Level .asset correct: [OK/FAIL]
- Custom prefabs assigned: [OK/FAIL]
- Textures power-of-two: [OK/FAIL]
- Water reflections <= 1: [OK/FAIL]
- Navmesh no overlaps: [OK/FAIL]
- Config.json Version set: [OK/FAIL]
- Spawn table names match: [OK/FAIL]

VERIFICATION COMMANDS:
- /spawn: [PASS/FAIL]
- /zombie: [PASS/FAIL]
- /give <tables>: [PASS/FAIL - list any failures]
- /vehicle: [PASS/FAIL]
- /cycle 0-7: [PASS/FAIL]
- /teleport: [PASS/FAIL]

WALKTHROUGH:
- Region 1 (Military): [PASS/FAIL - notes]
- Region 2 (City): [PASS/FAIL - notes]
- Region 3 (Forest): [PASS/FAIL - notes]
- Region 4 (Water): [PASS/FAIL - notes]

PERFORMANCE:
- Min FPS: [value]
- Max FPS: [value]
- Areas below 30 FPS: [list]

ISSUES FOUND:
1. [Description] - [Fix applied / Needs fix]
2. [Description] - [Fix applied / Needs fix]

Keeping the test log in the map project folder (YourMap/Testing/test-log-001.md) provides a searchable record of the map's testing history.

When to rebuild from a failed test

A test failure that cannot be resolved within 30 minutes of diagnostic effort should trigger a full restore from the pre-test backup. The cost of rebuilding from a clean backup is lower than the cost of an open-ended diagnostic session that may introduce additional bugs. The 57 Studios cohort recommendation is to restore from backup after 30 minutes of unsuccessful diagnosis and to re-apply changes incrementally, testing after each change.

Testing the map on different graphics quality settings

A map that runs at 60 FPS on Epic quality settings on the author's development machine may run at 15 FPS on Low quality settings on a player's older machine. Testing across graphics quality levels catches rendering issues that only appear at specific settings.

Graphics quality test procedure

  1. Load the map in single-player at the highest quality setting (Epic).
  2. Walk through a region with high object density and high draw-call count.
  3. Record the framerate at the most performance-intensive camera angle.
  4. Reduce the quality setting to Medium and repeat the walkthrough.
  5. Reduce to Low and repeat.
  6. For each setting level, note any rendering artifacts: missing objects, textures that do not load, shadows that break, water that renders incorrectly.

Common quality-specific issues

Quality settingCommon issueRoot causeFix
EpicLow framerateToo many draw calls, high polygon countReduce object density, merge materials, enable batching
MediumShadows disappear at mid-rangeShadow distance too low in Config.jsonIncrease shadow distance or add shadow cascades
LowTextures are blurryMipmaps not generatedEnable mipmap generation in texture import settings
LowObjects pop in at close rangeCulling volumes too aggressiveAdjust culling volume boundaries
LowWater renders as solid colorWater reflection quality reduced by engineEnsure water material has fallback for low quality

The 57 Studios cohort recommendation is to test at both Epic and Low quality settings at minimum. If the map passes both extremes, the intermediate settings will also function correctly.

Testing with the visibility overlay

The Level Editor's visibility overlay (accessible from the view options menu) shows areas of the map that have high visibility cost in red. Areas with extensive red zones indicate that the terrain or object layout produces many visible objects from a single viewpoint, which increases draw-call pressure.

When the visibility overlay shows large red zones during local testing:

  1. Open the map in the Level Editor.
  2. Enable the visibility overlay.
  3. Inspect the red zones. Each red zone corresponds to a camera position from which many objects are visible.
  4. Reduce object density in the red zone areas, or add culling volumes to reduce the visible object count.
  5. Re-export and re-test the framerate.

Advanced considerations

Testing with mods loaded

If the map depends on other Workshop items (custom item mods, vehicle mods, other maps), the local test must be performed with those mods loaded. Subscribe to the dependent mods through Steam Workshop before loading the map. The map's single-player level list entry will show a "Missing Dependencies" warning if required mods are not loaded.

Testing on lower-end hardware

A map that runs smoothly on the author's development machine may perform poorly on lower-end hardware. The 57 Studios cohort recommendation is to test the map on at least one machine with specifications at or below the median Unturned™ player's hardware: an older CPU, integrated graphics, and 8 GB of RAM. Performance issues that do not appear on the development machine may appear on the test machine.

Testing with the -LogCon launch option

The -LogCon launch option for Unturned™ opens a console window that displays real-time log output during gameplay. This is useful for catching errors that do not produce visible in-game symptoms but are recorded in the log. Add -LogCon to the game's launch options in Steam to enable the console window during local testing.

Appendix A: Verification command reference

CommandSystem testedSyntax
/spawnPlayer spawn position/spawn
/zombieZombie spawn and navmesh/zombie
/giveSpawn table resolution/give <table_name>
/vehicleVehicle spawn table/vehicle
/cycleTime of day system/cycle <0-7>
/teleportTerrain streaming/teleport <x> <y> <z>
/tpCustom asset rendering/tp x y z (via coordinate)

Appendix B: First-test failure diagnostic table

SymptomMost likely causeResolution
Map not in level listLevel .asset missing or Bundle field wrongVerify level .asset exists and Bundle field is correct
Returns to main menuMissing master bundleRebuild bundle; copy to correct path
White texturesAsset bundle not loadedRebuild bundle with all prefabs assigned
Infinite loadingMissing asset referenceRun ValidateAssets; check Client.log
Player undergroundSpawn point on colliderMove spawn point to clear terrain
Zombies stand stillNavmesh not bakedBake navmesh; confirm coverage at spawn region
Zombies teleportOverlapping navmesh boundsSeparate bounds; rebake
No items in containersSpawn table empty or name mismatchVerify table file exists; check Table field
Crash at camera angleBroken culling volumeRemove or reconfigure culling volume
Crash in buildingBroken collider on objectInspect and fix object mesh/collider
Water framerate dropMultiple planar reflectionsDisable on all but one water volume

Cross-references

Document history

VersionDateAuthorNotes
1.02026-07-2657 StudiosInitial publication. Complete local map testing guide with pre-test checklist, verification command sequence, walkthrough procedure, lighting and weather testing, and diagnostic procedures.