
Modrinth · Minecraft mod
FranklyLib
FranklyLib is a dependency-free Fabric library mod that gives other mods a cohesive custom GUI widget kit (buttons, sliders, dropdowns, text boxes, checkboxes, tab bars) and a general-purpose triangle mesh API
Quick answer
Which FranklyLib release should I use?
FranklyLib 1.2.4 targets 26.2 with Fabric. It must be installed on the client. Do not install it on the dedicated server. All 1 required mods have matching files.
Where it goes
Is FranklyLib required on the client, server, or both?
It must be installed on the client. Do not install it on the dedicated server.
This file is marked client-only.
What else does FranklyLib 1.2.4 need?
1.2.4. Change the file and its required mods may change too.
Install Fabric API first. We found matching files for this game-version and loader setup.
We only count dependency files that match this setup. A file for another loader does not fill the gap.
Before you install it
Add FranklyLib without breaking your instance.
Built for FranklyLib 1.2.4. Pick another file and the loader, install side or required mods may change.
- 01
Stick to this file
Use 1.2.4. It targets 26.2 with Fabric; another release may have different loader, side or dependency requirements.
- 02
Bring the mods it needs
Install Fabric API first. We found matching files for this game-version and loader setup.
- 03
Put it on the correct side
It must be installed on the client. Do not install it on the dedicated server.
- 04
Pick the file you checked
Use the “Get this file” button beside 1.2.4. It opens that exact file at the source.
About this project
What does FranklyLib add?
FranklyLib
FranklyLib is a small Fabric library mod (requiring only Fabric
API alongside Fabric Loader) that gives other mods two things:
- A cohesive custom GUI widget kit — buttons, sliders, dropdowns, text boxes,
checkboxes, and tab bars that all share one flat, semi-transparent visual language,
so a screen built from them doesn't end up mixing vanilla's beveled widgets with
ad-hoc custom ones. - A general-purpose triangle mesh API — build arbitrary meshes (procedural
primitives or fully custom vertex/index data), optionally deform their vertices
per-frame via a plug-in callback, and render them either as free-floating 3D
geometry or attached to a point on a living entity's model. - A JSON config engine — persist annotated config objects on either side,
with validation, automatic saves, safe external-file reloads, nested groups,
and extensible value handlers.
FranklyLib has no gameplay of its own and ships no networking code. It's a
toolkit other mods depend on, not a mod players install standalone.
Why
Fabric mods that need custom UI or custom 3D geometry tend to reinvent the same
handful of widgets and the same mesh-building boilerplate every time. FranklyLib pulls
that into one reusable library so you can focus on your mod's actual logic instead of
re-deriving "how do I draw a slider" or "how do I triangulate a sphere" from scratch.
Requirements
| Minecraft | 26.2 |
| Loader | Fabric Loader ≥ 0.19.3 |
| Java | 25+ |
| Fabric API | Required. Some functionality (resource reload listeners, keybinding registration, networking) needs Fabric API, not just Fabric Loader. |
Installation
Not yet published. The snippet below will work once a release has actually been
pushed through the publish workflow — there's nothing at these coordinates until
then.
FranklyLib publishes to its own self-hosted Maven repo via GitHub Pages. Add it as a
dependency in your loom project:
repositories {
maven { url = 'https://repo-frank1o3.duckdns.org/' }
}
dependencies {
modImplementation "com.frank1o3:franklylib:${franklylib_version}"
}
Replace ${franklylib_version} with an actual released version (matchesmod_version in gradle.properties at release time) — check the repo's
Releases page for available
versions.
FranklyLib is also published to Modrinth, which hosts its own
Maven repo per project if you'd rather depend on that instead:
repositories {
maven { url = 'https://api.modrinth.com/maven' }
}
dependencies {
modImplementation "maven.modrinth:franklylib:${franklylib_version}"
}
Features
GUI toolkit
All widgets live under com.frank1o3.franklylib.client.gui and follow the same
builder pattern:
FranklyButton button = FranklyButton.builder()
.bounds(x, y, 86, 20)
.message(Component.literal("Reset"))
.onPress(btn -> doReset())
.build();
FranklySlider slider = FranklySlider.builder()
.bounds(x, y, 200, 20)
.range(0.1, 16.0)
.step(0.1)
.initialValue(1.0)
.label(Component.literal("Scale"))
.formatterString(v -> String.format("%.1fx", v))
.onValueChanged(v -> preview(v))
.onValueCommitted(v -> commit(v))
.build();
See the full widget reference for every widget.
Mesh construction & rendering
All mesh types live in com.frank1o3.franklylib (common-side, no client
dependencies), so they can be referenced from code that isn't client-only. Rendering
helpers live in com.frank1o3.franklylib.client.render.
Mesh sphere = MeshBuilder.uvSphere(Vec3.ZERO, 1.0f, 12, 12).withComputedNormals();
FranklyAttachmentRenderer.render(
poseStack, renderQueue, renderState, model,
new AttachmentPoint("head", new Vec3(0, 0.2f, 0), Vec3.ZERO, 1.0f),
sphere, MeshDeformer.IDENTITY, renderType,
light, overlay, color, partialTick);
See the full mesh/rendering reference for details.
Config engine
The common-side config engine persists annotated Java objects as JSON and can be
used by both dedicated servers and clients. It supports numeric bounds, renamed
keys, nested config groups, records, automatic saving, and reload detection.
FranklyConfigHolder<MyConfig> config = FranklyConfigHolder.builder(MyConfig.class, MyConfig::new)
.path(FabricLoader.getInstance().getConfigDir().resolve("mymod.json"))
.build();
See the full config engine reference for setup,
lifecycle wiring, and the complete annotation/value-type reference.
What this library is not
- No physics simulation — deformation is a plain
(Mesh, float) -> Vec3[]callback
the consumer supplies. - No per-entity or per-player config storage/caching.
- No networking or sync — consumers own their own sync entirely.
- No assumptions about what a mesh represents or where it's rendered.
Documentation
License
FranklyLib is released under the BSD 3-Clause License — public domain. Use it, fork it,
strip it for parts, no attribution required.
Project description from Modrinth.
Pick your setup
FranklyLib by Minecraft version and loader
Choose the version and loader you play, then open the matching release.
26.2
1 loader buildCheck the dependencies, then try the file in a copied instance before changing a world you care about.
Recent files
FranklyLib versions and loaders
1.2.4
franklylib-1.2.4.jar
18 Aug 2026
1.2.3
franklylib-1.2.3.jar
17 Aug 2026
1.2.2
franklylib-1.2.2.jar
17 Aug 2026
1.2.1
franklylib-1.2.1.jar
12 Aug 2026
1.2.0
franklylib-1.2.0.jar
12 Aug 2026
1.0.9
franklylib-1.0.9.jar
12 Aug 2026
1.0.8
franklylib-1.0.8.jar
12 Aug 2026
1.0.7
franklylib-1.0.7.jar
12 Aug 2026
1.0.6
franklylib-1.0.6.jar
10 Aug 2026
1.0.5
franklylib-1.0.5.jar
8 Aug 2026
1.0.4
franklylib-1.0.4.jar
6 Aug 2026
1.0.3
franklylib-1.0.3.jar
6 Aug 2026
Looking for an older file? The official Modrinth project page is in Resources.