See also: Ingredients.

This page covers common result formats used primarily in recipes.

Item Stack

A fluid stack represents an item with a size and optional NBT, typically used in recipe outputs (as item ingredients are more flexible for inputs). Note that for most recipes, item output is preferred due to allowing tag outputs, but select recipes still make use of direct item stacks.

In the most basic form, an item output may be just a string field containing an item ID, representing the output item with a stack size of 1:

  • (Item ID): The item in the stack.

Alternatively, an item stack may be expressed as a JSON object, allowing setting count and NBT:

  • (Object): The item stack object.
    • item (item ID): Item in the stack. If unset, defaults to minecraft:air making the stack empty.
    • count (Integer): Stack size. If unset, defaults to 1. If empty is supported, may be 0 to indicate an empty stack.
    • nbt (Object): NBT for the item stack, represented as a JSON object. If unset, the stack has no NBT.
    • nbt (String): NBT for the item stack, represented as a string. If unset, the stack has no NBT.

Note that based on the usage, count may be fixed to 1, and NBT may be ignored. In addition, some contexts do not support empty item stacks, causing a parsing error.

Item Output

An item output is essentially an ingredient for recipe outputs. In the most basic form, an item output may be just a string field containing an item ID, representing the output item with a stack size of 1:

In other cases, the item output will be a JSON object with format as follows:

  • (Object): The item output object.
    • item (item ID): Item to output. If unset, defaults to minecraft:air making the output empty. Cannot be set alongside tag.
    • tag (item tag): Tag to output using Mantle’s tag preference system. The preferred entry from the tag will be used for the output. Cannot be set alongside item.
    • count (Integer): Output stack size. If unset, defaults to 1. If empty is supported, may be 0 to indicate an empty output.
    • nbt (Object): NBT for the item stack, represented as a JSON object. If unset, the output has no NBT.
    • nbt (String): NBT for the item stack, represented as a string. If unset, the output has no NBT.

In 1.19 and before, nbt is only supported alongside item. 1.20 allows using nbt with tag.

Fluid Stack

A fluid stack represents a fluid with a size, typically used in recipe outputs (as fluid ingredients are more flexible for inputs).

Fluid stacks have the following format in JSON:

  • (Object): The item output object.
    • fluid (fluid ID): Fluid in the stack. If unset, defaults to minecraft:empty making the stack empty.
    • amount (Integer): Output stack size. May be 0 to indicate an empty stack.
    • nbt (Object): NBT for the item stack, represented as a JSON object. If unset, the output has no NBT.
    • nbt (String): NBT for the item stack, represented as a string. If unset, the output has no NBT.

Note that some contexts using fluid stacks disallow empty fluid stacks, in which case an amount of 0 or a fluid of minecraft:empty will cause a parsing error. In addition, some contexts will ignore the output NBT entirely, causing those fields to be ignored (most notably recipes in 1.18 and before).

Fluid Output

Upcoming 1.20

A fluid output is essentially an fluid ingredient for recipe outputs. Before 1.20, most outputs instead used fluid stacks.

A fluid output has the following format:

  • (Object): The item output object.
    • fluid (fluid ID): Fluid to output. If unset, defaults to minecraft:empty making the output empty. Cannot be set alongside tag.
    • tag (fluid tag): Tag to output using Mantle’s tag preference system. The preferred entry from the tag will be used for the output. Cannot be set alongside item.
    • amount (Integer): Output stack size. If empty is supported, may be 0 to indicate an empty output.
    • nbt (Object): NBT for the item stack, represented as a JSON object. If unset, the output has no NBT.
    • nbt (String): NBT for the item stack, represented as a string. If unset, the output has no NBT.