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

# Factorio Runtime Docs Version 2.0.77

# LuaItemCommon - Runtime Docs

## Class LuaItemCommon abstract

Common methods related to usage of item with data. It is useful when LuaItemStack contains item with data or in general with LuaItem as it can only point at an item with data.

Children LuaItem LuaItemStack

## Members

get_inventory(inventory) | → LuaInventory? | Access the inner inventory of an item.
Access the inner inventory of an item.
clear_blueprint() |  | Clears this blueprint item.
Clears this blueprint item.
is_blueprint_setup() | → boolean | Is this blueprint item setup? [...]
Is this blueprint item setup? [...]
build_blueprint{surface=…, force=…, position=…, direction?=…, build_mode?=…, skip_fog_of_war?=…, by_player?=…, raise_built?=…} | → array[LuaEntity] | Build this blueprint at the given location. [...]
Build this blueprint at the given location. [...]
create_blueprint{surface=…, force=…, area=…, always_include_tiles?=…, include_entities?=…, include_modules?=…, include_station_names?=…, include_trains?=…, include_fuel?=…} | → dictionary[uint32 → LuaEntity] | Sets up this blueprint using the found blueprintable entities/tiles on the surface.
Sets up this blueprint using the found blueprintable entities/tiles on the surface.
get_blueprint_entity_tags(index) | → Tags | Gets the tags for the given blueprint entity index in this blueprint item.
Gets the tags for the given blueprint entity index in this blueprint item.
set_blueprint_entity_tags(index, tags) |  | Sets the tags on the given blueprint entity index in this blueprint item.
Sets the tags on the given blueprint entity index in this blueprint item.
get_blueprint_entity_tag(index, tag) | → AnyBasic? | Gets the given tag on the given blueprint entity index in this blueprint item.
Gets the given tag on the given blueprint entity index in this blueprint item.
set_blueprint_entity_tag(index, tag, value) |  | Sets the given tag on the given blueprint entity index in this blueprint item.
Sets the given tag on the given blueprint entity index in this blueprint item.
get_blueprint_entities() | → array[BlueprintEntity]? | The entities in this blueprint.
The entities in this blueprint.
set_blueprint_entities(entities) |  | Set new entities to be a part of this blueprint.
Set new entities to be a part of this blueprint.
get_blueprint_tiles() | → array[Tile]? | A list of the tiles in this blueprint.
A list of the tiles in this blueprint.
set_blueprint_tiles(tiles) |  | Set specific tiles in this blueprint.
Set specific tiles in this blueprint.
get_blueprint_entity_count() | → uint32 | Gets the number of entities in this blueprint item.
Gets the number of entities in this blueprint item.
get_tag(tag_name) | → AnyBasic? | Gets the tag with the given name or returns `nil` if it doesn't exist.
Gets the tag with the given name or returns `nil` if it doesn't exist.
set_tag(tag_name, tag) |  | Sets the tag with the given name and value.
Sets the tag with the given name and value.
remove_tag(tag) | → boolean | Removes a tag with the given name.
Removes a tag with the given name.
get_entity_filter(index) | → ItemFilter? | Gets the entity filter at the given index for this deconstruction item.
Gets the entity filter at the given index for this deconstruction item.
set_entity_filter(index, filter) | → boolean | Sets the entity filter at the given index for this deconstruction item.
Sets the entity filter at the given index for this deconstruction item.
get_tile_filter(index) | → string? | Gets the tile filter at the given index for this deconstruction item.
Gets the tile filter at the given index for this deconstruction item.
set_tile_filter(index, filter) | → boolean | Sets the tile filter at the given index for this deconstruction item.
Sets the tile filter at the given index for this deconstruction item.
deconstruct_area{surface=…, force=…, area=…, skip_fog_of_war?=…, by_player?=…, super_forced?=…} |  | Deconstruct the given area with this deconstruction item.
Deconstruct the given area with this deconstruction item.
cancel_deconstruct_area{surface=…, force=…, area=…, skip_fog_of_war?=…, by_player?=…, super_forced?=…} |  | Cancel deconstruct the given area with this deconstruction item.
Cancel deconstruct the given area with this deconstruction item.
clear_deconstruction_item() |  | Clears all settings/filters on this deconstruction item resetting it to default values.
Clears all settings/filters on this deconstruction item resetting it to default values.
clear_upgrade_item() |  | Clears all settings/filters on this upgrade item resetting it to default values.
Clears all settings/filters on this upgrade item resetting it to default values.
get_mapper(index, type) | → UpgradeMapperSource or UpgradeMapperDestination? | Gets the filter at the given index for this upgrade item. [...]
Gets the filter at the given index for this upgrade item. [...]
set_mapper(index, type, mapper) |  | Sets the module filter at the given index for this upgrade item. [...]
Sets the module filter at the given index for this upgrade item. [...]
is_blueprint | :: R boolean | If this is a blueprint item.
If this is a blueprint item.
is_blueprint_book | :: R boolean | If this is a blueprint book item.
If this is a blueprint book item.
is_item_with_label | :: R boolean | If this is an item with label item.
If this is an item with label item.
is_item_with_inventory | :: R boolean | If this is an item with inventory item.
If this is an item with inventory item.
is_item_with_entity_data | :: R boolean | If this is an item with entity data item.
If this is an item with entity data item.
is_selection_tool | :: R boolean | If this is a selection tool item.
If this is a selection tool item.
is_item_with_tags | :: R boolean | If this is an item with tags item.
If this is an item with tags item.
is_deconstruction_item | :: R boolean | If this is a deconstruction tool item.
If this is a deconstruction tool item.
is_upgrade_item | :: R boolean | If this is a upgrade item.
If this is a upgrade item.
is_tool | :: R boolean | If this is a tool item.
If this is a tool item.
is_ammo | :: R boolean | If this is an ammo item.
If this is an ammo item.
is_armor | :: R boolean | If this is an armor item.
If this is an armor item.
is_repair_tool | :: R boolean | If this is a repair tool item.
If this is a repair tool item.
item_number | :: R uint64? | The unique identifier for this item, if any. [...]
The unique identifier for this item, if any. [...]
preview_icons | :: RW array[BlueprintSignalIcon]? | Icons of this blueprint item, blueprint book, deconstruction item or upgrade planner. [...]
Icons of this blueprint item, blueprint book, deconstruction item or upgrade planner. [...]
grid | :: R LuaEquipmentGrid? | The equipment grid of this item, if any.
The equipment grid of this item, if any.
owner_location | :: R ItemLocationData | The location of this item if it can be found.
The location of this item if it can be found.
blueprint_snap_to_grid | :: RW TilePosition? | The snapping grid size in this blueprint item. [...]
The snapping grid size in this blueprint item. [...]
blueprint_position_relative_to_grid | :: RW TilePosition? | The offset from the absolute grid. [...]
The offset from the absolute grid. [...]
blueprint_absolute_snapping | :: RW boolean | If absolute snapping is enabled on this blueprint item.
If absolute snapping is enabled on this blueprint item.
blueprint_description | :: RW string | The description for this blueprint or blueprint book
The description for this blueprint or blueprint book
cost_to_build | :: R array[ItemWithQualityCount] | List of raw materials required to build this blueprint.
List of raw materials required to build this blueprint.
default_icons | :: R array[BlueprintSignalIcon] | The default icons for a blueprint item.
The default icons for a blueprint item.
active_index | :: RW uint32? | The active blueprint index for this blueprint book. [...]
The active blueprint index for this blueprint book. [...]
label | :: RW string? | The current label for this item, if any.
The current label for this item, if any.
label_color | :: RW Color? | The current label color for this item, if any.
The current label color for this item, if any.
allow_manual_label_change | :: RW boolean | Whether the label for this item can be manually changed. [...]
Whether the label for this item can be manually changed. [...]
entity_label | :: RW string? | If this is an item with entity data, get the stored entity label.
If this is an item with entity data, get the stored entity label.
entity_color | :: RW Color? | If this is an item with entity data, get the stored entity color.
If this is an item with entity data, get the stored entity color.
entity_logistic_sections | :: RW LogisticSections | If this is an item with entity data, get the stored logistic filters.
If this is an item with entity data, get the stored logistic filters.
entity_request_from_buffers | :: RW boolean | If this is an item with entity data, get the stored request from buffer state.
If this is an item with entity data, get the stored request from buffer state.
entity_logistics_enabled | :: RW boolean | If this is an item with entity data, get the stored vehicle logistics enabled state.
If this is an item with entity data, get the stored vehicle logistics enabled state.
entity_enable_logistics_while_moving | :: RW boolean | If this is an item with entity data, get the stored enable logistics while moving state.
If this is an item with entity data, get the stored enable logistics while moving state.
entity_driver_is_gunner | :: RW boolean | If this is an item with entity data, get the stored driver is gunner state.
If this is an item with entity data, get the stored driver is gunner state.
entity_auto_target_without_gunner | :: RW boolean | If this is an item with entity data, get the stored auto target without gunner state.
If this is an item with entity data, get the stored auto target without gunner state.
entity_auto_target_with_gunner | :: RW boolean | If this is an item with entity data, get the stored auto target with gunner state.
If this is an item with entity data, get the stored auto target with gunner state.
tags | :: RW Tags |
custom_description | :: RW LocalisedString | The custom description this item-with-tags. [...]
The custom description this item-with-tags. [...]
entity_filter_count | :: R uint32 | The number of entity filters this deconstruction item supports.
The number of entity filters this deconstruction item supports.
entity_filters | :: RW array[ItemFilter] | The entity filters for this deconstruction item. [...]
The entity filters for this deconstruction item. [...]
tile_filter_count | :: R uint32 | The number of tile filters this deconstruction item supports.
The number of tile filters this deconstruction item supports.
tile_filters | :: RW array[TileID] | The tile filters for this deconstruction item. [...]
The tile filters for this deconstruction item. [...]
entity_filter_mode | :: RW defines.deconstruction_item.entity_filter_mode | The blacklist/whitelist entity filter mode for this deconstruction item.
The blacklist/whitelist entity filter mode for this deconstruction item.
tile_filter_mode | :: RW defines.deconstruction_item.tile_filter_mode | The blacklist/whitelist tile filter mode for this deconstruction item.
The blacklist/whitelist tile filter mode for this deconstruction item.
tile_selection_mode | :: RW defines.deconstruction_item.tile_selection_mode | The tile selection mode for this deconstruction item.
The tile selection mode for this deconstruction item.
trees_and_rocks_only | :: RW boolean | If this deconstruction item is set to allow trees and rocks only.
If this deconstruction item is set to allow trees and rocks only.
mapper_count | :: R uint32 | The current count of mappers in the upgrade item.
The current count of mappers in the upgrade item.
durability | :: RW double | Durability of the contained item. [...]
Durability of the contained item. [...]
ammo | :: RW uint32 | Number of bullets left in the magazine.
Number of bullets left in the magazine.

