Server Install Instructions

The objective of this guide is to explain how to set up a server for Operation: Harsh Doorstop (O:HD) on a dedicated server computer (i.e. you are renting a server box that you are most likely using a program like Remote Desktop to access). If you are using a server hosting company then these instructions will likely not be relevant to you (consult with their knowledgebase or contact them directly if you have questions or issues there).

***Please note**, these are basic server setup instructions covering the bare essentials to get your server up and running on day 1. We will continue to expand upon these instructions over time with more detail and properly thorough instructions on how to use everything. If there is something that you notice is missing from this guide, don’t worry we will update the guide and add it in later.*

## Installation

### Setup SteamCMD

There is already plenty of good information on how to set SteamCMD up, but chances are if you are reading this guide you already know how to use it. If you don’t, you should check out Valve’s official resource for it to learn how to properly set this up and get started downloading your server files.

On a side note, we also recommend downloading Notepad++ for opening and altering any text files for servers you may want to run.

### Download the Operation: Harsh Doorstop Server Files via SteamCMD

**AppID:** 950900
**SteamDB Page:** https://steamdb.info/app/950900/

Use SteamCMD to download the server files using the AppID above, and place them in the directory you want them to go on your machine.

Once you have the files in place, **launch the server one time in order to generate the remaining files.**

***P.S.** O:HD server files are also supported on Linux dedicated machines, so feel free to repeat these instructions on a Linux box if that is what you have.*

## Configure Your Server

### Command Line Options

The files you can configure right now, and the command line arguments that you can use are as follows:

**Command Line Arguments (edit the packaged HarshDoorstopServer.bat file):**

Command line arguments are used for starting your server in a specific way, such as setting the map, factions, gamemodes, etc. that you want to start the server with. In order to modify your command line arguments, open up the **HarshDoorstopServer.bat** file that is provided with your server files with the text editor of your choice. It should look like this by default:

```
@echo off

start HarshDoorstop\Binaries\Win64\HarshDoorstopServer-Win64-Shipping.exe AAS-TestMap?MaxPlayers=16 -log -SteamServerName="Harsh Doorstop Dedicated Server" %*

```

From here, you may customize the launch parameter arguments however you would like. The following are the possible command line arguments that you can include in the HarshDoorstopServer.bat file (*forward slashes denote aliases of a command*):

These arguments can be mixed and matched in a wide variety of arrangements, so this might take some experimenting on your end to figure out what you want.

An example of how a command line might look for a modded server (this was used for a coop/PvE server where players use a modded faction to fight against a greater amount of bots than themselves on a modded map using a modded *gamemode*):

```
@echo off

start HarshDoorstop\Binaries\Win64\HarshDoorstopServer-Win64-Shipping.exe MODDED_MAP?BluforFaction=MODDED_FACTION?OpforFaction=MODDED_FACTION?MaxPlayers=24?AutoAssignHuman=1?bBotAutofill?game=MODDED_GAMEMODE_FILEPATH?BluforNumBots=4?OpforNumBots=16?BluforNumTickets=600?OpforNumTickets=600 -Port=1234 -QueryPort=12345 -log -SteamServerName="MODDED SERVER NAME" %*

```

### .ini Files

#### Game.ini

**Game.ini (this will be generated upon initial startup, however it will be blank/empty):**
Windows Location:

```
...\ROOT\HarshDoorstop\Saved\Config\WindowsServer\

```

Linux Location:

```
.../ROOT/HarshDoorstop/Saved/Config/LinuxServer/

```

#### Engine.ini

The Engine.ini will be where you configure values for cvars that will be applied on startup among other parameters. In order to customize this file, you must add one or more of the following commands to your Engine.ini file:

 HD.CP.MinPlayersToCaptureOverride= | -1 | If >= 0, determines the minimum number of players on the same team required to be within the area of capture in order to begin the capture process.

```
[SystemSettings]
Game.AutoBalanceTeamsOverride=1
HD.AAS.ActiveRouteOverride=0
HD.CP.EnforceSmallerMinPlayersToCapture=1
HD.CP.MinPlayersToCaptureOverride=3

```

### Config Files

#### MapCycle.cfg

**MapCycle.cfg (this does not come packaged, you must make this file yourself):**

Windows Location:

```
...\ROOT\HarshDoorstop\Saved\Config\WindowsServer\

```

Linux Location:

