Universal Cutting Recipe
Adds planty of cutting recipes dynamically by universal matching rules.
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
Universal Cutting Recipe
This mod provides universal cutting recipes for all matching items.
This mod is an util separated from another mod named Convenient Storage (Not on Modrinth) by Admsgenter.
FUNCTION
Adds universal cutting recipes for items missing appropriate recipes.
For example, items of wood has no recipes for cutting, we added for them.

Completes direct recipes for items can be crafted through multiple recipes.
For example, Stone can be cut into Cobblestone, Cobblestone can be cut into Cobblestone Stairs, a cutting recipe from Stone to Cobblestone Stairs will be added if absent.

- Note: Cutting Recipe from Stone to Cobblestone is not present in Minecraft 1.20, it is added by this mod.
DATAPACK
The rule for this mod can be modified in datapack or kjs.
Structure
The structure of the datapack should be like: ``` data/<namespace>/ ├ universal_ingredient/ │ └ <ingredient_file_name>.json └ universal_recipe/ └ <recipe_file_name>.json ```
JSON
Universal Ingredient
We add cutting recipes for items by matching their ids.
We use '*' as wildcard for matching.
For example, "minecraft:oak_log", "minecraft:birch_log", ... matches "*_log".
The structure of the json should be like: ``` JSON ├ <ingredient_0>: [<rule_0>, <rule_1>, ...] ├ <ingredient_1>: [<rule_0>, <rule_1>, ...] ... ``` For example, part of data/universal_cutting_recipe/universal_ingredient/default.json: ``` { "boat": ["*_boat"], "bricks": ["*_bricks"], "button": ["*_button"], "door": ["*_door"], "fence": ["*_fence"], "fence_gate": ["*_fence_gate"], "log": ["*_log", "*_stem"], "planks": ["*_planks"], "stripped_log": ["stripped_*log", "stripped*_stem"], "stripped_wood": ["stripped_*wood", "stripped*_hyphae"], "trapdoor": ["*_trapdoor"], "wood": ["*_wood", "*_hyphae"] } ``` - Note: A standalone "*" can't be a rule.
Universal Recipe
The structure of the json should be like: ``` JSON ├ <input_ingredient_0>: { │ <output_ingredient_0>: <count_0>, │ <output_ingredient_1>: <count_1>, │ ... │ } ├ <input_ingredient_1>: { │ ... │ } ... ``` For example, part of data/universal_cutting_recipe/universal_recipe/default.json: ``` { "*": { "bricks": 1, "button": 1, "fence": 1, "fence_gate": 1, "slab": 2, "stairs": 1 }, "log": { "stripped_log": 1 }, "planks": { "button": 1, "door": 1, "fence": 1, "fence_gate": 1, "minecraft:ladder": 2, "minecraft:stick": 3, "sign": 1, "slab": 2, "stairs": 1, "trapdoor": 1 }, "stripped_log": { "boat": 1, "minecraft:barrel": 1, "minecraft:chest": 1, "minecraft:composter": 2, "minecraft:crafting_table": 1, "planks": 4 }, "stripped_wood": { "stripped_log": 1 }, "wood": { "log": 1, "stripped_wood": 1 } } ``` - Note: A standalone "*" can be a input_ingredient.
Then recipes will be added if the * of input and output are same.
MISC
Can I use this mod in modpacks?
Yes.