## Methods

### get_inventory(inventory) → LuaInventory?

Access the inner inventory of an item.

#### Parameters

inventory | :: defines.inventory | Index of the inventory to access, which can only be defines.inventory.item_main.
Index of the inventory to access, which can only be defines.inventory.item_main.

#### Return values

→ LuaInventory? | `nil` if there is no inventory with the given index.

### clear_blueprint()

Clears this blueprint item.

Can only be used if this is BlueprintItem

### is_blueprint_setup() → boolean

Is this blueprint item setup? I.e. is it a non-empty blueprint?

Can only be used if this is BlueprintItem

### build_blueprint{surface=…, force=…, position=…, direction?=…, build_mode?=…, skip_fog_of_war?=…, by_player?=…, raise_built?=…} → array[LuaEntity]

Build this blueprint at the given location.

Built entities can be come invalid between the building of the blueprint and the function returning if by_player or raise_built is used and one of those events invalidates the entity.

#### Parameters

Table with the following fields:

surface | :: SurfaceIdentification | Surface to build on
Surface to build on
force | :: ForceID | Force to use for the building
Force to use for the building
position | :: MapPosition | The position to build at
The position to build at
direction | :: defines.direction? | The direction to use when building
The direction to use when building
build_mode | :: defines.build_mode? | If `normal`, blueprint will not be built if any one thing can't be built. If `forced`, anything that can be built is built and obstructing nature entities will be deconstructed. If `superforced`, all obstructions will be deconstructed and the blueprint will be built.
If `normal`, blueprint will not be built if any one thing can't be built. If `forced`, anything that can be built is built and obstructing nature entities will be deconstructed. If `superforced`, all obstructions will be deconstructed and the blueprint will be built.
skip_fog_of_war | :: boolean? | If chunks covered by fog-of-war are skipped.
If chunks covered by fog-of-war are skipped.
by_player | :: PlayerIdentification? | The player to use if any. If provided defines.events.on_built_entity will also be fired on successful entity creation.
The player to use if any. If provided defines.events.on_built_entity will also be fired on successful entity creation.
raise_built | :: boolean? | If true; defines.events.script_raised_built will be fired on successful entity creation. Note: this is ignored if by_player is provided.
If true; defines.events.script_raised_built will be fired on successful entity creation. Note: this is ignored if by_player is provided.

