Enchantment Disabler Tag
Disable any enchantment in your world with a single line in a datapack.
Add an enchantment to one tag and it stops existing: it won't appear in enchanting tables, villager trades, loot chests, or the creative menu, and it gets stripped off items that already have it.
Quick Start: disabling an enchantment in 3 steps
Say you want to get rid of Mending right?
Step 1: make the folders
Go to your world's folder and create this structure inside datapacks:
<your world>/
└── datapacks/
└── no-mending/
├── pack.mcmeta
└── data/
└── enchantmentdisabletag/
└── tags/
└── enchantment/
└── disabled.json
no-mending can be named anything you like. Everything else must be spelled exactly as shown.
Step 2: fill in the two files
pack.mcmeta
{
"pack": {
"pack_format": 15,
"description": "Disables Mending"
}
}
disabled.json
{
"replace": false,
"values": [
"minecraft:mending"
]
}
Step 3: load it
Start the world, or run /reload if you're already in one.
That's it. Mending is gone.
Disabling more than one
Add them to the same list, separated by commas:
{
"replace": false,
"values": [
"minecraft:mending",
"minecraft:silk_touch",
"minecraft:fire_aspect"
]
}
Keep "replace": false. It tells Minecraft to merge your list with any others. Setting it to true
overwrites what other datapacks have added, which usually isn't what you want.
Finding the right enchantment ID
Type /enchant @s in chat and the game will list every enchantment ID it knows about. Use those names
exactly, including the minecraft: prefix.
Advanced
The values list accepts everything vanilla's tag system does, not just plain names.
Disabling a whole group at once
Prefix an entry with # to point at another tag and disable everything inside it:
{
"replace": false,
"values": [
"#somemod:cursed_enchantments"
]
}
Worth knowing: Minecraft 1.20.1 doesn't ship any enchantment tags of its own (those arrived in 1.21), so this is for tags added by mods, or ones you define yourself in your own datapack. Pointing at a tag that doesn't exist will fail to load, so use the optional form below if you're not sure it's there.
Enchantments that might not be installed
Naming an enchantment from a mod that isn't present breaks the datapack. To make an entry optional, write it
as an object with "required": false:
{
"replace": false,
"values": [
"minecraft:mending",
{ "id": "somemod:lifesteal", "required": false }
]
}
Now the pack loads fine whether or not that mod is installed. This is the safe way to write a pack meant to be shared around.
Using it in a modpack
Any mod's enchantments work, just use that mod's ID instead of minecraft:. Modpack authors can ship the
datapack inside the pack so players don't have to set anything up.
Client or Server?
The mod works on the server by itself, but installing it on the client too gives a cleaner experience:
- The creative menu won't show disabled enchantments.
- The
/enchantcommand shows a proper error message instead of a generic one.
Will this delete enchantments on my items?
Yes. Disabling an enchantment removes it from items that already have it, and an enchanted book that ends up with nothing left turns back into a plain book.
Back up your world before disabling anything, and consider compensating players who spent a long time grinding for the enchantment you're removing.
Requirements
- Fabric users need Fabric API
- Forge users need nothing extra
Credits
This mod is originally the work of Greenhouse Modding (with ChrysanthCow), who released it into the
public domain. The original was taken down, so this is a rebuilt version i made that keeps it available with some fixes and improvements. It uses
the same mod ID and the same enchantmentdisabletag:disabled tag, so any datapack or world you already
have still works untouched. (unless…)
Full credit to them for the original work. Maintained now by me.

