Catalyst makes enchanting less random by introducing a concept of reagents. Enchanting works the same to start off with – you place an item on the enchanting grid and click a button. With Catalyst, however, this is only the start of the process. After you click a button to initiate enchanting, you will be presented with a 3x3 grid where you can pack in reagents to select the enchantments on the item.
The rule is that for higher level enchantments, you need more of the reagent; for example, if you want a sword with Sharpness 5, and the reagent for Sharpness happens to be diamonds, you'll need to add 5 diamonds to the grid.
The item in the centre of the grid will dynamically update to reflect the current enchantments, as well as warning you if the cost of your chosen enchantments exceed the experience points allotted to you. Provided this is not the case, you can complete the enchanting process by simply clicking the central item being enchanted, which will return you to the standard enchanting view with the item in place.
Catalyst is highly configurable, allowing you to control the XP cost, maximum level, required reagent, and possible targets of all built-in enchantments. It comes with a default configuration which can be used out of the box, which most closely mirrors vanilla enchanting, but you can edit it however you want.
Each enchantment has four possible fields; the default config omits the optional ones:
catalyst:: This specifies the item that is used as a catalyst to produce this enchantment. See the Material enum documentation for valid values. Currently, data values aren't supported (so, you could specify "any dye" with
INK_SACK, but there's no way of specifying "red dye"). This key is required.
max-level:: The maximum level to which this enchantment can be added on an item. Defaults to the vanilla max level, which is from 1 to 5 depending on the enchantment.
cost:: The cost in experience levels to add this enchantment to an item. Defaults to the minimum unmodified cost from the vanilla enchantment tables.
applies-to:: A list of targets to which this enchantment can be applied. Note that not all the accepted values are fully supported. This key is required.
Possible values in the
HELMET:: any helmet
CHESTPLATE:: any chestplate
PANTS:: any leg armour
BOOTS:: any boots
ARMOUR:: any armour (combination of the above four)
PICKAXE:: any pickaxe
SHOVEL:: any shovel
AXE:: any axe
HOE:: any hoe; not currently supported
SWORD:: any sword
SHEARS:: shears; not currently supported
LIGHTER:: flint and steel; not currently supported
FISHING_ROD:: fishing rod
LURE_ROD:: carrot on a stick; not currently supported
BASIC_TOOLS:: any of the three basic enchantable tools (combination of PICKAXE, SHOVEL, AXE)
ALL_TOOLS:: any tool (combination of BASIC_TOOLS, HOE, SHEARS, LIGHTER, FISHING_ROD, and LURE_ROD); note that some of these don't work
ALL_WEAPONS:: any weapon (combination of BOW and SWORD)
ALL:: any enchantable item (combination of ALL_TOOLS, ALL_WEAPONS, ARMOUR, and BOOK)
Possible future features:
- Support for the items in the above list labelled as unsupported
- Support for enchanting additional items, such as sticks or blaze rods; possibly arbitrary items