Skip to content

Setting Up an Unturned Server

Setting up an Unturned™ dedicated server (U3DS) is the first step toward hosting a multiplayer game world for friends or the public. The Unturned Dedicated Server tool is provided alongside Unturned™ but must be installed separately from the Steam Library. Servers can be hosted on Windows and Linux operating systems; there is no support for hosting on macOS devices.

57 Studios™ has documented the complete server setup workflow based on the official SDG documentation. This article covers the simple setup process for a LAN server, save and shutdown procedures, server configuration through Commands.dat, Workshop mod installation through WorkshopDownloadConfig.json, and the steps required to switch from a LAN server to an Internet server.

The Unturned Dedicated Server console window after a successful startup showing the server code and loading progress

Documentation source: This article references the official Smartly Dressed Games modding documentation Chapter 117 (Setting up a Server).

Who this article is for

This article is written for new server operators who want to host an Unturned™ server for the first time, experienced operators who want a structured reference, and mod authors who need a test server for their content.

Simple setup: LAN server

The simple setup creates a LAN server that friends can join through the Steam friends list or through the server code.

Step 1: Install the Unturned Dedicated Server

In the Steam Library, find "Unturned Dedicated Server" in your games list and install it. The tool installs to a separate directory from the game client.

Step 2: Launch the server

Launch the Unturned Dedicated Server from your Steam Library. The Server Console opens in a new window. The server generates necessary files and loads world data on first launch.

Step 3: Share the server code

The console displays a server code when the server finishes booting. Share this 17-digit code with friends to allow them to join through the "Connect Directly" menu. The server code changes each time the server launches.

Step 4: Invite friends

Players can join through the Steam Friends List or by entering the server code in the "Connect Directly" menu. The server is not visible in the Internet server list by default.

Save and shutdown

The dedicated server does not have an autosave feature. Use the Save command to manually save the server while it is running. Use the Shutdown command to save and close the server safely.

Save data and configuration files are stored in the ...\U3DS\Servers\<ServerID>\ directory. Each server you create has its own folder.

Server configuration

Configuration files are located inside the server's folder under ...\U3DS\Servers\<ServerID>\. Most settings cannot be configured while the server is running.

Commands.dat

The Commands.dat file configures basic server settings. Each command is on a separate line. Lines starting with // are comments.

// [[ SERVER CONFIGURATION ]]
Name My Unturned Server
Map PEI
MaxPlayers 24
// Owner YourSteamID
Cheats
// Password ExamplePassword1234
// PvE
// Perspective First
// Perspective Third
Perspective Both
// Port 27015

Config.txt

The Config.txt file adjusts difficulty settings and advanced options including Game Server Login Token assignment.

WorkshopDownloadConfig.json

This JSON file installs mods from the Steam Workshop. Add File_IDs entries with the Workshop file IDs of the mods to install.

{
  "File_IDs": [
    1753134636,
    1702240229
  ]
}

Switching to an Internet server

LAN servers are not visible on the Internet server list. To make the server accessible over the Internet, you must:

  1. Add a Game Server Login Token (GSLT)
  2. Configure either Fake IP or port forwarding

The official documentation notes that Fake IP is easier to enable and should be adequate for most servers. Both configurations are covered in subsequent articles in this section.

Runtime commands

Some commands only work while the server is running. Enter them directly into the Server Console or from the in-game chat (if you are an administrator) by prefixing them with @ or /.

Common runtime commands:

  • Save - Save the current server state
  • Shutdown - Save and shut down the server
  • Help - List all commands or describe a specific command
  • Give - Spawn an item (requires Cheats enabled)
  • Admin - Grant administrator privileges to a player

Diagnostic table

SymptomMost likely causeResolution
Server does not appear in Steam friends listServer is still starting upWait for "Loading level: 100%" message
Players cannot connectFirewall blocking the connectionAdd a firewall rule for the U3DS executable
Server code does not workCode was shared before server finished bootingWait for "Loading level: 100%" before sharing
Commands not workingCommands are not in the correct formatUse // for comments, one command per line
Mods not loadingWorkshopDownloadConfig.json is misconfiguredVerify File IDs and JSON format
Server crashes on startupCorrupted configuration filesDelete the server folder and regenerate
Owner commands not workingSteamID64 is not set as OwnerAdd Owner <YourSteamID64> to Commands.dat

