Ground Branch

Games
Report Issue

From one of the developers behind the original Rainbow Six® and Ghost Recon® games, comes a thinking-man's first-person shooter featuring in-depth character and weapon customization. Take your time. Think ahead. Get the job done.

Contributors:
README

Ground Branch

NOTE: Game and server are still Early Access. Your mileage may vary as updates are released.


Authors / Contributors


Game Description

From BlackFoot Studios' Website:

From one of the developers behind the original Rainbow Six® and Ghost Recon® games, comes a thinking-man's first-person shooter featuring in-depth character and weapon customization. Take your time. Think ahead. Get the job done.


Egg Capabilities

  • Configuration of the Server Query port.
  • Configurable to automatically check for server updates on start via SteamCMD. Forcing validation is also configurable.
  • Mods have not been explored at this time (see Modding for more info)

Server Ports

  • Default server ports are listed below, but both ports can be changed freely.
  • Both ports are required to be open/allocated for normal server behavior!
Port Default (UDP)
Game (Primary Port in Pterodactyl) 7777
Server Query 27015

Installation/System Requirements

Bare Minimum Recommended
Processor No ARM support. Recent x86/64 (AMD/Intel) processor.
RAM 550 MiB 1024-4096 MiB
Storage 5632 MiB 7168 MiB
Network 3 MiB/s 7 MiB/s
Game Ownership Not required to start. Recommended to fully configure server (see Server Configuration below)

Server Configuration

NOTE: Server Name and Max Players will be overwritten by your Pterodactyl Startup settings every time the server is started.

In-Game Setup (Recommended):

