rlbot

crates.io docs pipeline status

[RLBot] is a framework for creating offline Rocket League bots. This crate lets you write bots using a simple, safe interface that should feel comfortable to Rust developers.

Usage

Your code will look a little something like this:

```rust fn main() -> Result<(), Box> { rlbot::run_bot(MyBot { /* ... */ }) }

struct MyBot { /* ... */ }

impl rlbot::Bot for MyBot { fn tick(&mut self, packet: &rlbot::LiveDataPacket) -> rlbot::PlayerInput { // ... } } ```

See [examples/bot] for a complete example.

Quick start

This repo comes with a few examples to get you started.

examples/simple

This is a simple ATBA, or Always Towards Ball Agent. It can run with no dependencies other than RLBot itself. You can run it like this:

sh cargo run --example atba

If you get an error, chances are you need to download the framework! Follow the instructions under Installing the framework.

examples/bot

This is a full-fledged bot that can run within the Python RLBot framework. It requires a working RLBot Python setup. Follow the instructions in [RLBotPythonExample] to make sure you have all the necessary dependencies installed. Once you have that working, you should be able to run a Rust bot within the framework with this command:

sh cargo build --example bot && python -c "from rlbot import runner; runner.main()"

Installing the framework

RLBot is needed to use this RLBot binding, of course. If the framework is not found in any of Windows's [DLL search locations], init() will return this error:

text Os { code: 2, kind: NotFound, message: "The system cannot find the file specified." }

You'll need to download [these files] from RLBot:

Place them in a directory in your $PATH. Alternatively, if you don't want to pollute your system, place them in your crate's target directory, e.g. target/debug or target/release).