Output Entries
Output entries define what a recipe produces.
Simple output
{
"type": "mm:output/simple",
"per_tick": false,
"chance": 1.0,
"ingredient": {
"type": "mm:item",
"item": "minecraft:iron_ingot",
"count": 1
}
}
| Field | Meaning |
|---|---|
type |
Use mm:output/simple for normal outputs. |
per_tick |
Optional. When true, produces the ingredient every recipe tick instead of at completion. |
chance |
Optional. Random chance from 0.0 to 1.0; default is 1.0. |
ingredient |
Ingredient config object. See Ingredient Configs. |
If chance is 0, the output is never produced. If chance is 1, it is always produced.
Weighted choice output
Use mm:output/weighted when a recipe should produce one result from a weighted list, such as a loot-table roll:
{
"type": "mm:output/weighted",
"options": [
{
"weight": 3,
"ingredient": { "type": "mm:item", "item": "minecraft:iron_nugget", "count": 4 }
},
{
"weight": 1,
"ingredient": { "type": "mm:item", "item": "minecraft:gold_nugget", "count": 1 }
},
{ "weight": 1, "nothing": true }
]
}
Exactly one option is selected when the recipe finishes. The relative chance is each option’s positive integer weight divided by the sum of all weights. An option can use nothing: true to represent no output. The entry-level chance can also be used to make the entire weighted roll optional.
The controller checks output capacity before it starts consuming a recipe. If outputs become blocked while a recipe is finishing, the completed recipe remains pending until space is available; it does not consume inputs again or discard the result.
Scaled and flex outputs
Simple outputs can use scale_by to multiply the output amount using an as name from mm:input/count or mm:input/flex. mm:output/flex creates a separate item output for each kind selected by a flex input. See Flex Recipes and Counted Inputs for examples and supported fields.