How to Make a Nuclear Option Dedicated Server (2026 Guide)

Run your own Nuclear Option dedicated server on Windows or Linux. SteamCMD app 3930080, ports 7777 and 7778, DedicatedServerConfig.json and how players join.

Updated Oct 1, 2026 · 6 min read

On this page

Shockfront Studios released an official dedicated server for Nuclear Option with update 0.31. It runs a mission rotation on its own, lists itself in the in game server list and keeps going when the person who started it leaves. The server is a free download, runs natively on Windows and Linux, and is light enough for a spare PC or a small VPS. This guide walks through the whole setup, from SteamCMD to port forwarding.

Short on time? A hosted Nuclear Option server skips SteamCMD, the config file and port forwarding, and our quick start for hosting a Nuclear Option server shows every step.

What you need

  • A machine that stays on while people play, running Windows or 64 bit Linux.
  • Around 1 GB of RAM free for the server on its own, and more as missions and player counts grow. See Nuclear Option server requirements.
  • A CPU with good single core speed. Every aircraft, vehicle and missile in the mission is simulated on the server.
  • About 1 GB of disk space for the server files, plus room for Workshop missions.
  • Access to your router for port forwarding.

Step 1: Install SteamCMD

  • Windows: download SteamCMD from Valve, extract it to a folder such as C:\steamcmd and run steamcmd.exe once so it updates itself.
  • Linux: install the steamcmd package for your distribution or use Valve's tarball. Shockfront's guide suggests running it as a separate user called steam.

If you own the game, you can also install the server through the Steam client: switch your library filter to include Tools and look for the Nuclear Option dedicated server. Once it has downloaded, the Steam client does not need to stay open.

Step 2: Download the server

The dedicated server is Steam app 3930080 and downloads with an anonymous login. You do not need to own the game on the server machine.

steamcmd +force_install_dir /home/steam/NuclearOptionServer +login anonymous +app_update 3930080 validate +quit

On Windows use a path like C:\NuclearOptionServer. Run the same command after every game update, because players on a newer build cannot join an older server. That is the upkeep a hosted server handles for you.

Step 3: Start it once

The install folder comes with a start script for each platform.

Linux:

cd /home/steam/NuclearOptionServer
chmod +x NuclearOptionServer.x86_64 RunServer.sh
./RunServer.sh

RunServer.sh sets LD_LIBRARY_PATH to the linux64 folder that Steam needs, creates a logs folder and starts the server with -logFile ./logs/server-<date>.log -limitframerate 60.

Windows: run RunServer.bat, or start it by hand:

NuclearOptionServer.exe -logFile server.log -limitframerate 30

On first start the server writes DedicatedServerConfig.json with default values into the folder you started it from. When it is running correctly, the log shows:

[DedicatedServerManager] Waiting for Players before loading next map

That line means the server has logged on to Steam and is waiting. It does not load a mission until the first player joins, which keeps an empty server light. Stop the server before you edit the config.

Step 4: Edit DedicatedServerConfig.json

Open DedicatedServerConfig.json in a text editor. The settings most people change:

{
    "ServerName": "My Squadron",
    "Password": "",
    "MaxPlayers": 16,
    "MissionDirectory": "/home/steam/NuclearOption-Missions",
    "Port": { "IsOverride": false, "Value": 0 },
    "QueryPort": { "IsOverride": false, "Value": 0 },
    "RotationType": 0,
    "MissionRotation": [
        { "Key": { "Group": "BuiltIn", "Name": "Escalation" }, "MaxTime": 7200.0 },
        { "Key": { "Group": "BuiltIn", "Name": "Terminal Control" }, "MaxTime": 7200.0 }
    ]
}
  • ServerName: the name in the server list.
  • Password: an empty string means anyone can join.
  • MaxPlayers: over 16 shows players a performance warning in the server list.
  • MissionDirectory: a full path to the folder for your own missions.
  • MissionRotation: the missions to cycle through, each with a MaxTime in seconds.

The file has more keys for ban lists, vote kicks and timings. Every one of them is covered in DedicatedServerConfig.json explained, and rotations, co-op missions and Workshop missions have their own guide: how to set up a Nuclear Option mission rotation. JSON is strict, so one missing comma stops the server from loading the file.

To keep several configs, start the server with -DedicatedServer <path to json>. On Linux add it to the line in RunServer.sh.

Step 5: Open the ports

The server uses two UDP ports:

Port Protocol Used for
7777 UDP Game traffic
7778 UDP Steam query, how the server list finds you

Forward both on your router to the server's local IP and allow the server through your firewall. To use other ports, set IsOverride to true and the new number in Value for Port and QueryPort. Without IsOverride, the server ignores Value and uses the defaults.

Our port forwarding guide covers the router side. If your internet provider uses CGNAT, port forwarding will not work at all and a hosted server is the way around it.

Step 6: Turn on remote commands (optional)

Admin actions like kicking, banning, chat messages and changing the next mission go through remote commands. Start the server with:

-ServerRemoteCommands 7779

The port is optional and defaults to 7779. The server only listens on 127.0.0.1, so commands must come from the same machine. The format is a small binary TCP protocol, not a text console, so you need a tool: Shockfront's Nuclear Option Server Tools repository on GitHub has a Python control panel and an update checker that use it. The full list of commands is in Nuclear Option server commands.

Step 7: How players join

  1. Launch Nuclear Option and open Multiplayer.
  2. Find your server's name in the server list and join it.
  3. Enter the password if you set one.

A new server can take a minute or two to register with Steam. If it never shows up, check that UDP 7778 is forwarded, that Hidden is false in the config, and see Nuclear Option server not showing up. If you play on the same network as the server and cannot see it while friends can, your router probably lacks NAT reflection, which Shockfront calls out in its own guide.

Keeping it updated on Linux

Shockfront's example systemd service runs the SteamCMD update before every start:

ExecStartPre=/usr/games/steamcmd +force_install_dir /home/steam/NuclearOptionServer +login anonymous +app_update 3930080 validate +quit
ExecStart=/home/steam/NuclearOptionServer/RunServer.sh
Restart=always

Paired with a timer that checks for new builds, a restart brings the server up to date after each patch.

Common problems

  • Server starts but is not in the list: UDP 7778 is closed, Hidden is true, or Steam has not registered it yet.
  • Changes to the config do nothing: the server reads DedicatedServerConfig.json from the folder it was started in first. Make sure you edited that copy, or point at your file with -DedicatedServer.
  • Port changes ignored: IsOverride is still false.
  • Custom mission will not load: the folder name and the .json file name inside it must match exactly.
  • Players get "Invalid version": run the SteamCMD update and restart.

The easy way

Running your own server is a good project, but the upkeep never stops: a machine left on, two UDP ports open on your router, your home IP shared with every player, a SteamCMD update after every patch, and a TCP tool just to kick someone.

On GamezServers, plans start at 7.99 USD a month and the server is online a few minutes after you pay. Missions, password and vote kick are menus, the remote commands are buttons in the panel, and the server updates itself on every restart. See Nuclear Option server hosting for plans.

Skip the setup. Your own Nuclear Option server.

$3.99USD first month

Then $7.99/mo. Just trying it? $2.00 for 3 days

Keep reading