-
Notifications
You must be signed in to change notification settings - Fork 0
Compatibility Guide
MarieLib is built to work with any mod that adds edible items automatically, without per-item configuration. This page covers how classification and compatibility discovery work, and how to add compat for your own mod.
When a consuming mod loads, MarieLib scans every installed source item and classifies it using a multi-stage pipeline:
- Value tags: checks for registered value tags on items
-
Community tags: checks for standard
c:foods/*tags - Keyword matching: analyzes item names for food-related terms
- Recipe inheritance: looks at what ingredients go into a recipe
- Namespace grouping: clusters items from the same mod together
- Fallback: unrecognizable items are left unclassified
See Classification Pipeline for the full trace output.
The more tags a mod's items have (especially c:foods/* tags), the better MarieLib classifies them.
MarieLib uses a layered compat registry so mod authors, addon authors, and modpack creators can declare compatibility without recompiling:
| Tier | Source | Notes |
|---|---|---|
| 1 |
data/<modId>/compat/compat_registry.json in the consuming mod |
Base registry |
| 2 |
data/<otherModId>/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.
Example compat entry:
{
"modId": "farmersdelight",
"category": "FOOD_MOD",
"providesSourceTags": true,
"namespaces": ["farmersdelight"]
}| Field | Description |
|---|---|
modId |
The mod being registered |
category |
FOOD_MOD, FARMING_MOD, or SURVIVAL_OVERHAUL
|
namespaces |
Item namespaces MarieLib should attribute to this mod |
providesSourceTags |
true if items use c:foods/* or value tags |
Create data/<yourmod>/marie_compat.json in your mod's resources:
{
"entries": [
{
"modId": "yourmod",
"displayName": "Your Mod",
"category": "FOOD_MOD",
"namespaces": ["yourmod"],
"providesSourceTags": true
}
]
}Modpack authors can drop config/<modId>/compat_overrides.json to override any compat entry.
CompatDefinition compat = CompatDefinition.builder("yourmod")
.category(CompatDefinition.CompatCategory.SOURCE_MOD)
.addSourceMapping(ResourceLocation.parse("yourmod:special_fruit"), "fruits")
.build();
MarieAPI.registerCompatEntry(compat);See API Reference for details.
MarieLib injects value bar tooltips into JEI, REI, and EMI item views. Hover over any classified source item to see which value key it belongs to.
Activates automatically when any of these mods are installed.
MarieLib includes KubeJS integration for scripting value events and registering content from scripts. See KubeJS Scripting.
Mods categorized as SURVIVAL_OVERHAUL (Legendary Survival Overhaul, TerraFirmaCraft, etc.) often manage their own hunger and health systems. MarieLib detects these and consuming mods may disable certain effects or decay modules to avoid conflicts.
MarieLib · Shared framework for Marie mods · Documentation for 1.0.x