Server Hosting/Body
The following documentation details how to host a public or private game server for Holdfast: Nations At War. The game offers an anonymous dedicated server for both Linux and Windows.
Quick Start Guide
Quick start guide for local testing:
- Download
Holdfast: Nations At War - Dedicated Serverfrom Steam (Toolssection). - Change the map rotation file (
serverconfig_default.txt) and add mods or change maps. - Launch the server using
LaunchServer.ps1(Windows) orLaunchServer.sh(Linux).
- In Holdfast’s server browser click **Join Custom Server**, then click the top **Connect** (leave localhost; change the port if required).
- If you want other players to connect, you’ll likely need to set up port forwarding on your router and open the ports in your local firewall.
Warning: Game updates will overwrite the changes to the LaunchServer script and serverconfig_default.txt. To prevent this, create copies of both files and change the arguments of your custom LaunchServer script to point to your custom serverconfig file.
Windows
Obtaining the game files
Download using Steam Client
The easiest way is through Steam using the Holdfast: Nations At War - Dedicated Server app in your library.
- Open your Steam Library.
- Choose **Tools** in the library filter (or search for
holdfastand tick **Tools**). - Install **Holdfast: Nations At War - Dedicated Server**.
- After install, right-click the app → **Manage** → **Browse local files**.
Download using SteamCMD
The Steam Console Client or SteamCMD is a command-line Steam client used to install/update dedicated servers.
Download and set up SteamCMD (see Valve’s guide). Then run:
steamcmd +login [LOGINNAME] [PASSWORD] +force_install_dir "C:\holdfastserver" +app_update 589290 +quit
Notes:
- +anonymous will fail here; the account must own the game to download these files.
- You may be prompted for a two-factor code.
- If the server stops working, run with +app_update 589290 validate to verify files.
Basic Configuration & Starting the Server
The server files include example configs. See Server Configuration for all options.
Duplicate the defaults:
serverconfig_default.txt -> serverconfig_newserver.txt LaunchServer.ps1 -> LaunchServer_newserver.ps1
Edit the new config:
### Server & Steam Ports (Both ports must be unique per server instance). server_port 20100 steam_query_port 27000
Notes:
- Open the corresponding UDP ports in your firewall.
- Properly configured servers respond to A2S queries on steam_query_port (map, player count, etc.). Official servers do not respond to A2S; community servers do.
Basic variables:
server_name My Server server_region europe # server_admin_password defaultAdminPWReplace #server_password mypassword
Update the launch script to use your config:
# LaunchServer_newserver.ps1 $args = '-s -r --serverConfigFilePath "serverconfig_newserver.txt" --outputLog "logs_output\outputlog_newserver.txt" --logArchivesDirectory "logs_archive" --framerate 120 --serverheadless --adminCommandLogFilePath "logs_adminactions\adminlog_newserver.txt" --chatLogFilePath "logs_chat\chatlog_newserver.txt" --playersLogFilePath "logs_playerlogin\playerlogin_newserver.txt" --scoreboardLogFilePath "logs_score\scorelog_newserver.txt"' Start-Process -FilePath "vapuriloadtester.exe" -Verb RunAs -ArgumentList $args
Run LaunchServer_newserver.ps1 to start the server.
Linux
Docker
If you use Docker:
docker run -d --net=host --name=holdfastnaw-dedicated cm2network/holdfastnaw
The container auto-updates on start—restart it after a game update.
Config path: /home/steam/holdfastnaw-dedicated/
Another instance (adjust ports):
docker run -d --net=host -e SERVER_PORT=20100 -e STEAM_QUERY_PORT=27000 --name=holdfastnaw-dedicated cm2network/holdfastnaw
Docker Hub: https://hub.docker.com/r/cm2network/holdfastnaw/
Manual Setup
Downloading using SteamCMD
Install SteamCMD, then:
steamcmd.sh +login anonymous +force_install_dir /opt/holdfastserver +app_update 1424230 +quit
Notes:
- To verify files later: +app_update 1424230 validate.
Basic Configuration & Starting the Server (Linux)
Duplicate the default config:
cd /opt/holdfastserver cp serverconfig_default.txt serverconfig_myserver.txt
Configure ports:
### Server & Steam Ports (Both ports must be unique per server instance). server_port 20100 steam_query_port 27000
Notes:
- Open the UDP ports in your firewall.
- Properly configured servers respond to A2S on steam_query_port.
Basic variables:
server_name My Server server_region europe # server_admin_password defaultAdminPWReplace #server_password mypassword
Start the server:
"./Holdfast NaW" -startserver \ -batchmode \ -nographics \ -screen-width 640 \ -screen-height 480 \ -screen-quality "Fastest" \ -framerate "120" \ --serverheadless \ -serverConfigFilePath "serverconfig_myserver.txt" \ -logFile "logs_output/outputlog_server.txt" \ -logArchivesDirectory "logs_archive/" \ -p "20100"


