{"id":26159661,"url":"https://github.com/virxec/rlbot_gui_rust","last_synced_at":"2025-03-11T11:33:27.773Z","repository":{"id":37284115,"uuid":"489512545","full_name":"VirxEC/rlbot_gui_rust","owner":"VirxEC","description":"The Rust port of RLBot's GUI, now with feature parity \u0026 more!","archived":false,"fork":false,"pushed_at":"2023-12-21T21:09:17.000Z","size":50973,"stargazers_count":6,"open_issues_count":1,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-12-21T22:24:10.772Z","etag":null,"topics":["gui","python","rlbot","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/VirxEC.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-05-06T22:48:47.000Z","updated_at":"2023-07-25T14:57:06.000Z","dependencies_parsed_at":"2023-12-09T04:04:53.248Z","dependency_job_id":null,"html_url":"https://github.com/VirxEC/rlbot_gui_rust","commit_stats":null,"previous_names":[],"tags_count":47,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VirxEC%2Frlbot_gui_rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VirxEC%2Frlbot_gui_rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VirxEC%2Frlbot_gui_rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VirxEC%2Frlbot_gui_rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VirxEC","download_url":"https://codeload.github.com/VirxEC/rlbot_gui_rust/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243025749,"owners_count":20223859,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gui","python","rlbot","rust"],"created_at":"2025-03-11T11:33:10.693Z","updated_at":"2025-03-11T11:33:27.764Z","avatar_url":"https://github.com/VirxEC.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RLBotGUI\n\n## About\n\nRLBotGUI is a streamlined user interface that helps you run custom\nRocket League bots for offline entertainment. It relies on the RLBot\nproject to work its magic: https://github.com/RLBot/RLBot\n\nWorks on Windows and partially works on Linux.\n\n## Useful program arguments for bot devs\n\n- `--debug`: Tricks JavaScript into think that the GUI was compiled in debug mode (won't check for updates on launch)\n- `--console`: (Windows only) will spawn a console window that will output all text, and will inherit console if available\n- `--no-pipe`: Auto-enables `--console`, on Windows; Won't use the in-GUI console for RLBot-related things, but instead directly to a real console (work-around for some print flushing issues in Python \u0026 allowing for maximum print-spam)\n\n### Screenshots\n\nYou can download, update or create bots\n\n![HomeScreenshot](screenshots/gui-home.png)\n\nIn Story Mode, you can take over cities by beating challenges and can also\nrecruit teammates and purchase upgrades for your car!\n\n![StoryMode](screenshots/story-mode.png)\n\n## Features \u0026 fixes unique to the Rust port\n\n### Back-portable\n\n- Add new bots into their proper place in the bot list instead of the end\n- Deferred bundle logo loading and missing python package checking\n- Better error messages when downloading or upgrading the botpack\n- Letting the user close Rocket League in between matches without restarting the GUI\n- Full self-updating of the GUI: Implemented for Windows and Ubuntu users \u0026 reserved spot on AUR\n- Prints get dumped asynchronously to log.txt in content folder\n- \"Upload GUI log for help\" button in Menu (top right) which uploads the log.txt file to HasteBin\n- DotNet runtime detection for C# bots to display warning message\n- The selected bot tab persists between launches\n\n### Unique to this version\n\n- Launching of the GUI without Python\n- Managing Python from within the GUI\n- Running RLBot with a custom Python executable\n- Easy Python pip fixing if something breaks; top right -\u003e menu -\u003e \"Edit/Repair Python Settings\"\n- Real-time non-blocking subprocess stdout \u0026 stderr capture redirected to built-in GUI console for debugging purposes\n- In-GUI completely isolated Python installation for Windows users\n- Mini-console for quick \u0026 easy user status updates (installing packages, etc.)\n\n## User Installation\n\n### Windows\n\nDownload the installer from the [latest release in this repo](https://github.com/VirxEC/rlbot_gui_rust/releases/latest).\n\nIt will put \"RLBotGUI\" in your Windows start menu and desktop.\n\n### Debian-based Linux distros\n\n1. Add the public GPG key of the ppa to your system: `wget -O- https://virxec.github.io/rlbot_gui_rust_apt/apt-repo/pgp-key.public | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/rl-bot-gui.gpg`\n   - NOTE: You might not see the prompt, but you may need to enter in your sudo password.\n   - Deprecated method: `wget -O- https://virxec.github.io/rlbot_gui_rust_apt/apt-repo/pgp-key.public | sudo apt-key add -`\n2. Add the repository to your system: `echo \"deb [arch=amd64] https://virxec.github.io/rlbot_gui_rust_apt/apt-repo/ stable main\" | sudo tee /etc/apt/sources.list.d/rl-bot-gui.list \u003e /dev/null`\n   - Deprecated method: `sudo add-apt-repository 'deb [arch=amd64] https://virxec.github.io/rlbot_gui_rust_apt/apt-repo/ stable main'`\n3. Refresh app list: `sudo apt update`\n4. Install the GUI: `sudo apt install rl-bot-gui`\n\n### Arch-based Linux distros\n\n**NOTE**: If you wish to compile the GUI on your own system, replace `rlbotgui-rust-bin` with `rlbotgui-rust-git`!\n\nUsing yay: `yay -S rlbotgui-rust-bin`\n\nUsing paru: `paru -S rlbotgui-rust-bin`\n\nWithout using an AUR helper:\n1. Setup: `sudo pacman -S --needed base-devel`\n2. Clone PKGBUILD: `git clone https://aur.archlinux.org/rlbotgui-rust-bin.git`\n3. Navigate to the folder: `cd rlbotgui-rust-bin`\n4. Install using PKGBUILD: `makepkg -si`\n\n### Other Linux distros (no easy updates)\n\nWe have a pre-compiled binary, icon, and `.desktop` for you! [Get the `linux-basics.tar.gz` from here](https://github.com/VirxEC/rlbot_gui_rust_apt/releases/latest).\n\nIf you want to have a script that checks for updates, you could:\n\n1. [Download this JSON](https://api.github.com/repos/VirxEC/rlbot_gui_rust_apt/releases/latest)\n2. Compare the `tag_name` from when you last download the binary to the current `tag_name`\n3. Download the `asset` with the name `linux-basics.tar.gz` using `browser_download_url`\n4. Unzip the `.tar.gz` and put the files in their proper places on your system\n\n### MacOS (no easy updates)\n\n**Warning**: RLBot (not the GUI, the underlying RLBot project) is currently broken on MacOS.\n\nYou're going to have to compile the GUI yourself:\n\n1. Follow the [Tauri prerequisites guide](https://tauri.app/v1/guides/getting-started/prerequisites).\n2. A system with at least 8GB of RAM is required. 4GB will not work.\n3. Clone this repository into your home directory: `git clone https://github.com/VirxEC/rlbot_gui_rust.git`\n4. Navigate to the right folder: `cd rlbot_gui_rust/src-tauri`\n5. Build the GUI: `cargo build --release`\n6. The compiled binary is `target/release/rl-bot-gui`\n7. To check for updates, run `git fetch` then `git pull` in the project directory - if there's updates re-run `cargo build --release` to compile the new binary.\n\n## Dev Environment Setup\n\n### Prerequisites\n\n- 16gb of RAM *(minimum 8gb required, might not be able to have other apps open while compiling)*\n- 64gb+ free space *(assuming fresh Windows install with no build tools, Rocket League, git, IDE, etc)*\n- For non-Windows: SSD *(debug binary is around 500mb on Linux)*\n\n**Windows**\n\n1. Download [the `rustup` tool](https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe)\n2. Run the exe, and Rust will be installed on your system. If you're prompted to `Automatically install Visual Studio 2022 Community edition`, you must type `y`.\n   You should then be prompted to install the required C++ Build Tools and Windows SDK as seen here: ![rust-bt](https://user-images.githubusercontent.com/35614515/179043763-e147e306-b31b-409c-8208-ec8044201bb5.png)\n\n- To update the `rustup` tool, run `rustup self update` in your terminal\n- To update Rust, run `rustup update stable` in your terminal\n\n**Other**\n\nFollow the [Tauri prerequisites guide](https://tauri.app/v1/guides/getting-started/prerequisites).\n\n### Setup\n\n1. Clone this repository\n2. Navigate to the `src-tauri` folder\n2. Running via:\n   - `cargo run` - the GUI will compile and launch.\n   - `cargo run --release` - the GUI will compile with optimizations (like production) and launch. \n\n### Live Reload\n   - Install Tauri's CLI: `cargo install tauri-cli --version \"^1.0.0\"`\n      - NOTE: This will download the CLI source and compile it. If you have yarn and don't wish to compile from source, you can:\n      - In the project directory, run `yarn add -D @tauri-apps/cli`\n      - And then replace `cargo` with `yarn`. The generated `package.json` and `yarn.lock` will be auto-ignored.\n   - Host the `assets` folder on `localhost` port `5500` - the Live Server extension for VS Code can do this:\n      - Open the `assets` folder in a new VS Code window\n      - In VS Code's `settings.json`, add the following:\n         ```json\n         {\n            \"liveServer.settings.host\": \"localhost\",\n            \"liveServer.settings.ignoreFiles\": [\n               \"src-tauri/**\",\n               \".vscode/**\",\n            ]\n         }\n         ```\n      - Run the `Open with Live Server` command\n   - In the `src-tauri` folder, run `cargo tauri dev`. The GUI will now:\n      - Auto-reload when something changes in the `assets` folder\n      - Auto-recompile when your code changes in the `src-tauri/src` folder\n      - You should also now have two windows, one with the `assets` folder open for HTML/CSS/JS dev work and the other for Rust dev work\n\n### Building the GUI installer for users\n\nTaken from the [Tauri guide](https://tauri.app/v1/guides/):\n\nNote that for Linux, you should build on the oldest version of Ubuntu possible. Ubuntu 18.04 is recommended for the best compatibility.\n\n**Method 1: 100% compile from source**\n\nThis will not only compile the GUI from source, but also the Tauri CLI. Once the CLI is compiled, you don't need to do it again.\n\n1. Navigate to the `src-tauri` folder\n2. Run `cargo install tauri-cli --version \"^1.0.0\"`\n3. In the project directory, run `cargo tauri build`\n\n**Method 2: Do it quickly with yarn**\n\nThis will download a pre-compiled version of the Tauri CLI.\n\n1. Run `yarn add -D @tauri-apps/cli`\n2. In the project directory, run `yarn tauri build`\n\n### How to update items in the appearance editor\n1. Install and run [BakkesMod](http://www.bakkesmod.com/)\n2. In Rocket League, press F6 to open the BakkesMod console, and enter the `dumpitems` command\n3. Find the output `items.csv` in the folder where your `RocketLeague.exe` is, usually `C:/Program Files (x86)/Steam/steamapps/common/rocketleague/Binaries/Win64`\n4. Replace `assets/csv/items.csv` with the new file\n5. Change encoding of the new file to UTF-8. Here's how to do that in VS Code:\n   - use the _Change File Encoding_ command (or click the UTF-8 button in the bottom right)\n   - select _Reopen with Encoding_, select the one with _Guessed from content_ (probably Windows 1252)\n   - now do that again, but _Save with Encoding_ and _UTF-8_\n6. Don't forget to bump the version number in `src-tauri/Cargo.toml`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvirxec%2Frlbot_gui_rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvirxec%2Frlbot_gui_rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvirxec%2Frlbot_gui_rust/lists"}