Baritone is a Minecraft client-side automation bot that provides autonomous pathfinding, mining, building, exploration, and entity following. It operates as a mod for Fabric, Forge, and NeoForge, integrating deeply with the Minecraft client via mixins to control player movement, block interaction, and chat commands. The system is architected around a central `Baritone` class that orchestrates behaviors (pathing, look, inventory), processes (mine, build, follow, elytra flight), a command system with tab completion, world caching for long-distance pathing, and a schematic system for declarative building. It exposes a public API (`baritone.api`) for embedding in custom utility clients. The core pathfinding engine uses A* with custom movement costs, supporting ground movement (walking, jumping, parkour, swimming) and elytra flight through a Java port of a native nether pathfinder. The world is cached in a compressed 2-bit format (air, solid, water, avoid) with disk persistence, enabling pathfinding across large distances. The command system supports dozens of chat commands (`#goto`, `#mine`, `#build`, `#follow`, `#farm`, `#explore`) with argument parsing and datatype validation. The schematic system allows loading and building structures from various formats (MCEdit, Sponge, Litematica) with composable masks, rotations, and substitutions. External dependencies include the Minecraft client itself (via mixins), optional integration with Litematica and Schematica mods, and a native library for elytra pathfinding (with a Java fallback). The build system uses Gradle with ProGuard for jar shrinking and a custom `Determinizer` for reproducible builds. The codebase is actively maintained with frequent commits, though it carries technical debt from version-specific mixins, commented-out code, and some monolithic process files. It is a high-quality example of game automation and pathfinding research, but its tight coupling to Minecraft internals limits reusability outside that domain.
Figura is a Minecraft mod (client-side with optional server-side backend) that allows players to fully customize their avatar's appearance, animations, sounds, particles, and behavior using Lua scripting. The architecture is a multi-loader (Fabric, Forge, Quilt, NeoForge) client mod with a server-side plugin (Spigot) for avatar storage, permissions, and networking. The client-side core includes a Lua runtime (LuaJ) with a sandboxed API exposing over 30 modules (e.g., models, textures, sounds, events, keybinds, action wheel, networking, math). Avatars are defined by Blockbench models, Lua scripts, textures, and sounds, all packaged into NBT files. The rendering pipeline hooks into Minecraft's vanilla rendering via extensive mixins to replace player models, modify armor, cape, elytra, and nameplates. The server-side backend (Figura Server Bridge) provides avatar upload/download, user data, pings, and permission management via WebSocket or custom Minecraft packets. Key entry points include the `Avatar` class (lifecycle), `FiguraLuaRuntime` (script execution), `AvatarRenderer` (rendering), `PermissionManager` (access control), and `NetworkStuff` (backend communication). External dependencies include LuaJ, Gson, nv-websocket-client, and Minecraft's own libraries.