Factorio Runtime Docs

Class LuaItemPrototype

Prototype of an item.

Example

game.item_prototypes["iron-plate"]

Members

has_flag(flag)  → boolean

Does this prototype have a flag enabled?

Does this prototype have a flag enabled?

get_ammo_type(ammo_source_type?)  → AmmoType?

The type of this ammo prototype.

The type of this ammo prototype.

help()  → string

All methods and properties that this object supports.

All methods and properties that this object supports.

type [R] :: string

Type of this prototype.

Type of this prototype.

name [R] :: string

Name of this prototype.

Name of this prototype.

localised_name [R] :: LocalisedString
localised_description [R] :: LocalisedString
order [R] :: string

The string used to alphabetically sort these prototypes.

The string used to alphabetically sort these prototypes.

place_result [R] :: LuaEntityPrototype?

Prototype of the entity that will be created by placing this item, if any.

Prototype of the entity that will be created by placing this item, if any.

place_as_equipment_result [R] :: LuaEquipmentPrototype?

Prototype of the equipment that will be created by placing this item in an equipment grid, if any.

Prototype of the equipment that will be created by placing this item in an equipment grid, if any.

place_as_tile_result [R] :: PlaceAsTileResult?

The place-as-tile result if one is defined, if any.

The place-as-tile result if one is defined, if any.

stackable [R] :: boolean

Is this item allowed to stack at all?

Is this item allowed to stack at all?

default_request_amount [R] :: uint

The default request value.

The default request value.

stack_size [R] :: uint

Maximum stack size of the item specified by this prototype.

Maximum stack size of the item specified by this prototype.

wire_count [R] :: uint

The number of items needed to connect two entities with this as wire.

The number of items needed to connect two entities with this as wire.

fuel_category [R] :: string?

The fuel category of this item prototype, if any.

The fuel category of this item prototype, if any.

burnt_result [R] :: LuaItemPrototype?

The result of burning this item as fuel, if any.

The result of burning this item as fuel, if any.

fuel_value [R] :: float

Fuel value when burned.

Fuel value when burned.

fuel_acceleration_multiplier [R] :: double

The acceleration multiplier when this item is used as fuel in a vehicle.

The acceleration multiplier when this item is used as fuel in a vehicle.

fuel_top_speed_multiplier [R] :: double

The fuel top speed multiplier when this item is used as fuel in a vehicle.

The fuel top speed multiplier when this item is used as fuel in a vehicle.

fuel_emissions_multiplier [R] :: double

The emissions multiplier if this is used as fuel.

The emissions multiplier if this is used as fuel.

subgroup [R] :: LuaGroup

The subgroup this prototype belongs to.

The subgroup this prototype belongs to.

group [R] :: LuaGroup

The group this prototype belongs to.

The group this prototype belongs to.

flags [R] :: ItemPrototypeFlags

The flags for this item prototype.

The flags for this item prototype.

rocket_launch_products [R] :: array[Product]

The results of launching this item in a rocket.

The results of launching this item in a rocket.

can_be_mod_opened [R] :: boolean

If this item can be mod-opened.

If this item can be mod-opened.

magazine_size [R] :: float?

Size of full magazine.

Size of full magazine.

reload_time [R] :: float?

Amount of extra time (in ticks) it takes to reload the weapon after depleting the magazine.

Amount of extra time (in ticks) it takes to reload the weapon after depleting the magazine.

equipment_grid [R] :: LuaEquipmentGridPrototype?

The prototype of this armor equipment grid, if any.

The prototype of this armor equipment grid, if any.

resistances [R] :: dictionary[string → Resistance]?

Resistances of this armor item, if any, indexed by damage type name.

Resistances of this armor item, if any, indexed by damage type name.

inventory_size_bonus [R] :: uint?

The inventory size bonus for this armor prototype.

The inventory size bonus for this armor prototype.

capsule_action [R] :: CapsuleAction?

The capsule action for this capsule item prototype.

The capsule action for this capsule item prototype.

attack_parameters [R] :: AttackParameters?

The gun attack parameters.

