Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Tags
Creators
Details
Better Enchant
Pick the enchantments you want. Pay a fair price in XP. No more rerolling.
Better Enchant adds a single block that replaces the guesswork of the enchanting table with a proper interface: place an item, see every enchantment it can take, choose the levels, and apply them. It looks and feels like vanilla, and it never touches how enchantments themselves behave.
The block
The Better Enchant block is crafted from things you already need for enchanting:
D B D D = Diamond
B E B B = Bookshelf
D B D E = Enchanting Table
It keeps the enchanting table's role rather than removing it — the table is still there for cheap early-game rolls if you want it.
What the interface does
Browse everything. Place an item and the list shows exactly what that item can take, with the enchantment's name, a short description and the XP cost. Leave the slot empty and you can browse the full list before committing to anything.
Search. Type to filter by name, description or registry ID.
Favourites. Star the enchantments you reach for most and they stay pinned to the top. Saved to config/betterenchant.json, so they follow you across worlds and servers.
Pick your level. Selected enchantments get discreet - / + controls. Go from I up to whatever that enchantment's maximum is — and no further.
Add and Remove. Two tabs. Remove takes enchantments off an item and refunds the XP you paid.
Live preview. The right-hand column always shows what is about to be applied, what it will cost, and how much XP you actually have.
Presets
26 built-in presets, each a complete themed loadout — Excalibur, Mjölnir, Poseidon's Wrath, Hermes' Sandals and more. Open the Presets menu with an item in the slot and only the ones that fit that item are shown. Apply one and it pre-selects the enchantments and names the item.
Presets are pure data, and there are three ways to add your own:
- Your own: drop a JSON file in
config/betterenchant/presets/. The folder is created for you. - Datapacks and mods:
data/<namespace>/presets/*.json. - Override the built-ins: a preset with the same
idreplaces the official one entirely.
Names and descriptions are full Minecraft text components, so colour, bold and translation keys all work. Presets sync from server to client automatically, including after a /reload.
Works with enchantment mods — automatically
Better Enchant reads the enchantment registry directly. It has no list of known enchantments anywhere in its code, and no per-mod compatibility patches.
That means any mod that registers an enchantment shows up on its own: in the list, in the search, in favourites, in presets, with its translated name, its real maximum level and its real item restrictions. Install a new enchantment mod tomorrow and it just appears. Datapacks that add or change enchantments are respected the same way, because the registry is read from the loaded world rather than at startup.
Everything the enchantment declares is obeyed:
- which items it goes on (
supported_items, including tags from other mods) - its maximum level
- its incompatibilities (
exclusive_set) — conflicting enchantments are shown greyed out with a tooltip explaining why
If you want your own enchantments to carry a description in the interface, add one translation key to your language file — enchantment.<yourmod>.<name>.desc — and Better Enchant will pick it up. No code on either side.
Pairs naturally with Enchantments Plus 2.0, though neither needs the other.
Costs
Applying an enchantment costs 5 XP levels per enchantment level, so Sharpness V costs 25. Removing one refunds the full amount. These are the current values while balance is still being tuned.
Fair play
Every request is validated on the server: that the enchantment exists, that the item supports it, that the level is within range, that nothing conflicts, and that you actually have the XP. The interface is only ever a request — a modified client gets nothing extra.
Requirements
- Minecraft 1.21.1
- Fabric Loader 0.19.3+
- Fabric API
- Java 21
Required on both the client and the server. The mod registers a block and a menu, so a vanilla client cannot join a server running it, and the block does not exist on a server without it. Singleplayer needs nothing special.
Languages
English and European Portuguese. Translations welcome.