Best practices

  • Use the Save command frequently to prevent data loss.
  • Set the Owner field to your SteamID64 for administrative access.
  • Use Cheats for server management but disable it for normal gameplay.
  • Configure a password for private servers.
  • Keep the server software updated through Steam.
  • Back up the server's Servers/ directory regularly.

Frequently asked questions

What operating systems can host an Unturned server?

Servers can be hosted on Windows and Linux. macOS hosting is not supported. The dedicated server tool runs on both 64-bit Windows and 64-bit Linux systems.

How many players can a server support?

The MaxPlayers command sets the player limit. The practical limit depends on the server's hardware, network bandwidth, and the map's complexity. A typical dedicated server can support 12-24 players on a standard map.

Can I run multiple servers on one machine?

Yes, but each instance requires a separate installation directory and different ports. Using SteamCMD for installation is recommended for multiple server instances.

How do I find my SteamID64?

Use a SteamID lookup tool or check the steamcommunity.com URL of your profile. The numeric ID at the end of the URL is your SteamID64.

What is the default map?

The default map is PEI (Prince Edward Island). Change it with the Map command in Commands.dat.

Appendix A: Commands.dat template

Name My Server
Map PEI
MaxPlayers 24
Owner <YourSteamID64>
Cheats
// Password <password>
Perspective Both

Appendix B: External references

Authoring checklist

  • [ ] Unturned Dedicated Server installed from Steam Library
  • [ ] Server launches without errors
  • [ ] Owner SteamID64 set in Commands.dat
  • [ ] Map configured
  • [ ] MaxPlayers set appropriately
  • [ ] Cheats enabled for administration
  • [ ] Save command works
  • [ ] Shutdown command works
  • [ ] Players can connect via server code or friends list

Integration with other systems

This configuration interacts with several other Unturned systems that the mod author should be aware of when designing content.

Interaction with the asset definition system

Every configuration file must include the required identity fields that the asset definition system uses to register the asset in the game's registry. Without these fields, the asset is not recognized by the game and will not appear in any system that references it.

Interaction with the localization system

Configuration files that display text to the player must be paired with localization files. The English.dat file provides the default language display values. Additional language files can be added for multilingual support.

Interaction with the master bundle system

Configuration files that reference Unity assets must use master bundle pointers correctly. The asset path in the pointer must match the path in the master bundle's manifest. A mismatch causes the asset to fail to load without crashing the game.

Interaction with the validation system

The game validates configuration files during the loading phase. Validation errors produce warnings in the console but do not prevent the game from starting. The affected asset may use default values for invalid fields.

Performance considerations

Configuration file performance is determined by the complexity of the referenced assets and the number of active instances in the game world.

Memory footprint

Each loaded asset occupies memory proportional to its data size. Configuration files are small (a few kilobytes each) and do not significantly impact memory usage. The memory impact comes from the Unity assets (models, textures, audio) that the configuration files reference.

Loading time

The game parses all configuration files during the initial loading phase. The total parsing time is proportional to the total number of configuration files and their complexity. For most mods, this overhead is negligible (milliseconds to low seconds).

Runtime performance

The runtime performance impact of a configuration file is zero for static properties and minimal for properties that are evaluated per-frame. Field values are cached after the initial read and are not re-read each frame.

Testing and validation

A structured testing approach ensures that every configuration value produces the expected behavior.

Unit testing

Test each configuration field independently by changing one value at a time and observing the result. This isolates the effect of each field and makes it easy to identify which field is responsible for unexpected behavior.

Integration testing

Test the complete configuration with all fields set to their intended values. Verify that the combination of fields produces the expected overall behavior.

Regression testing

After making changes, re-test previously working behavior to confirm that the changes did not break existing functionality. A change that fixes one issue should not introduce new issues in unrelated areas.

Stress testing

Test the configuration under high-load conditions (many concurrent players, rapid interactions) to verify that no performance issues or crashes occur.

Common authoring mistakes

Mistake 1: Missing identity fields

The most common authoring mistake is omitting required identity fields. Without a GUID, Type, and ID, the asset cannot be registered in the game's asset registry.

Mistake 2: Incorrect Type values

The Type field must match the expected value for the asset class being defined. An incorrect Type value causes the parser to misread the configuration fields.

Mistake 3: GUID collisions

Two assets with the same GUID cause the later-loaded asset to overwrite the earlier one. Generate fresh GUIDs for every new asset and never reuse GUIDs.

Mistake 4: ID collisions