The gun attack parameters.

inventory_size [R] :: uint?

The main inventory size for item-with-inventory-prototype.

The main inventory size for item-with-inventory-prototype.

item_filters [R] :: dictionary[string → LuaItemPrototype]?
item_group_filters [R] :: dictionary[string → LuaGroup]?
item_subgroup_filters [R] :: dictionary[string → LuaGroup]?
filter_mode [R] :: string?

The filter mode used by this item with inventory.

The filter mode used by this item with inventory.

insertion_priority_mode [R] :: string?

The insertion priority mode used by this item with inventory.

The insertion priority mode used by this item with inventory.

localised_filter_message [R] :: LocalisedString?

The localised string used when the player attempts to put items into this item with inventory that aren't allowed.

The localised string used when the player attempts to put items into this item with inventory that aren't allowed.

extend_inventory_by_default [R] :: boolean?

If this item with inventory extends the inventory it resides in by default.

If this item with inventory extends the inventory it resides in by default.

default_label_color [R] :: Color?

The default label color used for this item with label, if any.

The default label color used for this item with label, if any.

draw_label_for_cursor_render [R] :: boolean?

If true, and this item with label has a label it is drawn in place of the normal number when held in the cursor.

If true, and this item with label has a label it is drawn in place of the normal number when held in the cursor.

speed [R] :: float?

The repairing speed if this is a repairing tool.

The repairing speed if this is a repairing tool.

module_effects [R] :: ModuleEffects?

Effects of this module.

Effects of this module.

category [R] :: string?
tier [R] :: uint?

Tier of the module inside its category.

Tier of the module inside its category.

limitations [R] :: array[string]?

An array of recipe names this module is allowed to work with.

An array of recipe names this module is allowed to work with.

limitation_message_key [R] :: string?

The limitation message key used when the player attempts to use this modules in some place it's not allowed.

The limitation message key used when the player attempts to use this modules in some place it's not allowed.

straight_rail [R] :: LuaEntityPrototype?

The straight rail prototype used for this rail planner prototype.

The straight rail prototype used for this rail planner prototype.

curved_rail [R] :: LuaEntityPrototype?

The curved rail prototype used for this rail planner prototype.

The curved rail prototype used for this rail planner prototype.

repair_result [R] :: array[TriggerItem]?

The repair result of this repair tool prototype.

The repair result of this repair tool prototype.

selection_border_color [R] :: Color?

The color used when doing normal selection with this selection tool prototype.

The color used when doing normal selection with this selection tool prototype.

alt_selection_border_color [R] :: Color?

The color used when doing alt selection with this selection tool prototype.

The color used when doing alt selection with this selection tool prototype.

reverse_selection_border_color [R] :: Color?

The color used when doing reverse selection with this selection tool prototype.

The color used when doing reverse selection with this selection tool prototype.

alt_reverse_selection_border_color [R] :: Color?

The color used when doing alt reverse selection with this selection tool prototype.

The color used when doing alt reverse selection with this selection tool prototype.

selection_mode_flags [R] :: SelectionModeFlags?

Flags that affect which entities will be selected.

Flags that affect which entities will be selected.

alt_selection_mode_flags [R] :: SelectionModeFlags?

Flags that affect which entities will be selected during alternate selection.

Flags that affect which entities will be selected during alternate selection.

reverse_selection_mode_flags [R] :: SelectionModeFlags?

Flags that affect which entities will be selected during reverse selection.

Flags that affect which entities will be selected during reverse selection.

alt_reverse_selection_mode_flags [R] :: SelectionModeFlags?

Flags that affect which entities will be selected during alt reverse selection.

Flags that affect which entities will be selected during alt reverse selection.

selection_cursor_box_type [R] :: string?
alt_selection_cursor_box_type [R] :: string?
reverse_selection_cursor_box_type [R] :: string?
alt_reverse_selection_cursor_box_type [R] :: string?
always_include_tiles [R] :: boolean?

If tiles area always included when doing selection with this selection tool prototype.

If tiles area always included when doing selection with this selection tool prototype.

