Tired of grinding the vanilla enchanting table, building libraries, and hoarding XP just to land the enchantments you actually want? This mod gives you two new workstations that let you rearrange enchantments as freely as you sort your inventory.
Out of the box, this mod is intentionally generous and easy to play with. If you (or a modpack you're building) want something more balanced and challenging, you can flip on a few stricter switches in the config — more on that below.
Grab a release from CurseForge or Modrinth. Found a bug or have an idea? Let us know on GitHub Issues.
There are builds for both the NeoForge and Fabric loaders, covering Minecraft 1.21.1 through 1.21.11, plus 26.1, 26.1.1, and 26.1.2, also legacy 1.20.1.
Tip: when you download, make sure two things line up — your loader (NeoForge or Fabric) and your Minecraft version. Both have to match the jar, or the game won't load it.

Drop a tool or an enchanted book into the top-left slot, and the table lays out every enchantment on it as a separate enchanted book on the right. From there you can:
By default, two of the same enchantment add their levels together when merged. So Sharpness IV + Sharpness IV becomes Sharpness VIII. (If that feels too strong, the stricter config options below can rein it in.)

Normal trade mode is straightforward: add some plain books, then add enough emeralds or emerald blocks as the "fee." Once you've got enough, the right side lists the enchanted books you can get. Every book you take costs one plain book plus the emerald payment.
Too many books to scroll through? Use the search box at the top to filter by enchantment name.
What level you get is controlled by the convertOnlyLevelOneBook option: by default you get the highest available level; flip it on and you only get level-one books.
Put an enchanted book into the template slot and the table switches to copy mode. The right-side trade list turns off, and instead: as long as the table holds one plain book plus enough emeralds, the output slot produces an exact copy of your template.
A book can only be used as a template if it meets these rules:

Whatever you put in either table is really stored there — it stays put, and drops back out if the block is broken. Nothing disappears.
To keep hoppers and logistics mods from sneaking around the rules you'd follow by hand, automation is deliberately limited:
The one rule worth memorizing: a template book must hold a single enchantment whose level doesn't go above that enchantment's normal maximum.
config folder, named enchantment_custom_table.json.| Option | Default | What it does |
|---|---|---|
minimumEmeraldCost |
36 |
How many emeralds the conversion table charges. Set it to 0 to drop the emerald cost entirely. |
minimumEmeraldBlockCost |
4 |
How many emerald blocks it charges. Set it to 0 to drop the emerald-block cost. |
enforceEnchantmentLevelLimit |
false |
When on, merging duplicate enchantments can't go above that enchantment's normal max level. Note: adding a brand-new enchantment isn't limited by this, so over-level books made by other mods still work. |
incrementalSameLevelMerge |
false |
A more balanced merge rule. When on, two same-name books only merge if their levels match exactly, and a merge bumps the level by just +1. So Sharpness V + Sharpness V becomes Sharpness VI instead of Sharpness X. |
convertOnlyLevelOneBook |
false |
When on, the conversion table only produces level-one books instead of max-level ones. |
A couple of things to know:
enforceEnchantmentLevelLimit and incrementalSameLevelMerge are independent — turn on either or both. With both on, same-level merges still won't exceed the normal max.incrementalSameLevelMerge also changes how books split: a Sharpness V book splits into two Sharpness IV books, instead of the default "split in half" options.These are old option names that no longer do anything. If your old config file still has them, regenerate the file or rename them by hand:
ignoreEnchantmentLevelLimit → now enforceEnchantmentLevelLimit (the meaning is reversed).convert_max_level_book → now convertOnlyLevelOneBook (the meaning is reversed).enableXpRequirement → removed, with no replacement.In both recipes, the starred (*) slots accept any kind of quartz block — specifically these (the enchantment_custom_table:quartz_blocks item tag):

Lay it out on the 3×3 crafting grid like this:
| Left | Middle | Right |
|---|---|---|
| Lapis Block | Book | Lapis Block |
| Diamond Block | Quartz Block* | Diamond Block |
| Quartz Block* | Quartz Block* | Quartz Block* |
* Starred slots take any of the quartz blocks listed above.

Lay it out on the 3×3 crafting grid like this:
| Left | Middle | Right |
|---|---|---|
| Lapis Block | Book | Lapis Block |
| Emerald Block | Quartz Block* | Emerald Block |
| Quartz Block* | Quartz Block* | Quartz Block* |
* Starred slots take any of the quartz blocks listed above.