All Mods Resource Packs Data Packs Shaders Modpacks Plugins
MariesLib

MariesLib

by kgbcupcake • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

License Release Stars Issues Minecraft NeoForge Ask DeepWiki

This is a shared development library for my NeoForge mods.

It contains reusable systems that would otherwise have to be implemented separately in each project. It is intentionally focused on framework infrastructure rather than providing its own gameplay mechanics.

What it provides
  • Value tracking: persistent player values with decay, thresholds, effects, diminishing returns, source memory, synergies, and milestones.
  • Generic tracking: reusable counters for things such as blocks mined, entities defeated, distance traveled, machine operations, and other numeric statistics.
  • Classification: configurable item classification with tags, namespaces, keywords, recipes, weighted signals, overrides, exclusions, and runtime resolution.
  • Compatibility: runtime compatibility definitions with mod-provided registrations and configuration overrides.
  • Resource systems: JSON, configuration, and datapack-driven definitions and overrides.
  • Dynamic UI: reusable components, draggable/resizable panels, widgets, notifications, rendering utilities, and the shared Command Center.
  • UI editing: module positioning, scaling, visibility, colors, layout editing, toolboxes, and editor controls.
  • Developer tooling: framework commands, diagnostics, classification tracing, and request/response networking.
  • KubeJS integration: experimental bindings for selected framework APIs.
Architecture

MariesLib is split into several modules:

  • marie-core: core APIs, tracking, classification, compatibility, and shared services
  • marie-commands: commands and diagnostic tooling
  • marie-resources: resource-driven definitions and overrides
  • marie-ui: reusable UI infrastructure
  • marie-editor: UI editing and configuration infrastructure

The library is designed so that consuming mods provides the actual meaning and gameplay rules.

For example:

MariesLib:: provides generic value tracking. Nourished:: defines nutrition values and how they affect the player.

Compatibility & API

MariesLib targets Minecraft 1.21.1 / NeoForge. 21.1.x / Java 21.

The library uses explicit API stability levels:

  • @Stable: intended for external use
  • @Experimental: usable but subject to change
  • @Internal: implementation detail and not intended for external use

MariesLib is distributed as a normal NeoForge dependency and is not bundled through Jar-in-Jar.

Projects

Currently used or planned for:

License: LGPL-3.0-only

Source: GitHub Documentation: API Reference Changelog: CHANGELOG.md

How to Install MariesLib (Mod)

MariesLib by kgbcupcake is verified for Neoforge across Minecraft versions 1.21.1 (latest release: 0.1.2-beta, file size: 1.4 MB). Follow the steps below to install it safely from ModCraft.tv:

  1. Click the Download button above and select your Minecraft version (1.21.1) and platform (Neoforge).
  2. Make sure you have the compatible loader or environment installed for Neoforge.
  3. Move the downloaded MariesLib file into your Minecraft .minecraft/mods folder and launch the game.

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
1.21.1
Neoforge
1mo ago 1
1.21.1
Neoforge
2mo ago 1
1.21.1
Neoforge
3mo ago 1
1.21.1
Neoforge
4mo ago 1
1.21.1
Neoforge
4mo ago 1
1.21.1
Neoforge
5mo ago 1
1.21.1
Neoforge
5mo ago 1
1.21.1
Neoforge
5mo ago 1
1.21.1
Neoforge
5mo ago 1
1.21.1
Neoforge
5mo ago 1
1.21.1
Neoforge
5mo ago 1
# MariesLib 0.1.2-beta

A big beta. Module boxes get a full look-and-feel overhaul, mods that run side by side get a lot of fixes, and several datapack and API features that never worked now do.

## ⚠️ Read before updating

  • Beta.**
  • Addon devs: some UI classes moved.** The layout editor, module settings, scale-config and toolbox systems left marie-ui and now live in the new **marie-editor** module. If you use any of them, add the dependency.
  • Deprecated for removal:** the single-argument registerExportResolver(ExportResolver). Use the overload that takes a registry key.

## Highlights

  • Glow and Pulse tabs on every box:** text, border and bar glow with color and strength, plus a "breathing" border pulse (Smooth, Heartbeat or Flash) that stays in sync across boxes.
  • More box styling:** background and border opacity and shade, border shadow, header size, and a one-click Reset This Module button.
  • More Hide options:** Hide Window, Hide Text, Hide Bars and Hide Header, next to Hide Icons.
  • Size snapping:** resizing a box can snap to the size of neighboring boxes.
  • New Hub window:** a resizable popup with a sidebar, used by editors such as Nourished's Diet Screen editor.
  • Redesigned color picker:** a round hue/saturation wheel, a brightness slider, saved favorites and hex entry.

