GROUND BRANCH

GROUND BRANCH

40 ratings
Dedicated Server Help
By KrisRedbeard
Information on what ports to use, settings to configure and how to start a dedicated server.
2
   
Award
Favorite
Favorited
Unfavorite
Supported Operating Systems
Windows
Running a Ground Branch dedicated server is only officially supported on Windows at this time.

Linux
We plan to support running a dedicated server on a Linux some time in the future.
We need to sort out potential issues with various plugins we currently use.

Linux via Proton / Lutris
While it has been confirmed that the game will run under Proton, we have no idea about the server.
Let us know :)

Mac
There are no plans to support running a dedicated server on a Mac.
Ports
Make sure that your Windows firewall and router are configured to open the following ports:
  • 7777 UDP
  • 27015 UDP
Stand alone Dedicated Server
A stand alone version of the dedicated server can be obtained using SteamCMD and the appid 476400.

For information on downloading and installing SteamCMD, please visit the official page:
SteamCMD - Valve Developer Community

The command used to download the server is as follows:
steamcmd +login anonymous +force_install_dir <InstallDirectory> +app_update 476400 +exit

Note: You will need to replace <InstallDirectory> with the directory of your choosing.
For instance, to install the dedicated server to c:\gbserver:
steamcmd +login anonymous +force_install_dir c:\gbserver +app_update 476400 +exit
Starting a server
Batch File
The easiest way to start the server is to use the included batch file:
<Steam Library Location>\steamapps\common\Ground Branch\DedicatedServer.bat

For example:
C:\Program Files (x86)\Steam\steamapps\common\Ground Branch\DedicatedServer.bat

It will automatically find the correct server binary and automatically restart the server if required.

Command Line
To manually run a server, use the command line:
GroundBranchServer-Win64-Shipping.exe <optional map & mission>?<option>?<option> <setting> <switch>

The recommended command line is :
GroundBranchServer-Win64-Shipping.exe ?MaxPlayers=8?MaxAI=30 MultiHome=X.X.X.X Port=XXXX QueryPort=XXXX -log

By adding the MaxPlayer & MaxAI values directly to the command line, it ensures they are set globally, regardless of admin command, voting or game settings.

This binary is located in:
<Steam Library Location>\steamapps\common\Ground Branch\Binaries\Win64\

Startup Flow
Maplist
If a maplist is present, the server will automatically begin using it upon startup.
<MapName>?Mission=<Mission Name>
If no maplist is present, any map and mission combination specified in the command line will be used.

Note: If either option is missing from the command line, Server Default will be used instead (see below).

For example:
SmallTown?Mission=IntelRetrieval
Server Default
If both the above fail, the server will use a map name Server Default, which displays a message to all prompting the admin to create a valid map list.
Command Line Options
Command line options can be added after the map name.
Options must be prefaced with "?" and the value must be set using "=".

For example:
GroundBranchServer-Win64-Shipping.exe SmallTown?Mission=IntelRetrieval?MaxPlayers=8 -log

Mission
Required when specifying a map via the command line or in a maplist entry.
Tells the game which mission to use.
Missions contain information about which game mode script to run as well as any associated actors.
Available missions vary from map to map, but by default may include:
  • Deathmatch
  • IntelRetrieval
  • TeamElimination
  • TerroristHunt
  • Uplink