#### Return values

→ array[LuaEntity] | Array of created ghosts

Can only be used if this is BlueprintItem

### create_blueprint{surface=…, force=…, area=…, always_include_tiles?=…, include_entities?=…, include_modules?=…, include_station_names?=…, include_trains?=…, include_fuel?=…} → dictionary[uint32 → LuaEntity]

Sets up this blueprint using the found blueprintable entities/tiles on the surface.

#### Parameters

Table with the following fields:

surface | :: SurfaceIdentification | Surface to create from
Surface to create from
force | :: ForceID | Force to use for the creation
Force to use for the creation
area | :: BoundingBox | The bounding box
The bounding box
always_include_tiles | :: boolean? | When true, blueprintable tiles are always included in the blueprint. When false they're only included if no entities exist in the setup area. Defaults to false.
When true, blueprintable tiles are always included in the blueprint. When false they're only included if no entities exist in the setup area. Defaults to false.
include_entities | :: boolean? | When true, entities are included in the blueprint. Defaults to true.
When true, entities are included in the blueprint. Defaults to true.
include_modules | :: boolean? | When true, modules are included in the blueprint. Defaults to true.
When true, modules are included in the blueprint. Defaults to true.
include_station_names | :: boolean? | When true, station names are included in the blueprint. Defaults to false.
When true, station names are included in the blueprint. Defaults to false.
include_trains | :: boolean? | When true, trains are included in the blueprint. Defaults to false.
When true, trains are included in the blueprint. Defaults to false.
include_fuel | :: boolean? | When true, train fuel is included in the blueprint, Defaults to true.
When true, train fuel is included in the blueprint, Defaults to true.

