Back to mods
FranklyLib project artwork

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

Choose a version Pick your version below, then grab the matching file.

Quick answer

Which FranklyLib release should I use?

Updated 13 days ago
Latest stable file 1.2.4
Game version 26.2
Loader Fabric

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.

Client Required
Dedicated server Not supported
Loader for this release Fabric
Required install it here Optional supported, not mandatory Not supported do not install here Source doesn’t say do not assume

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.

All 1 required mods have matching files

Install Fabric API first. We found matching files for this game-version and loader setup.

Fabric API Needed by FranklyLib 1.2.4
required
Matching file found Matched file: 0.158.0+26.2

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.

  1. 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.

  2. 02

    Bring the mods it needs

    Install Fabric API first. We found matching files for this game-version and loader setup.

  3. 03

    Put it on the correct side

    It must be installed on the client. Do not install it on the dedicated server.

  4. 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:

  1. 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.
  2. 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.
  3. 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 (matches
mod_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.

1 available setups

Check the dependencies, then try the file in a copied instance before changing a world you care about.

Recent files

FranklyLib versions and loaders

15 of 15 releases match

Looking for an older file? The official Modrinth project page is in Resources.