```
.../ROOT/HarshDoorstop/Saved/Config/LinuxServer/

```

The MapCycle.cfg file will be where you configure the map names and order that you wish to run them on your server. In order to customize what maps you want to run, and in what order, you simply need to add them by their proper name to the MapCycle.cfg file one line at a time.

Here are all the current map names:

An example of how your MapCycle.cfg might look for a WW2 only map order that includes expansion content:

```
OmahaBeach
Carentan
Montecassino

```

#### Admins.cfg

**This does not come packaged, you must make this file yourself!**

Windows Location:

```
...\ROOT\HarshDoorstop\Saved\Config\WindowsServer\

```

Linux Location:

```
.../ROOT/HarshDoorstop/Saved/Config/LinuxServer/

```

The Admins.cfg file will be where you set up all of your server admins to give them in-game permissions to push server commands using the console, and without the need of an RCON. In order to set up this file, simply place your server admins SteamID64 line-by-line (use a website like https://steamid.uk if you need to find IDs):

```
SteamID64
SteamID64
SteamID64
SteamID64
SteamID64

```

Once you have added your admins, they should now be able to open the in-game console (default keybind—can be rebound in your control settings: ~) and start inputting commands.

##### Admin Commands (in-game using the console):

For example, *admin servertravel risala* will travel the server from the current map it is on to the map Risala.

For a list of possible commands to use, please see Step 4 down below. All RCON commands should work for server admins with the in-game console, provided that they include the admin prefix mentioned above before every command (the console will not recognize the commands in-game otherwise).

## Port Forwarding

In order to make your server visible in the in-game server browser, you need to open the following port(s) in your server computer’s Windows Firewall:

 27005 | Steam Query Port (Inbound UDP; in the .bat command line argument this is represented as “-QueryPort=”)

If you are still unable to see your server, you may need to contact your hosting company to see if they have any additional layers of firewall protection that might be potentially blocking your server from being seen. If you are hosting this from a dedicated machine at home, you might need to log in to your router and port forward from there as well (consult with your specific router’s manual/instructions for details).

## Setup Admin Tools (RCON)

First, download the RCON software of your choice.

You can also set up your own RCON using whichever one you prefer to use if you are already familiar with one that you would like to use. Please refer to the chosen RCON instructions to understand how to set up and use their tools.

Once you have your RCON client of choice setup, configure RCON for your server by adding and filling in the following config entries to your #Game.ini if you haven’t already:

```
[/Script/RCON.RCONServerSystem]
bEnabled=True
ListenPort=7779
Password="letmein"
MaxActiveConnections=5
MaxAuthAttempts=3

```

From here, open up your RCON client and input your server IP address and the password you defined in your Game.ini and you should be good to go. You may now begin using the following console commands and variables:
**Note: Console Command parameters listed with angle brackets are required while other parameters listed with square brackets are optional.**

 bBotAutofill / BotAutofill
 BluforFaction=<FactionName> / OpforFaction=<FactionName>
 BluforNumBots=<#> / OpforNumBots=<#>
 BluforNumTickets=<#> / OpforNumTickets=<#>
 DisableKitRestrictions
 MaxPlayers=<#>
 MinPlayers=<#>
 Password=<string>
 ServerName=<string>

## Launch Your Server

If you have followed the instructions above correctly, you should now be ready to launch your O:HD server.

To launch your server, simply run the HarshDoorstopServer.bat file. Your server should now be up and running, and should be joinable by other players.

## Updating Your Server

When the game receives an update, you will have to update your server files as well. To do this, simply follow the instructions that are listed in Valve’s SteamCMD wiki page to app\_update/validate your files.

This should be a very similar process to the initial installation from steps 1 and 2, however, this time you will be validating the files to check if there are any inconsistencies between your current server files (which will be old once the game is updated), and the new updated files. Be advised that when you do this, some of your config files that you edited to customize your server may get overwritten, so be sure to make backups or notes of your settings just in case!

## Other Considerations

**Player counts and limits**: From the recent server testing prior to early access, it appears that if you exceed 64 players, and you start pushing in the 70s and above, you might start seeing weird issues like VOIP breaking down, and some other anomalous behaviors with the functionality of certain things on the server and in the game. You are of course welcome to do as you please (we are not going to restrict you if you want to push it), but just be aware that for maximum enjoyment for your community you might want to consider limiting it around there to ensure a certain level of quality.