#### Return values

→ dictionary[uint32 → LuaEntity] | The blueprint entity index to source entity mapping.

Can only be used if this is BlueprintItem

### get_blueprint_entity_tags(index) → Tags

Gets the tags for the given blueprint entity index in this blueprint item.

#### Parameters

index | :: uint32 |

Can only be used if this is BlueprintItem

### set_blueprint_entity_tags(index, tags)

Sets the tags on the given blueprint entity index in this blueprint item.

#### Parameters

index | :: uint32 | The entity index
The entity index
tags | :: Tags |

Can only be used if this is BlueprintItem

### get_blueprint_entity_tag(index, tag) → AnyBasic?

Gets the given tag on the given blueprint entity index in this blueprint item.

#### Parameters

index | :: uint32 | The entity index.
The entity index.
tag | :: string | The tag to get.
The tag to get.

Can only be used if this is BlueprintItem

### set_blueprint_entity_tag(index, tag, value)

Sets the given tag on the given blueprint entity index in this blueprint item.

#### Parameters

index | :: uint32 | The entity index.
The entity index.
tag | :: string | The tag to set.
The tag to set.
value | :: AnyBasic | The tag value to set or `nil` to clear the tag.
The tag value to set or `nil` to clear the tag.

Can only be used if this is BlueprintItem

### get_blueprint_entities() → array[BlueprintEntity]?

The entities in this blueprint.

