Rules first. Luck second.

This calculator uses vanilla Minecraft Java Edition 26.3 data: 84 supported items, 43 enchantments and 36 enchanting-table candidates. It is an independent tool, and it does not read your world or know your player’s current XP seed.

Where the rules come from

Enchantment weights, level cost ranges, item enchantability, table availability and exclusions come from generated vanilla 26.3 data, pinned to tree 538b2b167248c648b2198f2c0d56eced10dfc0cf. The enchanting-table candidate order follows the original in_enchanting_table tag expansion. Data was checked on 2026-11-02.

How table probabilities are estimated

For each setup, the engine samples 60,000 distinct nonzero 32-bit player XP seeds from a deterministic sequence. It reproduces the 48-bit Java random generator and float32 arithmetic used by the reference enchanting algorithm. Each seed generates the three displayed level requirements. The engine then reseeds for each slot, modifies the enchanting level, selects eligible weighted candidates, applies continuation and conflict rules, and handles the special removal rule for books.

The same setup gives the same sample, so results remain stable when you share a link or reload. These are Monte Carlo estimates, not exact enumeration of all 2³² XP seeds. A possible rare outcome may not appear in the sample.

“Single enchants” means the chance of obtaining a specific enchantment at a specific level as part of the final item. Several can occur together, so those percentages do not need to sum to 100%. “Observed combinations” means mutually exclusive complete outcomes that actually appeared in the sample. The unfiltered combination probabilities include all sampled outcomes and sum to 100%, including an unavailable offer if applicable.

Uncertainty and in-game clues

Row tooltips show 95% Wilson sampling intervals. The target summary also shows the interval directly. At 60,000 samples, the largest approximate 95% sampling margin is about ±0.4 percentage points. This interval measures random sampling uncertainty; it does not measure whether the implementation matches every detail of the game.

If you enter an in-game level requirement, only XP seeds matching that clue are retained, and all three slots are calculated over that same filtered set. The effective sample size can be much smaller. No matching sample does not prove that a setup is impossible. Clear the clue or verify its slot and bookshelf count.

What the anvil planner guarantees

The supported problem is one fresh, unenchanted item and up to 9 fresh books, each containing a different single enchantment at the selected level. Prior work penalties begin at 0. Invalid item/enchantment combinations and mutually incompatible enchantments are rejected.

The optimizer enumerates subset partitions and keeps the cheapest plan for each subset at every prior-work depth. It evaluates left/right orientation, book transfer costs and both prior work penalties. Any step costing 40 or more levels is excluded. The resulting plan minimizes the sum of levels spent for this supported setup, with lower final work depth preferred when totals tie.

Raw XP points depend on your player level before each operation and are not the optimized quantity. Repairing, renaming, used gear, multi-enchantment input books, duplicate enchantment upgrades, Creative mode and custom datapacks are outside this planner’s scope.

What has been verified

The test suite checks Java random generation against an independent BigInt implementation, negative seeds and rejection sampling, fixed-seed enchanting fixtures generated by an independent Python implementation, table eligibility, conflicts, book removal, conditional seed filtering and probability totals. Anvil totals are checked against an independent exhaustive pairwise merge search for small problems.

These checks do not constitute an in-game test. The development environment did not have a working JVM, so the fixed-seed fixtures were not executed by Java. Bedrock, mods and server-specific changes have not been validated.

Checking a result yourself

Record the exact Java version, item, material, effective bookshelf count, slot and displayed level requirement. Use “Share setup” to preserve the calculator inputs. One different game result does not contradict a probability estimate; a forbidden enchantment, invalid cost or incompatible combination is a rule issue worth investigating.

Credits

Minecraft item textures and game data belong to Mojang and Microsoft. They identify the game items in this unofficial tool. The implementation was informed by Earthcomputer’s EnchantmentCracker and Cal Henderson’s enchant-order, both published under MIT licenses. Our optimizer and interface are independently implemented.

← Back to the calculators