Unturned asks almost nothing of a server, which makes it a good first one to run. Two gigabytes and one core will carry a full group on an official map, the whole configuration lives in a handful of files under one folder, and the dedicated server installs anonymously in about a minute. The mistakes people make are all in the same two places: workshop content that the server has and the client does not, and a missing Game Server Login Token that leaves the server running perfectly and invisible to everyone. This guide covers the install, every file that matters, the ports, the workshop, RocketMod and the errors in between.
What you are running#
The Unturned 3 dedicated server is its own Steam application, app id 1110390, installed anonymously and landing in a folder called U3DS. It does not need a copy of the game and it does not need a licence. The client's app id is 304930, which matters in two places: workshop downloads, and the login token.
Everything about one server lives inside a single instance folder, and you can run several instances from one install by giving each a different name:
U3DS/ ServerHelper.sh Linux start script ServerHelper.bat Windows start script Servers/ MyServer/ one instance Server/ Commands.dat what the server is Config.json how the game plays (older servers) Config.txt how the game plays (3.25.8.0 and newer) Adminlist.dat SteamID64 per line Blacklist.dat Whitelist.dat WorkshopDownloadConfig.json workshop items to fetch at boot Rocket/ RocketMod, if installedThat split is the mental model for the whole game. Commands.dat decides what the server is - its name, port, map, slots and owner. The gameplay config decides how the game plays - loot, zombies, vehicles, damage. Two files, two jobs, and almost every question about Unturned hosting is really a question about which of them you should be editing.
Requirements and resource usage#
| Server | RAM | CPU | Notes |
|---|---|---|---|
| 8-12 players, official map, vanilla | 2 GB | 1 core | Genuinely enough, not a starting figure |
| 16-24 players, curated map | 3-4 GB | 1.5 cores | Larger maps hold more objects |
| 24-40 players, RocketMod plugins | 4-6 GB | 2 cores | Plugins and saved structures add up |
| Large workshop map plus mod packs | 6-8 GB | 2-2.5 cores | The map is usually the memory |
The variable is the map, not the player count. Official maps like Washington and PEI are small and cheap; big community maps hold far more objects and load far more assets. A server's memory use also creeps up as players build - every structure and barricade is saved and simulated - so a server that fits in 2 GB in week one may want 3 GB by month three.
Disk is modest: the server install is a couple of gigabytes, and workshop content is usually a few hundred megabytes per large map. Unturned plans here start at 2 GB with 10 GB of disk, which is the honest size for this game rather than an upsell. If you are trying to work out a slot count, how many players fit on a server covers the general method.
Installing the server and starting it#
$ steamcmd +force_install_dir /home/unturned/U3DS +login anonymous \ +app_update 1110390 validate +quit$ cd /home/unturned/U3DS$ ./ServerHelper.sh +InternetServer/MyServerOn Windows the same thing is ServerHelper.bat +InternetServer/MyServer. Replace InternetServer with LanServer for a local-only test. The instance name after the slash is the folder under Servers/, and it is created on first run along with the config files - so start the server once, stop it, and then edit what it generated rather than writing the files from scratch. SteamCMD explained covers validate, update scripts and what the app id arguments mean.
Commands.dat: the server's identity#
Commands.dat is a plain list, one command per line, read once at boot. A complete file for a small survival server:
Name Thursday SurvivalOwner 76561198012345678Port 27015Map WashingtonMaxPlayers 24Mode NormalPerspective BothWelcome Read the rules in Discord. No raiding offline bases.PasswordQueue_Size 8FilterCheatsGSLT 0123456789ABCDEF0123456789ABCDEFThe commands worth knowing:
| Command | Effect |
|---|---|
Name | Server name in the browser, up to 50 characters |
Owner | A SteamID64 that gets permanent admin |
Port | Query port; the game runs on this plus one |
Map | Internal map name, not the display name |
MaxPlayers | Slot count |
Mode | Easy, Normal or Hard - picks which difficulty config applies |
PvE | Present means PvE; absent means PvP |
Perspective | First, Third, Vehicle or Both |
Password | Join password; leave the value blank for none |
Queue_Size | How many players may wait for a slot |
Cheats | Present enables cheat commands, absent disables them |
Filter | Rejects players whose names contain junk characters |
Gold | Restricts the server to Gold Upgrade owners |
Loadout | Skillset and starting items for new spawns |
Welcome | Message shown on join |
GSLT | The login token, if you do not put it in the config file |
Mode is the one that surprises people. It does not just change a damage number - it selects which difficulty block of the gameplay config the server uses, so a Mode Hard server ignores the numbers you carefully edited under Normal.
Map takes the internal name. Official and curated maps ship with the game and need nothing else; if the server cannot find the name you gave it, it silently loads PEI instead. A server that keeps booting into PEI has a typo, not a bug.
The gameplay config: Config.txt and Config.json#
Servers created on build 3.25.8.0 or later get Config.txt, a commented plain-text file with sections in braces. Older instances have Config.json holding the same settings as JSON. The structure is the same either way: a Browser section for how the server presents itself, a Server section for connection behaviour, and a block per difficulty - Easy, Normal, Hard - each containing Items, Vehicles, Zombies, Animals, Barricades, Structures, Players, Objects, Events and Gameplay.
The settings people actually change, with their Normal-difficulty defaults:
| Setting | Default | What it does |
|---|---|---|
Items.Spawn_Chance | 0.35 | Chance that a spawn point holds an item |
Items.Respawn_Time | 50.0 | Seconds before a looted point can refill |
Items.Despawn_Dropped_Time | 600.0 | Seconds before dropped items vanish |
Items.Quality_Multiplier | 1.0 | Condition of items that spawn |
Zombies.Spawn_Chance | 0.2 | Chance a zombie spawn point is used |
Zombies.Respawn_Day_Time | 360.0 | Seconds before a killed zombie returns in daylight |
Zombies.Respawn_Night_Time | 30.0 | The same at night |
Zombies.Damage_Multiplier | 0.75 | How hard zombies hit |
Zombies.Armor_Multiplier | 1.25 | How much damage they absorb |
Vehicles.Respawn_Time | 300.0 | Seconds before a destroyed vehicle respawns |
Those defaults are the Normal block's. Change Mode in Commands.dat and a different set applies, which is the most common reason an edit "does nothing".
The Browser section holds Icon and Thumbnail - URLs to small images shown in the server list - plus the description fields, a Monetization declaration you should fill in honestly if you sell anything, and Login_Token. The Server section holds VAC_Secure and BattlEye_Secure, both of which should stay on for a public server, along with ping and timeout limits.
A word on loot multipliers, since raising them is the first thing everyone does: Items.Spawn_Chance at 1.0 does not make your server generous, it makes it pointless. Every building is full, nobody needs to travel, and the game is over in an evening. If you want a faster server, cut Items.Respawn_Time instead so places refill sooner while a run through town still means something.
Ports, the GSLT and connecting#
| Port | Protocol | Purpose |
|---|---|---|
27015 | UDP | Server list queries, set by Port |
27016 | UDP | Game traffic, always Port + 1 |
Both are UDP, and both must be reachable. If you run two instances on one machine, space the Port values by at least two - 27015 and 27017 - or the second server's game port collides with the first server's query port. Unturned plans here come with two allocations, which is exactly this pair. Game server ports explained covers what a query port is for and how to tell which of the two is blocked.
The token is the other half of being visible. Since build 3.21.31.0, a server without a Game Server Login Token is hidden from the internet server list - it runs, people can still join by IP, and it will never be found by anyone browsing. Create one at Steam's game server account page using app id 304930, then put it in one place, not both:
GSLT 0123456789ABCDEF0123456789ABCDEFin Commands.dat, or as Login_Token in the Browser section of the config file. The token belongs to your Steam account, it can be banned if the server misbehaves, and each running server needs its own. Steam game server tokens explained covers the rules, and monetising a game server within the rules covers what you may sell before that token becomes a liability.
On RE:NODE the token is yours to create: the server is built as soon as payment clears, and the install waits on the Setup tab until you paste it in. That is deliberate. A host that hands you a token has given you somebody else's credential.
Workshop maps and content#
Workshop items belong in the config, not in the file system. Add the IDs to WorkshopDownloadConfig.json in the instance folder and the server downloads them at boot and hands the list to joining players, who fetch the same items from Steam automatically:
{ "File_IDs": [ 1205209275, 1440592288 ]}Install a map by hand instead and players are sent to a world they cannot load, which reads to them as a broken server rather than a missing download.
Three rules keep this painless:
- Curated maps need no extra setup and are the sensible starting point. They ship with the game on both ends, so there is nothing to download and nothing to mismatch.
- Many community maps are two items, a terrain and an asset pack. Include only one and players see floating red error text where objects should be. Read the map's workshop page for what else it requires.
- Restart after every change. The IDs file is read at boot, and a workshop item that updated mid-session is not picked up until the server restarts.
Mod content follows the same path - an item pack is a workshop id like any other. Steam Workshop mods on dedicated servers covers how those downloads work across games, including what happens when an author unlists an item you depend on.
Admins, RocketMod and plugins#
Vanilla administration is a console and three text files. Adminlist.dat, Whitelist.dat and Blacklist.dat each hold one SteamID64 per line, and the Owner command in Commands.dat grants permanent admin without touching them. The console commands worth memorising:
| Command | Effect |
|---|---|
admin <player> | Grant admin to a connected player |
unadmin <player> | Remove it |
kick <player> <reason> | Kick |
ban <player> <reason> <duration> | Ban, duration in seconds |
unban <steamid> | Lift a ban |
players | List who is connected |
save | Write the world to disk now |
shutdown | Clean stop, with a save |
day / night | Set the time of day |
Anything past that is a plugin framework. RocketMod is the long-standing one: it installs as a module in the server's Modules folder, and once it has started it creates a Rocket folder inside your instance with Rocket.config.xml, a Plugins folder and Permissions.config.xml. Plugins are DLLs dropped into Rocket/Plugins, and each generates its own configuration file on first load.
The thing that catches everyone with RocketMod is permissions. A plugin that loads correctly but whose commands do nothing is almost always a permissions problem: commands must be granted to a group in Permissions.config.xml before anyone but an admin can run them. Check that file before you conclude the plugin is broken. OpenMod is the more modern alternative and can run alongside RocketMod through an installer plugin, which is worth knowing if a plugin you want is only published for one of them.
Unturned servers on RE:NODE ship with RocketMod already in place, so the module is installed and the Rocket folder exists on first boot - you add plugins through SFTP or the file manager. There is no allow-list of permitted plugins; what you upload is what runs, which is also a reason to read a plugin's source before you give it your server. Commands.dat and RocketMod in detail goes further into both.
Whatever you install, keep the save. Player structures, vehicles and inventories live in the instance's save files, and there is no undo for a plugin that deletes them. Back up the instance folder on a schedule and restore one occasionally to prove it works - backups that actually restore exists because a backup nobody has restored is a hypothesis. A nightly restart is worth having too; restart schedules that help covers picking an interval.
Troubleshooting#
The server runs but nobody can find it in the list. No Game Server Login Token, or a banned one. Test by joining directly by IP; if that works, the token is the problem.
The server always loads PEI. The Map name is wrong or its workshop item did not download. Map names are internal names, and they are case-sensitive in practice.
Players get kicked to a red error screen on join. Missing workshop content. Usually a map's asset pack that is not in WorkshopDownloadConfig.json.
Config edits do nothing. Either the server was running when you saved them and overwrote them on shutdown, or you edited the wrong difficulty block for the Mode in Commands.dat.
Two servers on one machine fight over a port. Space Port values by two, not one. The game port is always the query port plus one.
A plugin loads but its commands are ignored. Permissions, in Rocket/Permissions.config.xml, nine times out of ten.
Memory climbs over weeks. Player-built structures. That is normal growth rather than a leak, and it is the usual reason a 2 GB server eventually wants 3 GB. Changing tier changes the limit on the server you already have, so the world stays where it is.
FAQ#
How much RAM does an Unturned server need?
2 GB is enough for a dozen players on an official map, and that is not a hedge - Unturned is one of the lightest survival games to host. Budget 4 GB if you are running a large community map with mods, and expect slow growth as players build.
Do I need my own Steam login token?
Yes, for any public server. Since build 3.21.31.0 a server without one is hidden from the internet server list. The token is created against app id 304930 on your own Steam account and goes in Commands.dat or the config file, not both.
Config.json or Config.txt - which one do I have?
Servers created on build 3.25.8.0 or later use Config.txt; older instances keep Config.json. The settings are the same and so is the structure. Edit whichever one is in your instance folder rather than creating the other.
Why do my loot settings have no effect?
Because the config has a separate block for each difficulty and the server only reads the one matching Mode in Commands.dat. Edit the block that matches, or change Mode.
Can players join without subscribing to my workshop maps?
They do not need to subscribe manually. The server sends the required item list on join and the client downloads it from Steam automatically - as long as every required id, including asset packs, is in WorkshopDownloadConfig.json.
Is RocketMod still the right choice?
It is still the most widely supported framework and most existing plugins target it, which is why it ships preinstalled here. OpenMod is newer and can run alongside it. Pick whichever the plugins you actually want are published for.




Comments
Completely anonymous: no account, no email, no cookie. We store the name you type, the text and the time - nothing else. Links are limited and markup is not rendered.