Two items with the same ID within the same category cause unpredictable behavior. Use IDs in the 50000+ range to avoid collisions with vanilla and established community mods.

Mistake 5: Invalid field values

Field values must match their expected types. A string value in a numeric field is silently ignored and replaced with the default value.

Mistake 6: Unbalanced braces

Dictionaries opened with { must be closed with }. Lists opened with [ must be closed with ]. Unbalanced braces cause parsing errors that prevent the asset from loading.

Mistake 7: Incorrect master bundle pointers

The AssetPath in a master bundle pointer must match the path in the bundle's manifest exactly. Even a single-character difference causes the reference to fail.

Mistake 8: Missing localization files

Assets that display text to the player should have a corresponding English.dat file. Without it, the asset may display an internal identifier instead of a user-friendly name.

Design patterns

The completeness pattern

Before declaring a configuration file complete, verify that every field that has a documented default value has been explicitly considered. Some fields should use their defaults; others need explicit values. The decision should be intentional.

The documentation pattern

Maintain a project-level documentation file that records the purpose and expected values for every field in every configuration file. This documentation helps other mod authors understand the design intent.

The version control pattern

Store all configuration files in a version control system (Git). Every change is tracked with a commit message that explains why the change was made. This creates a complete history of the project's evolution.

The peer review pattern

Before finalizing a configuration, have another mod author review the file. A reviewer may spot errors that the original author missed, particularly in field values that were changed recently and may have unintended interactions.

Frequently asked questions (continued)

How do I know if my configuration file is correct?

The game logs any parsing errors or validation warnings during startup. Check the console output after launching the game. If no errors or warnings related to your mod appear, the configuration file is syntactically correct.

What happens when a field is omitted from a configuration file?

The parser assigns the default value for that field. Default values are documented in the field reference tables in this knowledge base. If you omit a field, the behavior may not match your intent.

Can I include comments in configuration files?

Yes. Lines starting with // are treated as comments. Comments can also be added at the end of a line if the value is enclosed in quotes.

How do I create a minimal configuration file?

The minimal configuration file contains only the required identity fields (GUID, Type, ID) and the fields that must differ from their defaults. All other fields use their default values.

What is the difference between a .dat file and an .asset file?

.dat files use the original Unturned key-value pair format. .asset files use the newer format that supports dictionaries, lists, and quoted keys/values. Both formats are valid and the parser handles both.

Glossary

TermDefinition
Configuration fileA text file containing key-value pairs that define an asset's properties.
Identity fieldA required field (GUID, Type, ID) that identifies the asset to the engine.
Default valueThe value used when a field is not explicitly specified in the configuration file.
Parsing errorAn error that occurs when the file format is invalid or a value cannot be interpreted.
Validation warningA warning that occurs when a parsed value is out of range or inconsistent.
Field referenceA table that documents each field's name, type, allowed values, and purpose.
Asset registryThe game's in-memory database of all loaded assets.
Master bundle pointerA structured reference to an asset within a master bundle file.
LocalizationThe system for providing language-specific display text for assets.
TemplateA pre-written configuration file with placeholder values.

Implementation roadmap

Phase 1: Research

Read the relevant reference article for the asset type. Understand the purpose of every field before writing any configuration values.

Phase 2: Planning

List the required and optional fields that need values. Determine the correct values based on the intended behavior.

Phase 3: Authoring

Create the configuration file. Fill in the identity fields first, then the gameplay fields, then the optional fields.

Phase 4: Validation

Check the configuration file for syntax errors. Verify that all braces and brackets are balanced. Confirm that all values match their expected types.

Phase 5: Testing

Place the configuration file in the mod directory. Launch the game and check for errors. Test the asset's behavior in-game.

Phase 6: Iteration

Adjust field values based on testing feedback. Repeat phases 4 and 5 until the behavior matches the intended design.

Authoring checklist

Before finalizing a configuration file for publication, confirm the following items:

  • [ ] All identity fields are present (GUID, Type, ID)
  • [ ] GUID is unique and freshly generated
  • [ ] Type field matches the expected asset class
  • [ ] ID is in the 50000+ range
  • [ ] All gameplay fields have intentional values (not accidentally omitted)
  • [ ] Master bundle pointers are correctly configured and paths match the manifest
  • [ ] Localization file is present and contains the expected fields
  • [ ] Testing has confirmed every field produces the expected behavior
  • [ ] No parsing errors or validation warnings in the console
  • [ ] The asset works in both single-player and multiplayer

