Mod

Pufferfish's Skills: Iron's Spellbooks Compat

Quick rating

Pufferfish's Skills: Iron's Spellbooks Compat

No reviews yet

Adds compatability between Iron's Spells and Spellbooks and Pufferfish's Skills. Restrict casting spells behind having a skill, or allow players to cast skills without a skill book (innately) by gaining a skill.

QoL & Tweaks
Mod Loaders
NeoForge
Minecraft

Community voices

Reviews

Versions
Loading versions…
Match includes

Click once to include, again to exclude, again to clear

Rating Any
Any 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
Min
Max
Play Status
Reviews
Time Played
hrs+
Verified developers only
Has developer response
List view
Grid view
Compact view
Sort by
Date
Rating
Helpful
Unhelpful
Edited
Sort ascending
Delete this review?

This removes your review from the project. You can write a new review after.

Review submitted for moderation

Your review has been sent to moderators, who will check that it meets our guidelines before it appears publicly.

No reviews yet. Be the first to review this project!

Get it on

Available Platforms

About

Project Details

Type
Mod
Latest Version
irons_spellbooks_pufferfish_compat-1.2.1.jar
Authors

For authors

Embed Badge

If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.

Custom banner text
ModDex rating badge preview

Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.

Identifiers

Platform IDs

CurseForge ID

Resources

External Links

Source Issues Wiki Discord

About

Description

Iron's Spellbooks ↔ Pufferfish's Skills Compat

Bridge Iron's Spells 'n Spellbooks and Pufferfish's Skills. Gate casts and inscribing spells behind unlocked skill nodes or hand out innate spells castable from a keybind with no spellbook needed.


Features

There are 2 main features: blocking the casting and inscribing of spells behind a pufferfish skill node, and allowing players to gain innate spells they can cast without any spellbook.

Spell Casting and Inscribing Restrictions

