Factorio.com|Forums|Wiki|Mod Portal|API Docs

# Factorio Runtime Docs Version 2.0.77

# LuaRecipePrototype - Runtime Docs

## Class LuaRecipePrototype extends LuaPrototypeBase

A crafting recipe prototype.

Inherits from LuaPrototypeBase

## Members

has_category(category) | → boolean | Checks if recipe has given category
Checks if recipe has given category
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.
additional_categories | :: R array[string] | Additional categories of the recipe.
Additional categories 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 uint32 | 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 uint32 | 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 | :: 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 | :: 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 | :: R boolean |
hide_from_player_crafting | :: R boolean |
hide_from_bonus_gui | :: R boolean |
trash | :: 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 | :: R boolean |
is_parameter | :: R boolean |
allowed_effects | :: 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 | :: 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 | :: R array[LocalisedString]? |
surface_conditions | :: R array[SurfaceCondition]? | The surface conditions required to craft this recipe.
The surface conditions required to craft this recipe.
alternative_unlock_methods | :: R array[LuaTechnologyPrototype]? | Additional technologies listed under "Unlocked by" on a recipe's Factoriopedia page.
Additional technologies listed under "Unlocked by" on a recipe's Factoriopedia page.
crafting_machine_tints | :: R array[Color] |
factoriopedia_alternative | :: R LuaRecipePrototype? | An alternative prototype that will be used to display info about this prototype in Factoriopedia.
An alternative prototype that will be used to display info about this prototype in Factoriopedia.
result_is_always_fresh | :: R boolean |
reset_freshness_on_craft | :: R boolean |
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 |
factoriopedia_description | :: R LocalisedString | Provides additional description used in factoriopedia.
Provides additional description used in factoriopedia.
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 |
custom_tooltip_fields | :: R array[CustomTooltipField]? | Extra description items in the tooltip and Factoriopedia.
Extra description items in the tooltip and Factoriopedia.

## Methods

### has_category(category) → boolean

Checks if recipe has given category

#### Parameters

category | :: RecipeCategoryID |

#### Return values

→ boolean | `true` if recipe has this category.

## 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.

### additional_categories :: Read array[string]

Additional categories 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 uint32

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 uint32

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

### maximum_productivity :: Read double

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

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

### hide_from_flow_stats :: Read boolean

### hide_from_player_crafting :: Read boolean

### hide_from_bonus_gui :: Read boolean

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

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

### preserve_products_in_machine_output :: Read boolean

### is_parameter :: Read boolean

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

The allowed module effects for this recipe, if any.

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

The allowed module categories for this recipe, if any.

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

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

The surface conditions required to craft this recipe.

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

Additional technologies listed under "Unlocked by" on a recipe's Factoriopedia page.

### crafting_machine_tints :: Read array[Color]

### factoriopedia_alternative :: Read LuaRecipePrototype?

An alternative prototype that will be used to display info about this prototype in Factoriopedia.

### result_is_always_fresh :: Read boolean

### reset_freshness_on_craft :: Read boolean

### 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.

Class used in

- LuaPlayer::get_recipe_notifications()
- LuaPrototypes::get_recipe_filtered()
- LuaPrototypes::recipe
- LuaRecipe::prototype
- LuaRecipePrototype::factoriopedia_alternative
- FactoriopediaID
- PipetteID
- RecipeID