Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Tags
Creators
Details
Infused Power
Adds attributes to all armor, weapons and tools
Empower your items with Arcane Power, forge your own build,
and prove it against the powerful invaders of the Rift.
โน๏ธ This mod is in beta and can still have bugs. Back up worlds you care about before adding it.
๐ฒClassed Gear |
โฆEmpower & Reforge |
โ๏ธThe Rift |
โ๏ธThe Sunstone |
๐ฏ๏ธRituals |
โ๏ธThe 12 Glyphs |
๐Accessories Too |
โญ50+ Attributes |
๐No Knowledge Needed |
What Is This?
Infused Power adds attributes to all armor, weapons and tools. Become a Battlemage, a Paladin, a lethal Assassin or an unbreakable Juggernaut. Every class is built from a curated pool of 50+ attributes.

Set bonuses: wearing matching armor classes together grants bonuses
Unique drops: rare unique armor classes can be found in chests
Material matters: early-game materials roll better stats, so early gear can stay useful
| Material | Bonus to rolled values |
|---|---|
| Leather | +30% |
| Gold | +20% |
| Iron | +10% |
โ๏ธ A taste of the arsenal
| Category | Examples |
|---|---|
| Combat | Crit, Crit Damage, Super Crit, Backstab, Execution, Armor Pen, Combo, Fury, Bloodlust, Stat Steal |
| On-Hit | Bleed, Poison, Wither, Ignite, Freeze, Spellsurge, Chain Lightning, Blight, Plague, Whirlwind |
| Defense | Dodge, Barrier, Block, Magic Resist, Thorn Armor, Frost / Flame / Decay / Venom Armor, Riposte, Reckoning |
| Summons | Necromancy, Elementalist |
| Ranged | Explosive Arrow, Lightning Arrow, Gravity Arrow, Arrow Pierce |
| Utility | Lifesteal, Life on Hit, Heal on Kill, XP on Kill, Pack Leader, Dig Speed, Smelter's Touch |
The Forge
Where ordinary gear becomes greater.
Infusion TableFeed gems or essence to gather Arcane Power, then infuse your item to strengthen its attributes and raise its level. |
|
|
|
Arcane AnvilThe reforge bench. Reroll a single stat with a Lucky Gem, reroll everything with a Chaos Orb, strip a flaw with a Nullifying Gem, wipe an item clean with a Void Orb, or reach a new level of power with a Constellation Core. |
Arcane CauldronDissolve the gear you don't want into essences and shards, then craft them into the materials that improve your own gear. Note : You need a heat source (such as fire) below your Arcane Cauldron to activate it. |
|
The Sunstone
The stone that shows the invisible world: creatures and their Numen, ore through the ground, and trails to cult sites, ancient cities and meteorite craters.

Rituals
Set up powerful rituals that summon creatures and items, drain the Numen out of the creatures and dropped items near them, and help you gather resources. Glyphs make them stronger.

The Rift Altar
A trial for every stage of the journey.
Open the Rift from your earliest levels and keep coming back as you grow. Scout a level before you commit: the altar shows its boss, theme, and wave count once you have reached it, while deeper levels stay a mystery until you arrive. Chase your best clear time and see how far you can push.
Survive timed waves of mobs and mini-bosses, then face the boss waiting at the end. The earlier levels are easier, but the deeper levels are a true endgame challenge. Clearing higher level rifts gives you greater rewards.

