The fastest and easiest-to-use public framework for training Rocket League bots. NitroLearn trains a bot on your PC and lets you watch every game it plays in 3D. When it's good, one button turns it into an RLBot bot you can play against.
Coming soonJoin the Vanta Discord to hear when it's outOther Rocket League bot frameworks just give you the source code and leave everything else up to you. NitroLearn is the fastest and easiest to use: a complete app. Here is the difference at each step.
Slower. On the same PC, GigaLearn, the fastest of them, trained 3 to 4 times slower than NitroLearn.
The fastest public framework: measured 3.2 to 3.7 times faster than GigaLearn on our test PC, with GigaLearn's usual network size.
Install Python, PyTorch and build tools yourself, then dig the arena files out of your game.
One installer brings its own Python, PyTorch and the arena files, then checks your PC and says what to fix.
Edit code and config files, then start it from a terminal.
An app: make a bot in four steps, start and stop it, and change settings that are each explained in plain words.
Write reward code and wire it in yourself.
Pick rewards from a list, set their weights and group them in folders. Changes wait until you press Apply.
Stare at a reward graph, or load replays into another program.
A 3D viewer built in: watch the newest save play live while it trains, with ball cam and car cam set like the game, and see what the bot was thinking.
Guess from the graphs.
Play the new save against an old one and get a plain answer ("clearly better" or "no clear difference"), and test single skills: aerials, saves, shots, landing.
Start over for a bigger network or a new mode.
Make a bigger network from your bot without starting over, or start a new bot from one you trained.
Write your own RLBot bot around it.
One click makes an RLBot v5 bot. It needs no Python and no graphics card to play.
Hope your old runs still load.
From version 1.0 on, a bot you train keeps resuming, exporting and playing the same in every later version.
Pick any car in a replay and the viewer shows what the bot thought at that moment: how good it thinks things look, how sure it is of its move, and the exact buttons it pressed.
That's how you find out why it keeps missing the ball, before you spend another night training it.

Everything happens in the NitroLearn app. This is its first screen.
1
2
3
nitro update.Coming in updates after the first release.
The simulator every training game runs in, its real-game recordings for starting games from real situations, and the physics constants. Their viewers, RocketSimVis and RLViser, showed what a match viewer should show. (RocketSim builds on Bullet Physics by Erwin Coumans.)
replicar, the library that turns real replays into training games. From Rocket Learn: the rated pool of past versions to play against, how opponents are matched, stat tracking. From Necto: three rewards, observation ideas, and starting most games from real-game situations. One reward from rlgym-tools.
Setting how far ahead the bot looks as a half-life in seconds (the guide's formula), scaling rewards when the decision rate changes, and the warning when one reward is being farmed.
The 90-action table, seven built-in rewards and two from rlgym-sim (adapted, Apache-2.0), shared game constants, and ideas for what the bot sees.
Masking moves that can't be used, measuring randomness against the number of moves, scaling rewards by how much returns vary. Four rewards from the guide: staying on the ground, speed toward the ball, high touches and long air touches.
The design of the goal-and-concede setup: a shared trunk, a bigger value side with several value heads, and its learning signals. Also the warning that training every game size at once can stall.
The connection between your bot and the game (rust-interface), and RLBot v5 itself, which plays your bot in Rocket League.
Two rewards (aerial distance, simple flip reset) and what the bot sees about the ball and the other cars.
Counting what bots do in play (flips, aerials, resets), the viewer's ball height marker, and its choice of cameras.
Three rewards: cradling the ball, landing recovery and forward speed.
Draws the 3D match viewer.
Rewards that only pay when all their parts are met, and the car-ball-goal alignment term.
The optimizer used for the value heads, written from its public description.
fredrik and aether6837 (one reward each), buta-ppo (shuffling car order), EnvPool (pinning threads), Seer (real-game starts), OpenAI Five (team spirit), Gymnasium (CartPole, for the learning check).
PyTorch, NumPy, pywebview, Weights & Biases, pyarrow, tomlkit, uv and python-build-standalone (Astral), Inno Setup, and the Archivo and JetBrains Mono fonts.
Full details, with licences and file names, come with NitroLearn in its CREDITS.md file.