Configuring all aspects of the server (MOTD, game rules, map list, admins, etc.) is, by far, the easiest (and safest) to do in-game via the built in admin menu. Perform the following steps to do so:

  1. Start the server.
  2. Navigate to /home/container/GroundBranch/ServerConfig within Pterodactyl's file browser and open AdminSetupPassword.txt.
  3. Copy the code and start your personal Ground Branch game client.
  4. Log into your server via the server browser by searching for it by the name you set in the Startup tab of the server.
  5. Open the console by pressing ` and run the following command: admin setup <your_setup_password>. This will add you as a SuperAdmin.
  6. Running the command admin will open the Admin Menu where you can configure everything about the server.

Manual Setup (Advanced):

All configuration files for the server can be found here: /home/container/GroundBranch/ServerConfig

Please refer to the Unofficial Ground Branch Wiki for configuration info.


Modding

At the time of writing this (2023/08/01), no workshop mods for Ground Branch exist. However, if they were to be introduced or you would like to install a mod, mods can be installed to /home/container/steamapps/workshop/content/16900/. The server should then stage them to /home/container/GroundBranch/Mods and show up as "Mod ID #" in the in-game modding menu.

Docker Images (2)
Name Image
Wine [Latest] ghcr.io/ptero-eggs/yolks:wine_latest
Wine [Staging] ghcr.io/ptero-eggs/yolks:wine_staging
Startup Command
wine GroundBranch/Binaries/Win64/GroundBranchServer-Win64-Shipping.exe MultiHome=0.0.0.0 Port={{SERVER_PORT}} QueryPort={{QUERY_PORT}} -log
Variables (10)

[REQUIRED] Server Query Port

This is the port that your clients will type in and use to connect to the lobby (not the game world). Ensure this port matches your externally forwarded port, and is distanced from other running Ground Branch servers in Pterodactyl (increments of 100 are recommended). This is also true for the Primary/Game Port!

Environment:
QUERY_PORT
Default:
27015
User Viewable:
User Editable:
Rules:
required|integer|between:1024,65536

Automatic Updates

Quickly checks for any server updates on startup, and updates if necessary. (1 ON | 0 OFF)

Environment:
AUTO_UPDATE
Default:
1
User Viewable:
User Editable:
Rules:
boolean

Server Name

The name of the server that will appear in the server list.

Environment:
SERVER_NAME
Default:
Unnamed Ground Branch Server
User Viewable:
User Editable:
Rules:
required|string|max:255

Max Players

Maximum number of players allowed to connect to the server.

Environment:
MAX_PLAYERS
Default:
16
User Viewable:
User Editable:
Rules:
required|integer|min:1

[Repair] Validate Server Files

Leave empty (no value) for OFF or type "true" or "1" for ON. Validates all server files when Automatic Updates is enabled. Note: This will significantly increase server startup times, so it is recommended to only enable this when needed.

Environment:
VALIDATE
Default:
None
User Viewable:
User Editable:
Rules:
string|nullable

[System] Ground Branch Dedicated Server App ID

Steam App ID used for installation and updates. Cannot be changed.

Environment:
SRCDS_APPID
Default:
476400
User Viewable:
User Editable:
Rules:
required|string|in:476400

[System] Use Windows Branch

Tells the installer/updater to only download the Windows branch of the server (the only branch currently available) so that it can run on Wine. Cannot be changed.

Environment:
WINDOWS_INSTALL
Default:
1
User Viewable:
User Editable:
Rules:
required|string|in:1

[System] WINEDEBUG

Used to suppress WINE FIXME messages. Rarely needs to be changed.

Environment:
WINEDEBUG
Default:
-all
User Viewable:
User Editable:
Rules:
string|nullable

[System] WINEARCH

Used for compatibility. Cannot be changed.

Environment:
WINEARCH
Default:
win64
User Viewable:
User Editable:
Rules:
required|string|in:win64

[System] WINEPATH

Used for compatibility. Cannot be changed.

Environment:
WINEPATH
Default:
/home/container
User Viewable:
User Editable:
Rules:
required|string|in:/home/container
Installation Script
Container: ghcr.io/ptero-eggs/installers:debian
Entrypoint: /bin/bash
#!/bin/bash

## File: Pterodactyl Ground Branch Egg - egg-ground-branch.json
## Authors: David Wolfe (Red-Thirten)
## Date: 2023/08/01
## License: MIT License
## Image to install with is 'ghcr.io/pterodactyl/installers:debian'

# Download and install SteamCMD
export HOME=/mnt/server
cd /tmp
mkdir -p $HOME/steamcmd $HOME/steamapps
curl -sSL -o steamcmd.tar.gz https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xzvf steamcmd.tar.gz -C $HOME/steamcmd
cd $HOME/steamcmd

# SteamCMD fails otherwise for some reason, even running as root.
# This is changed at the end of the install process anyways.
chown -R root:root /mnt

# Install game server using SteamCMD
./steamcmd.sh +force_install_dir $HOME +login anonymous $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s "-beta ${SRCDS_BETAID}" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s "-betapassword ${SRCDS_BETAPASS}" ) validate +quit

# Set up 32 and 64 bit libraries
mkdir -p $HOME/.steam/sdk{32,64}
cp -v linux32/steamclient.so $HOME/.steam/sdk32/steamclient.so
cp -v linux64/steamclient.so $HOME/.steam/sdk64/steamclient.so

## Ground Branch setup
# Make ServerConfig directory and default Server.ini file (since they are not initially present before first server start)
mkdir -p $HOME/GroundBranch/ServerConfig/ && cd "$_"

if [[ ! -f Server.ini ]]; then
    echo -e '\nCreating default "Server.ini" configuration file...'
    cat > Server.ini << EOF
[/Script/RBZooKeeper.ZKServer]
; Name of the server 64 characters max)
ServerName=Unnamed Ground Branch Server

; The message of the day (512 characters max)
; e.g. ServerMOTD=This text here is displayed<br>with the 'admin motd' command.
ServerMOTD="Welcome!"

; Set to a jpg image to act as a server banner in-game where possible.
; (recommended resolution: 788 x 386)
ServerWebBanner=""
; e.g. ServerWebPage=www.images.com/myimage.jpeg

; Password required to join the server.
;ServerPassword=

; Password required to join the server as a permanent spectator.
;SpectatorOnlyPassword=

; Maximum number of players allowed on this server.
MaxPlayers=16
MaxSpectators=0

; Set default match types for game modes and round limits:
; Match types: Continuous, BestOf, FirstTo, Play, PlayUntilWin, TimeLimit.
; Round limits = number of rounds, except Time Limit match type (minutes).
; PVE / Co-op:
PVEMatchType=Continuous
PVERoundLimit=2
; PVP:
PVPMatchType=Continuous
PVPRoundLimit=3
; PVP FFA (Free-for-all):
PVPFFAMatchType=Continuous
PVPFFARoundLimit=1
GameRules=(("AllowCheats", False),("AllowDeadChat", True),("AllowUnrestrictedRadio", False),("AllowUnrestrictedVoice", False),("SpectateEnemies", True),("SpectateForceFirstPerson", False),("SpectateFreeCam", True),("UseTeamRestrictions", False))
EOF
fi

echo -e "\nGround Branch Dedicated Server successfully installed!\n"