AutoLeague2 is a tool for running competitive leagues with custom Rocket League bots using the RLBot framework. Microsoft's TrueSkill ranking system is used to rate the bots. AutoLeague automates the process of selecting fair teams, starting matches, and rating the bots. It also ensures, that every bot gets to play regularly.
AutoLeague2 is a continuation of RLBot's AutoLeaguePlay and is used for East's League Play.
-
Install RLBotGUI.
-
Run
create-gui-venv.bat. This creates a Python virtual environment based on RLBotGUI and installs the required packages. -
Run
open-gui-venv.bat. This opens the virtual environment and takes you to the autoleague directory. -
Run
autoleague.py setup league <path/to/my/league/>to create a league in the given directory. -
Add some bots to
path/to/my/league/bots/. -
Check if autoleague2 can find the bots with
autoleague.py bot list. -
Test if a bot works with
autoleague.py bot test <bot_id>. -
Run
autoleague.py match runto run a match. -
Any unfinished matches (test or not) can be terminated without risk using
ctrl+C. -
The folder
autoleague/resources/overlay/contains various overlays showing the state of the league and current match. Most notably:summary.htmlshows the leaderboard and the latest matches. Update the latter usingautoleague.py summary [n].ingame_leaderboard.htmlshows only the leaderboard.overlay.htmlshows the currently playing bots in two banners near the top.tmcp-overlay/overlay/overlay.htmlshows TMCP messages sent between bots.versus_logos.htmlshows the play bots and their logos on a big versus screen.
You can show these overlays on stream using a browser source in OBS.
The entire state of the league is stored in the folder path/to/my/league/, which allows it to be sent and shared with others.
I use AutoLeague2 for East's League Play. The league play is split in weeks, and each week I do the following steps:
-
Before stream:
- Make sure
path/to/my/leagueis up-to-date - Delete the old submission folder
path/to/my/league/bots/and unzip the new one - Unzip all bots using the command
autoleague.py bot unzip - Check if
autoleague.py bot listshows all the bots I expect - Test all updated/new bots using
autoleague.py bot test <bot_id>. If a is bot misbehaving, I send a message to the creator explaining the issue and delete the bot's config in thepath/to/my/league/bots/. This will prevent it from playing. - Run
autoleague.py summaryto reset the summary shown by the overlay
- Make sure
-
During stream:
- Run
autoleague.py match runto run a single match. Overlays, tickets, mmr, summary, and more updates automatically. - Run
autoleague.py match prepareto show off the playing bots before the match starts. - If needed, a match can be undone using
autoleague.py match undo.
- Run
setup league <league_dir> Setup a league in <league_dir>
setup platform <steam|epic> Set platform preference
bot list [showRetired] Print list of all known bots
bot test <bot_id> Run test match using a specific bot
bot details <bot_id> Print details about the given bot
bot unzip Unzip all bots in the bot directory
bot summary Create json file with bot descriptions
ticket get <bot_id> Get the number of tickets owned by <bot_id>
ticket set <bot_id> <tickets> Set the number of tickets owned by <bot_id>
ticket list [showRetired] Print list of number of tickets for all bots
ticket newBotTickets <tickets> Set the number of tickets given to new bots
ticket ticketIncreaseRate <rate> Set the rate at which tickets increase
ticket gameCatchupBoost <boost> Set the extra ticket increase factor when a bot has played fewer games
rank list [showRetired] Print list of the current leaderboard
match run Run a standard 3v3 soccer match
match prepare Run a standard 3v3 soccer match, but confirm match before starting
match undo Undo the last match
match list [n] Show the latest matches
summary [n] Create a summary of the last [n] matches
retirement list Print all bots in retirement
retirement retire <bot> Retire a bot, removing it from play and the leaderboard
retirement unretire <bot> Unretire a bot
retirement retireall Retire all bots
csvs generate Generate csv files with league data
help Print this message