entity_filter_mode [R] :: string?

The entity filter mode used by this selection tool.

The entity filter mode used by this selection tool.

alt_entity_filter_mode [R] :: string?

The alt entity filter mode used by this selection tool.

The alt entity filter mode used by this selection tool.

reverse_alt_entity_filter_mode [R] :: string?

The reverse entity filter mode used by this selection tool.

The reverse entity filter mode used by this selection tool.

alt_reverse_alt_entity_filter_mode [R] :: string?

The alt reverse entity filter mode used by this selection tool.

The alt reverse entity filter mode used by this selection tool.

tile_filter_mode [R] :: string?

The tile filter mode used by this selection tool.

The tile filter mode used by this selection tool.

alt_tile_filter_mode [R] :: string?

The alt tile filter mode used by this selection tool.

The alt tile filter mode used by this selection tool.

reverse_tile_filter_mode [R] :: string?

The reverse tile filter mode used by this selection tool.

The reverse tile filter mode used by this selection tool.

alt_reverse_tile_filter_mode [R] :: string?

The alt reverse tile filter mode used by this selection tool.

The alt reverse tile filter mode used by this selection tool.

entity_filters [R] :: dictionary[string → LuaEntityPrototype]?

The entity filters used by this selection tool indexed by entity name.

The entity filters used by this selection tool indexed by entity name.

alt_entity_filters [R] :: dictionary[string → LuaEntityPrototype]?

The alt entity filters used by this selection tool indexed by entity name.

The alt entity filters used by this selection tool indexed by entity name.

reverse_entity_filters [R] :: dictionary[string → LuaEntityPrototype]?

The reverse entity filters used by this selection tool indexed by entity name.

The reverse entity filters used by this selection tool indexed by entity name.

alt_reverse_entity_filters [R] :: dictionary[string → LuaEntityPrototype]?

The alt reverse entity filters used by this selection tool indexed by entity name.

The alt reverse entity filters used by this selection tool indexed by entity name.

entity_type_filters [R] :: dictionary[string → boolean]?

The entity type filters used by this selection tool indexed by entity type.

The entity type filters used by this selection tool indexed by entity type.

alt_entity_type_filters [R] :: dictionary[string → boolean]?

The alt entity type filters used by this selection tool indexed by entity type.

The alt entity type filters used by this selection tool indexed by entity type.

reverse_entity_type_filters [R] :: dictionary[string → boolean]?

The reverse entity type filters used by this selection tool indexed by entity type.

The reverse entity type filters used by this selection tool indexed by entity type.

alt_reverse_entity_type_filters [R] :: dictionary[string → boolean]?

The alt reverse entity type filters used by this selection tool indexed by entity type.

The alt reverse entity type filters used by this selection tool indexed by entity type.

tile_filters [R] :: dictionary[string → LuaTilePrototype]?

The tile filters used by this selection tool indexed by tile name.

The tile filters used by this selection tool indexed by tile name.

alt_tile_filters [R] :: dictionary[string → LuaTilePrototype]?

The alt tile filters used by this selection tool indexed by tile name.

The alt tile filters used by this selection tool indexed by tile name.

reverse_tile_filters [R] :: dictionary[string → LuaTilePrototype]?

The reverse tile filters used by this selection tool indexed by tile name.

The reverse tile filters used by this selection tool indexed by tile name.

alt_reverse_tile_filters [R] :: dictionary[string → LuaTilePrototype]?

The alt reverse tile filters used by this selection tool indexed by tile name.

The alt reverse tile filters used by this selection tool indexed by tile name.

entity_filter_slots [R] :: uint?

The number of entity filters this deconstruction item has.

The number of entity filters this deconstruction item has.

tile_filter_slots [R] :: uint?

The number of tile filters this deconstruction item has.

The number of tile filters this deconstruction item has.

durability_description_key [R] :: string?

The durability message key used when displaying the durability of this tool.

The durability message key used when displaying the durability of this tool.

durability [R] :: double?

The durability of this tool item.

The durability of this tool item.

infinite [R] :: boolean?

