Short answer. You can host a Nuclear Option server yourself for free: install the dedicated server (Steam app 3930080) with SteamCMD using an anonymous login, run it once to create DedicatedServerConfig.json, set your server name and password, and open UDP ports 7777 (game) and 7778 (query). Or rent a Nuclear Option server and skip the networking.
The server runs on Linux and Windows. It defaults to 16 players, and Shockfront's guide says the in-game server list shows a performance warning above 16.
Players find your server by name in the in-game server list.
Checked on 5 November 2026, accurate for game version 0.34.6 (30 October 2026). Nuclear Option is in Early Access and is patched often.
This guide uses Shockfront Studios' own dedicated server guide and what we run on our own Nuclear Option servers. To go straight to the rental route, see Option 2.
What you need
Operating system: 64-bit Linux or Windows. The server ships as NuclearOptionServer.x86_64 with RunServer.sh on Linux, and NuclearOptionServer.exe with RunServer.bat on Windows.
Hardware: Shockfront does not publish server requirements (the Steam page lists only what the game itself needs).
Network: UDP 7777 for the game and UDP 7778 for the Steam query, reachable from the internet. Both can be changed in the config.
Steam account: not needed to download the server. The install command uses +login anonymous.
The game: every player needs Nuclear Option on Steam, which is a Windows game.
The server software is free. You pay for the machine, power and bandwidth, not the software.
Option 1: host it yourself
This works on a spare PC, a home server or a cloud virtual machine. The SteamCMD steps come from Valve's SteamCMD page and the server steps from Shockfront's guide.
Linux (Debian or Ubuntu)
Install the library SteamCMD needs.
sudo apt-get install lib32gcc-s1
Create a steam user. Valve warns against running SteamCMD as root, and Shockfront's example paths assume a user called steam.
The first line lets a fresh SteamCMD update itself before the real download. Our install script does the same, because an app_update issued while SteamCMD restarts can fail with "Missing configuration" and still look finished. Check that /home/steam/NuclearOptionServer/steamapps/appmanifest_3930080.acf exists. If it does not, run the download again.
Start the server once.
cd ~/NuclearOptionServer
chmod +x NuclearOptionServer.x86_64 RunServer.sh
./RunServer.sh
The first start creates DedicatedServerConfig.json with default values. With the default run arguments, logs go to logs/server-<date and time>.log. This line usually means the server started correctly:
[DedicatedServerManager] Waiting for Players before loading next map
Stop the server, then edit DedicatedServerConfig.json in the same folder. The keys most people change:
An empty Password means no password. A port Value is only used when IsOverride is true. Otherwise the server keeps 7777 and 7778.
Open the ports. Allow UDP 7777 and UDP 7778 on the machine's firewall (with ufw: sudo ufw allow 7777/udp and sudo ufw allow 7778/udp), then forward both as UDP on your router to this machine.
Start the server again with ./RunServer.sh. To keep it running and updated after you log out, Shockfront's Nuclear-Option-Server-Tools repository has an AutoUpdater with systemd units that start the server and check Steam for new server builds. Edit the paths in its unit files first: they expect SteamCMD at /usr/games/steamcmd.
Check it from outside. Query your public IP and query port with a Steam server query tool, or look for your server name in the in-game server list.
Windows
Download SteamCMD from https://client-update.steamstatic.com/installer/steamcmd.zip and extract it to a folder such as C:\steamcmd.
In C:\NuclearOptionServer, run RunServer.bat, or start it by hand with NuclearOptionServer.exe -logFile server.log -limitframerate 30.
Stop it and edit DedicatedServerConfig.json as in the Linux step 6. On Windows, write MissionDirectory as a full path with forward slashes, for example "C:/Games/NuclearOption-Missions".
Allow UDP 7777 and 7778 inbound in Windows Firewall and forward both on your router.
Other settings in DedicatedServerConfig.json
Hidden: true keeps the server out of the public server list.
ModdedServer: set it to true if you run server-side mods that change gameplay.
BanListPaths: files of SteamIDs that cannot join. The default is ban_list.txt next to the server.
MissionRotation: the missions the server cycles through. Each entry has a Key (Group and Name) and a MaxTime in seconds. The default rotation is the built-in Escalation and Terminal Control, two hours each.
RotationType: 0 plays the rotation in order, 1 picks at random with repeats allowed, 2 shuffles and plays every mission before shuffling again.
VoteKick: on by default. A player kicked by vote can rejoin when the next mission starts. AutoBanThreshold (default 3) is the number of times a player can be vote-kicked before an automatic, permanent ban.
DisableErrorKick: the server kicks players who cause errors unless this is true.
Custom and Workshop missions
Workshop missions: add an entry with "Group": "Workshop" and the Workshop item ID as Name. The server downloads it on start into steamapps/workshop/content/2168680/ and keeps it updated.
Your own missions: use "Group": "User". The server loads <MissionDirectory>/<name>/<name>.json, so the folder name must match the JSON file name exactly, and MissionDirectory must be a full path.
Remote commands
In our tests the server did not respond to commands typed into its console. Shockfront offers remote commands over TCP instead: start the server with -ServerRemoteCommands (port 7779 unless you give one) and send commands such as send-chat-message or reload-config in the custom format their ServerCommands page describes. The same repository has a web-based ServerControlPanel.
Option 2: host it on PlayNHost
Renting removes the firewall, port forwarding and update routine. The ports and the config file are set up for you.
Pick a plan. Open the Nuclear Option server hosting page and compare the plans (WINGMAN, SQUADRON and INTERCEPTOR at the time of writing, for 12, 16 and 20 players). Press Create Server on WINGMAN or SQUADRON, or Customize Plan on INTERCEPTOR, and finish the order. Prices change, so check them on that page.
Wait for the install. You get a "server ready" email and the server appears at panel.playnhost.com. On the Console tab, the panel counts the server as running when it prints [DedicatedServerManager] Waiting for Players before loading next map.
Open Settings, then Game Settings. These fields are written into DedicatedServerConfig.json each time the server starts:
Server Name: the name in the server list, up to 30 characters.
Server Password: the join password. Every new server gets its own random one instead of a shared default. Clear the field if you want anyone to join.
Max Players: starts at your plan's player count.
Modded Server: set it to true only if you run server-side mods that may affect gameplay. The setting itself does not install any mod.
Query Port: the server's second port, used by the server list. It is set when the server is created, so leave it as it is.
Auto Update sits under Show advanced: it is on by default, and the server then checks Steam for a new build every time it starts.
Restart. When the panel shows "Saved. The server must restart before these take effect.", press Restart now and wait for the ready line.
Add Workshop missions (optional). Open the Workshop tab and add mission IDs to Workshop missions. The panel checks each ID against Steam, and the server downloads the missions the next time it starts, so press Restart to apply. Liveries are not offered there: they are cosmetic and handled by each player's game.
Join. Find your server name in the in-game server list and enter the Server Password, unless you cleared it.
What our setup does for you
Ports and paths. At every start the panel writes your game port and Query Port into Port and QueryPort, and sets MissionDirectory to /home/container/NuclearOption-Missions. It also writes ServerName, Password, MaxPlayers and ModdedServer from Game Settings. Hand edits to any of these keys in the file are replaced at the next start, so change them in Game Settings.
Mission rotation. Before each start, our startup script rebuilds MissionRotation: Escalation and Terminal Control first, then each mission from Workshop missions, two hours each. The built-in missions always stay, and hand edits to MissionRotation do not survive a restart. Other keys, such as RotationType, Hidden, VoteKick and BanListPaths, are not touched by the panel. Edit them, or add them if they are missing, in DedicatedServerConfig.json under Files. Stop the server first, then start it again.
Console. The Console tab shows the server log. Typed commands had no effect in our tests, and our start line does not turn on remote commands.
Backups. If your plan includes backups, take one from Backups before changing the config by hand.
Self-hosting or renting: an honest comparison
Cost. Self-hosted: the software is free, and you pay for hardware, power and bandwidth, or a cloud virtual machine. Rented: a monthly fee set by plan. See the current plans.
Availability. Self-hosted: as reliable as your machine, power and home internet, and it has to stay on when your friends play. Rented: runs on the host's hardware, not your PC.
Network exposure. Self-hosted: players connect to your public IP, and you look after the firewall and router. Rented: your home IP is not involved.
Skill needed. Self-hosted: command line, port forwarding, JSON editing, and an update routine. Very doable, and a good way to learn. Rented: a web panel with form fields.
Updates. Self-hosted: stop, run the SteamCMD command again, start, or set up Shockfront's AutoUpdater. Rented: Auto Update installs a new build when the server starts, so press Restart after a patch.
Self-hosting suits you if a machine already runs all day and you are comfortable with networking. Renting suits you if you would rather not look after hardware.
Common problems and fixes
The server does not show in the server list
Cause: the query port is not reachable from outside, or Hidden is true.
Fix: open and forward UDP 7778 (or your QueryPort) as well as the game port, and test with a Steam server query tool. Shockfront's guide also points to the game's own log on the player's PC, %USERPROFILE%\AppData\LocalLow\Shockfront\NuclearOption\Player.log: a line starting [Warn] Request Server List, fail index with your IP and query port means the query failed.
You cannot see your own server from the same network
Cause: NAT reflection is off on your router. Not every router has the option.
Fix: turn it on if your router has it, or ask a friend outside your network to check the list.
The server ignores your custom port
Cause:IsOverride is still false, so the server uses 7777 and 7778.
Fix: set IsOverride to true for Port and QueryPort, then restart.
A custom mission does not load
Cause: the folder name and the JSON file name differ, or MissionDirectory is not a full path.
Fix: use <MissionDirectory>/test1/test1.json for a mission named test1. For Workshop missions, use the Workshop group so the server downloads them itself.
Your changes to the config file disappear (PlayNHost)
Cause: the key is one the panel writes at every start, or it is MissionRotation, which our startup script rebuilds.
Fix: change the name, password, player count and ports in Game Settings, and missions in Workshop missions.
Players see a performance warning next to your server
Cause:MaxPlayers is above 16. Shockfront's guide says the server list warns players in that case.
Fix: Shockfront allows more than 16 but asks you to make sure your hardware can handle the extra load. Lower MaxPlayers to 16 if you want the warning gone.
FAQ
Can I host a Nuclear Option server for free?
Yes. The dedicated server is free on Steam and downloads with an anonymous login. You still pay for the machine, power and internet, and it must stay on while people play.
How many players can join?
The default is 16. You can set more, but players then see a performance warning in the server list. Our plans are 12, 16 and 20 players.
Do I need to own the game to run the server?
Not to install it. Players need the game to join.
Which ports does a Nuclear Option server use?
UDP 7777 for the game and UDP 7778 for the query, both changeable in DedicatedServerConfig.json. Remote commands, if you turn them on, use TCP 7779 by default.
Can I add Steam Workshop missions?
Yes. Add their Workshop IDs to MissionRotation under the Workshop group, or on PlayNHost paste them into Workshop missions on the Workshop tab. The server downloads them itself.
We use cookies to keep the site working, to understand how it is used, and to measure our marketing. You can accept all, accept essential cookies only, or choose per category.We use cookies to keep the site working, to understand how it is used, and to measure our marketing. They are on by default here. You can switch off anything you do not want.Read our privacy policy