Item

Make the recipe consume or produce items

Item requirement is used to define item inputs and outputs for a custom machine recipe.

To use it you need to provide the registry name and the amount of the item you want the recipe to consume/produce.

This requirement is available in both input and output modes.

In input mode : When starting to craft the recipe, the machine will consume the desired amount of the specified item from the input slot they are in.

In output mode : When finishing to craft the recipe, the machine will produce the desired amount of the specified item and put them in the first disponible output slot.

The requirement type of item requirement is : "custommachinery:item".

Properties

The item requirement has 3 mandatory properties and 3 optional properties.

Mandatory properties

"type": "custommachinery:item" //Mandatory to define an item requirement.
Mode

Name : mode

Description :

Define the I/O mode of the requirement.

  • input The requirement will consume items at the start of the crafting process.

  • output The requirement will produce items at the end of the crafting process.

Example :

"mode": "input"

The requirement will consume items at the start of the crafting process.

Ingredient

Name : ingredient

Description :

A sized ingredient with a syntax like this :

"ingredient": {
    "item": "item_id",
    "count": amount
}
  • "item" property is the registry name of the item you want to be consumed/produced by the recipe.

    It must be specified like namespace:item_registry_name with "namespace" being either "minecraft" if the item is from vanilla or a mod ID if the item is from a mod (ex : minecraft:diamond or mekanism:copper_ingot).

  • If the requirement mode is input you can use a tag instead, by using "tag" instead of "item". Example : "tag": "tag_id"

You can't use a tag if the requirement mode is output !

Example :

"ingredient": {
    "item": "minecraft:diamond",
    "count": 1
}

The item consumed/produced by the recipe will be a vanilla Diamond.

"ingredient": {
    "tag": "minecraft:logs",
    "count": 1,
}

The recipe will consume 1 of any logs.

Note :

You can see an item registry name by activating advanced infos (F3 + H in-game) and hovering the item in an inventory.

Optional properties

Chance

Name : chance

Description :

A double between 0.0 and 1.0 that define the chance of the requirement to be processed.

Default : 1

The requirement will always be processed.

Example :

"chance": 0.7

The requirement will have 70% chance to be processed.

Slot

Name : slot

Description :

The slot id of a slot you want to force the player to put the item in.

The slot id must be exactly the same as the one specified in the Item Component ID property or it will not work.

If the requirement mode is "output" the produced item will be put in the specified slot.

Default : empty

The item can be put in any slot.

Example :

"slot": "input1"

The item will be input/output only in the slot with id input1.

Examples

An item requirement that will make the recipe consume 50 vanilla cobblestone:

{
    "type": "custommachinery:item",
    "mode": "input",
    "ingredient": {
        "item": "minecraft:cobblestone",
        "count": 50
    }
}

An item requirement that will make the recipe produce 1 vanilla diamond chestplate with 1% chance:

{
    "type": "custommachinery:item",
    "mode": "output",
    "ingredient": {
        "item": "minecraft:diamond_chestplate",
        "count": 1
    },
    "chance": 0.01
}

Last updated