Skip to content

Repository files navigation

Autobuild GUI

A client-side Fabric mod for Minecraft 26.2. A hotkey opens a menu listing every schematic placement currently loaded in Litematica; a click on a row makes Baritone build exactly that placement.

The mod is GUI and glue code, nothing else. Pathfinding and block placement are entirely Baritone's job, reading the schematics entirely Litematica's.


Website

The project page — download, a short description, a look at the interface and the terms of use — lives as a static page in site/.

It is black and white throughout, and the background is a field of stone blocks you can mine: a click breaks the block under the pointer, holding the button down and dragging sweeps through them, and holes grow back after a few seconds. That lives in site/assets/js/blockfield.js — a single canvas behind the page, decorative only, and it respects prefers-reduced-motion. The page's Content Security Policy allows no inline script, so it has to stay a separate file.

The logo — the three blocks in a cycle — is site/assets/logo.svg for the page and src/main/resources/assets/autobuildgui/icon.png for the mod list.

GitHub Pages' "Deploy from a branch" option only serves the repository root or a /docs folder, not /site — publish this way instead: Settings → Pages → Source: "GitHub Actions", then add a workflow that uploads site/ as the Pages artifact (see actions/upload-pages-artifact). It is then reachable at https://aquaxs1.github.io/Autobuild-GUI/. Any other static host (Vercel, Netlify, Cloudflare Pages, …) can point its build output directory at site/ directly.

The download button points at releases/latest, so a new release needs no edit to the site — GitHub always resolves it to the newest published version.

Releases are built by .github/workflows/build.yml. Because Baritone is LGPL-3.0 and deliberately not vendored, the workflow needs a compile-only copy: set the repository variable BARITONE_JAR_URL (Settings → Secrets and variables → Actions → Variables) to a direct link to an api or unoptimized Baritone build for 26.2 — the standalone variant strips the public API and does not work. Without that variable the build step is skipped rather than failed. Pushing a v* tag creates the release either way, so the jar can always be attached by hand.


What the mod does

  • B (rebindable) opens the menu.
  • A list of every loaded placement with name, size, block count and status.
  • The search box filters by name.
  • A material check before the start: if the inventory falls short, the row reads "N blocks missing" and the click is locked — rather than getting stuck halfway through.
  • A click starts the build for exactly that placement, and the menu closes.
  • The placement being built shows a running indicator with an to cancel when the menu is opened again. Only ever one build runs; a new one cancels the old one cleanly.
  • If Litematica or Baritone is missing, the menu still opens and says what is missing.

Required mods

Mod Version Required
Fabric Loader 0.19.3 yes
Fabric API 0.156.0+26.2 yes
Litematica 26.2-0.28.4 or newer for the placement list
MaLiLib 26.2-0.29.2 or newer needed by Litematica
Baritone see below for the building
Java 25 yes

Without Litematica or Baritone the mod still starts and shows a message instead of crashing — both are genuine soft dependencies.

Baritone — please the right variant

Recommended: meteorclient.com → the download button "*Baritone [26.2]"

That is the standalone Baritone fork by MeteorDevelopment. It is not a part of the full Meteor Client — the utility mod does not have to be installed. Just drop the JAR into the mods folder.

Why this matters: Baritone is built in three variants, and one of them does not work with this mod:

Variant baritone.api.* Usable
api preserved
unoptimized preserved
standalone obfuscated away

In the standalone build, Baritone's own ProGuard run deliberately removes the keep rule for the API package (scripts/proguard.pro: `-keep class baritone.api.** { *; }

this is the keep api). There every API method is called just a(), b(), c()` — no

other mod can call them any more.

If a standalone build ends up in the mods folder anyway, nothing crashes: the click then reports "This Baritone build has no API package".

Alternative: dysnasia/baritone-26.2. Careful — the release published there right now (tag 26.2) is the standalone variant and does not work with this mod. Only useful if you find an api or unoptimized variant there, or build one yourself.


Installation

  1. Install Fabric Loader for Minecraft 26.2.
  2. Drop these JARs into the mods folder:
    • Fabric API
    • MaLiLib + Litematica
    • Baritone (see above — not the standalone variant)
    • autobuild-gui-<version>.jar
  3. Start Minecraft, enter a world, press B.

Configuration

config/autobuildgui.json, created with default values on the first start:

{
  "closeScreenOnBuildStart": true,
  "materialCheckEnabled": true
}
Key Meaning
closeScreenOnBuildStart Whether the menu closes as soon as a build has been started. false leaves it open so you can watch the running indicator directly.
materialCheckEnabled Whether the inventory is checked before the start. The check runs once when the menu opens, across the complete schematic volume; for very large schematics that is a noticeable hitch. false turns it off — every build then starts unchecked.

The keybind deliberately does not live in this file. Minecraft manages key bindings itself and stores them in options.txt; a second source would overwrite the change made in the controls menu on the next start. The hotkey is changed through Options → Controls → "Open Autobuild menu".


Building it yourself

Prerequisite: JDK 25.

Baritone has no Maven artefact for 26.2, so the JAR is wired in locally:

git clone https://github.com/aquaxs1/Autobuild-GUI.git
cd Autobuild-GUI

mkdir -p libs
# put the Baritone JAR (api or unoptimized variant, see above) into libs/:
cp ~/Downloads/baritone-26.2.jar libs/

./gradlew build

Result: build/libs/autobuild-gui-<version>.jar.

To test it in the development client: ./gradlew runClient.

The Baritone JAR is only needed at compile time (compileOnly) and is excluded through .gitignore — Baritone is licensed LGPL-3.0 and is linked against, not shipped along. Litematica and MaLiLib come in automatically as compileOnly from masa.dy.fi.


Known limitations

  • The progress bar shows no percentage. Baritone's IBuilderProcess offers no progress information at all, so the indicator is deliberately indeterminate ("running") rather than showing a made-up number. A real percentage would need Litematica's SchematicVerifier, which runs asynchronously and produces chat messages of its own — noted down for after the first working release.
  • The material check is pessimistic on builds already started. Litematica's synchronous material list counts what a build from zero needs, without looking at the world. A half-finished placement therefore asks for more material than is actually still needed.
  • The check runs when the menu opens, not continuously. If the inventory changes while the menu is open, the badges are stale. The click does check again, though, so it never builds on stale data.
  • No check in creative mode. Litematica's material accounting has no special case for creative and would report everything as missing there.
  • Client-side only, no network packets. On servers the same rules apply as for Baritone itself.

Details and the API research behind it: docs/RESEARCH.md.


Licence

MIT — see LICENSE. Baritone (LGPL-3.0) and Litematica (LGPLv3) are wired in as external dependencies only; their source is not contained here.

About

the gui for a autobuild mod for litemetiac - 26.2 Fabric

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages