Difference between revisions of "Server Hosting/Body"

From Holdfast: Nations At War
Jump to navigation Jump to search
(Created page with "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...")
(No difference)

Revision as of 08:49, 19 September 2025

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:

  1. Download Holdfast: Nations At War - Dedicated Server from Steam (Tools section).
  2. Change the map rotation file (serverconfig_default.txt) and add mods or change maps.
  3. Launch the server using LaunchServer.ps1 (Windows) or LaunchServer.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.

  1. Open your Steam Library.
  2. Choose **Tools** in the library filter (or search for holdfast and tick **Tools**).
  3. Install **Holdfast: Nations At War - Dedicated Server**.
  4. After install, right-click the app → **Manage** → **Browse local files**.
Steam application to download
Browse local files in Steam

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

Holdfast merged server & game files folder structure

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"