RLBot

Frequently asked questions and their answers!

FAQ

In what follows we have collected a series of frequently asked questions and their answers. If you do not find your question among these, feel free to join the Discord server and ask there.

How do I play against the bots?

Follow this installation guide. It will also show you how to download the bot pack containing bots like Kamael and Botimus Prime. Note, RLBot only works on PC both with Epic and Steam.

Which bot is the best bot and how good is it?

The best bots are Kamael for 1v1 and 3x Bumblebee for 3v3. They are both around mid-gold level in terms of skill and can be found in the bot pack.

Here is a summary of other bots in the bot pack:

  • S-tier bots: Kamael, ReliefBot, Self-driving car, 3x Bumblebee, Botimus Prime
  • A-tier bots: Wildfire, Codename Cryo, Diablo, Stick, St. Peter (goalie)
  • B-tier bots: Lanfear, PenguinBot, Manticore, Beast from the East, VirxEB, BribbleBot, DisasterBot
  • Spice things up: AdversityBot, Sniper, Snek, Invisibot, LaserBoi
  • Machine learning bots: Levi, TensorBot

Notes: Self-driving car and Stick have no teamplay. Codename Cryo is best with 2 teammates.

Can RLBot be used online?

The RLBot framework cannot be used online. The API is only activated when the game is started with a special RLBot setting which disables online play. You can be banned without warning if we suspect that you have malicious intent (farming, levelling, etc.). We want to stay on Psyonix's good side here.

Can I use RLBot with friends?

You can! It requires setting up a LAN/VLAN connection. Here is a guide.

It is not possible to play with friends cross platform.

Are the bots using machine learning?

Most are hardcoded and do not use machine learning. However, since the release of RLGym the machine learning are progressing faster than ever. If you are interesting in making a ML bot yourself, start by reading the ML FAQ.

Some ML projects to check out are:

  • Levi: Supervised learning on the bot Stick
  • TensorBot: Supervised learning on the bot Diablo
  • Element: Generic play using reinforcement learning
  • Eagle: Air dribbling using reinforcement learning
How do I get started making my own bot?

Decide which language to use. RLBot supports :python: Python (most used), Java, Scratch, C#, Rust, C++, JavaScript, and Go. We recommend having some amount of experience with programming before making a bot. However, making a bot can be a great way to get more comfortable with programming or a specific language.

You can find example bots in each language on the frontpage showing off the basics and various features.

We also have a few tutorials:

Addition resources, documentation, and examples can be found on the RLBot wiki. Feel free to ask for help in the Discord server in the appropriate language channel or in the #strategy or #mathematics channels.

What is in the GameTickPacket and FieldInfo?

The GameTickPacket is a packet sent to your bot each tick. It contains information about everything that tends to update during the game. For instance, the location and velocity of all cars and the ball, the state of boost pads, the time elapsed.

The FieldInfo contains information that is static throughout the game. For instance, the location and size of boost pads and the location of goals.

More information about the GameTickPacket, FieldInfo, and even the ControllerState can be on the RLBot wiki.

What is the dimensions of the field? Gravity? Ball radius? Max speed? Boost? Kickoff locations? etc?

All of these values can be found on RLBot wiki.

To learn more about the physics of Rocket League, see chip's notes.

We also have a note on jumping physics.

game field dimensions
How do I use debug rendering/game state setting/ball prediction/RLBotTraining?

The RLBot framework comes with a set of useful features. Learn more about these here:

How does RLBot work?

RLBot uses an API in Rocket League specifically made for us. This API is activated when the game is launched with the '-rlbot' flag, which simultaneously disables all online play. The RLBotCore dll communicates with the game through this API and this is where most of the magic happens. Communication with bots are done through sockets (shared memory in the past) which allow us to support a wide range of languages.