## Fixed

  • Multiple mods using MariesLib**
  • Each mod now uses its own settings for decay, effects, tooltips, thresholds and tracking. Before, the most recently loaded mod's settings applied to all of them.
  • Eating or using a source no longer counts value gains more than once when several mods are installed.
  • A mod using default settings no longer makes other mods' tooltips and value guesses appear on every item.
  • Respawning no longer wipes recent-source history for a mod set to keep values on death, and each mod resets to its own starting level.
  • Item tooltips in single-player no longer show value info left over from the last multiplayer server you joined.

  • Gameplay and tracking**
  • Profiles, milestones and synergies added by mods no longer disappear after a second /reload.
  • Daily, weekly and monthly trackers now reset when you sleep through the night or use /time. Periods cut short by moving time backwards record when they actually ended.
  • Diminishing returns now count "free bites" correctly.
  • Fixed full-screen black flashing on the HUD while eating.

  • Datapacks and scripts**
  • tracking_profiles/*.json files now load. Before, they were always skipped.
  • Compat entries with bulk item-to-value mappings now apply those mappings.
  • A runtime tooltip message override now replaces only the message it names, not the whole item's tooltip.
  • Mod scans: two scanners with similar names no longer overwrite each other's cached results.
  • Removed the unused mod_compat.json loader that logged a missing-resource warning on every launch.

  • Boxes and editor**
  • Bar rows and legends now respect their own text, icon and bar size sliders and
...
### Classification / Scanner

  • Recipe data can now contest keyword classifications**, not just append to them. Confidence is computed honestly over the combined keyword+recipe signal instead of being copied from the keyword match items with disagreeing names/recipes, which can now be flagged UNCERTAIN. Winner-changing overrides are opt-in per category via contestable_values; with none configured (the shipped default), no classification winners change, only confidence/UNCERTAIN flags.


  • Scanner-side recipe merge no longer silently drops contesting recipe mass. Expect the next scanner run to surface more multi-value/ambiguous items than before. This is intentional.


  • New RecipeInheritanceResolver.collectContributions walks the *entire* recipe tree instead of stopping at the first confident match, the root cause fix for the "calzone" bug class.


  • CommunityTagResolutionStage's tag directory is now per-mod configurable instead of hardcoded.


  • compositeRatioThreshold default raised (a stray secondary tag no longer silently attaches an unrelated category to an item).

  • SourceClassificationRegistry overrides now actually reach

  • SourceRegistry (previously silently ignored) and now fully lock out competing tag/API registrations for that item instead of leaking through.


  • New calories field on source_classifications.json, with corrected precedence so classification no longer zeroes/miscalculates an item's calorie total.

### New UI subsystems

  • Command Center**: pluggable sidebar+card dashboard for consumer mods, now drag/resizable with clipped/scrollable content and corrected rendering (blur order, sizing, translation key fixes).


  • Notifications**: generic client-side toast stack above the XP bar with merge-by-key support.


  • Scale Config panel**: replaces the old full-screen scale config; generic embeddable per-component text/padding adjustment.


  • Edit Mode / Snap Registry**: generalized double-click edit mode and cross-mod magnetic-edge snapping for draggable HUD components.


  • Color system**: ColorKey/ColorDefinition/MarieColors layer for defaults/overrides, plus withOpacity/shade helpers and a generic color-row config widget.


  • New dev.marie.framework.ui.api "facade package" consolidating all of the above's public entry points.

### Tracking & Sync

  • New generic tracker/period-history framework (MarieTracking) and parallel tracker-milestone system, both with datapack support.
  • Two-tier client sync for trackers (throttled dirty-flag sweep + full login snapshot) fixes previously stale client-side tracker reads.
  • New generic config/registry sync API (MarieResourcesAPI) so mods don't need to hand-roll their own sync payloads.
  • Client caches now correctly clear on disconnect (previously never happened at all).

### Breaking changes

  • MarieNotifications, MarieCommandCenter, EditModeCoordinator moved to dev.marie.framework.ui.api. Old import paths no longer exist.


  • MarieAP
...
> ℹ️ Some internal packages/classes were renamed or reorganized in this release. If you're a mod developer consuming MariesLib directly, check the Changed section below. End users: the override file layout changed but migrates automatically on load, just don't manually re-copy old override files over the new folders. Docs (API.md/ARCHITECTURE.md) are being updated to reflect these changes and will follow shortly.

## Added
  • TooltipMessageRegistry / TooltipColorRegistry: configurable per-item and per-key tooltip colors and messages, with a two-tier override system (modpack config → datapack)
  • ExcludedItemsRegistry: fully exclude specific items from tooltip/classification handling
  • CommunityTagResolutionStage / SuffixResolutionStage / KeywordResolutionStage: scanner signal logic extracted into a proper resolution-stage cascade
  • Recipe-inheritance scoring now falls back through component classification when direct tags/lookups come back empty

## Changed
  • SourceClassificationRegistry override folder layout reorganized (overrides/Overrides/, overrides/Read_Me/): migrates automatically
  • Recipe-inheritance scores now merge into already-tagged items instead of being skipped
  • Several internal classes split for maintainability: no public API changes
  • DeathNutritionBehavior renamed to RespawnValueBehavior (old accessors deprecated, still functional)

## Fixed
  • SourceClassificationRegistry no longer crashes on malformed override entries: bad entries are now skipped and logged individually
  • Removed unreachable bundled README resources that could never actually load
  • Removed dead-code ExportResolverRegistry
  • Corrected @ApiStatus visibility tiers for several classes with real cross-mod consumers

Full details: [CHANGELOG.md](https://github.com/kgbcupcake/MariesLib/blob/main/CHANGELOG.md)
# MariesLib: 0.1.1-beta.5

## Changes

  • Improved source classification stability when resolving external or cached overrides
  • Refined runtime classification tracing to better distinguish live inference vs cached results
  • Improved robustness of recipe-based nutrient inheritance fallback behavior
  • Internal pipeline adjustments for better handling of incomplete or non-standard recipe sources

## Internal / Technical

  • Better separation between runtime inference and external classification overrides
  • Improved trace clarity for resolver cache hits and misses
  • Enhanced diagnostics output for unsupported recipe structures



# MarieLib 0.1.1-beta.2

This update expands MarieLib's tooling for both mod developers and modpack authors, with a new configuration validation framework, tag-audit system, improved developer commands, and several internal improvements to the classification pipeline.

## Highlights

### ✅ Configuration Validation Framework

Mods built on MarieLib can now register their own configuration validators.

New validation commands provide structured PASS / WARN / FAIL results with detailed findings, making it much easier to diagnose configuration issues without digging through log files.

Highlights include:

  • ConfigValidator API
  • ValidationResult / Finding API
  • Per-mod validation runner
  • /\<modid> validate


### 🔍 Tag Audit Framework

MarieLib now includes a complete tag-audit system for developers.

Tag rules can inspect registered tags, identify inconsistencies, and generate suggested fixes automatically.

The framework includes:

  • TagScanner
  • TagRule API
  • TagReport
  • TagIssue
  • TagFixSuggestion

This is intended to make maintaining large food registries significantly easier.


### 🛠 Developer Commands

Several new commands have been added for MarieLib-based mods.

  • /\<modid> validate

  • Runs all registered configuration validators.

  • /\<modid> analyze <item>

  • Produces a detailed classification trace for any food item.

  • /\<modid> set_all

  • Sets every registered value for a player simultaneously.

These commands are designed to simplify debugging and balancing during development.


### 📈 API Improvements

New public APIs have been added for:

  • Config validators
  • Export resolvers
  • Tag audit registration
  • Source classification inspection

The RecipeInheritanceResolver has also been expanded to support pre-built recipe indexes for improved runtime performance.


### 🧹 Internal Improvements

  • Improved scanner-spec loading
  • Better command registration
  • Additional export and tag-audit support
  • Improved classification infrastructure

These changes primarily improve reliability and reduce unnecessary logging for consuming mods.


## Notes

Published artifact version: **0.1.1-beta.2**

As always, thanks to everyone testing MarieLib and providing feedback. Several improvements in this release were driven directly by real-world testing from the community.

## MariesLib 0.1.1-beta.1

### What's New

  • Milestone system**: Cumulative intake milestones are fully operational. They track lifetime totals per value key, fire once per player, and can grant potion effects and/or vanilla advancements on completion. Define them via datapack JSON or KubeJS scripts.

  • KubeJS**: advancementId support added to registerMilestone(). MarieEvents.milestoneTriggered event bridge added for reacting to completions in scripts.

  • Export framework**: New ExportResolver<T> API for consuming mods to export per-registry-entry data to editable JSON. Register with MarieAPI.registerExportResolver, then run:

  • /marieslib dump <resolverId>
  • /marie dump <resolverId>

Output is written to config/<modid>/<resolverId>_export.json.

  • Config validation**: New ConfigValidator API for consuming mods to validate their own config files on demand. Register with MarieAPI.registerConfigValidator, then run:

  • /marieslib validate <modid>
  • /marie validate <modid>
  • /<modid> validate

  • Tag audit**: New tag-audit framework for consuming mods to register rules and scan tag data for issues. Register with MarieAPI.registerTagRule and MarieAPI.registerTagAuditContext, then run:

  • /marieslib audit_tags <modid>
  • /marie audit_tags <modid>

Report is written to config/<modid>/tag_audit_report.json.

  • Explicit bootstrap**: Consuming mods must now call MariesLibBootstrap.attach or bootstrap explicitly. MariesLib no longer auto-bootstraps when MarieLibContext is unregistered.

### Fixed

  • Bundled scanner_spec.json now loads from the consuming mod's jar instead of failing with Bundled scanner_spec.json missing.

### Notes

  • Requires explicit bootstrap wiring — see MariesLibBootstrap.attach.
  • Nourished **0.2.6-beta.1+** is required to use the milestone system end-to-end.
  • Toolkit commands (scan, diagnostics, reload, etc.) remain under each consumer mod's namespace (e.g. /nourished scan). Library-only commands (status, mods, api, registries, dump, validate, audit_tags) are on /marieslib and /marie.
# MarieLib 0.1.0-beta.5 {2026-06-16}

## Added

  • Added MarieValueColors.resolvedDefaultArgb(String key)
  • Returns the true default ARGB value for a value key
  • Checks ValueDefinition.colorOverride first
  • Falls back to the built-in palette
  • Ignores transient overrides when detecting actual customization

  • Added per-value decay rate resolution:
  • IMarieLibConfig.decayRateFor(String valueKey)
  • MarieLibContext.Builder.decayRateFor(Function<String, Float>)
  • Uses configured values when available
  • Falls back to default decay rates

## Fixed

  • Fixed ARGB parsing for 0x / 0X color values
  • Full ARGB literals now parse correctly

  • Fixed value decay rates ignoring config overrides
  • Consuming mods can now properly customize decay behavior

  • Fixed decay display commands using hard-coded defaults
  • Commands now show resolved configured decay rates

  • Fixed API/KubeJS registered classifications being lost during reloads
  • External classifications now survive tag reload passes

  • Fixed missing translation names in CriticalValueToast
  • Falls back to the raw value key instead of displaying translation paths

## Notes

  • Published artifact version: 0.1.0-beta.5
## Fixed
  • SourceRegistry registration logs dropped from INFO to DEBUG, no more per-item classification spam on every reload

  • External classification cap warnings now log once per item per server session instead of repeating on every reload
### What's New



## Datapack Support

  • Effect definitions now parse correctly from datapacks: no more "not yet implemented" warnings
  • _comment_* keys in datapack JSON are silently skipped: no false validation warnings
Milestone definitions fully load from
  • Milestone definitions fully load from data/<namespace>/<modid>/milestones/<id>.json at datapack apply time


## Milestone System

  • Cumulative intake now accumulates at runtime per player and per value key
  • Milestones fire on first completion, grant mob effects, and award advancements
  • MilestoneProgressData and MilestoneProgressAttachment persist cumulative intake and completion state across sessions and death
  • generate_milestone_template command writes a starter milestone + advancement datapack to your world folder


## Colors

  • MarieEvents.MilestoneTriggeredEvent: fired on milestone completion: getPlayer(), getMilestone(), getValueKey(), getCumulativeIntake()
  • KubeJS milestoneTriggered — playerId, milestoneId, valueKey, cumulativeIntake, cumulativeGoal

## Fixes

  • neoforge.mods.toml dependency entries corrected
  • EMI / REI / JEI plugin registration
  • Mod icon asset paths normalized
  • Milestone progress attachment now correctly copies on death



### Added
  • Configurable death respawn behavior for tracking bars (preserve, reset_to_starting, vanilla_half)
  • Consuming mods can override death handling via MarieLibContext
  • Initial bar fill now uses your mod's startingValueFill config instead of a fixed 50%

### Changed
  • Default death behavior is now **preserve** (bars kept on respawn)
  • Several API types promoted to @Stable for addon authors
  • Admin value commands and KubeJS bindings use the shared value write pipeline

### Fixed
  • neoforge.mods.toml dependency entries
  • EMI / REI / JEI plugin registration
  • Mod icon asset paths
## marieslib-0.1.0-beta.1

First Stable Beta of the shared library powering Marie mods on **NeoForge 1.21.1**.

### Highlights

  • Item scanner**: auto-classifies modded food and items with token stemming, recipe inheritance, and confidence validation; outputs tag recommendations and diagnostic reports
  • Three-tier compat**: mod, addon, and modpack override layers via JSON without recompiling
  • Player tracking**: memory windows, decay, diminishing returns, streaks, synergies, milestones, and threshold effects
  • Classification traces**: inspect every pipeline stage and scoring decision for debugging
  • Datapack support**: source classifications, compat entries, source families, and module locks
  • Integrations**: KubeJS scripting, Cloth Config presets/import-export, JEI/REI/EMI tooltips
  • Stable API**: MarieAPI and MarieLibContext with @Stable / @Experimental markers

### Requirements

  • Minecraft **1.21.1**
  • NeoForge **21.1.x**
  • Java **21**

### Note

MariesLib is **required as a separate install** alongside any Marie mod that depends on it. It is infrastructure, not standalone gameplay.


MariesLib Icon
Download MariesLib
Select game version
Select platform