If this tool item has infinite durability.

If this tool item has infinite durability.

mapper_count [R] :: uint?

How many filters an upgrade item has.

How many filters an upgrade item has.

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.

Methods

has_flag(flag)  → boolean

Does this prototype have a flag enabled?

Parameters

flag :: string

The flag to check. Can be one of ItemPrototypeFlags. Any other value will cause an error.

The flag to check. Can be one of ItemPrototypeFlags. Any other value will cause an error.


get_ammo_type(ammo_source_type?)  → AmmoType?

The type of this ammo prototype.

Parameters

ammo_source_type :: string?

One of "default", "player", "turret", or "vehicle". Defaults to "default".

One of "default", "player", "turret", or "vehicle". Defaults to "default".

Can only be used if this is AmmoItem

help()  → string

All methods and properties that this object supports.

Attributes

type :: string Read

Type of this prototype. E.g. "gun" or "mining-tool".


name :: string Read

Name of this prototype.


localised_name :: LocalisedString Read


localised_description :: LocalisedString Read


order :: string Read

The string used to alphabetically sort these prototypes. It is a simple string that has no additional semantic meaning.


place_result :: LuaEntityPrototype? Read

Prototype of the entity that will be created by placing this item, if any.


place_as_equipment_result :: LuaEquipmentPrototype? Read

Prototype of the equipment that will be created by placing this item in an equipment grid, if any.


place_as_tile_result :: PlaceAsTileResult? Read

The place-as-tile result if one is defined, if any.


stackable :: boolean Read

Is this item allowed to stack at all?


default_request_amount :: uint Read

The default request value.


stack_size :: uint Read

Maximum stack size of the item specified by this prototype.


wire_count :: uint Read

The number of items needed to connect two entities with this as wire.


fuel_category :: string? Read

The fuel category of this item prototype, if any.


burnt_result :: LuaItemPrototype? Read

The result of burning this item as fuel, if any.


fuel_value :: float Read

Fuel value when burned.


fuel_acceleration_multiplier :: double Read

The acceleration multiplier when this item is used as fuel in a vehicle.


fuel_top_speed_multiplier :: double Read

The fuel top speed multiplier when this item is used as fuel in a vehicle.


fuel_emissions_multiplier :: double Read

The emissions multiplier if this is used as fuel.


subgroup :: LuaGroup Read

The subgroup this prototype belongs to.


group :: LuaGroup Read

The group this prototype belongs to.


flags :: ItemPrototypeFlags Read

The flags for this item prototype.


rocket_launch_products :: array[Product] Read

The results of launching this item in a rocket.


can_be_mod_opened :: boolean Read

If this item can be mod-opened.


magazine_size :: float? Read

Size of full magazine.

Can only be used if this is AmmoItem

reload_time :: float? Read

Amount of extra time (in ticks) it takes to reload the weapon after depleting the magazine.

Can only be used if this is AmmoItem

equipment_grid :: LuaEquipmentGridPrototype? Read

The prototype of this armor equipment grid, if any.

Can only be used if this is Armor

resistances :: dictionary[string → Resistance]? Read

Resistances of this armor item, if any, indexed by damage type name.

Can only be used if this is Armor

inventory_size_bonus :: uint? Read

The inventory size bonus for this armor prototype.

Can only be used if this is ArmorPrototype

capsule_action :: CapsuleAction? Read

The capsule action for this capsule item prototype.

Can only be used if this is Capsule

attack_parameters :: AttackParameters? Read

The gun attack parameters.

Can only be used if this is Gun

inventory_size :: uint? Read

The main inventory size for item-with-inventory-prototype.

Can only be used if this is ItemWithInventoryPrototype

item_filters :: dictionary[string → LuaItemPrototype]? Read

Can only be used if this is ItemWithInventory

item_group_filters :: dictionary[string → LuaGroup]? Read

Can only be used if this is ItemWithInventory

item_subgroup_filters :: dictionary[string → LuaGroup]? Read

Can only be used if this is ItemWithInventory

filter_mode :: string? Read

The filter mode used by this item with inventory.

Can only be used if this is ItemWithInventory

insertion_priority_mode :: string? Read

The insertion priority mode used by this item with inventory.

Can only be used if this is ItemWithInventory

localised_filter_message :: LocalisedString? Read

The localised string used when the player attempts to put items into this item with inventory that aren't allowed.

Can only be used if this is ItemWithInventory

extend_inventory_by_default :: boolean? Read

If this item with inventory extends the inventory it resides in by default.

Can only be used if this is ItemWithInventory

default_label_color :: Color? Read

The default label color used for this item with label, if any.

Can only be used if this is ItemWithLabel

draw_label_for_cursor_render :: boolean? Read

If true, and this item with label has a label it is drawn in place of the normal number when held in the cursor.

Can only be used if this is ItemWithLabel

speed :: float? Read

The repairing speed if this is a repairing tool.

Can only be used if this is RepairTool

module_effects :: ModuleEffects? Read

Effects of this module.

Can only be used if this is ModuleItem

category :: string? Read

The name of a LuaModuleCategoryPrototype. Used when upgrading modules: Ctrl + click modules into an entity and it will replace lower tier modules of the same category with higher tier modules.

Can only be used if this is ModuleItem

tier :: uint? Read

Tier of the module inside its category. Used when upgrading modules: Ctrl + click modules into an entity and it will replace lower tier modules with higher tier modules if they have the same category.

Can only be used if this is ModuleItem

limitations :: array[string]? Read

An array of recipe names this module is allowed to work with. Empty when all recipes are allowed.

Can only be used if this is ModuleItem

limitation_message_key :: string? Read

The limitation message key used when the player attempts to use this modules in some place it's not allowed.

Can only be used if this is ModuleItem

straight_rail :: LuaEntityPrototype? Read

The straight rail prototype used for this rail planner prototype.

Can only be used if this is RailPlanner

curved_rail :: LuaEntityPrototype? Read

The curved rail prototype used for this rail planner prototype.

Can only be used if this is RailPlanner

repair_result :: array[TriggerItem]? Read

The repair result of this repair tool prototype.

Can only be used if this is RepairTool

selection_border_color :: Color? Read

The color used when doing normal selection with this selection tool prototype.

Can only be used if this is SelectionTool

alt_selection_border_color :: Color? Read

The color used when doing alt selection with this selection tool prototype.

Can only be used if this is SelectionTool

reverse_selection_border_color :: Color? Read

The color used when doing reverse selection with this selection tool prototype.

Can only be used if this is SelectionTool

alt_reverse_selection_border_color :: Color? Read

The color used when doing alt reverse selection with this selection tool prototype.

Can only be used if this is SelectionTool

selection_mode_flags :: SelectionModeFlags? Read

Flags that affect which entities will be selected.

Can only be used if this is SelectionTool

alt_selection_mode_flags :: SelectionModeFlags? Read

Flags that affect which entities will be selected during alternate selection.

Can only be used if this is SelectionTool

reverse_selection_mode_flags :: SelectionModeFlags? Read

Flags that affect which entities will be selected during reverse selection.

Can only be used if this is SelectionTool

alt_reverse_selection_mode_flags :: SelectionModeFlags? Read

Flags that affect which entities will be selected during alt reverse selection.

Can only be used if this is SelectionTool

selection_cursor_box_type :: string? Read

Can only be used if this is SelectionTool

alt_selection_cursor_box_type :: string? Read

Can only be used if this is SelectionTool

reverse_selection_cursor_box_type :: string? Read

Can only be used if this is SelectionTool

alt_reverse_selection_cursor_box_type :: string? Read

Can only be used if this is SelectionTool

always_include_tiles :: boolean? Read

If tiles area always included when doing selection with this selection tool prototype.

Can only be used if this is SelectionTool

entity_filter_mode :: string? Read

The entity filter mode used by this selection tool.

Can only be used if this is SelectionTool

alt_entity_filter_mode :: string? Read

The alt entity filter mode used by this selection tool.

Can only be used if this is SelectionTool