To manually see which missions are available for what map, look in the following directory:
GroundBranch\Content\GroundBranch\Mission
MaxPlayers
Maximum amount of players this server should allow (8-16)
Currently, there is hard limit of 16 for dedicated servers.
We recommended a maxium of 8 for coop and 16 for PvP.
MaxAI
Absolute limit of any AI used in any game mode (0-50).
Settings this to 0 would essentially prevent cooperate game modes from working.
TimeOfDay
Time of day in military time. 0000-2400
TimeLimit
After how many minutes until the game ends and the map changes (0+ min)
ReadyCountdownTime
Delay between declaring ready and everyone being sent to the play area in seconds (5+)
PreRoundWaitTime
How long keep people frozen before the round begins in seconds (5+)
RoundTime
How long each round should last in minutes (3+)
PostRoundWaitTime
End of round delay before everyone is sent back to the ready room in seconds (5+)
OpForCount
How many AI to spawn in the Intel Retrieval or Terrorist Hunt (1-MaxAI)
Difficulty
What settings to use for any AI in Intel Retrieval or Terrorist Hunt (1-4, 0 for custom)
SpectateFreeCam
Can spectators to fly around freely without following anyone? (0/1)
SpectateEnemies
Can spectators follow members of the enemy teams? (0/1)
SpectateForceFirstPerson
Should spectators be restricted to first person only view mode? (0/1)
Command Line Settings/Switches
These are optional arguments that can be used to control various aspects of the engine.
The are not case sensitive, but their spelling is important.
Settings are "key=value" pairs.
Switches use "-" prefix.

For example:
GroundBranchServer-Win64-Shipping.exe PowerStation?Mission=TeamElimination?RoundTime=10 MultiHome=192.168.1.254 Port=7779 QueryPort=27017 -log

MultiHome=<ip address>
Tells the engine to use a specific IP address for networking.
This is only useful if server supports multiple IP's.
Port=<number>
Tells the engine to use a specific port number.
This is only useful if running multiple dedicated server instances on one IP.
QueryPort=<number>
Tells the engine to use a specific query port number.
This is only useful if running multiple dedicated server instances on one IP.
-Log
Opens console/log contents in new window.
Log=<filename.log>
Same as -Log, but saves contents to file specified by "filename.log".
Map Names
747
Arena
Arena2
City
Creek
Depot
Depot_Compound
Paintball
PowerStation
RunDown
SmallTown
StorageFacility
Tanker
Automatic Setup
If no admins are specified, a file called AdminSetupPassword.txt will be generated the first time the server is started.

This file holds a unique password that allows you to become an admin remotely and will displayed in the console window until used.

To use, you must connect to the server and type the command "admin setup <password>" into the console.

For example:
admin setup 1234asdf

Once used, you will be added as a "SuperAdmin" on the server and be presented with the admin menu.

Admin Menu
The admin menu can be accessed in multiple ways:
  • clicking on the admin button from the escape menu.
  • pressing F8.
  • typing 'admin' into the console.

Depending on the level of access, you will have sections for:
  • administrative commands, such as changemap, ban, kick etc.
  • creating or editing maplists.
  • changing server name, message of the day, max players and password.
  • adding or removing admins.

Manual Setup
All the .ini files used for configuring the server are located under GroundBranch\ServerConfig.

For example:
C:\Program Files (x86)\Steam\steamapps\common\Ground Branch\GroundBranch\ServerConfig\Server.ini

If no .ini files exist, they will be generated automatically the first time the server is started.

Settings are "key=value" pairs.
For example:
ServerPassword=password

Commenting is done using a semicolon.
For example:
; This is a comment.

Server.ini
ServerName
Name of the server (64 characters max)
ServerMOTD
The message of the day(512 characters max)
<br> = line break.
<b> = bold line.
<h1 - 3> = heading 1, 2, 3 etc
For example:
<h1>Awesome Heading!<br>Another line!<br><b>Some bold text!
ServerPassword
Password required to join the server.
MaxPlayers
Maximum number of players allowed on this server (if not already set by command line)

Admin.ini
Contains a list of admin groups and the admins themselves.

The admin groups are used to help separate admins into different tiers.

For example:
An admin that is part of the "SuperAdmin" group can do everything.
An admin that is part of the "Moderator" group can only kick, ban or change the map.


To add an admin, you need to add a new line based on the following:
Admins=(Name="<name>",UniqueId="<SteamId>",ContactInfo="<optional>",Group="<admin group>")

