The easiest way to customize your bot appearance is via RLBotGUI. To bring up the appearance editor, click on the bot info icon and then click Edit Appearance.
You can use any item in the game, including painted items. The editor should have the latest items, but we have to manually update them. So if some recently added items are missing, please remind us on our discord. You can also click the bottom left buttons to preview your loadout in-game instantly!
Tip: When previewing in-game and trying multiple loadouts, sometimes the camera will lose track of your car when it respawns. You can avoid this by cycling the camera with your mouse buttons instead of using the number keys. With this technique it should be possible to get into a camera mode like hard-attach and have it be stable as you look at different wheels, blue car vs orange car, etc.
In your bot's config file you can set your bot's display name. You can have a name of max 31 characters. If your name is too long or there is duplicates that is handled in the framework.
[Locations] # Path to loadout config. Can use relative path from here. looks_config = ./appearance.cfg # Path to python file. Can use relative path from here. python_file = ./python_example.py # Path to a file that can dynamically generate your bot's appearance. Optional. loadout_generator = example_loadout_generator.py # Name of the bot in-game name = PythonExampleBot # Optional: Location of a logo file to to show in RLBotGUI and tournament overlays. 400x300px preferred. logo_file = ./logo.png
looks_config should point to an appearance file. An
appearance.cfg file could look like this:
[Bot Loadout] team_color_id = 27 custom_color_id = 75 car_id = 23 decal_id = 307 wheels_id = 1656 boost_id = 0 antenna_id = 287 hat_id = 0 paint_finish_id = 1978 custom_finish_id = 1978 engine_audio_id = 0 trails_id = 0 goal_explosion_id = 1971 primary_color_lookup = [50, 0, 200] secondary_color_lookup = [100, 100, 250] [Bot Loadout Orange] # Same as above, except it applies to the orange car
The GUI appearance editor uses a csv file generated by BakkesMod using the
dumpitems command. You can see the most recently generated file here: https://github.com/RLBot/RLBotGUI/blob/master/rlbot_gui/gui/csv/items.csv
To see the items, you might want to browse at: https://rocket-league.com/items/
There are two ways to specify your colors:
custom_color_idto index into the swatches (see images below).
secondary_color_lookupto choose a swatch closest to the RGB value you provide.
In either case, you're limited to the same set of colors that can be selected in-game.
NOTE: The shade of the colors may not be correspond exactly with following pictures.
team_color_id are the primary color of the car. The top left color is index 0 increasing as you go right:
custom_color_id is the secondary color, also called accent. These are identical for both teams:
You can use a number based on this list:
- 0 - None
- 1 - Crimson
- 2 - Lime
- 3 - Black
- 4 - Sky Blue
- 5 - Cobalt
- 6 - Burnt Sienna
- 7 - Forest Green
- 8 - Purple
- 9 - Pink
- 10 - Orange
- 11 - Grey
- 12 - Titanium White
- 13 - Saffron
These are set in your appearance cfg file. Example:
This is completely optional!
Recently we added the ability to generate your bot's loadout with a python script. This lets you choose different loadouts based on player index, randomize parts of your loadout, etc. The script is executed at the beginning of every match.
To use this feature, put a line like
loadout_generator = loadout_generator_example.py in your bot cfg file, in the [Locations] section. Then create a python file like this:
import random from pathlib import Path from rlbot.agents.base_loadout_generator import BaseLoadoutGenerator from rlbot.matchconfig.loadout_config import LoadoutConfig class SampleLoadoutGenerator(BaseLoadoutGenerator): def generate_loadout(self, player_index: int, team: int) -> LoadoutConfig: # You could start with a loadout based on a cfg file in the same directory as this generator loadout = self.load_cfg_file(Path('appearance.cfg'), team) # Or you could start from scratch like this # loadout = LoadoutConfig() if player_index == 0: loadout.antenna_id = 287 # use a Psyonix flag if you're the first player loadout.team_color_id = player_index # Different primary color depending on player index loadout.paint_config.wheels_paint_id = random.choice([1, 2, 4, 5]) # Random wheel color return loadout
Either put a file called logo.png in the same folder as your bot cfg, OR specify logo_file = ... in your bot cfg in the same section as python_file. Dimensions of 400x300 px are preferred. It will appear in RLBotGUI, and maybe on stream!