Skip to content

Tags and exclusive sets ​

Two kinds of data decide what Adjustability does: vanilla's exclusive sets decide which enchantments conflict, and Adjustability's tags decide what the mod is allowed to do about it. Both live in datapacks and reload with /reload.

Exclusive sets (vanilla) ​

Each enchantment file (data/<namespace>/enchantment/<name>.json) has an exclusive_set, usually a tag:

json
{
  "exclusive_set": "#minecraft:exclusive_set/mining"
}

Two enchantments conflict when either one's exclusive set contains the other. Vanilla's sets include #minecraft:exclusive_set/armor, /damage, /mining, /boots, /bow, /crossbow and /riptide. Change them, and both vanilla and Adjustability follow: add an enchantment to a set to make it conflict, remove it to let it stack like any other.

Two ways to change what conflicts ​

Datapack (exclusive_set)Server config ([exclusivity])
AffectsVanilla and Adjustability: the enchanting table, /enchant, the anvilAdjustability only
Wheredata/<namespace>/enchantment/<name>.json or the #minecraft:exclusive_set/* tagsadjustability-server.toml
Good forChanging the game's rules for everyoneMaking extra pairs switchable, or letting a pair stack, without touching vanilla

See Which enchantments conflict for the config.

Adjustability's tags ​

TagTypeDefaultMeaning
#adjustability:never_dormantEnchantment#minecraft:curseAlways active. Can't be switched off, so curses can't be dodged.
#adjustability:not_combinableEnchantmentemptyConflicts involving these keep vanilla behavior: the anvil skips them.
#adjustability:not_adjustableItememptyItems that never hold dormant enchantments, in either mode.
#adjustability:adjustableItememptyWith [items] mode = ALLOWLIST in the server config: the only items that can hold dormant enchantments.

Add to a tag without replacing the defaults:

json
{
  "replace": false,
  "values": ["minecraft:infinity"]
}

saved as data/adjustability/tags/enchantment/not_combinable.json in your datapack: Infinity and Mending can no longer be combined, everything else still can.

Released under the MIT License.