Skip to content

mankool0/mc-bot-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

157 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MC Bot Manager

MC Bot Manager

A desktop application for managing and automating multiple Minecraft clients. Each client runs a Fabric mod that connects back to the manager, which can then control it, and run Python scripts against it.

Architecture

Two components communicate over Protocol Buffers via Unix domain sockets:

  • Client (/client/) - Fabric mod (Java) that runs inside Minecraft, captures game state, and executes commands
  • Manager (/manager/) - Qt/C++ desktop application for controlling bots and running scripts

Requirements

Manager:

  • CMake 3.16+
  • Qt6 (Widgets, Network, Protobuf, Concurrent, WebEngineWidgets)
  • esbuild (must be on PATH, used to bundle the script editor)
  • Python 3 with development headers (optional - auto-downloaded via python-build-standalone if not found)
  • pybind11, libnbtplusplus, Monaco Editor, and PrismLauncher headers are fetched automatically by CMake

Client:

  • Minecraft 1.21.4 or 1.21.11: JDK 21
  • Minecraft 26.1.2: JDK 25
  • Fabric Loader
  • Meteor Client
  • Baritone (for pathfinding)

Building

Manager:

cd manager
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build

This also builds libprismhook.so / libprismhook_core.so for Prism Launcher integration. The PrismLauncher source is fetched automatically by CMake to provide the headers needed to compile the hook.

Client:

cd client
./gradlew build                                        # defaults to 26.1.2
./gradlew build -Pminecraft_version=1.21.11            # or specify a version

Place the resulting .jar from client/build/libs/ into your Minecraft mods folder alongside Meteor Client and Baritone.

Prism Launcher Integration

The manager integrates with Prism Launcher to launch and manage Minecraft instances directly from the UI. It communicates with Prism via a hook library (libprismhook.so) that is preloaded into the Prism process.

To set it up, open the Prism Launcher settings in the manager, set the PrismLauncher data directory (auto-detected on most systems), and enable the hook via the checkbox. The manager will inject the hook library into Prism on launch.

Flatpak users

If you installed Prism Launcher via Flatpak, you need to grant it access to the Unix socket that the manager uses for IPC. The socket lives in $XDG_RUNTIME_DIR/minecraft_manager, which corresponds to xdg-run/minecraft_manager in Flatpak's filesystem namespace. By default Flatpak sandboxes access to this path, so Prism cannot reach the socket and launching bots will fail silently.

Run this once to grant the permission:

flatpak override --user --filesystem=xdg-run/minecraft_manager org.prismlauncher.PrismLauncher

Scripting

Bots are automated using Python scripts in the scripts/ directory. The manager embeds a Python interpreter and exposes APIs for bot control, inventory, world interaction, and crafting.

See the documentation for the full scripting API and examples.

About

Application to manage multiple Minecraft clients

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors