Skip to content
KnightMiner edited this page May 19, 2021 · 7 revisions

This page describes additional common JSON recipe features that Mantle supports.

Table of Contents

Ingredient

Vanilla recipe input. Can be either an item stack or a tag, or additional custom types added by mods. Mantle adds a few custom ingredient types that work in any recipes with ingredient support.

mantle:intersection

Ingredient that matches anything matched by all the contained ingredients.

Keys

  • type (string): Always mantle:intersection
  • ingredients (array): List of Ingredients. For a result to match, it must match all contained ingredients

mantle:without

Ingredient that matches anything in the first ingredient that is not in the second.

Keys

  • type (string): Always mantle:without
  • base (Ingredient): The main ingredient to match. Anything matching this ingredient but not matching without is valid.
  • without (Ingredient): Ingredient to exclude.

A fluid recipe input. The input can be either an object, or an array of fluid ingredient objects.

Keys

  • name (string): The fluid's registry name. Cannot be used alongside tag
  • tag (string): Fluid tag to match. Cannot be used alongside name
  • amount: Integer. The fluid amount in millibuckets.

Examples

"fluid": {
  "name": "tconstruct:molten_gold",
  "amount": 144
}
"fluid": [
  {
    "name": "minecraft:water",
    "amount": 1000
  },
  {
    "tag": "forge:fluids/steam",
    "amount": 1000
  }
]

An entity. Used for entity melting. The input can be either an object, or an array of entity ingredient objects.

Keys

Any of these three keys can be set, but no more than one.

  • type: Registry name of the entity type.
  • types: An array of entity type registry names.
  • tag: Entity type tag.

Example

"entity": {
  "type": "minecraft:creeper"
}
"entity": [
  {
    "tag": "minecraft:skeletons"
  },
  {
    "type": "minecraft:skeleton_horse"
  }
]
"entity": {
  "types": [
    "minecraft:villager",
    "minecraft:wandering_trader"
  ]
}

Similar to Ingredient, but needs at least amount_needed of the ingredient to be present.

Keys

  • ingredient (Ingredient): Optional, if missing, the whole object is considered an ingredient. Determines the matched ingredient
  • amount_needed (integer): Defaults to 1. The amount of ingredient needed for the recipe.

Examples

{
  "item": "tconstruct:iron_reinforcement"
}
{
  "ingredient": {
    "item": "tconstruct:bone_hurting_nugget"
  },
  "amount_needed": 9
}

Used for recipe outputs to allow crafting a result from a tag, used for better mod support.

Keys

  • item: Item registry name. Used for a strict item output. Cannot be used alongside tag
  • tag: Forge tag. Result will be the highest priority item in the tag, as determined by Mantle's config. Cannot be used alongside item
  • count: Integer. Defaults to 1. The item count.
  • nbt: NBT for the item. Only available if item is set

Example

Return the highest priority invar ingot:

"result": {
  "tag": "forge:ingots/invar"
}

Return the Tinkers' Construct copper ingot:

"result": {
  "item": "tconstruct:copper_ingot"
}

FluidStack

Similar to FluidIngredient, but cannot take a tag (the fluid must be exact). Not added by Mantle, but Mantle adds serializing and deserializing support in RecipeHelper.

Example

"result": {
  "fluid": "tconstruct:molten_electrum",
  "amount": 288
}
Clone this wiki locally