Can only be used if this is BlueprintItem

### set_blueprint_entities(entities)

Set new entities to be a part of this blueprint.

#### Parameters

entities | :: array[BlueprintEntity] | The new blueprint entities.
The new blueprint entities.

Can only be used if this is BlueprintItem

### get_blueprint_tiles() → array[Tile]?

A list of the tiles in this blueprint.

Can only be used if this is BlueprintItem

### set_blueprint_tiles(tiles)

Set specific tiles in this blueprint.

#### Parameters

tiles | :: array[Tile] | Tiles to be a part of the blueprint.
Tiles to be a part of the blueprint.

Can only be used if this is BlueprintItem

### get_blueprint_entity_count() → uint32

Gets the number of entities in this blueprint item.

Can only be used if this is BlueprintItem

### get_tag(tag_name) → AnyBasic?

Gets the tag with the given name or returns `nil` if it doesn't exist.

#### Parameters

tag_name | :: string |

Can only be used if this is ItemWithTags

### set_tag(tag_name, tag)

Sets the tag with the given name and value.

#### Parameters

tag_name | :: string |
tag | :: AnyBasic |

Can only be used if this is ItemWithTags

### remove_tag(tag) → boolean

Removes a tag with the given name.

#### Parameters

tag | :: string |

#### Return values

→ boolean | If the tag existed and was removed.

Can only be used if this is ItemWithTags

### get_entity_filter(index) → ItemFilter?

Gets the entity filter at the given index for this deconstruction item.

#### Parameters

index | :: uint32 |

Can only be used if this is DeconstructionItem

### set_entity_filter(index, filter) → boolean

Sets the entity filter at the given index for this deconstruction item.

#### Parameters

index | :: uint32 |
filter | :: ItemFilter or nil | Writing `nil` removes the filter.
Writing `nil` removes the filter.

#### Return values

→ boolean | Whether the new filter was successfully set (meaning it was valid).

Can only be used if this is DeconstructionItem

### get_tile_filter(index) → string?

Gets the tile filter at the given index for this deconstruction item.

#### Parameters

index | :: uint32 |

Can only be used if this is DeconstructionItem

### set_tile_filter(index, filter) → boolean

Sets the tile filter at the given index for this deconstruction item.

#### Parameters

index | :: uint32 |
filter | :: string or LuaTilePrototype or LuaTile or nil | Writing `nil` removes the filter.
Writing `nil` removes the filter.

#### Return values

→ boolean | Whether the new filter was successfully set (meaning it was valid).

Can only be used if this is DeconstructionItem

### deconstruct_area{surface=…, force=…, area=…, skip_fog_of_war?=…, by_player?=…, super_forced?=…}

Deconstruct the given area with this deconstruction item.

#### Parameters

Table with the following fields:

surface | :: SurfaceIdentification | Surface to deconstruct on
Surface to deconstruct on
force | :: ForceID | Force to use for the deconstruction
Force to use for the deconstruction
area | :: BoundingBox | The area to deconstruct
The area to deconstruct
skip_fog_of_war | :: boolean? | If chunks covered by fog-of-war are skipped. Defaults to `false`.
If chunks covered by fog-of-war are skipped. Defaults to `false`.
by_player | :: PlayerIdentification? | The player to use if any.
The player to use if any.
super_forced | :: boolean? | If the deconstruction is super-forced. Defaults to `false`.
If the deconstruction is super-forced. Defaults to `false`.

Can only be used if this is DeconstructionItem

### cancel_deconstruct_area{surface=…, force=…, area=…, skip_fog_of_war?=…, by_player?=…, super_forced?=…}

Cancel deconstruct the given area with this deconstruction item.

#### Parameters

Table with the following fields:

surface | :: SurfaceIdentification | Surface to cancel deconstruct on
Surface to cancel deconstruct on
force | :: ForceID | Force to use for canceling deconstruction
Force to use for canceling deconstruction
area | :: BoundingBox | The area to deconstruct
The area to deconstruct
skip_fog_of_war | :: boolean? | If chunks covered by fog-of-war are skipped. Defaults to `false`.
If chunks covered by fog-of-war are skipped. Defaults to `false`.
by_player | :: PlayerIdentification? | The player to use if any.
The player to use if any.
super_forced | :: boolean? | If the cancel deconstruction is super-forced. Defaults to `false`.
If the cancel deconstruction is super-forced. Defaults to `false`.

