Back to mods
Attributes For Iron's Spells project artwork

CurseForge · Minecraft mod

Attributes For Iron's Spells

Creates Minecraft attributes for every spell and school registered with Iron's Spells and Spellbooks, including entries supplied by addon mods.

Choose a version Pick your version below, then grab the matching file.

Quick answer

Which Attributes For Iron's Spells release should I use?

Updated yesterday
Latest stable file ais-neoforge-1.21.1-1.2.0.jar
Game version 1.21.1
Loader NeoForge

Attributes For Iron's Spells ais-neoforge-1.21.1-1.2.0.jar targets 1.21.1 with NeoForge. The project page does not say whether this file belongs on the client, dedicated server, or both. All 5 required mods have matching files.

Where it goes

Is Attributes For Iron's Spells required on the client, server, or both?

The project page does not say whether this file belongs on the client, dedicated server, or both.

Client Source doesn’t say
Dedicated server Source doesn’t say
Loader for this release NeoForge
Required install it here Optional supported, not mandatory Not supported do not install here Source doesn’t say do not assume

The source does not explicitly classify this release as client-only or server-only.

What else does Attributes For Iron's Spells ais-neoforge-1.21.1-1.2.0.jar need?

ais-neoforge-1.21.1-1.2.0.jar. Change the file and its required mods may change too.

All 5 required mods have matching files

Install Iron's Spells 'n Spellbooks, playerAnimator, Iron's Lib, GeckoLib and 1 more first. We found matching files for this game-version and loader setup. 5 come through another mod in the chain.

1 listed on this file 5 pulled in by those mods
Iron's Spells 'n Spellbooks Needed by Attributes For Iron's Spells ais-neoforge-1.21.1-1.2.0.jar
required
Matching file found Matched file: v1.21.1-3.16.3
playerAnimator Needed by Iron's Spells 'n Spellbooks
pulled in
Matching file found Matched file: player-animation-lib-forge-2.0.4+1.21.1.jar
Iron's Lib Needed by Iron's Spells 'n Spellbooks
pulled in
Matching file found Matched file: irons_lib-1.21.1-2.1.0.jar
GeckoLib Needed by Iron's Spells 'n Spellbooks
pulled in
Matching file found Matched file: NeoForge 1.21.1 4.9.2
Curios API Needed by Iron's Spells 'n Spellbooks
pulled in
Matching file found Matched file: curios-neoforge-9.5.1+1.21.1.jar
bendy-lib Needed by playerAnimator
pulled in
No matching file

5 extra mods were pulled in by other dependencies. Indented rows show who needs each one. We only count dependency files that match this setup. A file for another loader does not fill the gap.

Before you install it

Add Attributes For Iron's Spells without breaking your instance.

Built for Attributes For Iron's Spells ais-neoforge-1.21.1-1.2.0.jar. Pick another file and the loader, install side or required mods may change.

  1. 01

    Stick to this file

    Use ais-neoforge-1.21.1-1.2.0.jar. It targets 1.21.1 with NeoForge; another release may have different loader, side or dependency requirements.

  2. 02

    Bring the mods it needs

    Install Iron's Spells 'n Spellbooks, playerAnimator, Iron's Lib, GeckoLib and 1 more first. We found matching files for this game-version and loader setup. 5 come through another mod in the chain.

  3. 03

    Put it on the correct side

    The project page does not say whether this file belongs on the client, dedicated server, or both.

  4. 04

    Pick the file you checked

    Use the “Get this file” button beside ais-neoforge-1.21.1-1.2.0.jar. It opens that exact file at the source.

About this project

What does Attributes For Iron's Spells add?

Attributes For Iron's Spells

Attributes For Iron's Spells (ais) is a NeoForge 1.21.1 mod that creates Minecraft attributes for every spell and school registered with Iron's Spells and Spellbooks, including entries supplied by addon mods.

Requirements

  • Minecraft 1.21.1
  • NeoForge 21.1.226 or newer
  • Iron's Spells and Spellbooks 1.21.1-3.15.6 or newer
  • Iron's Spells' normal dependencies: Iron's Lib, GeckoLib, Player Animator, and Curios

Attributes

Global attributes:

Attribute Default Effect
ais:all 0 Innate level for every spell
ais:all_cooldown 1.0 Cooldown multiplier for every spell
ais:all_cast_time 1.0 Cast-time multiplier for every spell
ais:all_cost 1.0 Mana-cost multiplier for every spell
ais:keep_scroll 0.0 Chance that a successfully used scroll is not consumed

For every registered spell <namespace>:<path>:

  • ais:spell/<namespace>/<path>
  • ais:spell_cooldown/<namespace>/<path>
  • ais:spell_cast_time/<namespace>/<path>
  • ais:spell_cost/<namespace>/<path>

