// the find
SpockBotMC/SpockBot
High level Python framework for building Minecraft clients and bots.
SpockBot is a Python framework for building Minecraft bots that handles the protocol, world state, physics, pathfinding, and inventory at a reasonably high level. It uses an event-driven plugin architecture where everything including the event loop is swappable. Last commit was 2016, so it only supports Minecraft 1.8.8 and is effectively abandoned.
- Plugin architecture is genuinely well-designed — dependencies are declared, the loader wires them up, and swapping out the event backend is a real supported use case, not an afterthought.
- Feature coverage for its era is solid: vanilla physics simulation, A* pathfinding, full inventory/crafting support, and chunk map parsing are all present and non-trivial to implement correctly.
- The protocol layer (spockbot/mcp) is cleanly separated from game logic, making it straightforward to trace what packets are being sent/received.
- Hard-stopped at Minecraft 1.8.8 from 2016. Modern servers run 1.20+; the protocol has changed dramatically. You cannot use this to connect to any current vanilla server without massive rework.
- Test coverage is shallow — tests exist for datautils, yggdrasil auth, chat, and a couple of core plugins, but pathfinding, physics, world map, and inventory logic have zero test coverage.
- Documentation was admittedly incomplete at abandonment ('only just getting started with documentation'); the getting-started guide and most plugin docs are stubs, so you will be reading source code exclusively.
- Uses `select`-based single-threaded I/O (spockbot/plugins/core/select.py) with no async/await support, which makes writing anything that needs concurrency awkward and ties it to a pre-asyncio Python paradigm.