Dedicated server guide
Natural Selection 2
Manage ns2server with AlphaGSM. Choose a runtime supported by the recorded module capabilities.
Not recorded in the support snapshot · Support evidence: 2026-10-16.
Anonymous Workshop Process and Docker load passed for public dedicated-server content. Mod installation explains add, apply, and cleanup.
Build setup commandsRuntime support is unknown in this snapshot; review the game guide.
Port numbers and protocols are unknown in this snapshot; review the game guide and configuration.
Anonymous Steam Workshop content for this module passed both process and Docker load. After setup, record an item with mod add workshop using a numeric ID or Steam Workshop URL, then run mod apply.
Backup hook support is unknown in this snapshot; review the game guide for backup and restore procedures.
Choose a supported runtime
Linux and Docker quickstart
This guide has no recorded support entry. Review the upstream guide and current support notes before attempting setup.
Use the upstream guide and support notes to review this module’s requirements before attempting installation or launch.
This guide covers the ns2server module in AlphaGSM.
The checked-in Natural Selection 2 lifecycle is wired for both process and
Docker runtimes on the documented Ubuntu 24.04 Linux baseline. Its corrected
launch/A2S contract is pending replacement GitHub validation, so no new
PASSED tracker result is recorded for this change.
Requirements
- Process runtime:
screen - Docker runtime: Docker and the shared
steamcmd-linuxruntime image - SteamCMD runtime libraries (
lib32gcc-s1,lib32stdc++6) - Python packages from
requirements.txt
Quick Start
Create the server:
alphagsm myns2 create ns2server
Run setup:
alphagsm myns2 setup
Start it:
alphagsm myns2 start
Check it:
alphagsm myns2 status
alphagsm myns2 query
alphagsm myns2 info
Stop it:
alphagsm myns2 stop
Setup Details
Setup configures:
- the game port (default
27015) - the install directory
- SteamCMD downloads the server files
- a per-instance config directory at
<install_dir>/<server_name>/ - a workshop storage directory at
<install_dir>/<server_name>/Workshop - a managed log directory at
<install_dir>/logs - managed claims for game UDP,
game + 1UDP, web-admin TCP, and mod-server TCP
Useful Commands
alphagsm myns2 update
alphagsm myns2 backup
Notes
- Module name:
ns2server - Game: Natural Selection 2
- Engine: Spark
- SteamCMD App ID:
4940 - Executable:
<install_dir>/x64/server_linux - Default map:
ns2_summit - Process and Docker launch identical game argv as
./x64/server_linuxfrom the install root, with relative config, log, and workshop paths - AlphaGSM probes exact runtime-resolved A2S on
game port + 1 - Web admin is enabled by default on
httpport8080 - Mod server is enabled by default on
modserverport27031 - Current correction status: replacement GitHub validation pending
Server variables
After create ns2server, inspect or change these with set:
alphagsm myserver set --list
alphagsm myserver set KEY --describe
alphagsm myserver set KEY VALUE
| Key | Aliases | Type | What it does |
|---|---|---|---|
dir |
— | string | Install directory for the server. |
exe_name |
— | string | Server executable filename. |
httppassword |
— | string | Web admin password. |
httpport |
— | integer | Web admin port. |
httpuser |
— | string | Web admin username. |
maxplayers |
users | integer | Maximum allowed players. |
maxspectators |
— | integer | Maximum allowed spectators. |
modserveraddress |
— | string | Optional owned local interface for the native mod download web server. |
modserverport |
— | integer | Mod server port. |
port |
gameport | integer | Primary gameplay port. |
servername |
hostname, name | string | The advertised server name. |
startmap |
map, gamemap, level, world | string | Startup map. |
Developer Notes
Run File
- Executable:
x64/server_linux - Location:
<install_dir>/x64/server_linux - Working directory:
<install_dir> - Launch path:
./x64/server_linux - Engine: Spark
- SteamCMD App ID:
4940
Server Configuration
- Config path:
<install_dir>/<server_name>/ - Workshop storage:
<install_dir>/<server_name>/Workshop - Log directory:
<install_dir>/logs - Runtime argv paths:
./<server_name>,./logs, and./<server_name>/Workshop - Key settings:
port— Game port (default:27015)httpport— Web admin port (default:8080)webdomain— Optional web admin bind address (engine default:localhost)modserverport— Mod server port (default:27031)maxplayers— Maximum players (default:20)maxspectators— Maximum spectators (default:5)startmap— Starting map (default:ns2_summit)
Maps and Mods
- Map selection: via
startmap - Mod directory:
<install_dir>/<server_name>/Workshop - Workshop support: native mod activation through hexadecimal IDs in MapCycle.json.
Native Workshop multiplayer content
alphagsm myns2 mod add workshop 129599221
alphagsm myns2 mod add workshop-collection YOUR_COLLECTION_ID
alphagsm myns2 mod apply
alphagsm myns2 start
Official Steam Community item and collection URLs work too. AlphaGSM validates
consumer AppID 4920, expands collections, and merges hexadecimal mod IDs into
<install_dir>/<server_name>/MapCycle.json. The same native IDs are passed with
-mods, and NS2 downloads and mounts the content itself. No Steam account or
Workshop API key is supplied. Apply while stopped; prestart also reconciles the
managed list unless mods.autoapply is false.
Existing map rotations, settings, operator mod IDs and other JSON fields remain.
mod cleanup removes unchanged owned mod IDs; it retains operator edits and
engine-managed Workshop caches. Symlinks, invalid JSON and unsafe native IDs fail
before a write. Native storage stays under the per-server install directory,
including server names containing hyphens.
The native mod file server can need an explicit local interface behind NAT:
alphagsm myns2 set modserveraddress YOUR_OWNED_LAN_IP. Its native port is
modserverport; the public IP is not necessarily a bindable local address.
The validation uses loopback for this local-only download endpoint; remote-client
content delivery has not been verified.
Web admin also listens on localhost by default. webdomain accepts an owned
local interface IP; Spark rejects the wildcard 0.0.0.0. The Docker Workshop
check reads the same authenticated native API on loopback inside AlphaGSM's
managed container, using its installed Python. It keeps admin on loopback and
still requires exact native map origin, map-change execution and external A2S.
The opt-in check downloads public ns2_Jambi,
starts on a stock map, waits for the real engine web API, requests the custom map
through web admin, and requires both custom-map A2S and Server.GetMapModId
attribution through getmaplist. File existence alone cannot satisfy it.
The native Workshop process and Docker lifecycles passed in GitHub CI run
38655040006 on 2026-10-15, including the Docker loopback API transport.
ALPHAGSM_WORK_DIR=/path/on/large/disk \
ALPHAGSM_RUN_INTEGRATION=1 ALPHAGSM_RUN_STEAMCMD=1 \
ALPHAGSM_RUN_NS2SERVER_WORKSHOP=1 \
python3 -m pytest tests/integration_tests/test_ns2server.py -k workshop
ALPHAGSM_WORK_DIR=/path/on/large/disk NS2_WORKSHOP_ITEM=129599221 \
make smoke-test SMOKE_TEST=run_ns2server.sh
Collection overrides use ALPHAGSM_NS2SERVER_WORKSHOP_COLLECTION, with
ALPHAGSM_NS2SERVER_WORKSHOP_LOAD_ITEM and ALPHAGSM_NS2SERVER_WORKSHOP_MAP selecting
the map to exercise. Smoke uses corresponding NS2_WORKSHOP_* variables. Keep
web-admin credentials private and configure your own password before public use.
Share your server
Sector Alpha server directory
When your server is ready, you can publish its connection details and community information on Sector Alpha. Review your listing and keep the information current.
Find a community
Browse the directory for game servers and their published connection details.
Browse server directoryFrequently asked questions
What support evidence is recorded for Natural Selection 2?
Not recorded in the support snapshot. This guide has no recorded support entry. Review the upstream guide and current support notes before attempting setup.
Which runtimes can run Natural Selection 2?
Runtime support is unknown in this snapshot; review the game guide.
Which ports does Natural Selection 2 use?
Port numbers and protocols are unknown in this snapshot; review the game guide and configuration.
Can I add mods to Natural Selection 2?
Anonymous Steam Workshop content for this module passed both process and Docker load. After setup, record an item with mod add workshop using a numeric ID or Steam Workshop URL, then run mod apply.
How should I back up Natural Selection 2?
Backup hook support is unknown in this snapshot; review the game guide for backup and restore procedures.
Source and support evidence
This guide mirrors AlphaGSM’s upstream documentation at 32cef5ba9e03053c8e461fffa0ba133b160b528d. Commands and prerequisites can change. Check current support notes before installation.