Nuclear Option

Games
Report Issue

Fly near-future aircraft with immersive physics on intense battlefields, facing land, air and sea threats. Wage war against AI or other players with an array of potent weapons. Wield tactical and strategic nuclear weapons, capable of annihilating anything in their path.

Contributors:
README

Nuclear Option

Steam Page

Fly near-future aircraft with immersive physics on intense battlefields, facing land, air and sea threats. Wage war against AI or other players with an array of potent weapons. Wield tactical and strategic nuclear weapons, capable of annihilating anything in their path.

Server Ports

Ports required to run the server, they can be changed.

Port default
Game 27015
Query 7777

Requirements of RAM and storage on a empty server.

Req Minimum Recommend
RAM 500MB 1.5GB
Storage 2.0GB 3.0GB
Docker Images (1)
Name Image
ghcr.io/ptero-eggs/steamcmd:debian ghcr.io/ptero-eggs/steamcmd:debian
Startup Command
export LD_LIBRARY_PATH="$(pwd)/linux64:$LD_LIBRARY_PATH"; ./NuclearOptionServer.x86_64
Variables (7)

Steam App ID

Steam App ID used for installation and updates. Rarely needs to be changed.

Environment:
SRCDS_APPID
Default:
3930080
User Viewable:
User Editable:
Rules:
required|string|in:3930080

Server Name

Name of the server

Environment:
SERVER_NAME
Default:
Pterodactyl-server
User Viewable:
User Editable:
Rules:
required|string|max:30

Max Players

Maximum number of players allowed

Environment:
MAX_PLAYERS
Default:
20
User Viewable:
User Editable:
Rules:
required|string

Auto Update

Disabling or enabling automated updates on boot

Environment:
AUTO_UPDATE
Default:
1
User Viewable:
User Editable:
Rules:
required|boolean

Modded Server

Modded server, true or false

Environment:
MODDED_SERVER
Default:
false
User Viewable:
User Editable:
Rules:
required|string

Server Password

The password used to join the server

Environment:
SERVER_PASSWORD
Default:
ChangeMe
User Viewable:
User Editable:
Rules:
nullable|string

Query Port

Environment:
QUERY_PORT
Default:
7777
User Viewable:
User Editable:
Rules:
required|string
Installation Script
Container: ghcr.io/ptero-eggs/installers:debian
Entrypoint: bash
#!/bin/bash
# steamcmd Base Installation Script

## just in case someone removed the defaults.
if [[ "${STEAM_USER}" == "" ]] || [[ "${STEAM_PASS}" == "" ]]; then
    echo -e "steam user is not set.\n"
    echo -e "Using anonymous user.\n"
    STEAM_USER=anonymous
    STEAM_PASS=""
    STEAM_AUTH=""
else
    echo -e "user set to ${STEAM_USER}"
fi

## download and install steamcmd
cd /tmp
mkdir -p /mnt/server/steamcmd
curl -sSL -o steamcmd.tar.gz https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xzvf steamcmd.tar.gz -C /mnt/server/steamcmd
mkdir -p /mnt/server/steamapps # Fix steamcmd disk write error when this folder is missing
cd /mnt/server/steamcmd

# SteamCMD fails otherwise for some reason, even running as root.
# This is changed at the end of the install process anyways.
chown -R root:root /mnt
export HOME=/mnt/server

## install game using steamcmd
./steamcmd.sh +force_install_dir /mnt/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s "-beta ${SRCDS_BETAID}" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s "-betapassword ${SRCDS_BETAPASS}" ) ${INSTALL_FLAGS} validate +quit

## set up 32 bit libraries
mkdir -p /mnt/server/.steam/sdk32
cp -v linux32/steamclient.so ../.steam/sdk32/steamclient.so

## set up 64 bit libraries
mkdir -p /mnt/server/.steam/sdk64
cp -v linux64/steamclient.so ../.steam/sdk64/steamclient.so


cat > /mnt/server/DedicatedServerConfig.json <<EOF
{
  "BanListPaths": [ "ban_list.txt" ],
  "MaxPlayers": 20,
  "MissionDirectory": "/home/steam/NuclearOption-Missions",
  "MissionRotation": [
    {
      "Key": { "Group": "BuiltIn", "Name": "Escalation" },
      "MaxTime": 7200
    },
    {
      "Key": { "Group": "BuiltIn", "Name": "Terminal Control" },
      "MaxTime": 7200
    }
  ],
  "ModdedServer": false,
  "NoPlayerStopTime": 30,
  "Password": "ChangeMe",
  "Port": { "IsOverride": true, "Value": ${SERVER_PORT} },
  "QueryPort": { "IsOverride": true, "Value": ${QUERY_PORT} },
  "RotationType": 0,
  "ServerName": "Pterodactyl-server"
}
EOF

echo "-----------------------------------------"
echo "Installation completed..."
echo "-----------------------------------------"