Factorio.com|Forums|Wiki|Mod Portal|API Docs Prototype|Runtime|Auxiliary

# Factorio Runtime Docs Version 2.0.7

## Class LuaRecipePrototype extends LuaPrototypeBase changed

A crafting recipe prototype.

## Members

enabled | :: R boolean | If this recipe prototype is enabled by default (enabled at the beginning of a game).
If this recipe prototype is enabled by default (enabled at the beginning of a game).
category | :: R string | Category of the recipe.
Category of the recipe.
ingredients | :: R array[Ingredient] | The ingredients to this recipe.
The ingredients to this recipe.
products | :: R array[Product] | The results/products of this recipe.
The results/products of this recipe.
main_product | :: R Product? | The main product of this recipe, if any.
The main product of this recipe, if any.
hidden_from_flow_stats | :: R boolean | Is the recipe hidden from flow statistics (item/fluid production statistics)?
Is the recipe hidden from flow statistics (item/fluid production statistics)?
hidden_from_player_crafting | :: R boolean | Is the recipe hidden from player crafting? [...]
Is the recipe hidden from player crafting? [...]
always_show_made_in | :: R boolean | Should this recipe always show "Made in" in the tooltip?
Should this recipe always show "Made in" in the tooltip?
energy | :: R double | Energy required to execute this recipe. [...]
Energy required to execute this recipe. [...]
request_paste_multiplier | :: R uint | The multiplier used when this recipe is copied from an assembling machine to a requester chest. [...]
The multiplier used when this recipe is copied from an assembling machine to a requester chest. [...]
overload_multiplier | :: R uint | Used to determine how many extra items are put into an assembling machine before it's considered "full enough".
Used to determine how many extra items are put into an assembling machine before it's considered "full enough".
maximum_productivity new | :: R double | The maximal productivity bonus that can be achieved with this recipe.
The maximal productivity bonus that can be achieved with this recipe.
allow_inserter_overload | :: R boolean | If the recipe is allowed to have the extra inserter overload bonus applied (4 * stack inserter stack size).
If the recipe is allowed to have the extra inserter overload bonus applied (4 * stack inserter stack size).
allow_as_intermediate | :: R boolean | If this recipe is enabled for the purpose of intermediate hand-crafting.
If this recipe is enabled for the purpose of intermediate hand-crafting.
allow_intermediates | :: R boolean | If this recipe is allowed to use intermediate recipes when hand-crafting.
If this recipe is allowed to use intermediate recipes when hand-crafting.
show_amount_in_title | :: R boolean | If the amount is shown in the recipe tooltip title when the recipe produces more than 1 product.
If the amount is shown in the recipe tooltip title when the recipe produces more than 1 product.
always_show_products | :: R boolean | If the products are always shown in the recipe tooltip.
If the products are always shown in the recipe tooltip.
emissions_multiplier | :: R double | The emissions multiplier for this recipe.
The emissions multiplier for this recipe.
allow_decomposition | :: R boolean | Is this recipe allowed to be broken down for the recipe tooltip "Total raw" calculations?
Is this recipe allowed to be broken down for the recipe tooltip "Total raw" calculations?
unlock_results | :: R boolean | Is this recipe unlocks the result item(s) so they're shown in filter-select GUIs.
Is this recipe unlocks the result item(s) so they're shown in filter-select GUIs.
hide_from_signal_gui new | :: R boolean | Is this recipe is marked to be hidden from the signal GUI.
Is this recipe is marked to be hidden from the signal GUI.
hide_from_flow_stats new | :: R boolean |
hide_from_player_crafting new | :: R boolean |
trash new | :: R array[LuaItemPrototype] ? | The 'trash' items that this recipe might produce as a result of spoiling.
The 'trash' items that this recipe might produce as a result of spoiling.
preserve_products_in_machine_output new | :: R boolean |
is_parameter new | :: R boolean |
allowed_effects new | :: R dictionary[string → boolean] ? | The allowed module effects for this recipe, if any.
The allowed module effects for this recipe, if any.
allowed_module_categories new | :: R dictionary[string → `true`] ? | The allowed module categories for this recipe, if any.
The allowed module categories for this recipe, if any.
effect_limitation_messages new | :: R array[LocalisedString] ? |
surface_conditions new | :: R array[SurfaceCondition] ? | The surface conditions required to craft this recipe.
The surface conditions required to craft this recipe.
alternative_unlock_methods new | :: R array[LuaTechnologyPrototype] ? | Alternative technologies that can unlocked this recipe.
Alternative technologies that can unlocked this recipe.
crafting_machine_tints new | :: R array[Color] |
valid | :: R boolean | Is this object valid? [...]
Is this object valid? [...]
object_name | :: R string | The class name of this object. [...]
The class name of this object. [...]

