Level Config Reference
The level config file (Config.json) is the central configuration document for every Unturned™ map. Each level can have an optional Config.json file that controls everything from the main menu presentation to gameplay parameters to performance optimization settings. Originally added to make it easy to provide extra information about the map on the main menus, the file has grown over time to include gameplay parameters, arena mode configuration, HUD visibility toggles, per-difficulty overrides, and deprecated fields preserved for backwards compatibility.
57 Studios™ has documented and validated the complete Config.json field surface. This reference covers every documented field organized by functional category: main menu and credits, arena mode configuration, general gameplay and performance settings, HUD visibility toggles, and the deprecated fields that map authors may encounter in older maps. Each field includes its JSON type, expected value range, default value when applicable, and a purpose description.

Documentation source: This article references the official Smartly Dressed Games modding documentation for the Level Config chapter and related sections on arena mode, gameplay overrides, and HUD configuration. The field reference is organized by the functional categories established in the official documentation.
Who this article is for
This reference is written for Unturned™ map developers who have already created a basic map and want to configure its presentation, gameplay parameters, and performance settings through Config.json. If you are new to map creation, start with Custom Map Creation: Project Setup before returning here.
What you will learn
- The complete list of Config.json fields organized by category
- How to configure main menu presentation including credits, feedback URL, and versioning
- How to set up arena mode with randomized circles and spawn loadouts
- How to configure general gameplay parameters such as gravity, weather, water, and batching
- How to enable or disable specific HUD elements
- How to identify and understand deprecated fields from older maps
- How to use per-difficulty config overrides
- How to work with the Workspace dependency system
How Config.json is loaded
When a map is loaded, the engine looks for a file named Config.json at the root of the map's folder. If the file exists, the engine reads it at startup and applies its values. If the file does not exist, the engine uses defaults for every field. This means that a map without a Config.json file will use all default values, which may or may not be appropriate for the map's design.
As shown above, the config file is entirely optional. A malformed Config.json is logged but does not prevent the map from loading; the engine falls back to defaults for the problematic fields.
Main menu fields
The main menu fields control how the map is presented on the Unturned™ main menu and server browser. These are the fields that players see before they enter the map.
| Field | JSON type | Example | Purpose |
|---|---|---|---|
Creators | string[] | ["AuthorName"] | Names displayed in the map credits section. |
Collaborators | string[] | ["HelperName"] | Names displayed alongside creators in credits. |
Thanks | string[] | ["SupporterName"] | Names displayed in the thanks section of credits. |
CustomCredits | object | { "Music": ["musician67"] } | Maps header titles to lists of names. The display title is formatted according to the level's localization file. |
Associated_Stockpile_Items | int[] | [12345, 12346] | Economy item def IDs to feature on map screens. One is chosen at random each time the map is shown. Used by curated maps to link their items which have payment splits. |
Feedback | string | "https://example.com/discuss" | URL to discussions. If not explicitly set, defaults to the workshop item's discussions page. |
Visible_In_Matchmaking | bool | false | Should this map be listed in the matchmaking menu? Used to filter out test and demo maps. |
Version | string | "3.25.0.1" | Version number in #.#.#.# format. Vanilla version numbers use 3.Year.Update.Patch, but that format is optional. |
Tips | int | 5 | Number of Tip_# keys defined in the level's localization files, if any. Overrides vanilla tip messages on the loading screen. |
RequiredWorkshopFileIds | ulong[] | [123456789] | Dependency workshop file IDs. If these files are not loaded, single-player and editor menus display a "Missing Dependencies" message and prevent entering the map. |
The CustomCredits field
The CustomCredits field maps header titles to arrays of contributor names. The header titles are keys that are translated through the level's localization file. For example, a CustomCredits entry with keys "Music" and "Art" will display the corresponding names under sections titled according to the translations of those keys in the localization file.
json
"CustomCredits":
{
"Music":
[
"musician67",
"SoundDesigner (these names aren't localized)"
],
"Art":
[
"MyFavouriteArtist"
]
}The keys in this object are not localized themselves; they are looked up in the level's localization file for display in the player's language. This means a French player will see the translated equivalent of "Music" instead of the English word, assuming a French localization exists.
Version field conventions
The Version field uses a #.#.#.# format. Vanilla map version numbers use 3.Year.Update.Patch. Incrementing the version number for every upload is good practice for two reasons. First, when client and server files do not match, it is more helpful to show a version-number error message rather than a generic file mismatch error. Second, searching by map in the server browser can filter servers running the same version of the map, which helps players find servers that match their local file version.
The RequiredWorkshopFileIds field
Maps that depend on other Workshop items must list those items' Workshop file IDs in the RequiredWorkshopFileIds array. If the required items are not subscribed when a player or server attempts to load the map, the single-player and editor menus display a "Missing Dependencies" message and prevent entering the map.
json
"RequiredWorkshopFileIds":
[
123456789,
987654321
]The 57 Studios cohort recommendation is to list every Workshop item that the map depends on, including all item mods, vehicle mods, and other map mods that the map references. Omitting a dependency leads to the "Missing Dependencies" error or, worse, silent asset missing behavior at runtime.
Arena mode fields
Arena mode fields control the behavior of maps when they are played in the Arena game mode.
| Field | JSON type | Default | Purpose |
|---|---|---|---|
Use_Arena_Compactor | bool | false | Should circles be randomized periodically? |
Arena_Loadouts | array | empty | Array of items to grant when spawning into arena. Each entry has a Table_ID spawn table to generate from and an Amount number of times to grant from the spawn table. |
Arena_Loadouts format
Each entry in the Arena_Loadouts array is a dictionary with two keys: Table_ID (a spawn table ID) and Amount (an integer count of how many times to grant items from that table).
json
"Arena_Loadouts":
[
{
"Table_ID": 28007,
"Amount": 1
},
{
"Table_ID": 28008,
"Amount": 1
}
]The Table_ID references a spawn table in the map's spawn table system. The Amount field indicates how many times the spawn table is rolled when the player spawns. A value of 1 means the player receives one item from each spawn table; a value of 2 means two items are granted per roll.
General fields
The general fields section covers gameplay parameters, performance settings, and environment configuration. This is the largest category of fields in Config.json.
Asset and train configuration
| Field | JSON type | Default | Purpose |
|---|---|---|---|
Asset | object | none | Object with GUID of Level Asset to instantiate on this map. Format: { "GUID": "12dc9fdbe9974022afd21158ad54b76a" }. |
Trains | array | empty | Array of train vehicles to spawn. Only one of each train asset can exist at a given time because the vehicle ID is used to match saved trains to tracks. |
The Asset field links a Level Asset to the map. The Level Asset (documented in Level Asset Reference) contains gameplay information that is not necessary for the main menus. The GUID value is the 32-character hex GUID of the Level Asset.
The Trains field is an array of train vehicle definitions. Each entry includes the VehicleID, the RoadIndex (visible by selecting a road in the level editor), and the spawn placement normalized between the start and end of the track length.
json
"Trains":
[
{
"VehicleID": 187,
"RoadIndex": 0,
"Min_Spawn_Placement": 0.1,
"Max_Spawn_Placement": 0.9
}
]Only one train of each vehicle ID can exist at a given time because the vehicle ID is used to match saved train states to tracks at load time.
Mode config overrides
| Field | JSON type | Default | Purpose |
|---|---|---|---|
Mode_Config_Overrides | object | empty | Pairs of server config properties and values to override them. |
EasyDifficulty_Config_Overrides | object | empty | Mode config overrides applied when the map is played on Easy difficulty. |
NormalDifficulty_Config_Overrides | object | empty | Mode config overrides applied when the map is played on Normal difficulty. |
HardDifficulty_Config_Overrides | object | empty | Mode config overrides applied when the map is played on Hard difficulty. |
The Mode_Config_Overrides field allows the map to override server configuration properties for the duration of the session. This is useful for maps that require specific gameplay settings to function correctly.
json
"Mode_Config_Overrides":
{
"Zombies.Min_Drops": 5,
"Zombies.Max_Drops": 10,
"Vehicles.Armor_Multiplier": 0.1,
"Gameplay.Allow_Shoulder_Camera": false
}The per-difficulty override fields (EasyDifficulty_Config_Overrides, NormalDifficulty_Config_Overrides, HardDifficulty_Config_Overrides) use the same key-value format as Mode_Config_Overrides and are applied when the map is played at the corresponding difficulty setting.
Environment and physics fields
| Field | JSON type | Default | Purpose |
|---|---|---|---|
Allow_Underwater_Features | bool | false | Should legacy details and navigation bounds be restricted underwater? |
Enable_Static_Volumes | bool | false | Enables performance optimizations of volume overlap checks. Intended for levels with high numbers of volumes not added through Unity prefabs. Should not be enabled if volumes move, resize, or change at runtime. |
Terrain_Snow_Sparkle | bool | false | Should IS_SNOWING shader keyword be enabled? |
Use_Legacy_Clip_Borders | bool | true | Should invisible walls matching map size be created? |
Use_Legacy_Ground | bool | true | Should default terrain be created? Alternative is to use landscape tiles. |
Use_Legacy_Water | bool | true | Should global water plane be enabled? Alternative is to use water volumes. |
Use_Vanilla_Bubbles | bool | true | Should vanilla water bubble effects be enabled? |
Use_Legacy_Snow_Height | bool | true | Should traveling vertically past snow height threshold enable snow effects? |
Use_Legacy_Oxygen_Height | bool | true | Should traveling vertically past a certain point deplete oxygen? |
Use_Rain_Volumes | bool | false | Should rain flag in ambiance volume be used? |
Use_Snow_Volumes | bool | false | Should snow flag in ambiance volume be used? |
Use_Underground_Whitelist | bool | false | Should underground players not inside a whitelist volume be teleported to the terrain surface? Useful to curb out-of-bounds exploits. |
Is_Aurora_Borealis_Visible | bool | false | Should aurora borealis effects be enabled? |
Snow_Affects_Temperature | bool | false | Should snow inflict cold damage? |
Weather_Override | enum | none | Can be set to rain or snow to lock weather type. |
Has_Global_Electricity | bool | false | Should all powerable items and objects have power by default? |
Gravity | float | -9.81 | Acceleration of gravity. |
Blimp_Altitude | float | 150 | Height override for blimp buoyancy. |
Max_Walkable_Slope | float | 59 | Steepest ground angle players can walk without sliding. |
Prevent_Building_Near_Spawnpoint_Radius | float | 16 | Closest distance players can build to spawn points. Useful to override for close-quarters maps. |
Spawn and clutter fields
| Field | JSON type | Default | Purpose |
|---|---|---|---|
Spawn_Loadouts | array | empty | Array of items to grant when spawning in any mode. Same format as Arena_Loadouts. |
Allow_Holiday_Redirects | bool | false | Whether certain assets like objects, trees, and landscapes should load alternative versions during holiday events. |
Enable_Clutter_Option | bool | false | If true, the "Load Clutter" graphics option is supported on this map. This is opt-in so that the map creator can decide whether the removed details are an acceptable compromise. |
The Enable_Clutter_Option field is a quality-of-life feature for players on lower-end hardware. When enabled, players can toggle a "Load Clutter" graphics option that removes detail objects from the map. The feature is opt-in because removing clutter changes the visual appearance of the map, and some map authors prefer that players always see the full detail.
Batching fields
| Field | JSON type | Default | Purpose |
|---|---|---|---|
Batching_Version | int | not present | Enables level batching when set. See Level Batching Reference for full documentation. |
Batching_Max_Texture_Size | int | 128 | Overrides the maximum texture size included in the level batching atlas. |
The batching fields are documented in full detail in the Level Batching Reference article. The 57 Studios cohort recommendation is to set Batching_Version to 2 for all new maps and to verify compatibility by testing in single-player before publishing.
HUD fields
The HUD fields control the visibility of specific elements of the heads-up display. Each field is a boolean that defaults to true for the visibility of that element.
| Field | Type | Default | Purpose |
|---|---|---|---|
PlayerUI_HealthVisible | bool | true | Show the health indicator on the HUD. |
PlayerUI_FoodVisible | bool | true | Show the food indicator on the HUD. |
PlayerUI_WaterVisible | bool | true | Show the water indicator on the HUD. |
PlayerUI_VirusVisible | bool | true | Show the virus indicator on the HUD. |
PlayerUI_StaminaVisible | bool | true | Show the stamina indicator on the HUD. |
PlayerUI_OxygenVisible | bool | true | Show the oxygen indicator on the HUD. |
PlayerUI_GunVisible | bool | true | Show the gun/ammo indicator on the HUD. |
Allow_Crafting | bool | true | Allow the player to access the crafting menu. |
Allow_Skills | bool | true | Allow the player to access the skills menu. |
Allow_Information | bool | true | Allow the player to access the information menu. |
The 57 Studios cohort recommendation is to disable HUD elements that are not relevant to the map's gameplay. A map that does not use the food or water system should set PlayerUI_FoodVisible and PlayerUI_WaterVisible to false to reduce UI clutter. A map that disables crafting should set Allow_Crafting to false to prevent players from trying to access a non-functional menu.
Deprecated fields
The deprecated fields section covers Config.json properties that were used in older versions of Unturned™ but have been superseded by newer systems. These fields still exist in the engine for backwards compatibility but should not be used in new maps. When a map author encounters these fields in an existing Config.json file (inherited from an older map or a template), they can safely remove them unless the map explicitly requires the deprecated behavior.
| Field | Type | Purpose | Deprecated in favor of |
|---|---|---|---|
Can_Use_Bundles | bool | Used in the past for timed curated maps to disable using their assets in the level editor. | Master bundle system |
Category | enum | Mostly automated now. Can be set to Misc to explicitly show in the miscellaneous map category. | Automatic categorization |
Has_Atmosphere | bool | Disabled stars in the skybox. Deprecated due to changes to the skybox implementation. | Skybox configuration |
Has_Discord_Rich_Presence | bool | Only valid for official maps. Checked by Discord integration for map icon lookup. | Not applicable to modded maps |
Item | int | Kept for backwards compatibility. Ignored if Associated_Stockpile_Items is set. | Associated_Stockpile_Items |
Load_From_Resources | bool | Used in the past for curated maps with assets in the vanilla resources directory. | Master Bundle system |
Should_Verify_Objects_Hash | bool | Obsolete because newer asset integrity checks each object and tree against the server. | Per-object integrity checks |
Use_Legacy_Fog_Height | bool | Used default terrain height for fog falloff. If false, uses devkit landscape tile limits. | Landscape tile system |
Use_Legacy_Objects | bool | Should objects be loaded from Objects.dat file? Now always loads from this file, so this option has no effect. | Always on |
Map authors who are maintaining an older map that was created before the deprecation of these fields should not remove them unless they have verified that the map functions correctly without them. The engine ignores deprecated fields gracefully, so removing them is safe but not urgent.
Worked example: complete Config.json for a custom survival map
This worked example traces the creation of a Config.json file for a custom survival map called "Timber Valley." The map is a medium-sized forest map designed for survival mode with lightweight environmental configuration and arena mode support.
json
{
"Creaters": ["TimberDev", "ForestArtist"],
"Collaborators": ["SoundDesigner42"],
"Thanks": ["BetaTesters"],
"CustomCredits":
{
"Music":
[
"ComposerName"
]
},
"Version": "3.25.0.1",
"Visible_In_Matchmaking": true,
"Feedback": "https://steamcommunity.com/workshop/filedetails/discussion/123456789",
"RequiredWorkshopFileIds":
[
123456789
],
"Asset":
{
"GUID": "12dc9fdbe9974022afd21158ad54b76a"
},
"Use_Legacy_Ground": false,
"Use_Legacy_Water": false,
"Enable_Clutter_Option": true,
"Batching_Version": 2,
"Gravity": -9.81,
"Max_Walkable_Slope": 50,
"Allow_Underwater_Features": false,
"Arena_Loadouts":
[
{
"Table_ID": 28001,
"Amount": 1
}
],
"PlayerUI_HealthVisible": true,
"PlayerUI_FoodVisible": true,
"PlayerUI_WaterVisible": true,
"PlayerUI_StaminaVisible": true,
"Allow_Crafting": true,
"Allow_Skills": true
}This Config.json demonstrates the following configuration choices typical of a custom survival map. The creators and collaborators are credited. The version is set to track updates through the workshop. Matchmaking visibility is enabled so the map appears in the server browser. The map depends on one Workshop item. Level batching is enabled with the current version number. Legacy ground and water are disabled because the map uses landscape tiles and water volumes. HUD elements for a survival map are all visible because the map uses the full survival mechanics set.
FAQ
Can I have a Config.json with only a few fields?
Yes. Config.json is merged with engine defaults. Any field not present in the file retains its default value. A minimal Config.json with only Version and Batching_Version is perfectly valid.
What happens if I set a field to an invalid value?
The engine logs an error but does not prevent the map from loading. The field is silently skipped, and the default value is used. For example, setting Gravity to a non-numeric value causes the engine to use the default -9.81 and log a parse error.
Can I override server config values for my map?
Yes, through the Mode_Config_Overrides field. This field can override many server configuration properties, including zombie drop rates, vehicle armor multipliers, and gameplay settings. The overrides apply only while the map is loaded; they do not modify the server's base configuration.
How do I configure per-difficulty overrides?
Use the EasyDifficulty_Config_Overrides, NormalDifficulty_Config_Overrides, and HardDifficulty_Config_Overrides fields. Each field uses the same key-value format as Mode_Config_Overrides. The per-difficulty overrides are applied on top of the base Mode_Config_Overrides when the map is played at the corresponding difficulty.
Do I need a Level Asset if I use Config.json?
No. Config.json and Level Assets are independent systems. Config.json handles main menu presentation, gameplay parameters, and performance settings. A Level Asset (documented in the dedicated reference article) contains gameplay information like weather, skills, and terrain colors. Many custom maps use Config.json without a Level Asset; the two systems are complementary but not dependent.
How do I add custom tip messages to the loading screen?
Set the Tips field to the number of tip messages defined in the level's localization files. Each tip is a Tip_# key in the localization file (for example, Tip_0, Tip_1, Tip_2). The loading screen randomly selects from the available tips on each load.
Can I hide specific HUD elements for specific areas of the map?
No. HUD visibility is a global map setting. The HUD fields in Config.json apply across the entire map. Per-area HUD customization is not supported through Config.json and would require a custom plugin.
My map uses legacy water but I want to disable the bubble effects. Can I?
Yes. Set Use_Legacy_Water to true (to keep the global water plane) and Use_Vanilla_Bubbles to false (to disable bubble effects). This combination preserves the water plane while removing the visual bubble effects.
Why does my map show "Missing Dependencies" even though I have all the items?
The most common cause is that a RequiredWorkshopFileIds entry is incorrect or missing. Verify each Workshop file ID by opening the Workshop item page in a browser and checking the file ID in the URL. The file ID is the numeric portion after ?id= or the last segment of the URL path.
Can I set Gravity to a positive value?
Gravity in Unturned™ uses a negative value for downward acceleration. Setting Gravity to a positive value would produce upward gravity. While technically possible (setting Gravity to 9.81 would make objects fall upward), this is not a standard configuration and would break most gameplay mechanics.
Best practices
- Always set
Versionand increment it for every Workshop upload - Enable
Batching_Version: 2for all new maps and test in single-player before publishing - Disable HUD elements that are not relevant to the map's gameplay mode
- Use
RequiredWorkshopFileIdsfor all dependencies, including item mods - Set
Visible_In_Matchmakingtofalseduring development andtruewhen publishing - Use per-difficulty overrides to tune gameplay across difficulty levels
- Remove deprecated fields from Config.json when modernizing an older map
- Test Config.json changes in single-player before updating a published map
- Document custom Config.json settings in the workshop description for server operators
Appendix A: Complete Config.json field reference table
| Category | Field | Type | Default | Required |
|---|---|---|---|---|
| Main menu | Creators | string[] | empty | No |
| Main menu | Collaborators | string[] | empty | No |
| Main menu | Thanks | string[] | empty | No |
| Main menu | CustomCredits | object | empty | No |
| Main menu | Associated_Stockpile_Items | int[] | empty | No |
| Main menu | Feedback | string | workshop URL | No |
| Main menu | Visible_In_Matchmaking | bool | depends | No |
| Main menu | Version | string | empty | Recommended |
| Main menu | Tips | int | unset | No |
| Main menu | RequiredWorkshopFileIds | ulong[] | empty | If depends on other mods |
| Arena | Use_Arena_Compactor | bool | false | No |
| Arena | Arena_Loadouts | array | empty | No |
| Asset | Asset | object | none | No |
| General | Trains | array | empty | No |
| General | Mode_Config_Overrides | object | empty | No |
| General | EasyDifficulty_Config_Overrides | object | empty | No |
| General | NormalDifficulty_Config_Overrides | object | empty | No |
| General | HardDifficulty_Config_Overrides | object | empty | No |
| General | Allow_Underwater_Features | bool | false | No |
| General | Enable_Static_Volumes | bool | false | No |
| General | Terrain_Snow_Sparkle | bool | false | No |
| General | Use_Legacy_Clip_Borders | bool | true | No |
| General | Use_Legacy_Ground | bool | true | No |
| General | Use_Legacy_Water | bool | true | No |
| General | Use_Vanilla_Bubbles | bool | true | No |
| General | Use_Legacy_Snow_Height | bool | true | No |
| General | Use_Legacy_Oxygen_Height | bool | true | No |
| General | Use_Rain_Volumes | bool | false | No |
| General | Use_Snow_Volumes | bool | false | No |
| General | Use_Underground_Whitelist | bool | false | No |
| General | Is_Aurora_Borealis_Visible | bool | false | No |
| General | Snow_Affects_Temperature | bool | false | No |
| General | Weather_Override | string | none | No |
| General | Has_Global_Electricity | bool | false | No |
| General | Gravity | float | -9.81 | No |
| General | Blimp_Altitude | float | 150 | No |
| General | Max_Walkable_Slope | float | 59 | No |
| General | Prevent_Building_Near_Spawnpoint_Radius | float | 16 | No |
| General | Spawn_Loadouts | array | empty | No |
| General | Allow_Holiday_Redirects | bool | false | No |
| General | Enable_Clutter_Option | bool | false | No |
| Batching | Batching_Version | int | not present | No |
| Batching | Batching_Max_Texture_Size | int | 128 | No |
| HUD | PlayerUI_HealthVisible | bool | true | No |
| HUD | PlayerUI_FoodVisible | bool | true | No |
| HUD | PlayerUI_WaterVisible | bool | true | No |
| HUD | PlayerUI_VirusVisible | bool | true | No |
| HUD | PlayerUI_StaminaVisible | bool | true | No |
| HUD | PlayerUI_OxygenVisible | bool | true | No |
| HUD | PlayerUI_GunVisible | bool | true | No |
| HUD | Allow_Crafting | bool | true | No |
| HUD | Allow_Skills | bool | true | No |
| HUD | Allow_Information | bool | true | No |
| Deprecated | Can_Use_Bundles | bool | varies | No |
| Deprecated | Category | string | automated | No |
| Deprecated | Has_Atmosphere | bool | true | No |
| Deprecated | Has_Discord_Rich_Presence | bool | false | No |
| Deprecated | Item | int | unset | No |
| Deprecated | Load_From_Resources | bool | false | No |
| Deprecated | Should_Verify_Objects_Hash | bool | true | No |
| Deprecated | Use_Legacy_Fog_Height | bool | true | No |
| Deprecated | Use_Legacy_Objects | bool | true | No |
Appendix B: Diagnostic table for Config.json issues
| Symptom | Most likely cause | Resolution |
|---|---|---|
| Map does not appear in matchmaking | Visible_In_Matchmaking set to false | Change to true |
| "Missing Dependencies" error | RequiredWorkshopFileIds missing or incorrect | Verify file IDs from Workshop item pages |
| Map shows wrong version in server browser | Version field not updated after workshop update | Increment version number and upload |
| CustomCredits not displaying | Localization file missing keys for credit categories | Add translated keys in the level's .dat localization |
| Spawn loadouts not working | Arena_Loadouts referencing incorrect spawn table IDs | Verify spawn table IDs exist in the map |
| Batching not taking effect | Batching_Version missing or set to unrecognized value | Set to 2 |
| Trains not spawning | Train definition has incorrect VehicleID or RoadIndex | Verify vehicle ID and check road index in level editor |
| HUD element still visible after setting to false | Config.json not being read correctly | Verify JSON syntax and file location |
| Gravity feels wrong | Gravity set to incorrect float value | Check for typo; default is -9.81 |
| Water effects not visible | Use_Legacy_Water set to false | Set to true or use water volumes |
| Clutter option not appearing in graphics settings | Enable_Clutter_Option not set to true | Enable the field in Config.json |
| Overrides not applying on specific difficulty | Per-difficulty override field name misspelled | Verify exact field name |
Appendix C: External references
- Smartly Dressed Games official modding documentation - the authoritative reference for Config.json fields, level assets, and arena configuration.
- Level Batching Reference - the previous article in this section; covers the batching configuration fields in detail.
- Manual Object Culling Reference - the next article; covers culling volumes for performance optimization.
- Custom Map Creation: Project Setup - the prerequisite map creation pipeline.
- Unturned on Steam - game page and community hub.
Advanced considerations
Config.json in a multi-map server environment
When a server runs multiple maps, each map has its own Config.json. Players experience the Config.json settings of the currently loaded map. Server operators who run multiple maps with different gameplay configurations should ensure that the Mode_Config_Overrides and per-difficulty overrides are consistent with the server's expected gameplay behavior for each map.
Config.json and the Level Asset interaction
Some gameplay settings can be configured either in Config.json or in the Level Asset. The general rule is that Config.json handles presentation, performance, and top-level gameplay settings, while the Level Asset handles specific gameplay mechanics such as weather schedules, skill overrides, and terrain colors. When a setting exists in both files, the behavior depends on the specific field; the 57 Studios cohort recommendation is to avoid duplicating settings across both files.
Managing Config.json across multiple branches
Map authors who maintain multiple versions of a map (a public release, a private testing branch, and a competition build) should maintain separate Config.json files for each branch. The Visible_In_Matchmaking field should be false on testing branches to prevent players from accidentally joining a test server running the development version. The Version field should clearly distinguish between branches, such as "3.25.0.1-dev" for a development build.
Appendix D: Config.json template for a new map
Copy this template as a starting point for a new map. Adjust fields according to the map's requirements.
json
{
"Creators": ["YourName"],
"Collaborators": [],
"Thanks": [],
"CustomCredits": {},
"Version": "3.25.0.1",
"Visible_In_Matchmaking": false,
"Feedback": "",
"RequiredWorkshopFileIds": [],
"Asset": {},
"Use_Legacy_Ground": true,
"Use_Legacy_Water": true,
"Enable_Clutter_Option": false,
"Batching_Version": 2,
"PlayerUI_HealthVisible": true,
"PlayerUI_FoodVisible": true,
"PlayerUI_WaterVisible": true,
"PlayerUI_VirusVisible": true,
"PlayerUI_StaminaVisible": true,
"PlayerUI_OxygenVisible": true,
"PlayerUI_GunVisible": true,
"Allow_Crafting": true,
"Allow_Skills": true,
"Allow_Information": true
}Authoring checklist
Before publishing a map, confirm the following Config.json items:
- [ ]
Versionis set and incremented from the previous version - [ ]
Visible_In_Matchmakingistrue(or intentionallyfalsefor test maps) - [ ]
RequiredWorkshopFileIdslists all dependent Workshop items - [ ]
Batching_Versionis set if batching is intended - [ ] HUD elements irrelevant to the map's gameplay are set to
false - [ ] Deprecated fields from older Config.json files have been removed
- [ ]
Mode_Config_Overridesare appropriate for the map's target gameplay - [ ] Per-difficulty overrides (if used) have correct field names
- [ ] JSON syntax is valid (no trailing commas, proper quotes)
- [ ]
FeedbackURL is correct if set
Document history
| Version | Date | Author | Notes |
|---|---|---|---|
| 1.0 | 2026-07-26 | 57 Studios | Initial publication. Complete Config.json field reference with all categories, worked example, FAQ, and appendices. |
Cross-references
- Level Batching Reference - the previous article in the mapping section; covers batching fields in detail.
- Manual Object Culling Reference - the next article; covers the culling optimization system.
- Custom Map Creation: Project Setup - the prerequisite map creation pipeline.
- Landscape Material Asset Reference - covers the Level Asset referenced by the Config.json
Assetfield. - Smartly Dressed Games modding documentation - official field reference.
- Unturned on Steam - game page and community hub.
