My personal Minecraft bot written in Rust built with Azalea.
Primarily designed to be a pearl bot, allowing for quick travel to different locations with multiple accounts.
Also featuring a Discord bot, an HTTP API for local integrations, and support for No Chat Reports encryption.
Choose your preferred Installation Method below, then run the bot once to create files.
Open the global-settings.toml
file and change the server_address
to your desired server.
Rename the ExampleBot*.toml
in local-settings
to your desired accounts Minecraft Username,
Then open the local settings file and change the auth_mode
to online
.
You can check the global and local source files for documentation.
You can optionally use ZenithProxy between my bot and your desired server,
This can be useful if you want to keep your place in queue with non-priority accounts.
Add server_address = "127.0.0.1:ZENITH PORT HERE"
to the top of your local settings file.
Note: This is intended for proxies only, do not use it to connect accounts to different servers.
To enable debug logging you must set the environment variable:
RUST_LOG=shaysbot=debug,info
(error, warn, info, debug, trace)
The first is the log level of the bot, the second is of dependencies.
Compiled with GitHub Actions using the Debug profile.
Prerequisites:
- 2GIB of RAM/SWAP
- LLVM (Clang/LLD)
- Windows:
winget install -e --id LLVM.LLVM
or Visual Studio - ArchLinux:
sudo pacman -S base-devel clang lld
- Debian/Ubuntu:
sudo apt install build-essential clang lld
- Other: Ask Google, ChatGPT, or Deepseek
- Windows:
- Rust (Cargo/Rustup)
- Windows:
winget install -e --id Rustlang.Rustup
- ArchLinux:
sudo pacman -S rustup
- Debian 13+:
sudo apt install rustup
- Ubuntu 24.04+:
sudo apt/snap install rustup
- Other: Rustup
- Windows:
Troubleshooting:
- No space left on device - Your /tmp directory is too small or full
sudo mount -o remount,size=1G /tmp && rm -rf /tmp/cargo-install*
rustup toolchain install nightly
cargo +nightly install --git https://github.com/ShayBox/ShaysBot
mkdir pearl-bot
shaysbot
git clone git@github.com:ShayBox/ShaysBot.git
cd ShaysBot
- Run:
cargo run
- Build:
cargo build
(target/debug/shaysbot
) - Install:
cargo install --path .
(shaysbot
)
Run and Build use Debug while Install uses Release.
You can manually override with either: --debug
or --release
Debug includes debug symbols which makes it easier to debug and decompile.
Release has more optimizations, runs faster, and uses less disk space.
Debug: Settings are relative to the binary executable directory.
Release: Settings are relative to the current working directory.
- Join - Enable AutoReconnect for a bot.
- Leave - Disable AutoReconnect and disconnect a bot.
- Pearl - Automatically pull pearls remotely.
- Playtime - View players play time. (2b2t.vc)
- Seen - View players first and last seen. (2b2t.vc)
- Whitelist - Whitelist Players and link their Discord.
- AntiAfk - Automatically swing arm to prevent being kicked.
- AutoEat - Automatically swap and eat food to avoid starving.
- AutoKill - Automatically swap and kill nearby monsters.
- AutoLeave - Automatically leave the server when in danger.
- AutoLook - Automatically look at the closest player.
- AutoPearl - Automatically goto and pull player pearls.
- AutoTotem - Automatically equip totems of undying.
- DiscordLogger - Log various events to Discord.
- GlobalSettings - Handle global swarm settings.
- LocalSettings - Handle local account settings.
- StasisChambers - Handle global stasis chambers.
- BlockStates - Tracks block states.
- EnderPearls - Tracks ender pearls.
- GameTicks - Tracks game ticks.
- PlayerProfiles - Tracks player profiles.