This is a set of tools that hopefully will help with developing game modes for Ground Branch.
To install the tools:
- Download the latest release matching your installed version of Ground Branch from the releases section,
- Place the executable in the Ground Branch root directory, by default
C:\Program Files (x86)\Steam\steamapps\common\Ground Branch
.
Currently, due to a bug, Ground Branch mission editor will use invalid paths when selecting AI loadouts (it will use folder AdGuys
instead of BadGuys
). As it turns out this can be resolved by creating a folder with one extra letter in front of the folder name that will mirror the contents of the original AI loadout folders. So if you would like to add your own loadout for AI to use, you would have to place the file in both the original and mirrored directory. This tool can take care of the repetetive process.
- Make sure to install the tool (instructions)
- Create your loadout file,
- Place the loadout file in the original AI loadout folder, by default
C:\Program Files (x86)\Steam\steamapps\common\Ground Branch\GroundBranch\Content\GroundBranch\AI\Loadouts\BadGuys
- Open Command Line in Ground Branch installation folder,
- Run
gbt.exe loadout
command in the command line prompt.
Note: this will also remove files in the _BadGuys
folder if they don't have a counterpart in the original BadGuys
folder.
Alternativly, if you use Visual Studio Code to edit the AI loadouts you can use an extension that will run a command whenever you save a file with a mathing path, e.g.: Save and Run by wk-j and configure it to run the gbt.exe loadout
command whenever a file is saved to the original AI loadout folder.
If you're working on game modes and want to deliver them in a manner that will make it easy to "install" them. Best way is providing a simple zip archive that can be unpacked in the game root folder by the "end user". You can create such archives using the gbt.exe gamemode pack <manifestFilePath>
command. Here's how:
- Make sure to install the tool (instructions)
- Create a manifest file at the Ground Branch root directory, by default
C:\Program Files (x86)\Steam\steamapps\common\Ground Branch
. - Run the
gbt.exe pack "<manifestFilePath>"
command. - The packaged game mode should be waiting for you at the Ground Branch root folder.
For more information on manifests see Manifests.
Ground Branch tools config can be used to set up
- which AI loadouts directories Ground Branch Tools should mirror when the
loadout
command is run, and - change the installation path used by the
install
anduninstall
commands.
To create Ground Branch Tools config use the gbt.exe config
. The config will be created at the following path %AppData%\gbt\gbt.conf
. You can open the config with any text editor.
If no config is present Ground Branch Tools will use the default config.
If you've installed Ground Branch in any directory different than C:/Program Files (x86)/Steam/steamapps/common/Ground Branch
you will need to change the value of the GamePath
parameter in the Ground Branch Tools config with the actual path to Ground Branch installation directory.
To mirror additional directories containing AI loadout files, add entries for each extra directory to the Loadouts
array. Each entry in Loadouts
array has to have Name
, SourceRelativePath
, and DestinationRelativePath
.
For example to mirror loadout files from GroundBranch/Content/GroundBranch/AI/Loadouts/Example
directory in GroundBranch/Content/GroundBranch/AI/Loadouts/_Example
directory add the following entry to the Loadouts
array:
{
"Name": "Example",
"SourceRelativePath": "GroundBranch/Content/GroundBranch/AI/Loadouts/Example",
"DestinationRelativePath": "GroundBranch/Content/GroundBranch/AI/Loadouts/_Example"
}
In the end the config would look like this:
{
"GamePath": "C:/Program Files (x86)/Steam/steamapps/common/Ground Branch",
"Loadouts": [
{
"Name": "BadGuys",
"SourceRelativePath": "GroundBranch/Content/GroundBranch/AI/Loadouts/BadGuys",
"DestinationRelativePath": "GroundBranch/Content/GroundBranch/AI/Loadouts/_BadGuys"
},
{
"Name": "Example",
"SourceRelativePath": "GroundBranch/Content/GroundBranch/AI/Loadouts/Example",
"DestinationRelativePath": "GroundBranch/Content/GroundBranch/AI/Loadouts/_Example"
}
]
}
Game mode manifest files can have any extension, but has to follow json formatting. See example below:
{
"name" : "BreakOut",
"version" : "0.3.22",
"dependencies" : [
"Common.gbm"
],
"files" : [
"GroundBranch/Content/GroundBranch/Mission/*/BreakOut.mis"
"GroundBranch/Content/GroundBranch/Lua/BreakOut.lua",
"GroundBranch/Content/Localization/GroundBranch/en/BreakOut.csv",
"GroundBranch/Content/GroundBranch/DefaultLoadouts/BreakOut.kit"
]
}
- name can be any string.
- version is not really used atm.
- dependencies is an array of paths to other manifests coontaining files required by this game mode.
- files is an array of paths to files used in the game mode. Files paths can use glob patterns.
Everyone is more than welcome to fork the project and post pull requests. I'll try to review and merge as soon as possible.
The project uses GoLang 1.17.1.
This project uses an MIT license.