For example:
Admins=(Name="JoeBlow",UniqueId="12345678901234567",ContactInfo="",Group="SuperAdmin")
Note: The ":0" (colon zero) that was mentioned in the previous versions of this guide is no longer required.

Vote.ini
VoteDuration
Hold long a vote will last for.
VoteSucceededTimeout
How long (in seconds) to wait after a vote has passed before allowing another vote.
VoteFailedTimeout
How long (in seconds) to wait after a vote has failed before allowing another vote.
MinPlayers
The minimum number of players required to cast a vote.
VotingCommands
The commands that can be voted for.
For example:
VotingCommands=changemap VotingCommands=nextmap VotingCommands=kick
MapList.ini
Via Admin menu
By far the easiest way to creating a map list is via the admin menu.

Manually
To create a maplist.ini file manually, create a text file called MapList.ini under /GroundBranch/ServerConfig.

Add a section called [/script/rbzookeeper.zkmaplist].
Under this section, add a MapList= entry for each map that you wish to include.
Each entry should begin with a map and mission option, followed by any additional options you may wish for that particular map.
Any command line option will work here.

Coop/PvE example:
[/script/rbzookeeper.zkmaplist] MapList=/Game/GroundBranch/Maps/747/747?Mission=/Game/GroundBranch/Mission/747/IntelRetrieval?opforcount=30?difficulty=2?roundtime=60?teamexfil=1?timeofday=0800?timelimit=60?readycountdowntime=60 MapList=/Game/GroundBranch/Maps/City/City?Mission=/Game/GroundBranch/Mission/City/IntelRetrieval?opforcount=30?difficulty=2?roundtime=60?teamexfil=1?timeofday=0800?timelimit=60?readycountdowntime=60 MapList=/Game/GroundBranch/Maps/Creek/Creek?Mission=/Game/GroundBranch/Mission/Creek/IntelRetrieval?opforcount=30?difficulty=2?roundtime=60?teamexfil=1?timeofday=0800?timelimit=60?readycountdowntime=60 MapList=/Game/GroundBranch/Maps/Depot/Depot?Mission=/Game/GroundBranch/Mission/Depot/IntelRetrieval?opforcount=30?difficulty=2?roundtime=60?teamexfil=1?timeofday=0800?timelimit=60?readycountdowntime=60 MapList=/Game/GroundBranch/Maps/PowerStation/PowerStation?Mission=/Game/GroundBranch/Mission/PowerStation/IntelRetrieval?opforcount=30?difficulty=2?roundtime=60?teamexfil=1?timeofday=0800?timelimit=60?readycountdowntime=60 MapList=/Game/GroundBranch/Maps/RunDown/RunDown?Mission=/Game/GroundBranch/Mission/RunDown/IntelRetrieval?opforcount=30?difficulty=2?roundtime=60?teamexfil=1?timeofday=0800?timelimit=60?readycountdowntime=60 MapList=/Game/GroundBranch/Maps/Tanker/Tanker?Mission=/Game/GroundBranch/Mission/Tanker/IntelRetrieval?opforcount=30?difficulty=2?roundtime=60?teamexfil=1?timeofday=0800?timelimit=60?readycountdowntime=60

