All Mods Resource Packs Data Packs Shaders Modpacks Plugins
Armor Set Bonuses

Armor Set Bonuses

by SpaceCat97 • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

 

About

Armor Set bonusess adds highly configurable armor sets to the game. When armor is equipped in a specific combination you will gain specific bonuses. This mod is perfect for modpack creators looking to further improve loadouts and gameplay.

The configuration options allow you to create any sort of armor set bonus, with any armor you want? Want to mix and match? Go for it! Want to have a bonus that gives 20 hearts? Sure why not (but you'll have to configure it)!

This mod works by reading JSON config files from the config/armor sets directory. When you first launch the mod, the directory will be created with some default sets.

Ingame, you can identify if a piece of equipment is a part of an armor set by looking at its tooltip.

Features

  • Default generated armor sets on first load
  • Any amount of armor sets can be created, with any combination (you don't have to specify ALL armor slots)
  • Multiple set support, a piece of armor can be a part of more than one set
  • "mixAndMatch" armor pieces, you can have a set be completed by multiple items (more below)
  • Full and partial set bonuses
  • Tooltips! With shift key interaction
  • Real-time tooltip update, indicating what armor in the set is currently worn
  • Potion effect support
  • Attributes support
  • Mod support for: potions, attributes and items
  • Interaction support with other mobs (attack and interact)
  • Self interaction, apply effects and also apply immunities to effects
  • Dedicated Curios (Forge only) and Trinkets (Fabric only) Support
  • LivingEntity support, any living mob can have the bonuses if they have the requirements
  • Custom tooltips
  • Conditions, bonuses can be activated based on specified conditions, such as "in water"

Wiki

You can access the wiki here. It contains a full JSON specification for the latest version of Armor Set Bonuses.

Warning: If you are not using the latest version of this mod, some features may not be available to you.

Help!

Before asking for help, please consult the wiki.

If you still need further help, you can open an issue here or ask on the discord.

Modpacks

You can use this mod in your modpack.

My Mods

If you like this mod, check out my other mods!

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
1.20.x
Forge
2d ago 1
1.20.x
Fabric
2d ago 1
1.19.2
Forge
2d ago 1
1.19.2
Fabric
2d ago 1
1.18.2
Forge
2d ago 1
1.18.2
Fabric
2d ago 1
1.16.5
Forge
2d ago 1
1.16.5
Fabric
2d ago 1
1.20.x
Forge
2d ago 1
1.20.x
Fabric
2d ago 1
1.19.2
Forge
2d ago 1
1.19.2
Fabric
2d ago 1
1.18.2
Forge
2d ago 1
1.18.2
Fabric
2d ago 1
1.16.5
Forge
2d ago 1
1.16.5
Fabric
2d ago 1
1.20.x
Forge
2d ago 1
1.20.x
Fabric
2d ago 1
1.19.2
Forge
2d ago 1
1.19.2
Fabric
2d ago 1
1.18.2
Forge
2d ago 1
1.18.2
Fabric
2d ago 1
1.16.5
Forge
2d ago 1
1.16.5
Fabric
2d ago 1
1.20.x
Forge
2d ago 1
1.20.x
Fabric
2d ago 1
1.20.x
Forge
2d ago 1
1.20.x
Fabric
2d ago 1
1.19.2
Forge
2d ago 1
1.19.2
Fabric
2d ago 1
1.18.2
Forge
2d ago 1
1.18.2
Fabric
2d ago 1
1.16.5
Forge
2d ago 1
1.16.5
Fabric
2d ago 1
1.20.x
Fabric
2d ago 1
1.19.2
Fabric
2d ago 1
1.18.2
Fabric
2d ago 1
1.16.5
Fabric
2d ago 1
1.20.x
Forge
2d ago 1
1.19.2
Forge
2d ago 1
1.18.2
Forge
2d ago 1
1.16.5
Forge
2d ago 1
[20.14.0] 20.14.0 by SpaceCat97 on Oct 14, 2026
Download
Fixed inBiome condition wording
Fixed inBiome condition not inverting
Fixed onBlock condition not applying when the player is on a block that is not full size
Fixed hideBonusDescription not applying to partial set bonuses
Fixed issue when there is only one enchantment and shouldHave = false

Added new conditions:
  • onFire - is the entity on fire?
  • isRiding - is the entity riding another entity?
  • yLevelRange - is the entity between y1,y2? ("extra": "y1,y2")
  • healthRange - is the entity's health between x,y? ("extra": "x,y")
  • armorRange - is the entity's armor between x,y? ("extra": "x,y")

Updated existing conditions:
  • inBiome - now supports tags (eg: #forge:is_forest, #c:forest)

Added "percentageChance" feature, when applying any bonus you can set it to apply with chance. This number should be between 0 (exclusive) and 100 (exclusive).

Added "tagData" field to SetPiece objects. You can now define a tag that the equipped item must have in order for the effect to apply. This can be in "or" or "and" mode. The tag must be an escaped JSON.

Example tagData:
"boots": {
"itemKey": "minecraft:leather_boots",
"mustBeEmpty": false,
"tagData": {
"orMode": false,
"tags": [
"{\"Reforge\":\"quality_equipment.quality.crumbling\"}",
"{\"test\":\"data\"}"
]
}
}
[20.14.0] 20.14.0 by SpaceCat97 on Oct 14, 2026
Download
Fixed inBiome condition wording
Fixed inBiome condition not inverting
Fixed onBlock condition not applying when the player is on a block that is not full size
Fixed hideBonusDescription not applying to partial set bonuses
Fixed issue when there is only one enchantment and shouldHave = false

Added new conditions:
  • onFire - is the entity on fire?
  • isRiding - is the entity riding another entity?
  • yLevelRange - is the entity between y1,y2? ("extra": "y1,y2")
  • healthRange - is the entity's health between x,y? ("extra": "x,y")
  • armorRange - is the entity's armor between x,y? ("extra": "x,y")

Updated existing conditions:
  • inBiome - now supports tags (eg: #forge:is_forest, #c:forest)

Added "percentageChance" feature, when applying any bonus you can set it to apply with chance. This number should be between 0 (exclusive) and 100 (exclusive).

Added "tagData" field to SetPiece objects. You can now define a tag that the equipped item must have in order for the effect to apply. This can be in "or" or "and" mode. The tag must be an escaped JSON.

Example tagData:
"boots": {
"itemKey": "minecraft:leather_boots",
"mustBeEmpty": false,
"tagData": {
"orMode": false,
"tags": [
"{\"Reforge\":\"quality_equipment.quality.crumbling\"}",
"{\"test\":\"data\"}"
]
}
}
[19.14.0] 19.14.0 by SpaceCat97 on Oct 14, 2026
Download
Fixed inBiome condition wording
Fixed inBiome condition not inverting
Fixed onBlock condition not applying when the player is on a block that is not full size
Fixed hideBonusDescription not applying to partial set bonuses
Fixed issue when there is only one enchantment and shouldHave = false

Added new conditions:
  • onFire - is the entity on fire?
  • isRiding - is the entity riding another entity?
  • yLevelRange - is the entity between y1,y2? ("extra": "y1,y2")
  • healthRange - is the entity's health between x,y? ("extra": "x,y")
  • armorRange - is the entity's armor between x,y? ("extra": "x,y")

Updated existing conditions:
  • inBiome - now supports tags (eg: #forge:is_forest, #c:forest)

Added "percentageChance" feature, when applying any bonus you can set it to apply with chance. This number should be between 0 (exclusive) and 100 (exclusive).

Added "tagData" field to SetPiece objects. You can now define a tag that the equipped item must have in order for the effect to apply. This can be in "or" or "and" mode. The tag must be an escaped JSON.

Example tagData:
"boots": {
"itemKey": "minecraft:leather_boots",
"mustBeEmpty": false,
"tagData": {
"orMode": false,
"tags": [
"{\"Reforge\":\"quality_equipment.quality.crumbling\"}",
"{\"test\":\"data\"}"
]
}
}
[19.14.0] 19.14.0 by SpaceCat97 on Oct 14, 2026
Download
Fixed inBiome condition wording
Fixed inBiome condition not inverting
Fixed onBlock condition not applying when the player is on a block that is not full size
Fixed hideBonusDescription not applying to partial set bonuses
Fixed issue when there is only one enchantment and shouldHave = false

Added new conditions:
  • onFire - is the entity on fire?
  • isRiding - is the entity riding another entity?
  • yLevelRange - is the entity between y1,y2? ("extra": "y1,y2")
  • healthRange - is the entity's health between x,y? ("extra": "x,y")
  • armorRange - is the entity's armor between x,y? ("extra": "x,y")

Updated existing conditions:
  • inBiome - now supports tags (eg: #forge:is_forest, #c:forest)

Added "percentageChance" feature, when applying any bonus you can set it to apply with chance. This number should be between 0 (exclusive) and 100 (exclusive).

Added "tagData" field to SetPiece objects. You can now define a tag that the equipped item must have in order for the effect to apply. This can be in "or" or "and" mode. The tag must be an escaped JSON.

Example tagData:
"boots": {
"itemKey": "minecraft:leather_boots",
"mustBeEmpty": false,
"tagData": {
"orMode": false,
"tags": [
"{\"Reforge\":\"quality_equipment.quality.crumbling\"}",
"{\"test\":\"data\"}"
]
}
}
[18.14.0] 18.14.0 by SpaceCat97 on Oct 14, 2026
Download
Fixed inBiome condition wording
Fixed inBiome condition not inverting
Fixed onBlock condition not applying when the player is on a block that is not full size
Fixed hideBonusDescription not applying to partial set bonuses
Fixed issue when there is only one enchantment and shouldHave = false

Added new conditions:
  • onFire - is the entity on fire?
  • isRiding - is the entity riding another entity?
  • yLevelRange - is the entity between y1,y2? ("extra": "y1,y2")
  • healthRange - is the entity's health between x,y? ("extra": "x,y")
  • armorRange - is the entity's armor between x,y? ("extra": "x,y")

Updated existing conditions:
  • inBiome - now supports tags (eg: #forge:is_forest, #c:forest)

Added "percentageChance" feature, when applying any bonus you can set it to apply with chance. This number should be between 0 (exclusive) and 100 (exclusive).

Added "tagData" field to SetPiece objects. You can now define a tag that the equipped item must have in order for the effect to apply. This can be in "or" or "and" mode. The tag must be an escaped JSON.

Example tagData:
"boots": {
"itemKey": "minecraft:leather_boots",
"mustBeEmpty": false,
"tagData": {
"orMode": false,
"tags": [
"{\"Reforge\":\"quality_equipment.quality.crumbling\"}",
"{\"test\":\"data\"}"
]
}
}
[18.14.0] 18.14.0 by SpaceCat97 on Oct 14, 2026
Download
Fixed inBiome condition wording
Fixed inBiome condition not inverting
Fixed onBlock condition not applying when the player is on a block that is not full size
Fixed hideBonusDescription not applying to partial set bonuses
Fixed issue when there is only one enchantment and shouldHave = false

Added new conditions:
  • onFire - is the entity on fire?
  • isRiding - is the entity riding another entity?
  • yLevelRange - is the entity between y1,y2? ("extra": "y1,y2")
  • healthRange - is the entity's health between x,y? ("extra": "x,y")
  • armorRange - is the entity's armor between x,y? ("extra": "x,y")

Updated existing conditions:
  • inBiome - now supports tags (eg: #forge:is_forest, #c:forest)

Added "percentageChance" feature, when applying any bonus you can set it to apply with chance. This number should be between 0 (exclusive) and 100 (exclusive).

Added "tagData" field to SetPiece objects. You can now define a tag that the equipped item must have in order for the effect to apply. This can be in "or" or "and" mode. The tag must be an escaped JSON.

Example tagData:
"boots": {
"itemKey": "minecraft:leather_boots",
"mustBeEmpty": false,
"tagData": {
"orMode": false,
"tags": [
"{\"Reforge\":\"quality_equipment.quality.crumbling\"}",
"{\"test\":\"data\"}"
]
}
}
[16.14.0] 16.14.0 by SpaceCat97 on Oct 14, 2026
Download
Fixed inBiome condition wording
Fixed inBiome condition not inverting
Fixed onBlock condition not applying when the player is on a block that is not full size
Fixed hideBonusDescription not applying to partial set bonuses
Fixed issue when there is only one enchantment and shouldHave = false

Added new conditions:
  • onFire - is the entity on fire?
  • isRiding - is the entity riding another entity?
  • yLevelRange - is the entity between y1,y2? ("extra": "y1,y2")
  • healthRange - is the entity's health between x,y? ("extra": "x,y")
  • armorRange - is the entity's armor between x,y? ("extra": "x,y")

Updated existing conditions:
  • inBiome - now supports tags (eg: #forge:is_forest, #c:forest)

Added "percentageChance" feature, when applying any bonus you can set it to apply with chance. This number should be between 0 (exclusive) and 100 (exclusive).

Added "tagData" field to SetPiece objects. You can now define a tag that the equipped item must have in order for the effect to apply. This can be in "or" or "and" mode. The tag must be an escaped JSON.

Example tagData:
"boots": {
"itemKey": "minecraft:leather_boots",
"mustBeEmpty": false,
"tagData": {
"orMode": false,
"tags": [
"{\"Reforge\":\"quality_equipment.quality.crumbling\"}",
"{\"test\":\"data\"}"
]
}
}
[16.14.0] 16.14.0 by SpaceCat97 on Oct 14, 2026
Download
Fixed inBiome condition wording
Fixed inBiome condition not inverting
Fixed onBlock condition not applying when the player is on a block that is not full size
Fixed hideBonusDescription not applying to partial set bonuses
Fixed issue when there is only one enchantment and shouldHave = false

Added new conditions:
  • onFire - is the entity on fire?
  • isRiding - is the entity riding another entity?
  • yLevelRange - is the entity between y1,y2? ("extra": "y1,y2")
  • healthRange - is the entity's health between x,y? ("extra": "x,y")
  • armorRange - is the entity's armor between x,y? ("extra": "x,y")

Updated existing conditions:
  • inBiome - now supports tags (eg: #forge:is_forest, #c:forest)

Added "percentageChance" feature, when applying any bonus you can set it to apply with chance. This number should be between 0 (exclusive) and 100 (exclusive).

Added "tagData" field to SetPiece objects. You can now define a tag that the equipped item must have in order for the effect to apply. This can be in "or" or "and" mode. The tag must be an escaped JSON.

Example tagData:
"boots": {
"itemKey": "minecraft:leather_boots",
"mustBeEmpty": false,
"tagData": {
"orMode": false,
"tags": [
"{\"Reforge\":\"quality_equipment.quality.crumbling\"}",
"{\"test\":\"data\"}"
]
}
}
armorSetName now supports translations
Fixed description going funky when a bonus has a custom description applied
armorSetName now supports translations
Fixed description going funky when a bonus has a custom description applied
armorSetName now supports translations
Fixed description going funky when a bonus has a custom description applied
armorSetName now supports translations
Fixed description going funky when a bonus has a custom description applied
armorSetName now supports translations
Fixed description going funky when a bonus has a custom description applied
armorSetName now supports translations
Fixed description going funky when a bonus has a custom description applied
armorSetName now supports translations
Fixed description going funky when a bonus has a custom description applied
armorSetName now supports translations
Fixed description going funky when a bonus has a custom description applied
v13
Added "inverted" option to conditions. If set to true, the bonus will apply when the condition is NOT met
Added "indimension" condition. Works the same as "inbiome" except it is for dimensions.

Improved tooltip display - if description field is declared but empty, it will not add anything to the tooltip

Fixed moon phase condition check
Fixed moon phase condition tooltip text
Fixed time condition check

Reworked internal code for better backwards-compatibility
Reworked translation code to make it more efficient

Backported V13 to LTS versions.
  • Please note that the inBiome condition **is not available in 1.16.5**
v13
Added "inverted" option to conditions. If set to true, the bonus will apply when the condition is NOT met
Added "indimension" condition. Works the same as "inbiome" except it is for dimensions.

Improved tooltip display - if description field is declared but empty, it will not add anything to the tooltip

Fixed moon phase condition check
Fixed moon phase condition tooltip text
Fixed time condition check

Reworked internal code for better backwards-compatibility
Reworked translation code to make it more efficient

Backported V13 to LTS versions.
  • Please note that the inBiome condition **is not available in 1.16.5**
v13
Added "inverted" option to conditions. If set to true, the bonus will apply when the condition is NOT met
Added "indimension" condition. Works the same as "inbiome" except it is for dimensions.

Improved tooltip display - if description field is declared but empty, it will not add anything to the tooltip

Fixed moon phase condition check
Fixed moon phase condition tooltip text
Fixed time condition check

Reworked internal code for better backwards-compatibility
Reworked translation code to make it more efficient

Backported V13 to LTS versions.
  • Please note that the inBiome condition **is not available in 1.16.5**
v13
Added "inverted" option to conditions. If set to true, the bonus will apply when the condition is NOT met
Added "indimension" condition. Works the same as "inbiome" except it is for dimensions.

Improved tooltip display - if description field is declared but empty, it will not add anything to the tooltip

Fixed moon phase condition check
Fixed moon phase condition tooltip text
Fixed time condition check

Reworked internal code for better backwards-compatibility
Reworked translation code to make it more efficient

Backported V13 to LTS versions.
  • Please note that the inBiome condition **is not available in 1.16.5**
v13
Added "inverted" option to conditions. If set to true, the bonus will apply when the condition is NOT met
Added "indimension" condition. Works the same as "inbiome" except it is for dimensions.

Improved tooltip display - if description field is declared but empty, it will not add anything to the tooltip

Fixed moon phase condition check
Fixed moon phase condition tooltip text
Fixed time condition check

Reworked internal code for better backwards-compatibility
Reworked translation code to make it more efficient

Backported V13 to LTS versions.
  • Please note that the inBiome condition **is not available in 1.16.5**
v13
Added "inverted" option to conditions. If set to true, the bonus will apply when the condition is NOT met
Added "indimension" condition. Works the same as "inbiome" except it is for dimensions.

Improved tooltip display - if description field is declared but empty, it will not add anything to the tooltip

Fixed moon phase condition check
Fixed moon phase condition tooltip text
Fixed time condition check

Reworked internal code for better backwards-compatibility
Reworked translation code to make it more efficient

Backported V13 to LTS versions.
  • Please note that the inBiome condition **is not available in 1.16.5**
v13
Added "inverted" option to conditions. If set to true, the bonus will apply when the condition is NOT met
Added "indimension" condition. Works the same as "inbiome" except it is for dimensions.

Improved tooltip display - if description field is declared but empty, it will not add anything to the tooltip

Fixed moon phase condition check
Fixed moon phase condition tooltip text
Fixed time condition check

Reworked internal code for better backwards-compatibility
Reworked translation code to make it more efficient

Backported V13 to LTS versions.
  • Please note that the inBiome condition **is not available in 1.16.5**
v13
Added "inverted" option to conditions. If set to true, the bonus will apply when the condition is NOT met
Added "indimension" condition. Works the same as "inbiome" except it is for dimensions.

Improved tooltip display - if description field is declared but empty, it will not add anything to the tooltip

Fixed moon phase condition check
Fixed moon phase condition tooltip text
Fixed time condition check

Reworked internal code for better backwards-compatibility
Reworked translation code to make it more efficient

Backported V13 to LTS versions.
  • Please note that the inBiome condition **is not available in 1.16.5**
Fixed conditions not appearing on tooltips (despite applying correctly)
Fixed custom descriptions hiding the conditions tooltip text

Added "tooltipDescription" property for conditions, allows you to specifically override the conditions text with your own string/translation key.


Added new conditions (see wiki for uses):
  • Time Range
  • Moon Phase
Fixed conditions not appearing on tooltips (despite applying correctly)
Fixed custom descriptions hiding the conditions tooltip text

Added "tooltipDescription" property for conditions, allows you to specifically override the conditions text with your own string/translation key.


Added new conditions (see wiki for uses):
  • Time Range
  • Moon Phase
Added new condition (see wiki on how to use):
  • In specific biome

Added check for enchantments (see wiki on how to use)

Changed all tooltips to use translation files. You can now translate!
  • Bonus descriptions and custom tooltips also support translation keys. See the wiki on how to use.
  • Take a look at this feature, even if you use english it allows you to change some of the tooltip text

Fixed armor set detection
Fixed amount of loaded/error sets reporting

Fabric only - changed how tooltips are added, should improve mod compatibility.

Improved error reporting - config issues now also appear ingame
Added new condition (see wiki on how to use):
  • In specific biome

Added check for enchantments (see wiki on how to use)

Changed all tooltips to use translation files. You can now translate!
  • Bonus descriptions and custom tooltips also support translation keys. See the wiki on how to use.
  • Take a look at this feature, even if you use english it allows you to change some of the tooltip text

Fixed armor set detection
Fixed amount of loaded/error sets reporting

Fabric only - changed how tooltips are added, should improve mod compatibility.

Improved error reporting - config issues now also appear ingame
LTS versions (10.2):
Fixed armor set detection
Fixed amount of loaded/error sets reporting
LTS versions (10.2):
Fixed armor set detection
Fixed amount of loaded/error sets reporting
Armor Set Bonuses Icon
Download Armor Set Bonuses
Select game version
Select platform