Community listing page, reviews here may not be monitored by the author.
Books Can Enchant Anything
No reviews yet
A Datapack that allows any enchanted book to be applied to any item in the anvil. Doesn't change any enchantments nor the enchanting table.
Community voices
Reviews
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
About
Description
Books Can Enchant Anything
A Minecraft data pack that lets any enchantment be applied to any item via enchanted book and anvil (or the /enchant command). Enchanting tables retain their vanilla behavior.
This means you can finally place Unbreaking on a flint and steel, Fire Aspect on a shovel, or Aqua Affinity on a mob head. Or more useful combinations, of course.
How it works
Works by overriding every vanilla enchantment's supported_items attribute to a tag that contains every item in the game.
data/bcea/tags/item/all.json: an item tag listing every item ID in the game (exceptair).data/minecraft/enchantment/*.json: a full copy of each vanilla enchantment definition with only thesupported_itemsfield replaced with#bcea:all. Everything else (effects, costs, weights, slots,primary_items) is untouched, so enchanting-table behavior is unchanged, only anvil//enchantrestrictions are lifted.
Installation
Drop this folder into your world's datapacks/ directory (or a resource-pack-style
zip of it), then run /reload or restart the world.
[!NOTE] The items and enchantments in this pack are compiled directly from the vanilla client jar, in this case for version 26.2. Therefore, this pack does not work out-of-the-box with other versions of Minecraft and/or modded clients.
The next section explains how to update this pack for your desired version of Minecraft. In the future, perhaps I will automate this as a CI/CD workflow so that all of the recent Minecraft versions are supported with a pre-compiled release.
Updating for a new Minecraft version
The list of items and enchantments comes directly from a vanilla (or modded) client jar. Two scripts are included to regenerate this pack's contents so it can be easily updated for a new game version.
The scripts require Python 3 and no additional dependencies. Run these commands from the root of this pack's folder, passing the path to a vanilla client jar as an argument:
python3 scripts/update_item_tag.py /path/to/client.jar
python3 scripts/update_enchantments.py /path/to/client.jar
update_item_tag.py rebuilds data/bcea/tags/item/all.json from the jar's assets/minecraft/items/*.json item model list (every real item has one; air is excluded on purpose).
update_enchantments.py rebuilds data/minecraft/enchantment/*.json by copying each enchantment straight from the jar, then only modifying supported_items (changed to #bcea:all) and primary_items (added, set to the enchantment's original vanilla supported_items, if the jar's copy doesn't already have one). This way enchanting tables still only show the vanilla list of available enchants, while anvil//enchant becomes fully permissive. It also warns about any enchantment .json present in the pack but missing from the jar, in case an enchantment was removed upstream.
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
Want to reach Minecraft players?
We're looking for a server hosting partner to feature here and other parts of the site. Interested? Send us a message!
Get in touchGet it on
Available Platforms
On ModDex
Community snapshot
By the numbers