![](https://media.forgecdn.net/attachments/description/1554211/description_79d0c30c-3c50-464a-aab0-716b7ebfb165.png)

Skill-gated casting & inscribing. Block a spell at every cast source (spellbook, sword, scroll) and at the inscription table when the player hasn't unlocked the configured skill(s). One data-driven rule format groups spells with the skills they require (AND semantics). Once they unlock the spell they will be able to use the spell again.

Innate Spells

![](https://media.forgecdn.net/attachments/description/1554211/description_4d786f27-c077-4515-99ce-80958d0e0d9b.png)

Innate spells. A Pufferfish skill node can grant a spell directly to the player. Castable from a keybind with no spellbook, sword, or scroll required. Casts still consume mana and respect cooldown; they also still flow through the gate above, so the two systems compose. This includes a new spell wheel and cast keybind just for innate spells:

![](https://media.forgecdn.net/attachments/description/1554211/description_e78e14a8-a8d4-4d68-96fc-7e2326161491.png)

![](https://media.forgecdn.net/attachments/description/1554211/description_2444a32f-8606-4e28-a907-b33dd52187eb.png)

Here is what it looks like on the player HUD. This is a pretty powerful feature, especially if you're willing to make some custom spells. You can configure Iron's to not drop the spell or allow its crafting, and then add it to the skill tree. Easily create custom skill tree only abilities, or just allow players access to existing spells.


Default Keybinds

Chosen specifically to avoid Iron's Spellbooks' defaults (R/V/L-Alt). All rebindable in vanilla controls.

  • Hold C to open the innate spell wheel. Release to commit the highlighted spell as the new selection.
  • X to cast the currently selected innate spell.
  • Hold Z + scroll wheel to cycle through innate spells without opening the wheel.
  • Toggle wheel, registered but unbound by default; bind it yourself if you prefer a toggle over hold-to-open.

Getting Started — Skill-Gated Casting

Drop a file at data/your_pack/spell_skill_requirements/anything.json. A rule lists the spells it covers and the skills each of those spells requires:

{
  "spells": [
    "irons_spellbooks:fireball",
    "irons_spellbooks:fire_arrow",
    "irons_spellbooks:fire_breath"
  ],
  "requires": [
    { "category": "your_pack:apprentice_mage", "skill": "asdf6rv3a8dgs" }
  ]
}

Semantics: every spell in spells requires every skill in requires (AND). The player can't cast or inscribe any of those spells until they've unlocked all the listed skills. The filename is organizational only, the spell IDs live inside the JSON.

This one shape covers both directions you might think about it:

  • One skill gates many spells — list many spells, one entry in requires (the example above).
  • One spell needs many skills — list one spell, multiple requires:
{
  "spells": ["irons_spellbooks:fireball"],
  "requires": [
    { "category": "your_pack:apprentice_mage", "skill": "pyromancy_gate" },
    { "category": "your_pack:apprentice_mage", "skill": "fire_mastery" }
  ]
}

If you have multiple rules that name the same spell, it requires you unlock all of those nodes to unlock the spell. This allows you to make a multi skill unlock if you'd like. It might make more sense to just make the node cost more skill points though, but there it is.


Getting Started — Innate Spells

Drop a file at data/your_pack/innate_spells/anything.json with this shape:

{
  "category": "your_pack:apprentice_mage",
  "skill": "innate_firebolt",
  "spell": "irons_spellbooks:firebolt",
  "level": 1
}

When the player unlocks the innate_firebolt node, they get Firebolt in their innate pool at level 1, castable from the keybind. Mana cost and cooldown still apply.

level defaults to 1 if omitted and must be at least 1. If you set a level higher than the spell actually supports, it's clamped down to that spell's maximum (and a warning is logged) so a typo can't cast a spell at an impossible level.

Upgrade chains

Pufferfish nodes are binary (taken / not taken), there's no per-node "rank up" concept. To let a player level up an innate spell, add multiple skill nodes each granting the same spell at progressively higher level, chained via connections.json:

[innate_firebolt    level 1]  →  [innate_firebolt_2  level 2]  →  [innate_firebolt_3  level 3]

The mod deduplicates by spell ID and keeps the highest level grant. A player who's unlocked all three nodes sees only one Firebolt entry in their wheel at level 3. The lower-level definitions are still useful: they fence the chain (you have to take level 1 before you can take level 2) and they specify the unlock cost per rank.


Client Config

Located at config/irons_spellbooks_pufferfish_compat-client.toml after first launch:

[SelectedInnateSpell] — the always-on badge to the left of the hotbar showing the currently selected innate spell.

  • display — AlwaysContextual (fades in on selection-change/cast), or Never.
  • xOffset / yOffset — pixel offset from the default position (just left of the hotbar).

[InnateWheel] — the hold-to-open radial menu.

  • ignoreGuiScale — if true, the wheel keeps its size regardless of the GUI scale option.
  • ignoreGuiScaleSizeMultiplier — when ignoreGuiScale is on, multiply the wheel's size by this.

FAQ

Q: Does this work without Iron's Spellbooks installed?

A: No. Both Iron's Spells 'n Spellbooks and Pufferfish's Skills are hard dependencies. This is a compat layer, not a standalone mod. Q: Will you port to Fabric / Forge / older Minecraft versions?

A: This targets NeoForge 1.21.1. No plans to backport or port to other loaders.

Q: Can I use this in my modpack or on my server?

A: Yes, of course.

Screenshots

Gallery

This project has no gallery images yet.

Versions

Files

Relations

Project Relations

More like this

Similar Mods

Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.

On ModDex

Community snapshot

0
Ratings
0
Followers
0
In stacks

By the numbers

Statistics

~1,000
Downloads
Last Updated
Created
Last synced
When ModDex last fetched and imported data for this project from CurseForge or Modrinth. High-traffic and active projects are checked more often.
Next pipeline sync