reverse_alt_entity_filter_mode :: string? Read

The reverse entity filter mode used by this selection tool.

Can only be used if this is SelectionTool

alt_reverse_alt_entity_filter_mode :: string? Read

The alt reverse entity filter mode used by this selection tool.

Can only be used if this is SelectionTool

tile_filter_mode :: string? Read

The tile filter mode used by this selection tool.

Can only be used if this is SelectionTool

alt_tile_filter_mode :: string? Read

The alt tile filter mode used by this selection tool.

Can only be used if this is SelectionTool

reverse_tile_filter_mode :: string? Read

The reverse tile filter mode used by this selection tool.

Can only be used if this is SelectionTool

alt_reverse_tile_filter_mode :: string? Read

The alt reverse tile filter mode used by this selection tool.

Can only be used if this is SelectionTool

entity_filters :: dictionary[string → LuaEntityPrototype]? Read

The entity filters used by this selection tool indexed by entity name.

Can only be used if this is SelectionTool

alt_entity_filters :: dictionary[string → LuaEntityPrototype]? Read

The alt entity filters used by this selection tool indexed by entity name.

Can only be used if this is SelectionTool

reverse_entity_filters :: dictionary[string → LuaEntityPrototype]? Read

The reverse entity filters used by this selection tool indexed by entity name.

Can only be used if this is SelectionTool

alt_reverse_entity_filters :: dictionary[string → LuaEntityPrototype]? Read

The alt reverse entity filters used by this selection tool indexed by entity name.

Can only be used if this is SelectionTool

entity_type_filters :: dictionary[string → boolean]? Read

The entity type filters used by this selection tool indexed by entity type.

Note

The boolean value is meaningless and is used to allow easy lookup if a type exists in the dictionary.

Can only be used if this is SelectionTool

alt_entity_type_filters :: dictionary[string → boolean]? Read

The alt entity type filters used by this selection tool indexed by entity type.

Note

The boolean value is meaningless and is used to allow easy lookup if a type exists in the dictionary.

Can only be used if this is SelectionTool

reverse_entity_type_filters :: dictionary[string → boolean]? Read

The reverse entity type filters used by this selection tool indexed by entity type.

Note

The boolean value is meaningless and is used to allow easy lookup if a type exists in the dictionary.

Can only be used if this is SelectionTool

alt_reverse_entity_type_filters :: dictionary[string → boolean]? Read

The alt reverse entity type filters used by this selection tool indexed by entity type.

Note

The boolean value is meaningless and is used to allow easy lookup if a type exists in the dictionary.

Can only be used if this is SelectionTool

tile_filters :: dictionary[string → LuaTilePrototype]? Read

The tile filters used by this selection tool indexed by tile name.

Can only be used if this is SelectionTool

alt_tile_filters :: dictionary[string → LuaTilePrototype]? Read

The alt tile filters used by this selection tool indexed by tile name.

Can only be used if this is SelectionTool

reverse_tile_filters :: dictionary[string → LuaTilePrototype]? Read

The reverse tile filters used by this selection tool indexed by tile name.

Can only be used if this is SelectionTool

alt_reverse_tile_filters :: dictionary[string → LuaTilePrototype]? Read

The alt reverse tile filters used by this selection tool indexed by tile name.

Can only be used if this is SelectionTool

entity_filter_slots :: uint? Read

The number of entity filters this deconstruction item has.

Can only be used if this is DeconstructionItem

tile_filter_slots :: uint? Read

The number of tile filters this deconstruction item has.

Can only be used if this is DeconstructionItem

durability_description_key :: string? Read

The durability message key used when displaying the durability of this tool.

Can only be used if this is ToolItem

durability :: double? Read

The durability of this tool item.

Can only be used if this is ToolItem

infinite :: boolean? Read

If this tool item has infinite durability.

Can only be used if this is ToolItem

mapper_count :: uint? Read

How many filters an upgrade item has.

Can only be used if this is UpgradeItem

valid :: boolean Read

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 :: string Read

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.

Classes

Events

Concepts

Defines

Builtin types

>|