Unturned is the free, low-poly zombie-survival sandbox with a massive Workshop. A dedicated server with RocketMod plugins and Workshop content is cheap to run and endlessly moddable. This step-by-step guide shows you how to set up an Unturned server in minutes — no manual install, no command line.
Pick a plan sized for your Unturned community. We recommend about 2–4 GB of RAM; start smaller and upgrade in one click as you add players or mods. Unturned plans start at $3.99/mo.
Check out and your Unturned server provisions automatically in under 60 seconds, with console access right away — no manual install, no command line.
Once your Unturned server is online, share its address (IP and port) with your friends so they can join. Start, stop and restart it anytime from the control panel.
Your Unturned server supports RocketMod, Steam Workshop, Plugins, Config, FTP/SFTP. Install RocketMod plugins and Steam Workshop straight from the one-click installer, or upload your own from the control panel — then tweak settings in the visual config editor.
Enable scheduled automatic backups, set restart timers, and monitor CPU, RAM and player counts from the dashboard. Always-on DDoS protection and 24/7 support keep your Unturned server stable.
Ready to start? Deploy your Unturned server in under 60 seconds — 7-day money-back guarantee.
Every Unturned server occupies two consecutive UDP ports. With the defaults, the first handles server list queries and the second carries in-game traffic.
| Port | Protocol | Role |
|---|---|---|
| 27015 | UDP | Server list queries; the number you give to the Port command |
| 27016 | UDP | In-game traffic; taken implicitly as Port plus one |
The Port command takes only the lower number — the documentation says that setting a value "uses that value and plus one". That is why the recommended spacing for several instances on one machine is 27015 for the first server, 27017 for the second and 27019 for the third. Bind selects which internal IP the socket attaches to, and defaults to 0.0.0.0.
You can confirm the pair from the client: pressing the Clipboard Debug hotkey (PageDown by default) on a server's lobby screen copies public details, including these lines for a server using the defaults:
Connection Port: 27016
Query Port: 27015Since the 3.23.14.0 update, the documentation states that port forwarding is no longer necessary to make a server reachable over the Internet, though it is still required if you want players to join directly by IP address or domain name. Forwarding rules for that case use UDP.
Hosting is supported on Windows and Linux; the documentation states that macOS devices are not supported. Fetch the files with SteamCMD:
login anonymous
app_update 1110390
quitThey install under steamcmd/steamapps/common/U3DS — on Linux, commonly ~/.steam/steam/steamapps/common/U3DS or ~/Steam/steamapps/common/U3DS. Appending validate to the update line verifies file integrity and repairs corrupted files, and app_update 1110390 -beta public returns an install from a beta branch to public.
Start the server with the helper script in that folder. The name after the slash is the ServerID, which is also the name of the folder created under Servers/:
# Windows
ServerHelper.bat +InternetServer/MyServer
# Linux
./ServerHelper.sh +InternetServer/MyServerUse +InternetServer/ for a server intended for the Internet and +LanServer/ for a local-network one. The developer's own restart script skips the helper and calls the executable directly with Unity's batch flags: Unturned.exe -batchmode -nographics +InternetServer/MyServer.
The console prints Loading level: 100% once loading has finished and the files have been generated. Run Shutdown before editing the configuration, because most settings cannot be changed while the server is running. Updating later means shutting down first, then repeating the app_update line.
Two files carry most of the settings, both under U3DS/Servers/<ServerID>/:
Server/Commands.dat — startup commands, one per line; lines beginning with // are comments and are ignoredConfig.txt — difficulty and advanced options. Servers created before 3.25.8.0 have Config.json instead, which is converted at startup into a per-difficulty file such as Config_NormalDifficulty.txt; -UseLegacyJsonGameplayConfig keeps the older JSON formatName My Unturned Server
Map PEI
MaxPlayers 24
Mode Normal
Perspective Both
Owner 76561198000000000
CheatsName accepts 5 to 50 characters and defaults to Unturned. Map loads PEI unless you change it. Mode accepts Easy, Normal or Hard, and the wiki instructs that the difficulty set in the config file must match the difficulty the server is set to run on. Perspective accepts First, Third, Both or Vehicle. Owner takes the steamID64 of the server owner. Cheats allows the use of cheat commands such as Give. PvE disables player-versus-player combat, and Whitelisted makes the server joinable only by permitted players. Password uses only a SHA-1 hash, so the wiki advises against reusing a password from anywhere else.
Several launch options help while tuning: -LogGameplayConfig prints configuration overrides to the console, -GameplayConfigNoEmptyValues removes non-overridden options from the file, -NoLevelConfigOverrides prevents levels from overriding server configuration, and -GameplayConfigFile loads an alternative config file.
Internet-list visibility depends on a login token. Assign it as Login_Token in the Browser section of the server configuration, or with the GSLT command in Commands.dat or on the command line. With a token assigned, the Server Code also stays linked between sessions instead of changing on every restart.
Players can get in three ways:
CopyServerCode. Players enter it in the Connect Directly menu, and no port forwarding is needed. It does not work with the pre-joining server info screen, because that screen uses Steam's A2S protocol, which can only be queried by IP.Use_FakeIP to true in the server configuration, then run CopyFakeIP in the console. This also needs no forwarding, and with a login token set the server can still appear on the Internet server list. The address and port change after every restart, so a fixed domain name needs custom scripting, and Steam's built-in Favorites and History lists, which remember a server by IPv4 address plus port, will not work.A record pointing at the server's IPv4 address.BookmarkHost accepts either such a DNS entry or the URL of a custom web API that returns the address, and optionally the port, as plain text.
Workshop content is declared in WorkshopDownloadConfig.json in the server folder. Copy the File ID out of the Workshop URL — the value after ?id= — and list it under File_IDs, separating multiple IDs with commas:
"File_IDs":
[
1753134636,
1702240229
],During server startup, any mods you specify and their dependencies are installed and updated, and players automatically begin downloading them while connecting. Curated maps and official arena maps must be installed from the Workshop this way before Map can load one, and the wiki's command history records that Map is case-sensitive, so the level name has to match exactly.
Maps carry their own version numbers, which the server list uses to test compatibility before players connect. The server also watches the map it hosts: when it detects a change, it warns players in chat and shuts down after a timer.
When Workshop content misbehaves, the documented repair is to delete appworkshop_304930.acf from U3DS/Servers/<ServerID>/Workshop/Steam/ and the 304930 folder from .../Workshop/Steam/content/, then start the server again so the files are re-downloaded. For unclear Workshop errors, Steam's own workshop_log.txt — in the server's logs folder on a SteamCMD install — describes recent errors near the bottom. The -NoWorkshopSubscriptions option disables loading of all Steam Workshop subscriptions, which the documentation notes can help when troubleshooting.
Two frameworks are documented. Following the resignation of Rocket's original community team, Smartly Dressed Games (SDG) maintains a fork of Rocket called the Legally Distinct Missile (LDM); the dedicated server includes the latest version, so no external download is necessary. Install it by copying the Rocket.Unturned module from the game's Extras directory into its Modules directory.
OpenMod is described as a spiritual successor to Rocket, developed by one of Rocket's original maintainers; it keeps compatibility with existing Rocket plugins by integrating with RocketMod and LDM. It has two install paths:
/Rocket/Plugins folder, restart the server, then run /openmod install and follow the prompts.OpenMod.Unturned folder into the Modules directory. The first startup takes longer, because OpenMod downloads its core components at that point.OpenMod can be installed side by side with RocketMod.
To check what loaded, run the Modules command, which lists the loaded modules in the server console. -ModulesPath searches for .dll and .module files in a given directory instead of Unturned/Modules, and -LogAssemblyResolve logs failures to resolve an assembly, which the documentation describes as useful when working with non-Rocket plugins.
Administrator privileges come from the Owner command, the runtime Admin command, or Adminlist.dat. In chat, administrators prefix commands with @ or /.
There is no built-in autosave. Save forces a save while the server is running, and Shutdown saves the state, disconnects clients and closes the server. SDG recommends restarting once every 24 hours, because much of the game's older code uses single-precision floating-point time. The gameplay config can automate that with Enable_Scheduled_Shutdown, Scheduled_Shutdown_Time (default 1:30 am) and Scheduled_Shutdown_Warnings, while Enable_Update_Shutdown with Update_Steam_Beta_Name (default public) shuts the server down when an update lands.
Not on the server list. Check that a login token is configured, then whether players outside your network can connect directly. SDG notes that the Steam master server is a "black box", that empty servers might not be returned unless the browser filters for them, and that servers are only visible to players running the same version of the game.
"Client and server disagree on asset [...] configuration." Files are corrupted, locally modified, or modified on the server. If only one player is affected, that client should verify game files through Steam; if several are, the server's Workshop install needs repairing.
A mod works on Windows but not Linux. This is almost always filename case: Windows is case-insensitive, Linux is not, so a game looking for MasterBundle.dat finds masterbundle.dat on Windows but not on Linux.
For lag, debug reports ticks per second, where 100% means the simulation is keeping up with real time, and logmemoryusage reports how many entities are active.