Spoiler
Source: https://github.com/Skamiz/fast_craft
Depends: nothing
Optional Depends: sfinv, mcl_formspec
License: MIT
Why?
After many years of the default crafting system, I have grown somewhat tired of it and wanted to make my own system for my game. And while I was at it I added support for MTG and Mineclone.
What does it do?
Adds yet another way to craft. This one is loosely inspired by Terraria. Instead of having to arrange items in the crafting grid, you just have to select a recipe from a list and then choose how many times to craft it.
Originally this was meant just as a stand alone crafting system. The ability to craft default recipes is just a bonus.
What does that mean? Fast craft can do a few things extra.
First thing, since it doesn't work with the crafting grid, it isn't limited to nine input items. If you want your tools to each cost 15 ingots, a tool handle, string, and glue, fast craft can do that. Also you recipes aren't constrained by being arranged into patterns, which have to try to look sensible to the player.
And since recipes aren't defined by their patterns there is no issue with recipe collisions. You can have as many recipes as you want for the same set of inputs.
It also supports multiple outputs beside the main one. Useful if you want recipes which take things apart into multiple components.
And lastly, it supports custom crafting conditions. Want a ritual dagger that can only be crafted under the full moon on midnight? Can be done.
Compatibility
By default it tries to import recipes from the default crafting system and if possible simplify them.
Example: '3 full nodes -> 6 slabs' gets converted to '1 full node -> 2 slabs'.
Both can be turned off in the mod configuration.
Adds a 'sfinv' tab if possible making it compatible with MTG and most of it's derivatives.
If Mineclone is detected a button is added to the inventory and a condition is added to all 3*3 recipes to be only craftable when standing within 3 nodes of a workbench.
If neither is the case it just overrides the player inventory formspec.
Caveats
The biggest one is, that when importing recipes, I have to use 'minetest.get_craft_result(recipe)' to find out if there are any replacements. And that function is slow. Barely noticeable on a MTG world with no mods. But on a modded game, with 3250 recipes it adds 40 seconds to the time it takes to start a world. There are alternatives which don't slow world start up, but they aren't necessarily good ones. See this issue: https://github.com/minetest/minetest/issues/4901
Additionally there are a few edge cases with groups and replacements in recipes which could result into the crafting process taking/giving more items then it should.
And by edge cases I mean I only ever saw one recipe that could trigger one of these cases, and that one was implemented myself in code which was never released. So hopefully that shouldn't be a problem.
And lastly, there is no way to detect when the player opens their inventory. So sometimes the formspec is out of date and has to be manually updated by pushing any button.
Similar stuff
Easy crafting table by Quertymine3
Extensible gridless craft system by FaceDeer
Unlockable Crafting by Rubenwardy
Add all recipes to rw's crafting by Texmex
Artisanry by BobbyBonsaimind