Setting Up Baritone for Automated Pathfinding in Minecraft
Baritone is a pathfinding and automation library for Minecraft that lets your character navigate to a location, mine a block type, or follow a set of instructions without manual input. It works as a client-side mod with Forge or Fabric. The idea is straightforward: you tell it where to go or what to collect, and it figures out the route. Here is how I actually got it running without wasting an afternoon on compatibility issues. First, you need the right mod loader. Baritone 1214 targets Minecraft 1.20.4 with Forge 49.x or later. I tried running it on Fabric at first because I had Fabric already installed for other mods, and it simply refused to load. The paths are different between the two ecosystems, and the JAR structure won't match up. Stick with Forge for this version unless you want to dig through source code and recompile yourself.
Download Baritone from the official source. The GitHub releases page at github.com/cabaletta/baritone is the only place I trust. There are mirror sites and random ".jar" links on sketchy forums that bundle malware. I learned that the hard way when a downloaded JAR flagged my antivirus three separate times. Not worth the risk. Once you have the JAR, drop it into your mods folder. Make sure your forge instance is set to 1.20.4 exactly. If you are running a modpack, check the mod list for conflicts. Journeymap and Xaero's Minimap both play fine alongside Baritone, but things like Minihud can sometimes interfere with path visualization if you run them at the same time. I had a case where the path preview rendered but movement was completely broken, and it turned out Minihud was catching the same render hooks. Disabled Minihud, everything worked. Launch the game. Load into a world, any world. Type /baritone in chat to access the command interface. That is it for the basic setup. No config files to edit, no JSON tweaking on day one.
The main commands you will use constantly are /baritone/customGoal for setting a coordinate or biome-based goal, /baritone/mine for automating resource collection, and /baritone/stop when the bot goes off the rails, which it will. Let me tell you about a specific edge case that wasted me nearly two hours. I was trying to use the mine command to collect a stack of deepslate ores in a deep dark biome at Y=-50. Baritone calculated a path and started moving, but every time it hit a block it could not pass through, it would get stuck in a loop and spam warnings. The issue was that the terrain generation in that area had scattered calcite and tuff blocks that the pathfinder classified as non-mineable obstacles. It would try to go around them but the spiral pattern would never converge. The workaround was to use /baritone/setForcedPathfindBehavior safeFall and also /baritone/setOption optimizePath to false. That forced it to take a more conservative route rather than trying to calculate the geometrically optimal path through broken terrain. It took longer but it actually completed the job instead of freezing. Another thing nobody tells you: Baritone does not respect vanilla mob griefing rules the way you might expect. It will break blocks that are technically protected by game rules, including flower pots, banners, and certain decorative blocks. If you are running on a server with any kind of protection plugin, this will get you banned. I found this out after running it on a friend's private server and accidentally clearing out a built wall he had spent an hour constructing. It was not malicious, just a blind spot in how the mod interacts with block interaction events.
Get the Full Details

Performance is another area that gets glossed over. On a standard machine with 8GB allocated to Java, Baritone will consume roughly 400-600MB of RAM during active pathfinding. That is not trivial if you are also running other mods. I ran into stuttering issues when I had 30+ mods loaded and Baritone was calculating paths through a large area. The solution was lowering the pathfinding tick rate with /baritone/setOption pathTickRate 2, which halves the CPU load at the cost of slightly slower route computation. For most use cases the difference is negligible. If you want to download the actual JAR, go to the GitHub releases page and grab the file that says something like baritone-1.20.4-1.3.1214.jar or similar. The version number 1214 maps to a specific build of the 1.3.x series. Do not download anything labeled "Baritone 1.21" for 1.20.4 Minecraft. The version mapping is confusing because the build number and the Minecraft version are two different things. What Baritone cannot do, and you need to know this upfront: it does not handle combat, it does not craft items, and it does not manage inventory beyond what is necessary to place or break blocks. You still need to manually equip tools, set up furnaces, and handle loot sorting. If you were expecting a fully autonomous survival bot, you are looking at the wrong tool. For pathfinding and mining automation, it is solid. For everything else, you need something else.
I also recommend running it in a singleplayer world first before taking it onto a server. The learning curve is about 30 minutes. After that you will know exactly when it will fail and how to prevent it from failing.