HomeJavaModsMariesLib
MariesLib
ModsJava

MariesLib

by kgbcupcake · on Modrinth

MariesLib is a shared NeoForge 1.21.1 library powering Marie’s mods. It provides runtime item classification, mod compatibility discovery, registry…

⬇ Download on Modrinth
MariesLib — screenshot 1

Banner

I wanted to pull out all the reusable code From Nourished, and place it in one library. MariesLib This is a shared Lib behind Marie's mods.

It handles the hard problems, auto-classifying thousands of items from modded content, three-tier compat with modpack overrides, player tracking with memory and decay, datapack tooling with validation, Dynamic UI and more, so consuming mods can focus on gameplay.


MariesLib 0.1.1-beta is still under development.

Development is ongoing as more systems are being refined, expanded, and stabilized. Recent work has focused on improving the underlying framework, APIs, registries, and developer tooling to provide a stronger foundation for future Marie mods.

More updates will be shared as development progresses.

Version 0.1.1-beta.4 has been split into four modules:

  • marie-core
  • marie-commands
  • marie-resources
  • marie-ui

This modular structure will make future maintenance easier, improve organization, and allow individual systems to evolve more independently.


Community

Discord Channel

Questions, suggestions, and development discussions are welcome.

A lot of the bug fixes and new features came from here.


Do you need to install this?

Yes: if you use a mod that depends on it.

Mod loaders and launchers that resolve dependencies automatically should pull MarieLib in for you. If Nourished fails to load, check that MarieLib is present and up to date.

For mod developers


What it provides

MariesLib handles shared infrastructure so Marie mods can focus on gameplay:

System What it does
Classification Runtime source resolution, scanner tooling, and classification traces
Compat discovery Three-tier compatibility registry with modpack overrides
Registry lifecycle Lifecycle-aware registries with snapshots and reload support
Tracking & values Player value tracking, memory windows, decay, and effect hooks
Diagnostics Datapack validation, unknown-item logging, and debug commands
Config tooling Presets, import/export, share codes, and module locks
Utilities JSON helpers, bounded LRU cache, running averages, validation

It is designed to stay lightweight, modular, and reusable—a foundation rather than a gameplay framework.


The classification pipeline

This is the core of MariesLib.

When a consuming mod needs to reason about a source it has never seen before, MariesLib resolves it through staged runtime logic:

There is also a developer-facing scanner for bulk analysis of unclassified sources. In current Marie mods, that means items with FoodProperties, such as Nourished’s food classification workflow. It is not a player-facing gameplay feature.

The exact pipeline is determined by the consuming mod. MariesLib provides the infrastructure; gameplay decisions remain the responsibility of the mod using it.


Broad mod compatibility

MariesLib uses a three-tier compat system:

Tier Source Notes
1 data/<modid>/compat/compat_registry.json in the consuming mod Base registry
2 data/<other_modid>/marie_compat.json from loaded mods Mod-provided declarations
3 config/<modid>/compat_overrides.json Modpack overrides

Later tiers merge into earlier entries rather than replacing them wholesale. That gives mod authors, addon authors, and modpack creators a predictable override path without recompiling.


Mods built on MariesLib

Mod Description
Nourished Nutrition mod for NeoForge 1.21.1
ProjecT E Extended Life (Planned)
Thermal Systems (Wip)

For mod developers

MariesLib exposes a public API through MarieAPI:

float level = MarieAPI.getValueLevel(player, "Item");
MarieAPI.registerValue(definition);
MarieAPI.registerCompatEntry(definition);
MarieAPI.registerCustomEffect(thresholdEffect);
Verified by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more