LogoReliable Remover

Filters

Filters pick which items a rule applies to.

All filters

FilterWhat it matchesExample
itemsItem IDs or item tags["minecraft:tnt", "#minecraft:logs"]
blocksBlock IDs or block tags["minecraft:anvil", "#minecraft:beds"]
fluidsFluid IDs or tags["minecraft:lava"]
effectsStatus effect IDs or tags["minecraft:poison"]
enchantmentsEnchantment IDs or tags["minecraft:mending", "#minecraft:curse"]
tagsTags (without the #)["minecraft:logs"]
modEverything from a mod["farmersdelight"]
patternsRegex against the ID["/.*_sword/"]
components / nbtItem data, like damage or enchantments["[damage=0]"] (1.21+)
["{Damage:0}"] (1.20.1)
dimensionsOnly in these dimensions["minecraft:the_nether"]
entitiesOnly on these mobs["minecraft:zombie"]
notExceptions{ "items": ["minecraft:stick"] }
tag_typeOnly remove from item tags or block tags["item"]
registryOnly apply in certain places["loot"]
replace_withWhat to swap the item for"minecraft:emerald"

Any list with one entry can be written as a plain string, so "items": "minecraft:tnt" works too.

How filters combine

These add more items to the rule: items, blocks, fluids, effects, tags, patterns. This rule removes TNT, Bedrock and every log:

{
"action": "remove",
"items": ["minecraft:tnt", "minecraft:bedrock"],
"tags": ["minecraft:logs"]
}

These narrow the rule down: mod, dimensions, entities, components, and enchantments (except in remove_enchantment, where it picks the enchantment to remove). This rule removes swords, but only from Minecraft. Modded swords are left alone:

{
"action": "remove",
"mod": ["minecraft"],
"patterns": ["/.*_sword/"]
}

Tags

Put a # in front of a tag in items, blocks, fluids, effects or enchantments:

{
"action": "remove",
"items": ["#minecraft:logs"]
}

Mods

Everything from Farmer's Delight:

{
"action": "remove",
"mod": ["farmersdelight"]
}

The mod ID is the part before the : in an item ID (farmersdelight:cabbage).

Regex patterns

Wrap the pattern in slashes. The pattern has to match the whole ID, including the modid: part.

PatternMatches
/.*_sword/minecraft:diamond_sword, othermod:copper_sword
/minecraft:.*_sword/minecraft:diamond_sword, but not othermod:copper_sword
/.*_spawn_egg/Every spawn egg
/minecraft:.*_log/Every vanilla log
/_sword/Nothing. It doesn't cover the rest of the ID. Use /.*_sword/.
{
"action": "remove",
"patterns": ["/.*_spawn_egg/"]
}

Dimensions

Only remove water buckets in the Nether:

{
"action": "remove",
"items": ["minecraft:water_bucket"],
"dimensions": ["minecraft:the_nether"]
}

More dimension examples

Entities

entities limits the rule to certain mobs. What that means depends on the action.

Zombies can't hold diamond swords (players still can):

{
"action": "remove",
"items": ["minecraft:diamond_sword"],
"entities": ["minecraft:zombie"]
}

Players can't attack villagers with any item:

{
"action": "remove_attacks",
"entities": ["minecraft:villager"]
}

Players can't saddle pigs (horses are fine):

{
"action": "remove_interactions",
"items": ["minecraft:saddle"],
"entities": ["minecraft:pig"]
}

Exceptions with not

Anything inside not is excluded from the rule. It accepts the same filters as a normal rule.

Remove all of AE2 except Certus Quartz:

{
"action": "remove",
"mod": ["ae2"],
"not": {
"items": ["ae2:certus_quartz_crystal"]
}
}

Block Ender Pearls everywhere except the End:

{
"action": "remove_interactions",
"items": ["minecraft:ender_pearl"],
"not": {
"dimensions": ["minecraft:the_end"]
}
}

Item data (components / NBT)

Use this to match items with specific data, like damage, enchantments or custom data. The rule applies if any entry matches. You can write components or nbt, they're the same field.

The syntax depends on your Minecraft version.

1.21 and newer

Uses the same syntax as /clear and /execute if items.

EntryMatches
"[damage=0]"Undamaged items
"minecraft:diamond_sword[damage=0]"Undamaged diamond swords only
"[enchantments~[{enchantments:\"minecraft:sharpness\"}]]"Items with Sharpness (any level)
"[stored_enchantments~[{enchantments:\"minecraft:mending\"}]]"Enchanted books with Mending
"[custom_data~{my_pack:{banned:true}}]"Items whose custom data includes {my_pack:{banned:true}}
"[damage=0,rarity=epic]"Undamaged and epic rarity
"/.*custom_model_data.*/"Regex against all of the item's components

Use = for an exact match and ~ for a partial match.

Old-style NBT like "{Damage:0}" does not work on 1.21+. Those entries are skipped and an error is logged.

1.20.1

Uses NBT. The item matches if its NBT contains what you write.

EntryMatches
"{Damage:0}"Undamaged items
"{CustomModelData:1}"Items with CustomModelData 1
"{StoredEnchantments:[{id:\"minecraft:mending\"}]}"Enchanted books with Mending
"/.*StoredEnchantments.*/"Regex against the item's full NBT

Example

Remove enchanted books with Mending, but leave other books alone:

{
"action": "remove",
"items": ["minecraft:enchanted_book"],
"components": ["[stored_enchantments~[{enchantments:\"minecraft:mending\"}]]"]
}

To get rid of Mending everywhere (tables, loot, trades), remove_enchantment is usually easier.

Replacing items (replace_with)

Removes the item, but swaps it into every recipe that used it. Here, any recipe that needed a diamond now needs an emerald:

{
"action": "remove",
"items": ["minecraft:diamond"],
"replace_with": "minecraft:emerald"
}

The replacement keeps the original item's damage, enchantments and name. To change that, add components after the ID, the same way you would in /give. This turns Netherite Swords into half-broken Diamond Swords with no enchantments:

{
"action": "remove",
"items": ["minecraft:netherite_sword"],
"replace_with": "minecraft:diamond_sword[damage=500,!enchantments]"
}

On 1.20.1, use NBT instead: "minecraft:diamond_sword{Damage:500}".

You can also put the components in a separate replace_components field. This does the same thing:

{
"action": "remove",
"items": ["minecraft:netherite_sword"],
"replace_with": "minecraft:diamond_sword",
"replace_components": "[damage=500,!enchantments]"
}

replace_with also works with remove_inventory, remove_storage, remove_drops and remove_equipment (swap the item instead of deleting it) and remove_effect (swap the effect).

Tag type and registry

These limit where remove applies.

registry picks the places: for example ["loot"] only removes the item from loot, and ["tag"] only removes it from tags.

tag_type picks which tags: ["item"] or ["block"].

Together, they let you take an item out of tags without removing it. Here, oak logs stay in the game but stop counting as #minecraft:logs in recipes. The placed block keeps its block tags, so axes still mine it quickly:

{
"action": "remove",
"items": ["minecraft:oak_log"],
"registry": ["tag"],
"tag_type": ["item"]
}

Without registry, the item would be removed everywhere, and tag_type would only keep it in block tags.