Skip to content

Recipes and Data (v2)

JDDev0 edited this page Oct 10, 2024 · 1 revision

Due to the changes in Vanilla, recipe and other datapack files have a different set of fields in different MC versions: This is the page version for MC 1.20.5 to MC 1.21.1.

Data Component Types

Energized Power adds a few custom data component types.

energizedpower:energy

  • Description: A non negative integer (On Forge/NeoForge) or a non negative long (On Fabric) which stores how much energy is stored in an item.
  • Usage: Batteries, Inventory Generators, Tools

energizedpower:active

  • Description: A bool which stores if an item is currently activated.
  • Usage: Inventory Generators, Tools

energizedpower:working

  • Description: A bool which stores if an item is currently working.
  • Usage: Inventory Generators, Tools

energizedpower:progress

  • Description: A non negative integer which stores the current progress of an operation.
  • Usage: Inventory Generators, Tools

energizedpower:max_progress

  • Description: A non negative integer which stores the maximal progress of an operation (If progress reaches max_progress the operation is finished).
  • Usage: Inventory Generators, Tools

energizedpower:energy_production_left

  • Description: A non negative integer (On Forge/NeoForge) or a non negative long (On Fabric) which stores how much energy is still being produced.
  • Usage: Inventory Generators

energizedpower:current_item

  • Description: An item stack which is currently being processed, used, or selected.
  • JSON representation:
{
  "currentItem": {
    "id": "minecraft:coal",
    "count": 1,
    "components": {
      "minecraft:custom_name": "\"Super Coal\""
    }
  }
}
  • Usage: Inventory Generators, Tools