Can only be used if this is DeconstructionItem

### clear_deconstruction_item()

Clears all settings/filters on this deconstruction item resetting it to default values.

Can only be used if this is DeconstructionItem

### clear_upgrade_item()

Clears all settings/filters on this upgrade item resetting it to default values.

Can only be used if this is UpgradeItem

### get_mapper(index, type) → UpgradeMapperSource or UpgradeMapperDestination?

Gets the filter at the given index for this upgrade item. Note that sources (`"from"` type) that are undefined will read as `{type = "item"}`, while destinations (`"to"` type) that are undefined will read as `nil`.

In contrast to LuaItemCommon::set_mapper, indices past the upgrade item's current size are considered to be out of bounds.

#### Parameters

index | :: uint32 | The index of the mapper to read.
The index of the mapper to read.
type | :: `"from"` or `"to"` |

Can only be used if this is UpgradeItem

### set_mapper(index, type, mapper)

Sets the module filter at the given index for this upgrade item.

In contrast to LuaItemCommon::get_mapper, indices past the upgrade item's current size are valid and expand the list of mappings accordingly, if within reasonable bounds.

#### Parameters

index | :: uint32 | The index of the mapper to set.
The index of the mapper to set.
type | :: `"from"` or `"to"` |
mapper | :: UpgradeMapperSource or UpgradeMapperDestination or nil | The mapper to set. Set `nil` to clear the mapper.
The mapper to set. Set `nil` to clear the mapper.

Can only be used if this is UpgradeItem

## Attributes

### is_blueprint :: Read boolean

If this is a blueprint item.

### is_blueprint_book :: Read boolean

If this is a blueprint book item.

### is_item_with_label :: Read boolean

If this is an item with label item.

### is_item_with_inventory :: Read boolean

If this is an item with inventory item.

### is_item_with_entity_data :: Read boolean

If this is an item with entity data item.

### is_selection_tool :: Read boolean

If this is a selection tool item.

### is_item_with_tags :: Read boolean

If this is an item with tags item.

### is_deconstruction_item :: Read boolean

If this is a deconstruction tool item.

### is_upgrade_item :: Read boolean

If this is a upgrade item.

### is_tool :: Read boolean

If this is a tool item.

### is_ammo :: Read boolean

If this is an ammo item.

### is_armor :: Read boolean

If this is an armor item.

### is_repair_tool :: Read boolean

If this is a repair tool item.

### item_number :: Read uint64?

The unique identifier for this item, if any. Note that this ID stays the same no matter where the item is moved to.

### preview_icons :: Read|Write array[BlueprintSignalIcon]?

Icons of this blueprint item, blueprint book, deconstruction item or upgrade planner. An item that doesn't have icons returns `nil` on read and throws error on write.

### grid :: Read LuaEquipmentGrid?

The equipment grid of this item, if any.

### owner_location :: Read ItemLocationData

The location of this item if it can be found.

### blueprint_snap_to_grid :: Read|Write TilePosition?

The snapping grid size in this blueprint item. `nil` if snapping is not enabled.

Can only be used if this is BlueprintItem

### blueprint_position_relative_to_grid :: Read|Write TilePosition?

The offset from the absolute grid. `nil` if absolute snapping is not enabled.

Can only be used if this is BlueprintItem

### blueprint_absolute_snapping :: Read|Write boolean

If absolute snapping is enabled on this blueprint item.

Can only be used if this is BlueprintItem

### blueprint_description :: Read|Write string

The description for this blueprint or blueprint book

Can only be used if this is BlueprintItem or BlueprintBookItem

### cost_to_build :: Read array[ItemWithQualityCount]

List of raw materials required to build this blueprint.

Can only be used if this is BlueprintItem

### default_icons :: Read array[BlueprintSignalIcon]

The default icons for a blueprint item.

Can only be used if this is BlueprintItem