| Era | Levels | The challenge | Reward key |
|---|---|---|---|
| Pure | 1 to 64 | The opening trials | Rift Key |
| Greater | 65 to 121 | Armed foes and relentless reinforcements | Twisted Rift Key |
| Perfect | 122+ | Amplified enemy stats and mid-fight wave bosses | Cursed Rift Key |
Compatibility
Right at home with your other mods.
Every mod here is optional: Infused Power works without any of them.
| Mod | Integration |
|---|---|
| Accessories | Rings, amulets, gloves, capes and charms receive their own classes. Add the Accessories Compatibility Layer to extend this to Trinkets items too |
| Curios (NeoForge and Forge) | The same for every item Curios holds |
| JEI | In-game recipe viewing for the Infusion Table, Arcane Anvil, Arcane Cauldron, Athanor, calcination and Rhabdos |
| EMI (1.21.1 and 1.20.1) | The same recipe viewing in EMI |
| Aether | Its rings, gloves and shields get classes, the Enchanted Aethershield has its own, and zanite powers the Infusion Table |
| Oritech | Its jetpacks get armor classes |
| Tech Reborn | Its 5 gems power the Infusion Table |
| SimplySwords | Its unique weapons get no class |
| Mod Menu (Fabric) | Its Config button opens the mod's settings. On NeoForge and Forge, the mods list's own Config button does it |
Make It Yours
Infused Power is built to be reshaped, and you do not need to know any code. Edit a plain-text file, save, and restart the game (or your server) to apply your changes. Open the guide below to begin. The same guide is in the game as a book, the Modpack Maker's Tutorial: find it in the Tools & Utilities creative tab, or run /give @s infusedpower:modpack_makers_tutorial.
๐ Open the customization guide
The mod ships its own files, and reads your changes from this folder:
.minecraft/config/infusedpower/overrides/
(On a launcher with separate instances, look inside that instance's config folder.)
- In a world with cheats on (or as an operator on a server), run
/infusedpower data export. The mod's files, with your overrides already merged in, are written toconfig/infusedpower/export/, so you can read them there. - Copy the file you want to change into
overrides/, at the same path, likeoverrides/classes/berserker.json. - Keep only the fields you change. Your file is laid over the shipped one field by field, so everything you leave out stays as shipped, and a list you write replaces the shipped list whole. A file with a new name adds a new one, like a new class.
- Save and restart the game (or your server).
Inside overrides/ |
What it controls |
|---|---|
classes/ |
What each class is: its name, color, rarity, where it drops, and the stats it can roll |
class_mappings/ |
Which classes an item can roll, plus per-item tuning |
class_mappings/blacklisted_from_classes.txt |
Items that should never get a class |
The export holds much more: the Rift, gems, essences, Numen values, the Table of Practice and so on, and each one can be changed the same way. A datapack works too: put the file at the same path under data/infusedpower/.
๐ Good to know: edits only affect items you obtain after the change, gear you already own keeps the stats it rolled.
Pick a goal below and expand it. Each one has a Show example you can click for the exact code.
๐ซ Stop an item from ever getting a class
Copy class_mappings/blacklisted_from_classes.txt from the export into overrides/class_mappings/, and add the item's ID on its own line. This file replaces the shipped one whole, so keep the lines already in it. Save and restart, and that item will never roll a class.
Show example
minecraft:netherite_hoe
๐ฏ Make a class drop only from chests (or only from mobs, or only by crafting)
In overrides/classes/, make a file named like the class (for example berserker.json) with a sources line. The class will then appear only from the sources you list.
| Source | When the class can appear |
|---|---|
loot_chest |
Found in generated or structure chests |
loot_entity |
Dropped by a defeated mob |
loot_equipment |
A mob's worn gear that drops |
craft |
Crafted by the player |
inventory |
Any other way it enters your inventory (trades, pickup, creative, given) |
summon |
Made by a ritual |
List several to allow more than one. Leave the line out entirely to allow all sources (the default). If you do list sources, add summon too, or the class never comes out of a ritual. This is exactly how rare unique classes are kept chest-only.
Show example
{
"sources": ["loot_chest"]
}
Allowing two sources:
{
"sources": ["loot_chest", "loot_entity"]
}
๐ฒ Change which classes an item can roll (and how rare each is)
In overrides/class_mappings/, make a file named like the one you are changing (for example minecraft_swords.json) with a classes list. Each entry's weight sets how likely it is (higher means more common). Only the classes you name change, the rest stay as shipped. Set a weight to 0 and that class never rolls on the item.
Show example
{
"classes": {
"paladin": { "weight": 50 },
"lichborn": { "weight": 0 }
}
}
๐ข Make a class globally rarer or more common, or turn it off
In the class's file in overrides/classes/, roll_weight sets its base chance everywhere (higher means more common, 100 by default), and enabled set to false switches the class off completely.
Show example
{
"roll_weight": 100,
"enabled": true
}
๐ช Make an item roll stronger stats (material bonus)
In the item's file in overrides/class_mappings/, add a multiplier applied to every rolled value. 1.3 gives 30% stronger rolls, 0.8 makes them weaker. This is how leather, gold, and iron get their material bonuses.
Show example
{
"attribute_multiplier": 1.3
}
๐ท Ban or retune specific stats on an item
In the item's file in overrides/class_mappings/, exclude_attributes lists stats that will never roll on this item, and attribute_overrides changes a stat's min, max, or weight just for this item.
Show example
{
"exclude_attributes": ["infusedpower:generic.lifesteal"],
"attribute_overrides": {
"infusedpower:generic.critical_rate": { "min": 0.05, "max": 0.20, "weight": 30 }
}
}
โ Add support for an item from another mod
Put a file with a new name in overrides/class_mappings/. You can target items two ways, and you often do not need an exact item ID:
- By tag (easiest). The mod reads item tags automatically, so if a modded item already belongs to a tag, one mapping covers every item that shares it.
- By item ID. Use this only when you want to single out one specific item.
Good to know:
- You rarely need item IDs, most modded gear already carries a tag (its own, or a shared one), and tags are tracked automatically.
- If an item is covered by both a tag mapping and an item mapping, the item mapping wins, because it is the more specific match.
- Vanilla-style gear (anything that behaves like a sword, axe, armor piece, and so on) and any accessory from the Accessories API are detected automatically, so they roll classes even without a mapping.
Show example
By tag, covering a whole group at once:
{
"tag": "farmersdelight:tools/knives",
"classes": {
"assassin": { "weight": 100 },
"rogue": { "weight": 100 }
}
}
By item ID, for one specific item:
{
"item": "supermod:ruby_sword",
"classes": { "warrior": { "weight": 100 } }
}
โจ Build a brand-new class
In overrides/classes/, add a file with a new name (for example frostknight.json), using an exported class as your model. Then add your new class id to a mapping so items can roll it (see the guide above), then restart.
Show example
{
"id": "frostknight",
"display_name": "Frost Knight",
"name_prefix": "Frost Knight",
"color": "#55FFFF",
"roll_weight": 80,
"set_bonus": true,
"weapon_pool": [
{ "attribute": "infusedpower:generic.freeze_on_hit", "min": 0.05, "max": 0.15, "weight": 10 },
{ "attribute": "infusedpower:generic.critical_damage", "min": 0.05, "max": 0.20, "weight": 10 }
],
"armor_pool": [
{ "attribute": "minecraft:generic.max_health", "min": 0.5, "max": 2.0, "weight": 10 }
],
"static_armor_modifiers": [
{ "attribute": "infusedpower:generic.freeze_attacker", "value": 0.05, "set_bonus_eligible": true }
]
}
๐ฃ Understanding values, weights and pools (read this before editing classes)
What the min and max numbers mean
The number you write is not always a percentage. How it shows in-game depends on the stat:
| Stat type | You write | The player sees | Example |
|---|---|---|---|
| Percentage stats (most of them) | a decimal | the value times 100, with % |
0.05 becomes +5%, 0.15 becomes +15% |
| Attack Damage, Attack Speed, Move Speed | a decimal | a percent of the item's base | 0.04 becomes +4% |
| Health, Armor, Armor Toughness, Thorns, XP, Arrow Pierce | the raw amount | the number as-is | 2.0 Health becomes +2 (2 health is 1 heart) |
| Dodge, Block, Armor Pen | a decimal | the value times 100, no % |
0.06 becomes +6 |
| Life on Hit, Heal on Hurt, Bleed, Pack Leader | the raw amount | the number with decimals | 0.5 becomes +0.50 |
The easy way: do not guess at numbers. Open an exported class that already uses the stat you want (for example
berserker.jsonhas Lifesteal and Crit Damage), copy itsminandmax, then nudge them. The in-game Attribute Guide explains what every stat does, and the Every attribute ID list further below gives the exact IDs to type.
operation (you can usually ignore this)
Leave it out and the mod picks the right behavior automatically: Attack Damage, Attack Speed, and Movement Speed scale off the item's base value, while everything else adds a flat amount. Only set operation if you specifically want to change that.
Two kinds of weight (rarity)
Weight can appear in two places, doing two different jobs:
roll_weightin a class file is that class's default rarity everywhere (higher means more common).weightinside a mapping overridesroll_weightfor that one item or group. If you list a class with no weight (like["warrior"]), it simply uses the class's ownroll_weight.
Weapon pool vs armor pool
A class rolls from weapon_pool or armor_pool depending on the item:
- Weapon pool: swords, axes, maces, bows, crossbows, tridents, knives, and tools (pickaxe, shovel, hoe, fishing rod).
- Armor pool: helmets, chestplates, leggings, boots, shields, and every accessory (rings, amulets, capes, and so on).
If you want a class to work on both armor and weapons, fill in both pools.
Names: name_prefix, name_suffix, and naming_mode
A class can define a prefix, a suffix, or both. The mapping's naming_mode decides which actually appear:
"prefix"uses only the prefix, likeBerserker Iron Sword"suffix"uses only the suffix, likeIron Sword of the Guardian"both"(the default) allows both
Set bonuses
A set bonus needs two things to be true: the class has "set_bonus": true, and the specific guaranteed stats are marked "set_bonus_eligible": true. Then each matching piece you wear past the first adds 20% to those stats: 2 pieces give x1.2, 3 pieces give x1.4, and so on with no cap. The tooltip shows the count, like Paladin Set: 2.
๐ Full field reference
Class file (classes/*.json)
| Field | Purpose |
|---|---|
id |
Unique internal name (used in mappings) |
display_name |
Name shown to players |
color |
Tooltip color, either hex ("#55FFFF") or a name ("aqua", "gold", "red", and so on) |
name_prefix / name_suffix |
Text placed before or after the item name |
lore |
The description the Class Browser shows for the class |
enabled |
true or false, switch the class on or off |
roll_weight |
Base rarity (higher means more common, 100 by default) |
sources |
Where it can appear (see the sources guide) |
set_bonus |
true means wearing 2 or more pieces boosts its set stats |
affix_count_weights |
How many stats it rolls, like [0,65,30,5] for mostly 2 to 3 |
min_positive_affixes / max_positive_affixes |
A plain range instead of affix_count_weights (these win if both are set) |
negative_affix_chance / max_negative_affixes |
Chance (0 to 1) and max number of downsides |
weapon_pool / armor_pool |
Possible stats, entries of { attribute, min, max, weight } |
negative_weapon_pool / negative_armor_pool |
Possible downsides |
static_weapon_modifiers / static_armor_modifiers |
Guaranteed stats, { attribute, value, set_bonus_eligible } |
Mapping file (class_mappings/*.json)
| Field | Purpose |
|---|---|
tag |
Apply to a whole item group (like "minecraft:swords") |
item |
Apply to one specific item (overrides any tag) |
classes |
Which classes can roll, plus their weights |
naming_mode |
"prefix", "suffix", or "both" (default) |
exclude_attributes |
Stats that cannot roll on this item |
attribute_overrides |
Change a stat's min, max, or weight for this item |
attribute_multiplier |
Scale all rolled values (like 1.3) |
item_multipliers |
A different attribute_multiplier for single items inside a tag mapping |
numen |
The Numen value of these items |
summon_blocked |
true stops rituals from summoning these items |
Attribute IDs look like
infusedpower:generic.lifesteal(this mod's stats) orminecraft:generic.attack_damage(vanilla stats). The in-game Attribute Guide explains what each one does; for the exact IDs to type, see Every attribute ID below.
๐ Every attribute ID (copy-paste ready)
Every stat from this mod is written as infusedpower:generic.NAME, using one of the names below. Vanilla stats use minecraft:generic.NAME instead.
Combat and damage
critical_rate critical_damage super_crit double_hit combo_damage fury bloodlust lifesteal backstab_damage execution_damage low_hp_damage armor_penetration magic_resist
On-hit effects
poison_on_hit wither_on_hit slowness_on_hit weakness_on_hit freeze_on_hit fire_on_hit disorient_on_hit bleed_on_hit spellsurge chain_lightning blight plague stat_steal whirlwind
Damage vs creature type
undead_damage arthropod_damage aquatic_damage illager_damage airborne_damage
Defense
dodge barrier block_chance poison_immunity cleanse_on_hurt riposte reckoning
When you are hurt
regen_on_hurt resist_on_hurt speed_on_hurt heal_on_hurt percent_heal_on_hurt
Reactive armor (hurts attackers)
thorns freeze_attacker fire_attacker wither_attacker poison_attacker
Summons
necromancy elementalist
Healing and utility
life_on_hit life_on_execute bonus_xp bonus_xp_mining_ore smelters_touch bonus_durability pack_leader dig_speed
Ranged
draw_speed accuracy arrow_velocity arrow_damage explosive_arrow lightning_arrow gravity_arrow pierce
Movement and water
swim_speed water_gravity
Common vanilla stats (use the minecraft:generic. prefix)
attack_damage attack_speed max_health armor armor_toughness movement_speed knockback_resistance attack_knockback luck max_absorption
๐งฉ Every parameter in one place
Complete reference files using every field at once. You only ever use the fields you need. A couple of notes: for affix counts you normally pick either min_positive_affixes/max_positive_affixes or affix_count_weights (not both), and operation on a stat is optional (defaults are sensible).
Show a class file with every field
{
"id": "example_class",
"display_name": "Example Class",
"name_prefix": "Example",
"name_suffix": "of Power",
"lore": "The description the Class Browser shows.",
"color": "#55FFFF",
"enabled": true,
"roll_weight": 100,
"sources": ["loot_chest", "loot_entity", "loot_equipment", "craft", "inventory", "summon"],
"set_bonus": true,
"min_positive_affixes": 1,
"max_positive_affixes": 3,
"affix_count_weights": [0, 65, 30, 5],
"negative_affix_chance": 0.25,
"max_negative_affixes": 2,
"weapon_pool": [
{ "attribute": "minecraft:generic.attack_damage", "min": 0.04, "max": 0.12, "weight": 10, "operation": "add_multiplied_base" },
{ "attribute": "infusedpower:generic.lifesteal", "min": 0.02, "max": 0.09, "weight": 10 }
],
"armor_pool": [
{ "attribute": "minecraft:generic.max_health", "min": 0.5, "max": 2.0, "weight": 10 }
],
"negative_weapon_pool": [
{ "attribute": "minecraft:generic.attack_speed", "min": -0.06, "max": -0.02, "weight": 10 }
],
"negative_armor_pool": [
{ "attribute": "minecraft:generic.armor", "min": -0.6, "max": -0.2, "weight": 10 }
],
"static_weapon_modifiers": [
{ "attribute": "infusedpower:generic.fury", "value": 0.0135, "set_bonus_eligible": true }
],
"static_armor_modifiers": [
{ "attribute": "infusedpower:generic.fury", "min": 0.005, "max": 0.01, "operation": "add_value", "set_bonus_eligible": true }
]
}
How the trickier fields behave:
affix_count_weightssets how many positive stats roll. Each slot is a count: the 1st number is the weight for 1 stat, the 2nd for 2 stats, the 3rd for 3, and so on.[0, 65, 30, 5]means never 1 (0%), usually 2 (65%), sometimes 3 (30%), rarely 4 (5%). Weights are relative to their total, so here, where they add up to 100, each is also a percentage. The final count can never exceed the number of stats actually in the pool.- Pick one affix-count method. If you set
min_positive_affixesandmax_positive_affixes, those win andaffix_count_weightsis ignored. Set neither and the mod's default spread is used. The example lists all three only for reference, you would normally keep just one. sources: leave it out to allow every source, or list only the ones you want.negative_affix_chanceandmax_negative_affixesonly matter when the class has a negative pool. The mod tries to add a downside alongside each positive stat:negative_affix_chance(0 to 1) is the chance each time, andmax_negative_affixescaps the total, and it never adds more negatives than positives.set_bonusonly does anything if somestatic_..._modifiersare marked"set_bonus_eligible": true.
Show a mapping file with every field
{
"tag": "minecraft:swords",
"item": "minecraft:diamond_sword",
"naming_mode": "both",
"classes": {
"berserker": { "weight": 100 },
"lichborn": { "weight": 10 }
},
"exclude_attributes": ["infusedpower:generic.draw_speed"],
"attribute_overrides": {
"infusedpower:generic.critical_rate": { "min": 0.05, "max": 0.20, "weight": 30 }
},
"attribute_multiplier": 1.3,
"item_multipliers": { "minecraft:wooden_sword": 1.3 },
"numen": 900,
"summon_blocked": false
}
A mapping uses either
tagoritem. Both are shown here for reference, but if you include both, theitemmatch takes priority.
๐ฆ For modpack makers
Tune everything to taste, then ship your config/infusedpower/overrides/ folder with your pack, or the same files as a datapack. Players get your classes, mappings, item support, and balance automatically, with no extra setup on their end. Your files only name what you changed, so the mod's own updates still reach every field you left alone.
Minecraft 1.20.1, 1.21.1, 26.2 & 26.3 ยท Fabric, NeoForge & Forge, Fabric API (Fabric only), Java 17, 21 or 25
English
Early beta, your feedback shapes the mod. Modpacks welcome, see the license for details.






