Full-codebase audit pass. Two advertised features that never worked now do, the half-finished NATURE→BOTANY school migration is completed across every subsystem, and a batch of correctness / duplication / performance / stability bugs are fixed. Item and registry IDs are unchanged — saves are not broken. Targets Iron's Spells 'n Spellbooks 3.16+.
Behavior features that were inert
- BOTANIA_PRIMARY no longer double-charges — the ISS debit is refunded for any cast Botania paid for.
- Elementium Scroll "Botania pays, scroll retained" now triggers (flat
elementiumScrollManaCostfloor; scroll spells report 0 ISS cost). - Casting-channel mana-cost modifiers (Livingwood −10%, Dreamwood +10%, Terra Rod +30%) now actually apply.
School migration (NATURE → BOTANY) completed
Gaia Spell Trials Phase-2 vulnerability + counter, Corporea reagent mapping, spell-triggered mana-event typing, the Livingwood channel, and Alfheim dual-school crafting all now recognize the Botany school. The Botanical Focus now powers the Botany school. Alfheim scrolls persist both schools.
Correctness & exploits
- Livingwood Staff split mana store unified on one NBT key (Spark deposits / HUD now visible to the staff).
- Rune Scroll Fusion duplication exploit fixed (result clamped to 1); serializer
categoryNPE guarded. - Piercing Botanical Burst projectiles now actually pierce (no early discard / double particles).
- Flower auras can't register against
minecraft:air; Corporea reagent cache keyed by spell+level and copied. - Botania→ISS over-drain and reservoir/conduit free-mana underflow fixed.
- Gaia's Blessing drains once per cast-tick (was per level-query firing).
Stability & hardening
resolveCostwrapped defensively; Ars 'n Spells compat no longer self-disables after a mode switch.- Daybloom Amulet uses a transient modifier;
BotanySpellConfigreads guarded pre-sync. SpellCastSyncPacketno longer double-enqueues + explicit direction;SparkSwarmEntitylifetime no longer spams metadata; catalyst power math scales only each catalyst's contribution.
Config
New "Mana Network Capacities" group makes every mana-item cap + the Arcane Mana Altar cap configurable, plus elementiumScrollManaCost.
See CHANGELOG.md [1.9.0] for the complete list.
🤖 Generated with Claude Code