Common Types
Below are a number of common types used by recipes and custom data.
- Block Ingredients
- Block State
- Fluid Ingredients
- Fluid Stack Ingredients
- Fluid Stack
- Food Traits
- Item Stack Ingredients
- Item Stack Providers
- Item Stacks
- Temperature
Block Ingredients
This represents a predicate on blocks in the world. It can be any of the following options:
- A String, with the registry name of a single block.
- A JSON object, with a single
block
key, with the registry name of a single block. - A JSON object, with a single
tag
key, with the name of a block tag to match. - A JSON array, whose entries are Block Ingredients, which are logically OR’d together.
Block State
A block state represents an output of a recipe in world. It must be a string which encodes a block. It must contain the registry name of the block, optionally followed by properties with key value pairs separated by =
, within square brackets. For example:
minecraft:dirt
: Just specifying a block name.minecraft:grass_block[snowy=true]
: Using thesnowy=true
property.minecraft:oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]
: Using multiple properties.
Fluid Ingredients
A fluid ingredient represents a predicate of fluids. It can be any of the following options:
- A String, with the registry name of a single fluid.
- A JSON object, with a single
fluid
key, with the registry name of a single fluid. - A JSON object, with a single
tag
key, with the name of a fluid tag to match. - A JSon array, whose entries are Fluid Ingredients, which are logically OR’d together.
Fluid Stack
A fluid stack is used to represent a combination of a single fluid with an amount. It is a JSON object which has the following fields:
fluid
: String. The registry name of a Fluid.amount
: Integer. The amount of the fluid stack, in mB.
Example
// A fluid stack representing a bucket of water
{
"fluid": "minecraft:water",
"amount": 1000
}
Fluid Stack Ingredients
A fluid stack ingredient is a combination of a fluid ingredient with an amount. It is a JSON object which has the following fields:
ingredient
: A Fluid Ingredientamount
: Integer. An amount in mB for this ingredient. Defaults to 1000 mB.
Example
// A fluid stack ingredient which matches a bucket of water
{
"ingredient": { "fluid": "minecraft:water" },
"amount": 1000
}
Food Traits
A food trait is a String, which must be one of the following options. Note addons may add other food traits not in this list:
tfc:salted
,tfc:pickled
,tfc:brined
,tfc:preserved
,tfc:vinegar
,tfc:charcoal_grilled
,tfc:wood_grilled
,tfc:burnt_to_a_crisp
Item Stack Ingredients
An item stack ingredient is a combination of an ingredient, and a count. It is a JSON object with the following fields:
count
: An optional integer (Default: 1) The count of the item.ingredient
: An Ingredient.
Example
// An item stack ingredient which requires 5 x minecraft:apple
{
"count": 5,
"ingredient": {
"item": "minecraft:apple"
}
}
Item Stack Providers
An item stack provider represents an output of a recipe, an item stack with any number of transformations applied to it at recipe completion. These transformations are applied sequentially, starting with the provided stack. It is a JSON object with the following fields:
stack
: An Item Stack This represents the starting stack before transformations are applied.modifiers
: An array of Item Stack Modifiers. Each modifier is applied sequentially to the output stack, and at the end, the final result is used as the output of the item stack provider.
Note: Any Item Stack will be accepted as a valid item stack provider with no modifiers, if neither the stack
or modifiers
keys are present.
Example
// An item stack provider which produces a minecraft:steak,
// but copies the food traits and expiration date from the input, and sets the temperature to 400 C
{
"stack": {
"item": "minecraft:steak",
"count": 1
},
"modifiers": [
{ "type": "tfc:copy_food" },
{
"type": "tfc:add_heat",
"temperature": 400
}
]
}
Item Stacks
This represents a vanilla Minecraft item stack. It is a JSON object with the following fields:
item
: String. The registry name of the item in the stack.count
: Integer. The count of the item stack.nbt
: An optional object representing NBT data to be added to the item stack.
Example
// An item stack of 3 x minecraft:apple
{
"item": "minecraft:apple",
"count": 3
}
Temperature
A temperature is a number, which corresponds to a value in degrees Celsius (°C). In-game, the tooltip displays the color based on the internal temperature value:
Temperature Range (°C) | Color |
---|---|
1 - 80 | Warming |
80 - 210 | Hot |
210 - 480 | Very Hot |
480 - 580 | Faint Red |
580 - 730 | Dark Red |
730 - 930 | Bright Red |
930 - 1100 | Orange |
1100 - 1300 | Yellow |
1300 - 1400 | Yellow-White |
1400 - 1500 | White |
> 1500 | Brilliant White |