Iron's Botany

Iron’s Botany is a compatibility mod that tightly merges Botania and Iron’s Spells ’n Spellbooks, letting Botania mana power spells while spells can also interact with Botania systems. New school, new spells, new armor.

File Details

Iron's Botany 1.3.0 (Forge 1.20.1)

  • R
  • Mar 28, 2026
  • 426.62 KB
  • 324
  • 1.20.1
  • Forge

File Name

ironsbotany-1.3.0.jar

Supported Versions

  • 1.20.1

Curse Maven Snippet

Forge

implementation fg.deobf("curse.maven:irons-botany-1494871:7825750")
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

[1.3.0] - 2026-03-27

Critical Fixes

  • Dependencies now mandatory — Botania, Iron's Spells 'n Spellbooks, and Curios are declared mandatory=true in mods.toml, matching actual hard requirements. Version ranges tightened to tested baselines
  • Catalyst registration completely rewritten — Replaced all Class.forName reflection with ForgeRegistries.ITEMS.getValue() registry lookups. Fixed stale Botania field names: lensVelocitylens_speed, lensBorelens_mine, gaiaSpiritgaia_ingot, terrasteelterrasteel_ingot. Catalysts now register reliably
  • Corporea reagent duplication fixedSpellCircleReagentSystem was adding items to player inventory AND dropping them as world entities. Refactored to use new extractFromCorporea() that returns stacks without inventory insertion. autoPlaceComponents() now correctly returns false when reagents are unavailable
  • Mana deletion eliminated in all conversion paths — ManaConduit, SpellReservoir, and ManaHelper now verify conversion yields a result before draining Botania mana. Integer division remainder is preserved by only draining the exact amount that converts cleanly. SpellReservoirBlockEntity.addMana() now returns the accepted amount so the conduit only subtracts what was actually inserted
  • Stage 4 non-functional NBT writes removed — Only the WATER trigger (direct pool.receiveMana()) was functional; all other triggers wrote NBT tags that Botania never reads. Removed dead NBT writes for LIGHTNING, EARTH, NATURE, FIRE, WIND, and ARCANE. Expensive cuboid scan now skipped for non-WATER triggers

Compatibility

  • Bellethorn aura typo fixedFlowerAuraRegistration used "botania:bellethorne" (wrong) instead of "botania:bellethorn". Aura now registers correctly
  • Alfheim integration redesigned — Replaced nonexistent botania:alfheim dimension check with Alfheim portal block proximity detection. Boost now scales by distance to nearest portal (full at 0, fading at 16 blocks)
  • Patchouli guidebook now opens — Chronicle of the Green Mage right-click now calls PatchouliAPI.get().openBookGUI(). Falls back gracefully if Patchouli is absent
  • Broken runData target removed — No data providers exist; the Gradle data task has been commented out with a TODO

Integration Fixes

  • Casting channels wired into spell executionCastingChannelRegistry was fully implemented but never called. Channels now apply damage, cooldown, and casting speed modifiers during AbstractBotanicalSpell.onCast()
  • SpellContext additional effects now applied — Catalyst/aura-granted MobEffectInstance effects from context.getAdditionalEffects() are applied to the caster after spell execution
  • ACTIVE_AURAS flag now writtenAbstractBotanicalSpell writes DataKeys.ACTIVE_AURAS to player persistent data after scanning for auras, enabling Gaia trial Phase 1
  • Gaia trial Phase 1 aura check fixed — Now queries FlowerAuraRegistry.getActiveAuras() directly instead of reading a stale NBT flag that was never written
  • Mana payment unified with HUDManaHelper.hasBotaniaMana()/drainBotaniaMana() now use ManaItemHandler.getManaItems()/getManaAccesories() to include Curios-slot mana items, matching what the mana HUD displays
  • BotanicalFocusItem fully functional — Added right-click siphon toggle (use() override), Curios attribute modifiers (+50 Max Mana, +10% Mana Regen), and fixed curioTick() to siphon from player's inventory mana items instead of the focus stack itself. Rate-limited to once per second
  • Projectile pierce implementedBotanicalBurstProjectile now reads max_pierce/piercing from persistent data. Piercing projectiles track hit entities, apply 20% damage reduction per pierce, and only discard after reaching max pierce count
  • Spark swarm follows ownerSparkSwarmEntity now uses stored ownerUUID for follow-owner behavior: teleports if >16 blocks away, navigates toward owner if >4 blocks, targets only monsters within 8 blocks of owner. Wander goal reduced to fallback priority
  • Rune Scroll Fusion uses item tags — Replaced fragile toString().contains("scroll")/contains("rune") matching with ironsbotany:spell_scrolls and ironsbotany:botania_runes item tags. Hardcoded English " (Rune Enhanced)" suffix replaced with translatable component
  • ManaNetworkModifier dimension-safe — Map key changed from BlockPos to DimBlockPos(ResourceKey<Level>, BlockPos) record. Modifications now only apply to the correct dimension
  • All remaining reflection eliminatedSpellDrivenAutomation no longer uses Class.forName for ManaBurstEntity; uses direct entity iteration with instanceof ManaBurst

Balance

  • Gaia's Wrath particle density reduced ~85% — Shockwave loop cut from 100 angles × full radius to 36 angles × half radius steps. Explosion emitter count reduced from 5 to 3
  • Flower Shield single-axis — Removed Resistance effect stacking. Shield is now purely a petal HP absorption buffer; breaking it returns the player to full damage exposure
  • Manasteel armor set bonus has cooldown — Added 40-tick (2-second) internal cooldown to the 50% mana shield, preventing permanent damage reduction
  • TerrasteelSpellBlade naming fixed — Renamed MANA_COST_UUID to COOLDOWN_UUID to match the actual COOLDOWN_REDUCTION attribute

Added

  • BotanicalGrimoireItem.java — Dedicated item class for the Chronicle of the Green Mage with Patchouli integration
  • data/ironsbotany/tags/items/spell_scrolls.json — Item tag for ISS spell scrolls
  • data/ironsbotany/tags/items/botania_runes.json — Item tag for all 16 Botania runes
  • Right-click info display on Spell Reservoir and Mana Conduit (shows stored mana / capacity)
  • Comparator output notifications — blocks now call updateNeighbourForOutputSignal() when stored mana changes
  • New lang keys: block info display, siphon mode toggle, rune enhanced suffix, updated Alfheim advancement description

Improved

  • Swallowed catch (Exception ignored) in SpellCatalystRegistry now logs at debug level
  • SpellReservoirBlock exception handler logs at debug instead of silently swallowing