premium banner
Adds planty of cutting recipes dynamically by universal matching rules.

Description

This mod provides universal cutting recipes for all matching items.

This mod is an util separated from another mod named Convenient Storage 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. 

Wood Cutting Recipes

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. 

Direct Cutting

  • 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.