Mod
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.
Includes quality of life improvements and small tweaks to enhance and customize gameplay.
Neoforge is a fork of the Minecraft Forge available for versions 1.20.1+ of Minecraft. Many Forge mods are compatible with Neoforge and vice versa.
Community voices
Reviews
Click once to include, again to exclude, again to clear
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
About
Project Details
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.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
Resources
External Links
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
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
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:
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
Cto open the innate spell wheel. Release to commit the highlighted spell as the new selection. Xto 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 inrequires(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—Always,Contextual(fades in on selection-change/cast), orNever.xOffset/yOffset— pixel offset from the default position (just left of the hotbar).
[InnateWheel] — the hold-to-open radial menu.
ignoreGuiScale— iftrue, the wheel keeps its size regardless of the GUI scale option.ignoreGuiScaleSizeMultiplier— whenignoreGuiScaleis 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
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
By the numbers
Statistics
Want to reach Minecraft players?
We're looking for a server hosting partner to feature here and other parts of the site. Interested? Send us a message!
Get in touchGet it on
Available Platforms
On ModDex
Community snapshot
By the numbers
Statistics
Resources