Compatibility
Minecraft: Java Edition
26.2
1.21.11
1.21.1
Platforms
Supported environments
Client-side
Creators
Details
Licensed MIT
Published 2 weeks ago
Updated last week
screenspec is a NeoForge library that turns a JSON screen definition into a working Minecraft Screen — no codegen, no hand-laid-out widgets.
Design your mod's UI visually in the MC Screen Designer, export a ScreenSpec JSON, drop it in your mod's resources, and open it in three lines of code:
ScreenSpec spec = ScreenSpecLoader.fromResource(rm, "your_modid", "settings_screen");
SpecScreen screen = new SpecScreen(Component.literal("Settings"), spec);
Minecraft.getInstance().setScreen(screen);
Wire up behavior with a fluent listener API — no subclassing required:
screen.on("save_btn", (id, s, v) -> save())
.on("volume", (id, s, v) -> setVolume((Double) v))
.on("hardcore", (id, s, v) -> setHardcore((Boolean) v));
Features
- Buttons, toggle buttons (with radio groups), sliders, text inputs, labels, panels, and icons
- Live data bindings — push game state into widget text, enabled state, and visibility every frame
- Declarative action ids for reusable cross-screen event handling
- Custom widget types, panel textures, and icon resolvers via simple overrides
Targets: Minecraft 1.21.5 / NeoForge 21.5.x / Java 21