Server-specific advanced topics

Server optimization for modded content

When running a server with multiple mods, optimize performance by bundling related assets together in fewer master bundles. Each master bundle adds to the server's memory footprint and loading time. Combine small mods into shared bundles where possible.

Server security with custom configurations

Custom server configurations should never expose sensitive information such as GSLT tokens or admin Steam IDs in publicly accessible files. Use the server's configuration file permissions to restrict read access.

Server update planning

Plan server updates to minimize player disruption. Schedule updates during low-traffic periods. Use the Workshop update monitor to automate update detection and restart procedures.

Troubleshooting guide

Problem: Server fails to start

If the dedicated server fails to start, check the console for error messages. Common causes include missing or corrupt configuration files, port conflicts with other applications, and insufficient disk space.

Problem: Players cannot connect

If players cannot connect to the server, check firewall settings, port forwarding configuration, and GSLT token validity. Verify that the server is running on the expected IP address and port.

Problem: Mods fail to load on the server

If mods load in single-player but not on the dedicated server, check that the mod files are in the correct directory on the server. The server's mod directory is typically separate from the client's mod directory.

Problem: Server performance degradation

If the server experiences performance degradation after adding mods, check the server resource usage (CPU, memory, disk I/O). Remove mods one at a time to identify which mod is causing the issue.

Frequently asked questions (continued)

How do I back up my server configuration?

Copy the entire Servers directory to a backup location. The directory contains all configuration files, save data, and logs. Back up before making significant configuration changes.

Can I run a server without a GSLT?

Yes, but the server will not appear on the Internet server list. Players can only join through the server code or Steam friends list.

What ports need to be open for Unturned servers?

The default ports are UDP 27015 (query port) and 27016 (game traffic port). These must be forwarded in the router and allowed through the firewall.

How many servers can I run on one machine?

The practical limit depends on the machine's hardware. Each server instance requires CPU time for game logic, memory for assets, and bandwidth for network traffic. A dedicated server machine can typically run 2-5 instances.

Should I use a static IP for my server?

A static local IP ensures that port forwarding rules do not break when the server's IP address changes. Most home routers support DHCP reservation, which assigns a static IP to a specific MAC address.

Configuration file management

Version numbering

Assign version numbers to each configuration file to track changes over time. Include the version number in a comment at the top of the file. When publishing updates, increment the version number and document the changes.

Change documentation

Maintain a changelog file alongside the configuration files. Record the date, version, author, and description of each change. This helps other mod authors understand how the configuration has evolved.

File naming conventions

Use consistent file naming conventions across all configuration files. The recommended convention is descriptive lowercase names with underscores separating words (snake_case).

Frequently asked questions (continued)

How do I roll back a configuration change?

Restore the previous version from version control. If version control is not in use, restore from a manual backup. This is why version control is strongly recommended.

What information should I include in a changelog entry?

Each changelog entry should include the date, the configuration file name, the changed field or section, the old value, the new value, and the reason for the change.

How do I share configuration best practices with my team?

Maintain a shared style guide document that records naming conventions, field ordering preferences, and commenting standards. Review pull requests to ensure compliance.

Operational considerations

Monitoring server health

Regularly check the server's resource usage (CPU, memory, disk space) to ensure it can handle the current player load. Set up automated monitoring that alerts the operator when resource usage exceeds thresholds.

Log management

The server generates log files that can grow large over time. Configure log rotation to archive old logs and free disk space. Review logs periodically for error patterns that may indicate configuration issues.

Player communication

Keep players informed about server maintenance, updates, and rule changes through in-game announcements, Discord, or a website. Clear communication reduces confusion and support requests.

Frequently asked questions (continued)

What should I do if a configuration file becomes corrupt?

Restore the file from the most recent backup. If no backup exists, reconstruct the file using the documentation and reference templates in this knowledge base.

How often should I back up server configuration files?

Back up at least weekly for low-activity servers and daily for high-activity servers. Always back up before making configuration changes.

What is the best way to test configuration changes before applying them to production?

Use a staging server that mirrors the production configuration. Test changes on the staging server first. If no staging server is available, test during low-traffic hours and have a rollback plan ready.

Cross-references

Document history

VersionDateAuthorNotes
1.02026-07-2657 StudiosInitial publication. Complete server setup guide, Commands.dat reference, LAN to Internet migration, Workshop mod integration.