Inherited from LuaPrototypeBase

type | :: R string | Type of this prototype.
Type of this prototype.
name | :: R string | Name of this prototype.
Name of this prototype.
order | :: R string | The string used to alphabetically sort these prototypes. [...]
The string used to alphabetically sort these prototypes. [...]
localised_name | :: R LocalisedString |
localised_description | :: R LocalisedString |
group | :: R LuaGroup | Group of this prototype.
Group of this prototype.
subgroup | :: R LuaGroup | Subgroup of this prototype.
Subgroup of this prototype.
hidden | :: R boolean |
hidden_in_factoriopedia | :: R boolean |
parameter | :: R boolean |

## Attributes

### enabled :: Read boolean

If this recipe prototype is enabled by default (enabled at the beginning of a game).

### category :: Read string

Category of the recipe.

### ingredients :: Read array[Ingredient]

The ingredients to this recipe.

#### Example

    -- The ingredients of "advanced-oil-processing" would look like this
    {{type="fluid", name="crude-oil", amount=100}, {type="fluid", name="water", amount=50}}

### products :: Read array[Product]

The results/products of this recipe.

#### Example

    -- The products of "advanced-oil-processing" would look like this:
    {{type="fluid", name="heavy-oil", amount=25}, {type="fluid", name="light-oil", amount=45}, {type="fluid", name="petroleum-gas", amount=55}}

### main_product :: Read Product?

The main product of this recipe, if any.

### hidden_from_flow_stats :: Read boolean

Is the recipe hidden from flow statistics (item/fluid production statistics)?

### hidden_from_player_crafting :: Read boolean

Is the recipe hidden from player crafting? The recipe will still show up for selection in machines.

### always_show_made_in :: Read boolean

Should this recipe always show "Made in" in the tooltip?

### energy :: Read double

Energy required to execute this recipe. This directly affects the crafting time: Recipe's energy is exactly its crafting time in seconds, when crafted in an assembling machine with crafting speed exactly equal to one.

### request_paste_multiplier :: Read uint

The multiplier used when this recipe is copied from an assembling machine to a requester chest. For each item in the recipe the item count * this value is set in the requester chest.

### overload_multiplier :: Read uint

Used to determine how many extra items are put into an assembling machine before it's considered "full enough".

### maximum_productivity :: Read double new

The maximal productivity bonus that can be achieved with this recipe.

### allow_inserter_overload :: Read boolean

If the recipe is allowed to have the extra inserter overload bonus applied (4 * stack inserter stack size).

### allow_as_intermediate :: Read boolean

If this recipe is enabled for the purpose of intermediate hand-crafting.

### allow_intermediates :: Read boolean

If this recipe is allowed to use intermediate recipes when hand-crafting.

### show_amount_in_title :: Read boolean

If the amount is shown in the recipe tooltip title when the recipe produces more than 1 product.

### always_show_products :: Read boolean

If the products are always shown in the recipe tooltip.

### emissions_multiplier :: Read double

The emissions multiplier for this recipe.

### allow_decomposition :: Read boolean

Is this recipe allowed to be broken down for the recipe tooltip "Total raw" calculations?

### unlock_results :: Read boolean

Is this recipe unlocks the result item(s) so they're shown in filter-select GUIs.

### hide_from_signal_gui :: Read boolean new

Is this recipe is marked to be hidden from the signal GUI.

### hide_from_flow_stats :: Read boolean new

### hide_from_player_crafting :: Read boolean new

### trash :: Read array[LuaItemPrototype] ?new

The 'trash' items that this recipe might produce as a result of spoiling.

### preserve_products_in_machine_output :: Read boolean new

### is_parameter :: Read boolean new

### allowed_effects :: Read dictionary[string → boolean] ?new

The allowed module effects for this recipe, if any.

### allowed_module_categories :: Read dictionary[string → `true`] ?new

The allowed module categories for this recipe, if any.

### effect_limitation_messages :: Read array[LocalisedString] ?new

### surface_conditions :: Read array[SurfaceCondition] ?new

The surface conditions required to craft this recipe.

### alternative_unlock_methods :: Read array[LuaTechnologyPrototype] ?new

Alternative technologies that can unlocked this recipe.

### crafting_machine_tints :: Read array[Color] new

### valid :: Read boolean

Is this object valid? This Lua object holds a reference to an object within the game engine. It is possible that the game-engine object is removed whilst a mod still holds the corresponding Lua object. If that happens, the object becomes invalid, i.e. this attribute will be `false`. Mods are advised to check for object validity if any change to the game state might have occurred between the creation of the Lua object and its access.

### object_name :: Read string

The class name of this object. Available even when `valid` is false. For LuaStruct objects it may also be suffixed with a dotted path to a member of the struct.