For every registered school <namespace>:<path>:

  • ais:school/<namespace>/<path>
  • ais:school_cooldown/<namespace>/<path>
  • ais:school_cast_time/<namespace>/<path>
  • ais:school_cost/<namespace>/<path>

Examples:

attribute @s ais:school/irons_spellbooks/fire base set 3
attribute @s ais:spell/irons_spellbooks/cloud_of_regeneration base set 5
attribute @s ais:spell_cooldown/irons_spellbooks/fireball base set 0.5

All attributes support vanilla operations such as add_value, add_multiplied_base, and add_multiplied_total.

Resolution rules

The effective spell level is:

max(spellbook level, ais:all, school level, spell level)

Fractional levels are floored and the result is clamped to the spell's declared level range.

Cooldown, cast time, and mana cost use:

global factor × school factor × spell factor

For example, a global factor of 0.5 and a spell factor of 0.5 produce a final factor of 0.25. These factors affect spellbook and innate casting. Negative values clamp to zero; non-finite values safely fall back to neutral behavior.

Reset command

Operators with permission level 2 can reset stored base values without removing modifiers supplied by equipment, effects, or other mods:

/ais reset <targets> all
/ais reset <targets> spell [spell_id]
/ais reset <targets> school [school_id]
/ais reset <targets> cooldown [spell_or_school_id]
/ais reset <targets> cast_time [spell_or_school_id]
/ais reset <targets> cost [spell_or_school_id]
/ais reset <targets> keep_scroll

Spell and school IDs support Brigadier autocomplete. Omitting the ID resets the whole selected category.

Active cooldown command

Operators with permission level 2 can adjust the remaining time of active spell cooldowns. Spell and school IDs use the same slash form as AIS attributes and support autocomplete, including IDs registered by addon mods:

/ais cooldown spell <namespace/path> <set|add|multiply> <value> [targets]
/ais cooldown school <namespace/path> <set|add|multiply> <value> [targets]
/ais cooldown all <set|add|multiply> <value> [targets]

set and add values are seconds and may contain decimals. multiply is a factor. The optional targets default to the executing player; selectors such as @s and @a are supported. Results at or below zero immediately refresh the matching spell.

ais cooldown spell irons_spellbooks/throw set 0 @s
ais cooldown spell irons_spellbooks/throw add 100 @s
ais cooldown spell irons_spellbooks/throw add -2 @s
ais cooldown all set 0 @s
ais cooldown school irons_spellbooks/fire multiply 0.5

Only spells that are currently cooling down are changed. The command never creates a new cooldown for an available spell. School operations inspect only the player's active cooldown entries and resolve their registered schools, keeping command cost proportional to active cooldown count rather than the full spell registry.

The development-only ai/ais-throw-kill-refresh datapack demonstrates this command by refreshing only Throw after Throw deals a killing blow.

Spell-specific damage tags

Damage predicates can identify the exact spell that produced an Iron's Spells SpellDamageSource. Every spell automatically exposes a virtual damage-type tag using:

<spell_namespace>:spell/<spell_path>

For example, a minecraft:player_hurt_entity advancement can match only Sacrifice:

{
  "damage": {
    "type": {
      "tags": [
        {
          "id": "irons_spellbooks:spell/sacrifice",
          "expected": true
        }
      ]
    }
  }
}

No damage-type tag JSON file is required. Addon spell IDs follow the same rule, so a spell registered as hazennstuff:shadow/arcane_cards is available as hazennstuff:spell/shadow/arcane_cards. This works for addons that use or subclass Iron's SpellDamageSource, including the standard AbstractSpell#getDamageSource flow. An addon that creates an unrelated damage source does not carry a spell ID and is therefore left untagged.

A minimal development-only Sacrifice test pack is provided at ai/ais-sacrifice-damage-test. Install it in a test world, tag a target with ais_sacrifice_test_target, and that target will say hello when Sacrifice damages it. The ai directory is not part of the built mod jar.

Stability behavior

  • Dynamic holders are cached during startup; casting does not scan registries.
  • Missing attributes, unknown spells, missing schools, malformed scroll data, and incompatible addon entries safely no-op.
  • A spell introduced too late for Minecraft's frozen attribute registry is left unchanged rather than risking a server crash.
  • Attribute synchronization refreshes innate client selections only when a relevant level attribute changes.

Project description from CurseForge.

Pick your setup

Attributes For Iron's Spells by Minecraft version and loader

Choose the version and loader you play, then open the matching release.

1 available setups

Check the dependencies, then try the file in a copied instance before changing a world you care about.

Recent files

Attributes For Iron's Spells versions and loaders

2 of 2 releases match

Looking for an older file? The official CurseForge project page is in Resources.