BakkesModGUI (external configuration tool)

**THIS PAGE IS FOR AN EXTERNAL TOOL THAT MODIFIES BAKKESMOD CONFIGURATION FILES. IT DOESN'T PROVIDE AN EXPLANATION OF THE IN-GAME UI THAT BAKKESMOD CONTAINS.**

This GUI will provide users with the ability to easily interact with and set up *BakkesMod* on the fly.

Features include:

* Setting up key/button bindings
* Choosing which plugins to load
* Choosing which map to load
* Specifying additional options (Game Speed, specific shot parameters etc)
* Support for plugin creators to add their own plugins

## Initial Remarks

The GUI currently runs separately to *BakkesMod*, but needs to be in the same folder as *BakkesInjector.exe*

All files created are done so without editing the default ones, as this is currently an optional add-on

## Initial Setup

In order to use the GUI, the initial setup must be performed.

Please ensure that *BakkesModGUI.exe* is in the same folder as *BakkesModInjector.exe*

When *BakkesModGUI.exe* is run for the first time, it will create the necessary files.

You will receive a message about an outdated configuration file, this is normal as you haven't used the mod before.

## Key Bindings

The *Key Bindings* tab provides a means to set up your action bindings (like shooting the ball, for instance) outside of Rocket League.

The options available for selection will depend on which plugins you have loaded (on the plugins tab)

The left dropdown-box will allow you to select which command you will be binding, while the right dropdown-box will allow you to select the key to bind it to.

You may add new rows or remove them using the buttons below the boxes.

## Other Options

The Other Options tab provides the option to change the map when clicking *Apply Config,* as well as the ability to assign the key to change the game speed (speed up or slow down, useful if you want to practice something slowly like air-dribbling)

## Plugins

The GUI provides the ability to specify which plugins you would like to be loaded in the *Plugins* tab.

Currently, you may:

* Load a plugin by selecting it in the *Unloaded Plugins* box and pressing the '<' button. This will add the respective key bindings if they exist.
* Unload a plugin by selecting it in the list and clicking *'>'*. This will remove the commands for this plugin from the dropdown boxes.
* Create a custom plugin configuration file for whatever is selected in the *Loaded Plugins box* that will be loaded when *Apply Config* is clicked. This file will remain saved regardless of plugin loading and unloading.
* Unload all plugins by clicking the '>>' button
* Load all plugins by clicking the '<<' button

## Custom Config

Should you wish to specify something custom that is not covered in the other tabs, you can use the *Custom Config* tab to enter the commands that you wish to be run.

Each command must be on its own line, and please be aware that the code will be run without error checking. This means that if there's a typo, you wont know.

This custom configuration is saved to the *customCode.cfg* file in *cfg\GUIConfig* folder and will be executed when *Apply Config* is clicked

## Custom Plugin Support

If you create a custom plugin and wish to use it with the GUI:

1. Place it into the p*lugins* folder
2. Create a file called *<yourpluginsname>.bnd* in *plugins\commands* that contains all of your specific commands, each on their own line.

You may then load your plugin in the GUI properly.

## General Usage

To actually make use of the GUI, you must open it BEFORE running the injector.

The steps are as follows:

1. Enter your desired configuration
2. Click *Start Training* (this will run the injector)
3. Launch Rocket League, and wait for the mod to run its configuration files
4. Once this has been completed, click *Apply Config*
5. Your game should run the configuration files

If you wish to change anything in the configuration, change it and then click *Apply Config* again

If you mess up your configuration, click *Load Config* to regain it.

Remember that by clicking *Apply Config*, you are overwriting your previous configuration and cannot get it back!

## Troubleshooting

**Unable to apply the configuration** - Ensure that you run the GUI as Administrator.

**"No Command files are present in 'plugins\commands'"** - None of your plugins have command files.

**"No Command file present for selected plugin"** - Follow the 'Custom Plugin Support' area to create the command file. Note that some plugins don't have a command file (e.g. RCON) since they don't have any commands you can use.

**"The injector must be present in the root folder"** - BakkesModInjector needs to be in default folder, as does the GUI

**"Something went wrong loading the selected plugin's Command file."** - Something has happened that I didn't account for; please let me know what you were doing when it happened.

**"Error with initial unbinding, file: '<Location>'"** - The file that unbinds all keys could not be written, you can manually create it.

**"Error saving keybindings"** - Your KeyBindings file could not be written to, try deleting and recreating it

## Credit

This GUI was created by Wejrox (aka JimJoms) and is available open-source on Github: https://github.com/wejrox/BakkesModGUI/

Any suggestions are welcome in the comments