energizedpower:inventory

  • Description: A list of 0 or more item stacks which are currently stored in an item.
  • JSON representation:
    • The size of the inventory is the length of the JSON list. Items are stored in order. An empty JSON object is used to represent empty slots`
[
  {
    "id": "energizedpower:battery_6",
    "count": 1
  },
  {
  },
  {
    "id": "energizedpower:battery_7",
    "count": 1,
    "components": {
      "energizedpower:energy": 262144
    }
  }
]
  • Usage: Items with inventories (Like the Inventory Charger)

energizedpower:current_face

  • Description: The current face (Direction) of a block which is selected.
  • Usage: Tools (Like the Wrench)

energizedpower:action_cooldown

  • Description: A non-negative integer which blocks an action until the data component is no longer present or reaches 0.
  • Usage: Tools (Like the Wrench)

energizedpower:dimensional_position

  • Description: An block position (Integers x, y, and z) in a dimension (Identifier (Format: namespace:id) dimensionId).
  • JSON representation:
{
  "x": 10,
  "y": 90,
  "z": -42,
  "dimensionId": "minecraft:the_nether"
}
  • Usage: Teleporter Matrix

Recipes

Recipes can be added via configuration files like any other recipe.
Folder (MC 1.20.6 and older): data/<name>/recipes/<folder_1>/<folder_2>/.../<recipe_id>.json
Folder (MC 1.21 and newer): data/<name>/recipe/<folder_1>/<folder_2>/.../<recipe_id>.json

General

Percentages value

percentages is an array of double element which determines the output amount odds of an accompanying output item stack element. Every element is independent from other elements and represents the chance to add 1 to the final output count.

Examples:

  • The item count for the array [0.75, 0.25] would be at least 0 and at most 2. There is a 75% chance the first element would add 1 to the final output count and there is a 25% chance the second element would add 1 to the final output count. The general odds would be the following (count is 0: 18.75%, count is 1: 62.5%, count is 2: 18.75%)
  • [1, 0.33, 0.33] -> (count is 0: 0%, count is 1: 44.89%, count is 2: 44.22%, count is 3: 10.89%)

Item Stack format

Example for an item with custom data components:

{
  "item": "energizedpower:battery_1",
  "count": 1,
  "components": {
    "item_name": "{\"text\": \"Test Battery\"}",
    "energizedpower:energy": 32
  }
}

Explanation:

  • item: The item id (May not be air)
  • count: The count of the item (Default: 1) [OPTIONAL]
  • components: The data components of the item [OPTIONAL]

Fluid Stack format

Example for 1 Bucket of Water:

{
  "id": "minecraft:water",
  "amount": 1000
}

Explanation:

  • id: The fluid id (May not be empty)
  • amount: The amount of the fluid in milli Buckets (Value must be > 0)
  • leftoverDropletsAmount: The amount of droplets (81 droplet = 1 mB (milli Buckets)) which would be the fractional part of the milli Buckets conversion (Value must be > 0 and < 81) [Fabric only] [OPTIONAL]
  • components: The data components of the fluid [OPTIONAL]

Charger

Example for charging Copper Ingots to get Energized Copper Ingots:

{
  "type": "energizedpower:charger",
  "ingredient": {
    "item": "minecraft:copper_ingot"
  },
  "energy": 524288,
  "output": {
    "item": "energizedpower:energized_copper_ingot"
  }
}

Explanation:

  • type: Must be set to energizedpower:charger
  • ingredient: Must contain a single ingredient object (a single item/tag or a list of items/tags)
  • energy: The amount of energy in FE which is required to charge the ingredient
  • output: The output item stack (Count must be 1)

Energizer

Example for energizing Copper Ingots to get Energized Copper Ingots:

{
  "type": "energizedpower:energizer",
  "ingredient": {
    "item": "minecraft:copper_ingot"
  },
  "energy": 8192,
  "output": {
    "item": "energizedpower:energized_copper_ingot"
  }
}

Explanation:

  • type: Must be set to energizedpower:energizer
  • ingredient: Must contain a single ingredient object (a single item/tag or a list of items/tags)
  • energy: The amount of energy in FE which is required to charge the ingredient
  • output: The output item stack (Min count: 1, max count: 64)

Crusher

Example for crushing Cobbelstone blocks to get Gravel:

{
  "type": "energizedpower:crusher",
  "ingredient": {
    "tag": "forge:cobblestone/normal"
  },
  "output": {
    "item": "minecraft:gravel"
  }
}

Explanation:

  • type: Must be set to energizedpower:crusher
  • ingredient: Must contain a single ingredient object (a single item/tag or a list of items/tags)
  • output: The output item stack (Min count: 1, max count: 64)

Sawmill

Example for sawing Oak Logs to get Oak Planks:

{
  "type": "energizedpower:sawmill",
  "ingredient": {
    "tag": "minecraft:oak_logs"
  },
  "output": {
    "item": "minecraft:oak_planks",
    "count": 4
  },
  "sawdustAmount": 2
}
  • type: Must be set to energizedpower:sawmill
  • ingredient: Must contain a single ingredient object (a single item/tag or a list of items/tags)
  • output: The output item stack (Min count: 1, max count: 64)
  • sawdustAmount: The amount of sawdust produced by the recipe (Will be put in the sawdust output slot) (Min count: 0, max count: 64) (If the count is set to 0, the sawdust output slot won't be used by the recipe)

Sawmill with other secondary output item

Example for sawing Jukebox to get Oak Planks:

{
  "type": "energizedpower:sawmill",
  "ingredient": {
    "item": "minecraft:jukebox"
  },
  "output": {
    "item": "minecraft:oak_planks",
    "count": 8
  },
  "secondaryOutput": {
    "item": "minecraft:diamond",
    "count": 1
  }
}
  • type: Must be set to energizedpower:sawmill
  • ingredient: Must contain a single ingredient object (a single item/tag or a list of items/tags)
  • output: The output item stack (Min count: 1, max count: 64)
  • secondaryOutput: The secondary output item stack (Min count: 0, max count: 64), If the count is set to 0, no secondary output will be produced.

Compressor

Example for compressing Copper Ingots to get Copper Plates:

{
  "type": "energizedpower:compressor",
  "ingredient": {
    "tag": "forge:ingots/copper"
  },
  "output": {
    "item": "energizedpower:copper_plate"
  }
}

Explanation:

  • type: Must be set to energizedpower:compressor
  • ingredient: Must contain a single ingredient object (a single item/tag or a list of items/tags)
  • output: The output item stack (Min count: 1, max count: 64)

Compressor with more than one count of the ingredient [v2.12.0 and newer]

Example for compressing Stone Pebbles to get Cobblestone:

{
  "type": "energizedpower:compressor",
  "ingredient": {
    "item": "energizedpower:stone_pebble"
  },
  "inputCount": 16,
  "output": {
    "item": "minecraft:cobblestone"
  }
}

Explanation:

  • type: Must be set to energizedpower:compressor
  • ingredient: Must contain a single ingredient object (a single item/tag or a list of items/tags)
  • inputCount: The count of the ingredient (Min count: 1, max count: 64) [OPTIONAL]
  • output: The output item stack (Min count: 1, max count: 64)

Plant Growth Chamber

Example 1 for growing Beetroot Seeds to get Beetroots:

{
  "type": "energizedpower:plant_growth_chamber",
  "ingredient": {
    "item": "minecraft:beetroot_seeds"
  },
  "ticks": 16000,
  "outputs": [
    {
      "output": {
        "item": "minecraft:beetroot_seeds"
      },
      "percentages": [1.0, 0.33, 0.33]
    },
    {
      "output": {
        "item": "minecraft:beetroot"
      },
      "percentages": [1.0, 0.75, 0.25, 0.25]
    }
  ]
}

Example 2 for growing Potato to get Potatoes:

{
  "type": "energizedpower:plant_growth_chamber",
  "ingredient": {
    "item": "minecraft:potato"
  },
  "ticks": 16000,
  "outputs": [
    {
      "output": {
        "item": "minecraft:potato"
      },
      "percentages": [1.0, 0.75, 0.25, 0.25]
    },
    {
      "output": {
        "item": "minecraft:poisonous_potato"
      },
      "percentages": [0.125]
    }
  ]
}

Explanation:

  • type: Must be set to energizedpower:plant_growth_chamber
  • ingredient: Must contain a single ingredient object (a single item/tag or a list of items/tags)
  • ticks: The amount of ticks the recipe takes without using fertilizers
  • outputs: A list of outputs [Each contains an output and a percentages element]. More than 4 values can be used but excess items will vanish.
    • output: The output item stack (Count must be 1, because the count is determined by the percentages element)
    • percentages: An array of double values. If a percentage of 100% is used, it must be within the first 4 outputs elements to guarantee that it won't vanish. For details see: percentages-value.

Plant Growth Chamber - Fertilizer

Example Bone Meal fertilizer:

{
  "type": "energizedpower:plant_growth_chamber_fertilizer",
  "ingredient": {
    "item": "minecraft:bone_meal"
  },
  "speedMultiplier": 1.5,
  "energyConsumptionMultiplier": 3.0
}

Explanation:

  • type: Must be set to energizedpower:plant_growth_chamber_fertilizer
  • ingredient: Must contain a single ingredient object (a single item/tag or a list of items/tags)
  • speedMultiplier: A double value by which the ticks value from Plant Growth Chamber recipes is divided.
  • energyConsumptionMultiplier: A double value by which the energy consumption per tick value of the Plant Growth Chamber is multiplied.

Heat Generator

Example for generating energy from flowing lava:

{
  "type": "energizedpower:heat_generator",
  "input": "minecraft:flowing_lava",
  "energy": 15
}

Explanation:

  • type: Must be set to energizedpower:heat_generator
  • input: Must be a single fluid id or a list of fluid ids (Flowing fluids are allowed too)
  • energy: The amount of energy produced per block face per tick

Thermal Generator

Example for generating energy from lava:

{
  "type": "energizedpower:thermal_generator",
  "input": "minecraft:lava",
  "energy": 20000
}

Explanation:

  • type: Must be set to energizedpower:thermal_generator
  • input: Must be a single fluid id or a list of fluid ids (Flowing fluids are allowed too)
  • energy: The amount of energy generated from 1000 mB (milli Buckets) of the input fluid(s)

Pulverizer

Example 1 for pulverizing Gold ores to get Gold Dust:

{
  "type": "energizedpower:pulverizer",
  "ingredient": {
    "tag": "minecraft:gold_ores"
  },
  "output": {
    "output": {
      "item": "energizedpower:gold_dust"
    },
    "percentages": [ 1.0, 1.0, 0.25 ]
  }
}

Example 2 for pulverizing Copper ores to get Copper Dust and Gold Dust:

{
  "type": "energizedpower:pulverizer",
  "ingredient": {
    "tag": "minecraft:copper_ores"
  },
  "output": {
    "output": {
      "item": "energizedpower:copper_dust"
    },
    "percentages": [ 1.0, 1.0, 1.0, 1.0, 0.5, 0.5 ]
  },
  "secondaryOutput": {
    "output": {
      "item": "energizedpower:gold_dust"
    },
    "percentages": [ 0.1 ],
    "percentagesAdvanced": [ 0.2 ]
  }
}

Explanation:

  • type: Must be set to energizedpower:pulverizer
  • ingredient: Must contain a single ingredient object (a single item/tag or a list of items/tags)
  • output: Must contain an item and a list of percentages
    • output: The output item stack (Count must be 1, because the count is determined by the percentages element)
    • percentages: An array of double values. At least one percentage must be 100%. For details see: percentages-value.
    • percentagesAdvanced: An array of double values which may or may not have the same count of elements as percentages. percentagesAdvanced will override percentages for the advanced version of the Pulverizer if percentagesAdvanced is present. At least one percentage must be 100%. For details see: percentages-value. [OPTIONAL]
  • secondaryOutput: Must contain an item and a list of percentages [OPTIONAL]
    • output: The output item stack (Count must be 1, because the count is determined by the percentages element)
    • percentages: An array of double values. May or may not contain a percentage of 100%. For details see: percentages-value.
    • percentagesAdvanced: An array of double values which may or may not have the same count of elements as percentages. percentagesAdvanced will override percentages for the advanced version of the Pulverizer if percentagesAdvanced is present. May or may not contain a percentage of 100%. For details see: percentages-value. [OPTIONAL]

Press Mold Maker

Example for creating a Raw Gear Press Mold:

{
  "type": "energizedpower:press_mold_maker",
  "clayCount": 4,
  "output": {
    "item": "energizedpower:raw_gear_press_mold"
  }
}

Explanation:

  • type: Must be set to energizedpower:press_mold_maker
  • clayCount: The amount of Clay Balls required to craft the Raw Press Mold (Min count: 1, max count: 64)
  • output: The output item stack (Should be in the energizedpower:metal_press/raw_press_molds tag and should have a smelting recipe for the non-raw version of the Press Mold (This should be in the energizedpower:metal_press/press_molds tag) which can be used in the Metal Press) (Min count: 1, max count: 64)

Metal Press

Example for pressing Copper Plates into Copper Wires:

{
  "type": "energizedpower:metal_press",
  "ingredient": [
    {
      "tag": "forge:plates/copper"
    }
  ],
  "pressMold": {
    "item": "energizedpower:wire_press_mold"
  },
  "output": {
    "item": "energizedpower:copper_wire",
    "count": 3
  }
}

Explanation:

  • type: Must be set to energizedpower:metal_press
  • ingredient: Must contain a single ingredient object (a single item/tag or a list of items/tags)
  • pressMold: The Press Mold item stack (Must be in the energizedpower:metal_press/press_molds tag) (Will not be consumed by the recipe; Count must always be 1)
  • output: The output item stack (Min count: 1, max count: 64)

Metal Press with more than one count of the ingredient

Example for pressing Iron Plates into Iron Gear:

{
  "type": "energizedpower:metal_press",
  "ingredient": [
    {
      "tag": "forge:plates/iron"
    }
  ],
  "inputCount": 2,
  "pressMold": {
    "item": "energizedpower:gear_press_mold"
  },
  "output": {
    "item": "energizedpower:iron_gear"
  }
}

Explanation:

  • type: Must be set to energizedpower:metal_press
  • ingredient: Must contain a single ingredient object (a single item/tag or a list of items/tags)
  • inputCount: The count of the ingredient (Min count: 1, max count: 64)
  • pressMold: The Press Mold item stack (Must be in the energizedpower:metal_press/press_molds tag) (Will not be consumed by the recipe; Count must always be 1)
  • output: The output item stack (Min count: 1, max count: 64)

Stone Solidifier

Example for creating Cobblestones:

{
  "type": "energizedpower:stone_solidifier",
  "waterAmount": 50,
  "lavaAmount": 50,
  "output": {
    "item": "minecraft:cobblestone"
  }
}

Explanation:

  • type: Must be set to energizedpower:stone_solidifier
  • waterAmount: The amount in mB (milli Buckets) of Water consumed by the recipe (Min amount: 1 mB)
  • lavaAmount: The amount in mB (milli Buckets) of Lava consumed by the recipe (Min amount: 1 mB)
  • output: The output item stack (Min count: 1, max count: 64)

Assembling Machine

Example 1 for assembling Processing Units:

{
  "type": "energizedpower:assembling_machine",
  "inputs": [
    {
      "input": {
        "item": "energizedpower:advanced_circuit"
      },
      "count": 4
    },
    {
      "input": {
        "tag": "forge:wires/energized_gold"
      },
      "count": 6
    },
    {
      "input": {
        "tag": "forge:silicon"
      },
      "count": 6
    }
  ],
  "output": {
    "item": "energizedpower:processing_unit"
  }
}

Example 2 for assembling Crystal Matrices:

{
  "type": "energizedpower:assembling_machine",
  "inputs": [
    {
      "input": {
        "tag": "forge:gems/amethyst"
      },
      "count": 6
    },
    {
      "input": {
        "tag": "forge:gems/diamond"
      },
      "count": 2
    },
    {
      "input": {
        "tag": "forge:gems/emerald"
      },
      "count": 2
    },
    {
      "input": {
        "tag": "forge:dusts/redstone"
      }
    }
  ],
  "output": {
    "item": "energizedpower:crystal_matrix"
  }
}

Explanation:

  • type: Must be set to energizedpower:assembling_machine
  • inputs: A list of inputs [Each contains an input element and an optional count element] (There can be multiple entries with the same or overlapping ingredients) (There must be at least one and at most four inputs)
    • input: Must contain a single ingredient object (a single item/tag or a list of items/tags)
    • count: The count of the ingredient (Min count: 1, max count: 64) [OPTIONAL]
  • output: The output item stack (Min count: 1, max count: 64)

Crystal Growth Chamber

Example 1 for growing Amethyst Shards:

{
  "type": "energizedpower:crystal_growth_chamber",
  "ingredient": {
    "tag": "forge:gems/amethyst"
  },
  "ticks": 16000,
  "output": {
    "output": {
      "item": "minecraft:amethyst_shard"
    },
    "percentages": [1.0, 1.0, 0.67, 0.5, 0.25, 0.125]
  }
}

Example 2 for growing Budding Amethysts:

{
  "type": "energizedpower:crystal_growth_chamber",
  "ingredient": {
    "tag": "forge:storage_blocks/amethyst"
  },
  "inputCount": 4,
  "ticks": 32000,
  "output": {
    "output": {
      "item": "minecraft:budding_amethyst"
    },
    "percentages": [0.25]
  }
}

Explanation:

  • type: Must be set to energizedpower:crystal_growth_chamber
  • ingredient: Must contain a single ingredient object (a single item/tag or a list of items/tags)
  • inputCount: The count of the ingredient (Min count: 1, max count: 64) [OPTIONAL]
  • ticks: The amount of ticks the recipe takes
  • output: A single object with output and percentages elements
    • output: The output item stack (Count must be 1, because the count is determined by the percentages element)
    • percentages: An array of double values. May or may not contain a percentage of 100%. For details see: percentages-value.

Filtration Plant

Example for filtering Raw Copper from Dirty Water:

{
  "type": "energizedpower:filtration_plant",
  "icon": "minecraft:raw_copper",
  "output": {
    "output": {
      "item": "minecraft:cobblestone"
    },
    "percentages": [ 0.33 ]
  },
  "secondaryOutput": {
    "output": {
      "item": "minecraft:raw_copper"
    },
    "percentages": [ 0.05 ]
  }
}

Explanation:

  • type: Must be set to energizedpower:filtration_plant
  • icon: Must be an item id which will be displayed as an icon in the recipe selector in the Filtration Plant GUI
  • output: Must contain an item and a list of percentages
    • output: The output item stack (Count must be 1, because the count is determined by the percentages element)
    • percentages: An array of double values. May or may not contain a percentage of 100%. For details see: percentages-value.
  • secondaryOutput: Must contain an item and a list of percentages [OPTIONAL]
    • output: The output item stack (Count must be 1, because the count is determined by the percentages element)
    • percentages: An array of double values. May or may not contain a percentage of 100%. For details see: percentages-value.

Fluid Transposer [v2.11.0 and newer]

Example 1 for emptying Water from Wet Sponges:

{
  "type": "energizedpower:fluid_transposer",
  "mode": "EMPTYING",
  "ingredient": {
    "item": "minecraft:wet_sponge"
  },
  "output": {
    "item": "minecraft:sponge"
  },
  "fluid": {
    "id": "minecraft:water",
    "amount": 1000
  }
}

Example 2 for filling Sponges with Water:

{
  "type": "energizedpower:fluid_transposer",
  "mode": "FILLING",
  "ingredient": {
    "item": "minecraft:sponge"
  },
  "output": {
    "item": "minecraft:wet_sponge"
  },
  "fluid": {
    "id": "minecraft:water",
    "amount": 1000
  }
}

Explanation:

  • type: Must be set to energizedpower:fluid_transposer
  • mode: Must be EMPTYING for the emptying mode (Item -> Item + Fluid) and FILLING for the filling mode (Item + Fluid -> Item)
  • ingredient: Must contain a single ingredient object (a single item/tag or a list of items/tags)
  • output: The output item stack (Min count: 1, max count: 64)
  • fluid: The fluid stack (output for emptying mode and input for filling mode)

Alloy Furnace [v2.12.0 and newer]

Example for smelting Steel Ingots:

{
  "type": "energizedpower:alloy_furnace",
  "inputs": [
    {
      "input": {
        "tag": "c:ingots/iron"
      }
    },
    {
      "input": {
        "tag": "minecraft:coals"
      },
      "count": 3
    }
  ],
  "ticks": 1000,
  "output": {
    "item": "energizedpower:steel_ingot"
  }
}

Explanation:

  • type: Must be set to energizedpower:alloy_furnace
  • inputs: A list of inputs [Each contains an input element and an optional count element] (There can be multiple entries with the same or overlapping ingredients) (There must be at least one and at most three inputs)
    • input: Must contain a single ingredient object (a single item/tag or a list of items/tags)
    • count: The count of the ingredient (Min count: 1, max count: 64) [OPTIONAL]
  • ticks: The amount of ticks the recipe takes
  • output: The output item stack (Min count: 1, max count: 64)
  • secondaryOutput: Must contain an item and a list of percentages [OPTIONAL]
    • output: The output item stack (Count must be 1, because the count is determined by the percentages element)
    • percentages: An array of double values. May or may not contain a percentage of 100%. For details see: percentages-value.