Jump to content
  • Announcement

    Welcome to M1GC

  • M1GC

How to configure a Ground Branch Dedicated Server (Windows)


M1GC

Recommended Posts

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.

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 +force_install_dir <InstallDirectory> +login anonymous  +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 +force_install_dir c:\gbserver +login anonymous +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

Commands Description
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
 
Commands Description
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). Note: Setting 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 TE-PowerStation?RoundTime=10 MultiHome=192.168.1.254 Port=7779 QueryPort=27017 -log
 
Commands Description
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.
 

adminmenu-admintab.jpg

 

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.

Watch a breakdown of "ZooKeeper" admin tool on Youtube (~4min clip)

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
ServerPassword | Password required to join the server.
MaxPlayers | Maximum number of players allowed on this server (if not already set by command line)

 

MOTD Example:

<h1>Awesome Heading!
<br>Another line!
<br><b>Some bold text!

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

 
Command Description
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. Using the menu you can select a map, configure it's settings and click "add" so that it now appears on the right-slide list. You can repeat this process to add several configured maps/modes into the game roster to play one after another (in the order you add them to the list).

 

admin_preview_maplist.png

 

Basically this menu is how you generate the MapList.ini (you're seeing in the second half of the screenshot) so it doesn't need to be made manually. However, if you want to manually make the MapList.ini then use the following section as a guide.

 

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.

 

Note: 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

 

  • Thanks 1
Link to comment
Share on other sites

  • M1GC pinned this topic
  • M1GC locked this topic
Guest
This topic is now closed to further replies.
  • M1GC

  • Welcome to M1GC

    tenor.gif

    We accept players of all skill levels and help members grow at their own pace.

    We are respectful, determined, and proud to be M1GC members..

  • twitch-logo.gif.6e366685b5d45bf948dad544bc71f521.gif

    Check out M1GC on Twitch

  • Sign up to Restream.io

    M1-Gaming Is Inviting you to Join Restream. The best way to stream video live to 30+ platforms simultaneously for free.

MuRdeR1 GaMinG CReW

We are a community of mature gamers who value character, honor, and professionalism

We are one of the newest active teams in online gaming.

We are diverse and open, with members from all across the world in multiple games.

M1GC Crew Gamers

We are organized and stable, with opportunities for both competitive and casual.
We accept players of all skill levels and help members grow at their own pace.

M1GC Crew Websites

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.