Skip to content

Enchanter

Developer edited this page Jun 11, 2026 · 2 revisions

Enchanter — anvil auto-enchanting

Auto-builds fully-enchanted "max template" gear in a dedicated anvil station. Stock chests with un-enchanted gear and pre-made enchanted books, and the bot turns them into god gear one piece at a time — in the cheapest possible anvil order, funding the XP cost itself from a chest of bottles.

Command: .enchanter (alias .enc).

What it does

  • Pull → enchant → deposit: pulls a base item from the input chest, applies the built-in max template for its type, deposits the finished piece into the output chest, and loops until the input runs out.
  • Cheapest anvil order: Minecraft's anvil cost is order-dependent — every item carries a "prior work penalty" that doubles each use, and any single combine costing 40+ levels is blocked ("Too Expensive!"). The Enchanter runs an exact search over all binary combine-trees to find the minimum-XP order that keeps every step under the cap, merging books into intermediates first so the gear's penalty stays low. (A god sword is ~72 levels done optimally vs ~171 naively — which would hit "Too Expensive!".)
  • XP-bottle charging: the anvil charges levels, and high levels cost disproportionately more XP, so the bot tops up a small buffer right before each step instead of banking the whole run up front — using ~2–7× fewer bottles. It throws bottles from a chest at its own feet and collects the orbs, reading its live XP level to know when it has enough.
  • Gravity-fed anvil pillar: anvils shatter with use. Stack a pillar of anvils over the work spot; when the bottom one breaks the next falls into place — the bot detects the gap, waits for the replacement to settle, and continues.
  • Auto-discovered layout: finds the anvil + all chests within 32 blocks and classifies them by content — no coordinates to type.

Built-in templates

One max loadout per gear family, with mutually-exclusive variant picks you choose (.enc variant <group> <choice>):

Family Always applied Variant groups (default first)
sword unbreaking 3, mending, looting 3, fire_aspect 2, knockback 2, sweeping_edge 3 sword_damage: sharpness | smite | bane_of_arthropods
pickaxe / shovel / hoe efficiency 5, unbreaking 3, mending tool_yield: fortune | silk_touch
axe efficiency 5, unbreaking 3, mending axe_yield: fortune | silk_touch · axe_damage: sharpness | smite | bane_of_arthropods
helmet unbreaking 3, mending, respiration 3, aqua_affinity, thorns 3 armor_protection: protection | blast | fire | projectile
chestplate unbreaking 3, mending, thorns 3 armor_protection
leggings unbreaking 3, mending, thorns 3, swift_sneak 3 armor_protection
boots unbreaking 3, mending, thorns 3, feather_falling 4, soul_speed 3 armor_protection · boots_walk: depth_strider | frost_walker
bow power 5, unbreaking 3, flame, punch 2 bow_special: infinity | mending
crossbow quick_charge 3, unbreaking 3, mending crossbow_special: multishot | piercing
trident unbreaking 3, mending, impaling 5 trident_style: throw (loyalty 3 + channeling) | riptide 3
mace unbreaking 3, mending, wind_burst 3 mace_impact: density | breach
fishing_rod unbreaking 3, mending, lure 3, luck_of_the_sea 3
elytra / shield unbreaking 3, mending
shears efficiency 5, unbreaking 3, mending
flint & steel / carrot-on-a-stick / warped-fungus-on-a-stick / brush unbreaking 3, mending

Every vanilla item that can hold an enchantment has a template — anything else placed in the input chest is left alone.

Run .enc templates to print the resolved sets under your current variant picks (curses included), plus the estimated levels and bottles each one costs.

Curses (opt-in, off by default)

The two curses are independent per-family toggles — they're never part of a max template and are never on by default. Enable one for a family with .enc curse <family> <vanishing|binding> on:

Curse Applies to Notes
Curse of Vanishing (vanishing) every family item is destroyed on death instead of dropping
Curse of Binding (binding) worn gear only — helmet, chestplate, leggings, boots, elytra can't be removed from an armor slot once equipped

Toggles are per family, so e.g. .enc curse sword vanishing on curses only swords; armor and tools are untouched. When a curse is on, the bot needs a matching curse book stocked in the book source (one vanishing_curse / binding_curse book), same as any other enchant. Turn one off again with .enc curse <family> <curse> off. Active curses show up in .enc templates and .enc status.

Setup guide

  1. Build a station within a 32-block radius of where the bot stands:
    • a pillar of anvils over the work spot (so a fresh anvil drops when one shatters);
    • a chest of un-enchanted gear (the input);
    • one or more chests / barrels of pre-made single-enchant books (the book source — double chests are fine);
    • a chest of XP bottles (a near-unlimited / hopper-fed supply is ideal);
    • an empty chest for the finished gear (the output).
  2. (Optional) choose variants: .enc variant sword_damage smite, .enc variant tool_yield silk_touch, … (.enc templates lists every group + option).
  3. Stand the bot in the station and .enc scan — it reports which roles it found (anvil / input / books / xp-chest / output). Fix anything that reads false.
  4. .enc on. Stop with .enc off; watch progress with .enc status.

Notes & limits

  • Books must be single-enchant books (one enchantment each — the usual villager / loot book). Pair it with VillagerTrader to mass-produce them.
  • The input gear must be a known type from the table above; anything else is left in the input chest.
  • If XP charging is off (.enc xp off), keep the bot's level topped up another way — it pauses if a combine costs more levels than it has.

Commands

.enchanter on/off
.enc scan                         # auto-discover the station (anvil + chests) within range
.enc radius <n>                   # discovery radius in blocks (max 32)
.enc band <down> <up>             # Y range to scan, relative to the bot's feet (default 3/3)
.enc variant <group> <choice>     # pick a template variant, e.g. sword_damage smite
.enc curse <family> <vanishing|binding> on/off   # per-family curse opt-in (never on by default)
.enc templates                    # print resolved templates + estimated levels/bottles
.enc max <n>                      # stop after n items (0 = until the input chest is empty)
.enc xp on/off                    # throw XP bottles from the bottle chest to fund the anvil
.enc xpbuffer <levels>            # top up to (step cost + this) before each step
.enc xpreserve <n>                # bottles to keep carried
.enc pace <action> <settle> <fill> <anvil>   # tick delays (raise on a laggy server)
.enc pauseplayer on/off           # pause when a player is near
.enc autodc on/off                # auto-disconnect when the input is empty
.enc status                       # print the discovered layout + progress

Variant groups: sword_damage (sharpness/smite/bane_of_arthropods), tool_yield & axe_yield (fortune/silk_touch), axe_damage (sharpness/smite/bane_of_arthropods), armor_protection (protection/blast_protection/fire_protection/projectile_protection), boots_walk (depth_strider/frost_walker), bow_special (infinity/mending), crossbow_special (multishot/piercing), trident_style (throw/riptide), mace_impact (density/breach).

Clone this wiki locally