krœt.net
TurtleLib logo: a turtle in Minecraft style

Minecraft · Developer library

TurtleLib

Live

TurtleLib bundles the plumbing every plugin and mod needs but nobody wants to write twice, which keeps Timberella, Underwater Trees, PermaClicker and TradeShuffler lean. It comes in two editions for developers: as a mod for Fabric and NeoForge and as a library for Paper plugins.

Herr Kröt, the crocheted krœt.net turtle, stacking building blocks with symbols on a pile of books

Editions

Mod edition

Fabric & NeoForge

For developers of Fabric and NeoForge mods. Unlike the plugin library, the mod edition is not bundled but shipped as a mod of its own: anyone playing a mod like PermaClicker or TradeShuffler has to put TurtleLib into their mods folder as well.

  • UpdateChecker

    Looks for new versions via the configured providers such as Modrinth and CurseForge.

  • VersionComparator

    Compares versions deterministically, including pre-releases.

  • LangLoader & MessageService

    Loads and syncs language files and formats localized messages.

  • One codebase, two loaders

    Shared behaviour for Fabric and NeoForge without writing everything twice.

Plugin library

Paper

For developers of Paper plugins. The library is bundled into the plugin at build time, for example in Timberella and Underwater Trees – server owners have nothing extra to install.

  • UpdateChecker

    Asynchronously asks Modrinth and Hangar for new releases, with filters for pre-releases and the server version.

  • VersionComparator

    Compares semantic versions including pre-release suffixes, with sensible fallbacks.

  • ServerMatcher

    Declaratively checks whether the server version is supported, and warns or disables the plugin.

  • MessageService & LangLoader

    MiniMessage translations that gain new keys without overwriting custom edits.

  • ConfigWatcher

    Detects file changes on disk and invokes safe main-thread callbacks.

  • Config migration

    Renames keys and adds missing values right in the file text – comments and formatting stay intact.

  • LegacyDataUpgrade

    A one-time clean upgrade after a major release: backs up the old data and carries over only changed values.

  • Test helpers

    Checks language files in unit tests for missing keys, tags and untranslated texts.

More projects

Portrait of Sebastian with purple glasses, smiling in front of green trees

Behind krœt.net

Moin, I'm Sebastian.

I’m originally from the Baltic coast and now live between the Swabian Jura and the Black Forest. The “Moin” – northern Germany’s all-purpose hello – came along with me, and I use it at any time of day. I grew up with computers and tech, trained as a media designer and then spent a few years working in IT and customer service.

I’ve been using AI models since day one – for programming just as much as for creative inspiration. I also run a web radio station. Anything else? Coffee always works, so do sunflowers, my colours are purple and yellow – and I have a real soft spot for turtles.