promotional bannermobile promotional banner

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.2.0 (Forge 1.20.1)

  • R
  • Mar 26, 2026
  • 410.16 KB
  • 20
  • 1.20.1
  • Forge

File Name

ironsbotany-1.2.0.jar

Supported Versions

  • 1.20.1

Curse Maven Snippet

Forge

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

Learn more about Curse Maven

[1.2.0] - 2026-03-26

Added

  • Spell Reservoir right-click input — Right-click a Spell Reservoir with any Botania mana-holding item to transfer mana into it. Converts Botania mana to ISS mana at the configured ratio
  • Comparator output for Spell Reservoir and Mana Conduit — signal strength proportional to stored mana fill level (0-15)
  • Mana Conduit feeds adjacent Reservoirs — ManaConduit now transfers ISS mana into any SpellReservoir placed directly adjacent to it
  • BotaniaIntegration utility — New centralized utility class for direct Botania API access, replacing fragile reflection
  • DataKeys constants class — All 32 IronsBotany_* NBT key strings centralized into a single constants class
  • Configurable block entity transfer rate — New blockEntityTransferRate config option controls ISS mana per second from Conduit/Reservoir to players (default 5, range 1-100)
  • Config validation — Logs a warning at startup when SEPARATE mana mode is active, alerting to extreme dual-cost implications
  • SpellContext damage cap — New capDamageMultiplier() method on SpellContext; total damage multiplier from all sources capped at 5.0x
  • 22 language translations — Full localization for: Afrikaans, Arabic, Bengali, German, British English, Argentine Spanish, Spanish, Mexican Spanish, French, Hindi, Italian, Japanese, Korean, Dutch, Brazilian Portuguese, Russian, Turkish, Ukrainian, Vietnamese, Simplified Chinese, Traditional Chinese (HK), Traditional Chinese (TW)

Fixed

  • BotanicalRing was cosmetic-only — Tooltip claimed +25 Max Mana and +5% Spell Power but the ring applied zero attribute modifiers. Now properly implements Curios getAttributeModifiers with real stat bonuses
  • FlowerShield gave free HP — Float-to-int truncation on shield damage meant fractional hits (e.g. 3.7 damage) only consumed 3 shield HP instead of 4. Fixed with Math.ceil()
  • Stage 4 Mana Events were entirely non-functional — NBT tags written to Botania block entities were never read by anything. Disabled by default; applyWaterFill now uses direct ManaPool API (the one effect that can actually work)
  • Duplicate reflection for compile-time API — Both ManaHelper and ManaConduitBlockEntity independently reflected on ManaPool when it's available at compile time. Replaced with direct instanceof ManaPool checks
  • String-based Botania class detection — Replaced all getSimpleName().contains("Pool") / getName().startsWith("vazkii.botania") patterns with proper instanceof API checks via BotaniaIntegration
  • ManaTransferPacket was dead code — Packet deserialized fields but handle() only played a sound. No code ever sent it. Removed entirely
  • SpellReservoir had no way to receive manaaddMana() existed but nothing called it. Now reachable via right-click and adjacent ManaConduit feeding
  • TerrasteelSpellBlade tooltip lied about mana cost — Tooltip said "-20% Mana Cost" but the attribute was COOLDOWN_REDUCTION. Corrected tooltip to "-20% Cooldown". Tooltip values now read from config dynamically
  • Living Root Grasp Slowness 255 was absolute freeze — Reduced immobilize slowness from 255 (total paralysis, no counterplay) to 10 (~80% speed reduction, strong but breakable). Removed ineffective setDeltaMovement(Vec3.ZERO) call
  • Runic Infusion buff stacking was unbounded — At level 10 with all 5 runes, Strength reached XI (+33 attack damage). Capped Strength at V, Speed at IV
  • Mana Rebirth stripped ALL effects on revivalremoveAllEffects() cleared beneficial effects too (Strength, Speed, Regen). Now only removes non-beneficial effects
  • SchoolMigrationHandler only migrated inventory — Missed Ender Chest and Curios slots. Now migrates all three. Fixed lambda accumulation bug for Curios migration count
  • Armor and weapons were unrepairable — Manasteel Wizard Armor and Terrasteel Spell Blade had Ingredient.EMPTY as repair material. Now repairable with Manasteel Ingots and Terrasteel Ingots respectively
  • TerrasteelBladeHandler swallowed exceptionscatch (Exception ignored) silently discarded all mana operation failures. Now logs at debug level
  • DreamwoodScepter tooltip was vague — "Converts ISS mana costs to Botania mana" now shows the actual configured percentage
  • SpellManaNetworkIntegration had dead inner class — Duplicate ActiveModification class never used within the file. Removed
  • Misplaced damage type JSONdata/irons_spellbooks/damage_type/nature_magic.json was at the project root, not in src/main/resources/data/. Moved to correct location so it's included in the built JAR
  • Gaia's Wrath Botania mana costs were prohibitive — Reduced from 150,000 base + 50,000/level (600k at L10) to 80,000 base + 30,000/level (350k at L10)

Changed

  • Non-Player entities can now cast botanical spells — Restructured AbstractBotanicalSpell.onCast() so executeBotanicalEffect() runs for any LivingEntity. Player-specific systems (catalysts, auras, Alfheim, advancements, mana checks) are conditional
  • School migration: ironsbotany:botanical → irons_spellbooks:nature — Custom Botanical school removed in favor of ISS's built-in Nature school. SchoolMigrationHandler rewrites old references on login
  • ENABLE_SPELL_MANA_EVENTS now defaults to false (Stage 4 marked experimental)
  • 14 files updated to use DataKeys constants instead of inline string literals

Removed

  • ManaTransferPacket.java (dead code)
  • IBSchools.java (custom school replaced by ISS Nature school)
  • Duplicate reflection code in ManaHelper and ManaConduitBlockEntity
  • Dead ActiveModification inner class from SpellManaNetworkIntegration

[1.1.2] - 2026-03-25

Added

  • Spell descriptions — All 9 Botanical spells now show descriptions in the spellbook and scroll tooltips via getUniqueInfo() override
  • Device tooltips — Spell Reservoir and Mana Conduit blocks now display description tooltips when hovered in inventory
  • Spell icon textures — 9 unique 16x16 spell icons at textures/gui/spell_icons/ (mana_bloom, botanical_burst, flower_shield, living_root_grasp, spark_swarm, runic_infusion, petal_storm, gaia_wrath, mana_rebirth)
  • Botanical scroll texturescroll_botanical.png and corresponding item model for the Botanical school's scroll appearance
  • 10 new localization keys for spell descriptions and the Spell Reservoir tooltip

Fixed

  • Removed broken custom texture references (book_texture, filler_texture, crafting_texture) from Patchouli book.json — the Chronicle of the Green Mage now uses Patchouli's built-in defaults instead of missing textures