Host your Minecraft server on BisectHosting - get 25% off your first month with code MODRINTH.

Polymorph is a mod that solves recipe conflicts by letting players choose between all potential outputs shared by the same ingredients.

With a sufficiently large amount of mods, recipe conflicts are a common occurrence and the responsibility for resolving these usually falls on the user or modpack developer, using datapacks or other tools to ensure that each recipe is unique.

Polymorph offers an alternative solution, allowing all possible crafting and smelting recipes to co-exist regardless of conflicts.

Features

Crafting

When a group of ingredients matches more than one recipe, a button will appear above the output slot. Pushing this button will show a list of all possible results and selecting one will change the crafting output to match. Polymorph will also remember the last selection as long as the ingredients don't change, so repeated crafting actions are possible on the same selection.

Smelting

When a valid input matches more than one output, a button will appear above the output slot. Pushing this button will show a list of all possible results with the currently selected result highlighted in green. Selecting one of the listed results will change the smelting output to match. This selection will be saved to the block itself and persist across world loading and unloading.

Smithing

Exactly like the crafting screen, a button will appear above the output slot when a valid input matches more than one output. Upon selection, the output will change to match.

Commands

To assist identifying potential conflicts, there's a command /polymorph conflicts that will try to identify recipes that conflict with each other and outputs a list of them to your logs folder. Currently, the command will scan crafting, smelting, blasting, smoking, and smithing recipes.

Affiliates

BisectHosting

External resources



Project members

TheIllusiveC4

Owner


Technical information

License
LGPL-3.0-or-later
Client side
required
Server side
required
Project ID