The best Unturned server configuration for a small friends’ group is a deliberately modest one: start on Normal difficulty, use a password and the current Server Code for private access, set PvE or PvP to match how your group actually plays, and change only the gameplay options you can explain. Put identity, access, map and administrator settings in Commands.dat; put difficulty-sensitive gameplay values in the matching Config.json; and list Workshop content in WorkshopDownloadConfig.json. Back up the server before every edit, save before planned restarts, and use a Game Server Login Token (GSLT) only when you need a stable public listing.
This approach avoids the two common causes of a miserable friends’ server: settings edited in the wrong file and a configuration that silently changes the game’s difficulty or balance. The exact “best” values still depend on whether your group wants cooperative survival, competitive combat, convenience, immersion or public discoverability.
What should a small group use as its starting configuration?
Use Normal difficulty and leave undocumented values at their defaults. Normal is the official default, and the gameplay values in Config.json must correspond to the difficulty selected by the server. A stable baseline gives everyone a known experience and makes later changes easy to evaluate.
| Decision | Recommended starting choice | When to choose something else |
|---|---|---|
| Difficulty | Normal | Choose Easy for a deliberately forgiving session or Hard for a group that wants harsher survival. |
| Access | Password plus Steam invitation or Server Code | Use a GSLT when you need a persistent identity and Internet-list visibility. |
| Combat | PvE for cooperation | Omit PvE for player-versus-player competition. |
| Perspective | Perspective Both |
Use first-person only when the whole group agrees to that restriction. |
| Player cap | Expected regular players plus a small guest margin | Raise it only when you have a reason to host a larger session. |
| Cheats | Omit Cheats |
Add it only when administrators explicitly want cheat-dependent commands. |
The official setup example uses MaxPlayers 24, but 24 is an example rather than a universal recommendation. Set the cap to the number your connection and group can support, with a little room for occasional guests.
What belongs in the basic server file?
Create or edit Commands.dat for the server’s identity and access rules. A practical private-group file contains entries like these, one command per line:
Name Your Group Name
Map Your Agreed Map
MaxPlayers 8
Password choose-a-private-password
PvE
Perspective Both
Owner 7656119XXXXXXXXXX
Port 27015
Replace the sample name, map, player count, password, SteamID64 and port with your own values. Use one or two trusted Owner entries rather than giving administrative control to everyone. Choose a distinct port when forwarding traffic or running more than one server on the same machine.
How do I configure an Unturned dedicated server?
Install the Unturned Dedicated Server (U3DS) on a supported Windows or Linux computer, then configure the files in its server directory. Official documentation supports Windows and Linux hosting; macOS hosting is not supported.
- Choose the host. Use a machine that can remain available for the sessions you want. A managed host can handle operating-system maintenance, ports, updates and backups; self-hosting gives you direct control but makes those tasks your responsibility.
- Locate the server directory. The U3DS installation creates a
Serversdirectory containing each server’s files. Work inside the folder for the instance you intend to change. - Create
Commands.dat. AddName,Map,MaxPlayers, a password if private,PvEif cooperative,Perspective Bothunless restricted, and your administrator and port entries. - Select a difficulty. Start the server on Normal unless the group has agreed to Easy or Hard. The selected difficulty determines which gameplay configuration is active.
- Start once and stop safely. A first launch creates or updates the expected configuration files. Use the
Shutdowncommand to save and close cleanly, then make your edits. - Test locally first. Join from the host or local network, verify the map, perspective, player limit and administrator permissions, and only then invite the rest of the group.
Do not assume that changing a value in one file changes every server instance. Each instance has its own directory, and a second server should have its own port and configuration.
Which file should I edit: Commands.dat, Config.json or WorkshopDownloadConfig.json?
Each file controls a different layer of the server. Editing the wrong one either does nothing or creates a difficult-to-diagnose startup problem.
| File | Use it for | Important caution |
|---|---|---|
Commands.dat |
Name, map, password, maximum players, PvE/PvP choice, perspective, owners, cheats and port. | Use the documented command format and one command per line. |
Difficulty-specific Config.json |
Gameplay, combat, HUD, groups, building, timers, world behavior and advanced server or browser settings. | The values apply to the selected difficulty. The file is strict JSON and is read at startup. |
WorkshopDownloadConfig.json |
Workshop maps and mods, entered as file IDs in the File_IDs list. |
Players download configured content when they connect; dependency or map updates can change the experience. |
The gameplay reference documents 47 keys in the Gameplay section. Omitted keys use internal defaults; an explicit value overrides that default. Keep a written change log so you know which values were intentional.
How do I edit Config.json without breaking the server?
- Run
Shutdownor stop the server before editing. - Copy the entire server folder, including saves and configuration files, to a dated backup location.
- Open the
Config.jsonbelonging to the difficulty you selected. Do not paste gameplay values into a different difficulty’s file and expect them to apply. - Change one related group of values at a time. Preserve quotation marks, commas, braces and the existing key names.
- Validate the JSON with a syntax checker before saving it over the live file. A missing comma or brace can prevent the file from parsing.
- Restart the server and read the console for configuration or loading errors. If it fails, restore the backup and reapply changes one at a time.
The September 9, 2025 official update for version 3.25.8.0 introduced a more human-friendly Config.json format and added -NoLevelConfigOverrides, -UseLegacyJsonGameplayConfig and -LogGameplayConfig startup flags. An October 2025 patch note also recorded fixes for converted server configuration. Older templates should therefore be checked against the current format before reuse.
Should our group use PvE or PvP?
Use PvE when the group’s main activity is building, scavenging and surviving together; omit the PvE command when deliberate player combat is part of the game. This is a foundational choice because it changes how a mistake, rivalry or base encounter feels for everyone.
PvE for cooperative survival
Add PvE to Commands.dat. It prevents the server from being configured as a normal player-versus-player world and keeps the group focused on zombies, exploration and shared projects. PvE does not remove the need to set permissions carefully: administrators can still affect the world, and a password remains useful for keeping strangers out.
PvP for competitive groups
Leave PvE out when the group wants player combat. Agree in advance whether raids, ambushes and contested resources are acceptable; the setting alone cannot create a social rule that the players have not defined. For a mixed group, consider a separate instance rather than changing the rules every session.
How should I set groups, friendly fire and combat feel?
Change these values only after the group has identified a specific problem. The Gameplay section includes group visibility, friendly fire, ballistics, hitmarkers, crosshair behavior, recoil, flinch and explosion-camera-shake options.
Groups and visibility
Review Group_Map, Group_HUD, Group_Player_List, Allow_Static_Groups, Allow_Dynamic_Groups, Allow_Lobby_Groups and Max_Group_Members. A cooperative group usually benefits from map and HUD information that makes teammates easy to find. Restrict group creation only when you have a clear reason, such as preventing temporary alliances from bypassing your intended rules.
Friendly fire and feedback
Decide whether accidental damage is an acceptable risk before enabling it. If the group wants readable combat, keep hitmarkers and a crosshair available; if it wants a more immersive or uncertain fight, remove only the interface aids everyone agrees to lose. Recoil, flinch and camera shake affect comfort as well as difficulty, so test them with the people who will actually play.
Which building, repair and timer settings matter most?
Building and timer changes have a larger long-term effect than cosmetic interface tweaks. Start with the defaults, then alter the single bottleneck your group can describe.
Building and repair
The documented controls include Repair_Level_Max, freeform-building options, workstation requirements and bypasses for safe-zone or no-building restrictions. Raising repair access or removing workstation requirements can make a relaxed cooperative world less tedious, but it also removes progression pressure. Freeform building can help a creative group while making prebuilt structures and map limits less meaningful.
Exit, respawn, home and group-leave timers
Timer_Exit controls how long a player must wait to leave an interaction safely; Timer_Respawn governs the delay after death; Timer_Home affects home travel; and Timer_Leave_Group affects how quickly a player can leave a group. Keep these consistent with your PvE or PvP rules. Short timers make a casual server convenient but can reduce the consequences of risky decisions, while long timers create friction that a small friends’ group may not enjoy.
Which comfort and interface settings should I change?
Prioritize accessibility and readability over a supposedly “hardcore” preset. The Gameplay reference includes compass, chart, satellite, shoulder-camera, scope-overlay, foliage and motion-sickness options.
- Compass, chart and satellite: Keep the navigation aids your group needs to coordinate. Removing them makes exploration harder, not necessarily more strategic.
- Shoulder camera and scope overlay: Decide whether third-person awareness and scope presentation fit the agreed perspective rules.
- Foliage: Treat visibility changes as a competitive decision in PvP, because different foliage settings can alter what players can see.
- Motion-sickness options: Test camera movement and shake with every player who needs a comfortable setup. A setting that feels immersive to one person can be unusable for another.
How do private access and Internet visibility work?
A password and the current Server Code are enough for a private friends’ session. By default, a server is not visible to other people in the Multiplayer menu unless they are on the same LAN; friends can join through Steam invitations or Connect Directly.
Using a password, invitation or Server Code
Set Password in Commands.dat, then send the password through a private channel. The generated 17-digit Server Code changes every time the server launches, so a code copied yesterday may no longer work after a restart. Steam invitations avoid asking players to search the public list, while Connect Directly is useful when you want to provide the current code yourself.
When should I use a GSLT?
Use a Game Server Login Token when you want a stable server identity and Internet-list visibility. The official GSLT guidance says a server without a token is considered anonymous and hidden from the Internet server list; a token keeps the server code linked between sessions. Put the token in Browser.Login_Token or provide it with the GSLT startup command, and never publish the token in screenshots, chat or a shared configuration file.
A GSLT is not a substitute for a password. If the server is for friends only, retain the password even when the server is publicly discoverable.
How do I assign administrators safely?
Use Owner <SteamID64> in Commands.dat for permanent administrators, or manage access with the runtime Admin command and Adminlist.dat. Give ownership to one or two trusted people who can restore a backup and understand the configuration.
Chat commands require administrator privileges and use a / or @ prefix. Some runtime commands require Cheats; do not add that command merely because you want ordinary moderation. Adding Cheats changes what administrators can do and can undermine a survival group’s agreed rules.
How do I save, back up and recover the server?
Unturned does not provide a built-in autosave feature. The official setup documentation states: “There is no built-in autosave feature. You must use the Save command to manually save your server while its still running, or the Shutdown command to safely save and close your server.” Treat saving as an operating procedure, not an optional button.
- Announce maintenance. Tell players when the server will pause so nobody builds or stores items during the final save window.
- Save in normal operation. Run
Savebefore a planned restart or maintenance session. - Close safely. Use
Shutdownrather than terminating the process abruptly. - Back up after closing. Copy the server folder, including the world save,
Commands.dat, the activeConfig.jsonand Workshop configuration, to dated storage. - Recover methodically. Stop the server, replace only the damaged file or save with the newest known-good copy, then start and inspect the console.
Keep at least one backup from before the latest configuration change. A backup made after a corrupted JSON file or unwanted world change may preserve the problem instead of solving it.
How do I install maps and mods for everyone?
Add each Workshop file ID to the File_IDs list in WorkshopDownloadConfig.json. The server installs or updates the specified content, and players automatically download configured mods when they connect.
- Stop the server and back up the current Workshop configuration.
- Add one map or mod file ID at a time to the
File_IDslist. - Restart and confirm that the server downloads or updates the content without errors.
- Join with a test account or a second player and verify that the map loads and dependencies are present.
- Record the mod list and the date of each change so you can identify which update caused a problem.
Map and dependency updates can change balance, spawn behavior or stability. Test a single change before adding another, especially on a world that the group has invested in.
What should I do if players cannot see or join the server?
Work from the simplest cause to the least obvious one. A server can be running correctly while remaining hidden from the public list, and a visible server can still reject players because of a password, port or missing Workshop content.
- Confirm the process is running. Read the console for startup, map-loading and configuration errors.
- Check the active files. Make sure the map and player limit are in
Commands.dat, while gameplay changes are in the selected difficulty’sConfig.json. - Use the current access method. Send a fresh Server Code after every launch, or invite friends through Steam. The 17-digit code is not permanent.
- Check private access. Confirm the password exactly, including capitalization and spaces if your chosen password contains them.
- Check ports. Use the configured
Portconsistently and assign a distinct value to each server instance. - Check visibility expectations. Without a GSLT, the server is considered anonymous and hidden from the Internet list; that does not prevent private invitations or direct connection.
- Check Workshop downloads. Compare the server’s
File_IDslist with the joining player’s download status and remove or repair a newly added dependency if loading fails. - Restore the last known-good backup. If the issue began immediately after a JSON edit, restore that file, validate it, and reintroduce changes individually.
Is self-hosting or managed hosting better for a friends’ group?
Self-hosting is appropriate when one person can maintain the operating system, port forwarding, updates, saves, backups and Workshop files. Managed hosting is convenient when the group wants an always-on server without maintaining the machine, but you should verify support for current Config.json formatting, GSLT settings, WorkshopDownloadConfig.json and the operating system you intend to use.
| Factor | Self-hosted U3DS | Managed server |
|---|---|---|
| Control | Direct access to files, startup flags and backups. | Control depends on the provider’s panel and file access. |
| Maintenance | You handle updates, ports, saves and recovery. | The provider may simplify these tasks, but confirm what is included. |
| Availability | Depends on the host machine and connection remaining online. | Usually designed for continuous availability; exact guarantees vary. |
| Configuration compatibility | You can follow the current official format directly. | Confirm support for the 3.25.8.0-era JSON format and required flags. |
There is no published external population, performance or monetization statistic that establishes one option as universally superior. Choose based on who will perform maintenance and how much downtime the group accepts.
What is the practical “best config” checklist?
- Normal difficulty selected and the matching gameplay configuration identified.
- Recognizable
Nameand agreedMapinCommands.dat. MaxPlayersset to expected attendance plus a small guest margin.- Password enabled for a private group; current Server Code shared only after each launch.
PvEpresent for cooperative survival, or intentionally omitted for PvP.Perspective Bothretained unless first-person-only play is a group rule.- One or two trusted
OwnerSteamID64 entries. Cheatsomitted unless administrators explicitly need cheat-dependent commands.- Distinct
Portselected for forwarding or multiple instances. - Gameplay values changed only for a stated reason, with defaults retained elsewhere.
- Strict JSON validated before every restart.
- Workshop file IDs recorded and tested one change at a time.
Saverun before maintenance andShutdownused for clean closure.- Dated backups kept outside the live server directory.
- GSLT configured only when persistent public-list visibility is required, with the token kept secret.
Frequently Asked Questions
Does the Server Code stay the same after I restart the server?
No. The generated 17-digit code changes each time the server launches. Treat it as a session-specific invitation and send the new code after a restart instead of saving one permanently in your group chat.
Can I use the same Config.json for Easy, Normal and Hard?
Gameplay values are tied to the difficulty selected by the server, so a file edited for one difficulty should not be assumed to control another. Keep separate backups for each difficulty and verify the active file after switching.
What happens if a player joins before a Workshop mod finishes downloading?
The configured Workshop content is downloaded during connection, so the player may have to wait before entering the server. If loading repeatedly fails, compare the server’s file-ID list with the mod’s dependencies and roll back the newest addition.
Should I publish my GSLT in the server description so friends can find it?
No. A GSLT is an authentication token, not a public invitation. Keep it private and give friends the password, Steam invitation or current Server Code instead.