### active_index :: Read|Write uint32?

The active blueprint index for this blueprint book. `nil` if this blueprint book is empty.

Can only be used if this is BlueprintBookItem

### label :: Read|Write string?

The current label for this item, if any.

Can only be used if this is ItemWithLabel

### label_color :: Read|Write Color?

The current label color for this item, if any.

Can only be used if this is ItemWithLabel

### allow_manual_label_change :: Read|Write boolean

Whether the label for this item can be manually changed. When false the label can only be changed through the API.

Can only be used if this is ItemWithLabel

### entity_label :: Read|Write string?

If this is an item with entity data, get the stored entity label.

Can only be used if this is ItemWithEntityData

### entity_color :: Read|Write Color?

If this is an item with entity data, get the stored entity color.

Can only be used if this is ItemWithEntityData

### entity_logistic_sections :: Read|Write LogisticSections

If this is an item with entity data, get the stored logistic filters.

Can only be used if this is ItemWithEntityData

### entity_request_from_buffers :: Read|Write boolean

If this is an item with entity data, get the stored request from buffer state.

Can only be used if this is ItemWithEntityData

### entity_logistics_enabled :: Read|Write boolean

If this is an item with entity data, get the stored vehicle logistics enabled state.

Can only be used if this is ItemWithEntityData

### entity_enable_logistics_while_moving :: Read|Write boolean

If this is an item with entity data, get the stored enable logistics while moving state.

Can only be used if this is ItemWithEntityData

### entity_driver_is_gunner :: Read|Write boolean

If this is an item with entity data, get the stored driver is gunner state.

Can only be used if this is ItemWithEntityData

### entity_auto_target_without_gunner :: Read|Write boolean

If this is an item with entity data, get the stored auto target without gunner state.

Can only be used if this is ItemWithEntityData

### entity_auto_target_with_gunner :: Read|Write boolean

If this is an item with entity data, get the stored auto target with gunner state.

Can only be used if this is ItemWithEntityData

### tags :: Read|Write Tags

Can only be used if this is ItemWithTags

### custom_description :: Read|Write LocalisedString

The custom description this item-with-tags. This is shown over the normal item description if this is set to a non-empty value.

Can only be used if this is ItemWithTags

### entity_filter_count :: Read uint32

The number of entity filters this deconstruction item supports.

Can only be used if this is DeconstructionItem

### entity_filters :: Read|Write array[ItemFilter]

The entity filters for this deconstruction item. The attribute is a sparse array with the keys representing the index of the filter. All prototypes in this array must not have the `"not-deconstructable"` flag set and are either a `cliff` or marked as `minable`.

Can only be used if this is DeconstructionItem

### tile_filter_count :: Read uint32

The number of tile filters this deconstruction item supports.

Can only be used if this is DeconstructionItem

### tile_filters :: Read|Write array[TileID]

The tile filters for this deconstruction item. The attribute is a sparse array with the keys representing the index of the filter. Reading filters always returns an array of strings which are the tile prototype names.

Can only be used if this is DeconstructionItem

### entity_filter_mode :: Read|Write defines.deconstruction_item.entity_filter_mode

The blacklist/whitelist entity filter mode for this deconstruction item.

Can only be used if this is DeconstructionItem

### tile_filter_mode :: Read|Write defines.deconstruction_item.tile_filter_mode

The blacklist/whitelist tile filter mode for this deconstruction item.

Can only be used if this is DeconstructionItem

### tile_selection_mode :: Read|Write defines.deconstruction_item.tile_selection_mode

The tile selection mode for this deconstruction item.

Can only be used if this is DeconstructionItem

### trees_and_rocks_only :: Read|Write boolean

If this deconstruction item is set to allow trees and rocks only.

Can only be used if this is DeconstructionItem

### mapper_count :: Read uint32

The current count of mappers in the upgrade item.

Can only be used if this is UpgradeItem

### durability :: Read|Write double

Durability of the contained item. Automatically capped at the item's maximum durability.

Can only be used if this is Tool

### ammo :: Read|Write uint32

Number of bullets left in the magazine.

Can only be used if this is AmmoItem