File Details
Productive Frogs 1.2.0
- R
- May 25, 2026
- 319.55 KB
- 9
- 1.21.1
- NeoForge
File Name
productivefrogs-1.2.0.jar
Supported Versions
- 1.21.1
Curse Maven Snippet
v1.2.0 - 2026-05-25 - cross-mod compatibility + observability
The V1.2 compatibility + tooling release. Resource Slimes now extend to the popular ATM10 mods' resources through common tags (no hard dependencies), a gated debug-logging framework lands across every layer, and the Slime Milk fluid collapses to a single component-driven block/bucket - completing the goal that a new Resource Slime variant is addable by datapack alone.
Added
- Cross-mod variant pools. 24 Resource Slime variants for the popular
ATM10 mods, all condition-gated so they only appear when their provider mod is
installed: AllTheOres metals (tin, lead, osmium, nickel, silver, zinc, aluminum,
uranium), Create brass, Mekanism refined obsidian + fluorite, AE2 certus quartz
/ fluix / silicon, Mythic Metals orichalcum / mythril / aquarium, Powah blazing
/ niotic / spirited / nitro crystals, Industrial Foregoing pink slime, and
Mystical Agriculture inferium / supremium essences. Each is a datapack JSON +
a Froglight smelt recipe (no Java, no textures, no lang) generated by
scripts/generate_cross_mod_variants.ps1. Thermal Series picks are deferred (it has no 1.21.1 release). Design:docs/cross_mod_compat.md. primer_tagon theslime_variantcodec (alongside the now-optionalprimer_item). A variant can be primed by membership in a common tag (c:ingots/tin), so one cross-mod variant accepts any mod's matching item. Resolved at infusion time viaSlimeVariant.findByPrimer; an exactprimer_itemmatch wins over aprimer_tagmatch, and the codec rejects a variant declaring neither (it could never be primed).- Observability framework (
PFDebug). A gated debug-logging layer across 12 mod subsystems (lifecycle, registry, config, infusion, split, tongue, egg, sensor, milker, milk_source, render, tint). Off by default and near-zero cost when disabled; enable per-area at launch with-Dproductivefrogs.debug=<areas>or at runtime with the/pf debug <area> oncommand. Design:docs/observability.md. - Single neutral Slime Milk texture set tinted per-variant at render (fluid via
position-aware
getTintColorreading the source BlockEntity; bucket via a 2-layer model + item color on the milk layer). One greyscale set serves every variant, including datapack-added ones. ResourceSlimeRendererfalls back to the category texture when a variant ships no<variant>_resource_slime.png, so a datapack variant renders cleanly (category cube + itsprimary_colorshell) instead of a missing texture.- Title-cased display-name fallback (
VariantNames) on the Slime Milk bucket / Configurable Froglight / spawn egg, so a datapack variant needs no lang file.
Changed (breaking)
- Slime Milk collapsed to a single component-driven fluid/bucket/block. The
~35 per-variant Slime Milk registrations (one
FluidType, Source + Flowing fluids,<variant>_slime_milkblock, and<variant>_slime_milk_bucketitem per variant) are replaced by one of each: a singleslime_milkfluid, aslime_milksource block whose BlockEntity stores the variant, and a singleslime_milk_bucketitem carrying the variant in theSLIME_VARIANTdata component (the same pattern as Configurable Froglight / Slime Bucket / the spawn egg). Migration: hard break - the per-variant*_slime_milk_bucketitem IDs and*_slime_milkblock/fluid IDs are gone; placed milk blocks and stashed milk buckets in existing worlds become orphaned refs (regenerate, per the project's pre-stable policy). - Why: this is the last step of the data-driven variant refactor. A new
Resource Slime variant is now addable by datapack alone - JSON, no Java,
no recompile, no per-variant assets or lang. Per-variant fluids could never be
datapack-added because fluids register at mod construction, before any world
datapack loads. Design:
docs/refactor_data_driven_variants.md.