PvP example:
[/script/rbzookeeper.zkmaplist] MapList=/Game/GroundBranch/Maps/Arena/Arena?Mission=/Game/GroundBranch/Mission/Arena/TeamElimination?roundtime=10?timeofday=0800?timelimit=60?readycountdowntime=60?spectatefreecam=0?spectateenemies=0?spectateforcefirstperson=1?useteamrestrictions=1 MapList=/Game/GroundBranch/Maps/Arena2/Arena2?Mission=/Game/GroundBranch/Mission/Arena2/TeamElimination?roundtime=10?timeofday=0800?timelimit=60?readycountdowntime=60?spectatefreecam=0?spectateenemies=0?spectateforcefirstperson=1?useteamrestrictions=1 MapList=/Game/GroundBranch/Maps/747/747?Mission=/Game/GroundBranch/Mission/747/Uplink?roundtime=60?defendersetuptime=30?timeofday=0800?timelimit=60?readycountdowntime=60?spectatefreecam=0?spectateenemies=0?spectateforcefirstperson=1?useteamrestrictions=1 MapList=/Game/GroundBranch/Maps/City/City?Mission=/Game/GroundBranch/Mission/City/Uplink?roundtime=60?defendersetuptime=30?timeofday=0800?timelimit=60?readycountdowntime=60?spectatefreecam=0?spectateenemies=0?spectateforcefirstperson=1?useteamrestrictions=1 MapList=/Game/GroundBranch/Maps/Creek/Creek?Mission=/Game/GroundBranch/Mission/Creek/Uplink?roundtime=60?defendersetuptime=30?timeofday=0800?timelimit=60?readycountdowntime=60?spectatefreecam=0?spectateenemies=0?spectateforcefirstperson=1?useteamrestrictions=1 MapList=/Game/GroundBranch/Maps/PowerStation/PowerStation?Mission=/Game/GroundBranch/Mission/PowerStation/Uplink?roundtime=60?defendersetuptime=30?timeofday=0800?timelimit=60?readycountdowntime=60?spectatefreecam=0?spectateenemies=0?spectateforcefirstperson=1?useteamrestrictions=1 MapList=/Game/GroundBranch/Maps/RunDown/RunDown?Mission=/Game/GroundBranch/Mission/RunDown/Uplink?roundtime=60?defendersetuptime=30?timeofday=0800?timelimit=60?readycountdowntime=60?spectatefreecam=0?spectateenemies=0?spectateforcefirstperson=1?useteamrestrictions=1 MapList=/Game/GroundBranch/Maps/SmallTown/SmallTown?Mission=/Game/GroundBranch/Mission/SmallTown/Uplink?roundtime=60?defendersetuptime=30?timeofday=0800?timelimit=60?readycountdowntime=60?spectatefreecam=0?spectateenemies=0?spectateforcefirstperson=1?useteamrestrictions=1
< >
29 Comments
Deknaps Teg Jan 10 @ 1:23am 
So, currently i have the server running, i can log into it via the game. But, i dont think anyone else can connect or even see it in the server browser.

Ive forwarded ports 7777 and 27015 on both my router and fire wall, made the pc ive got the server running on a static ip.

Ive had it running for 3 days but no traffic other than myself.

Any suggestions?
[REDi]1R MAJ Pol Tuurd [A,D,ds] Sep 19, 2021 @ 7:09pm 
fantastic instructions mate , my server is working perfectly ty
:steamthumbsup:
[UTD]mjr121 Apr 12, 2021 @ 4:40pm 
So, followed this guide, and my server wont even start. just sits in a cycle of "starting up", "server no longer running","restarting server". any advice?
Operator-26 May 25, 2020 @ 12:39am 
@krisredbeard Ok thank you!
KrisRedbeard  [author] May 25, 2020 @ 12:23am 
Need to open the query ports on your local router, otherwise it cannot communicate with Steam.
Operator-26 May 24, 2020 @ 7:28pm 
thanks for the tutorial!! I was wondering how do you make it public?
KrisRedbeard  [author] Feb 25, 2020 @ 6:03am 
Would seem someone created a plugin for UE4 to add support for UPnP devices back in 2017.
https://www.unrealengine.com/marketplace/en-US/product/simple-upnp-plugin-resubmission-for-release
KrisRedbeard  [author] Feb 25, 2020 @ 6:00am 
No, I have not added any specific UPnP options.
Not even sure what it is :|
Aesieu Karinakos Feb 16, 2020 @ 10:15pm 
Does this have an option for Universal Plug-and-Play (UPnP)? My PC seems to be only able to start a server with this enabled on some other games like ArmA 3.
Corrosion Jan 26, 2020 @ 11:51am 
Just got it about an hour ago. Thank you though!!!