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
gui-venv.bat
. This opens a RLBotGUI's python as a virtual environment and installs packages used by AutoLeague2. -
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 run
to run a match. -
Any unfinished match (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.html
shows the leaderboard and the latest matches. Update the latter usingautoleague.py summary [n]
.ingame_leaderboard.html
shows only the leaderboard.overlay.html
shows the currently playing bots in two banners near the top.tmcp-overlay/overlay/overlay.html
shows TMCP messages sent between bots.versus_logos.html
shows 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:
- 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 list
shows 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 summary
to reset the summary shown by the overlay
- Delete the old submission folder
- During stream:
- Run
autoleague.py match run
to run a single match. Overlays, tickets, mmr, summary, and more updates automatically. - Run
autoleague.py match prepare
to 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
help Print this message