Factorio Runtime DocsVersion 2.0.26

ClassLuaInventory

A storage of item stacks.

Members

clear()

Make this inventory empty.

Make this inventory empty.

can_insert(items) boolean

Can at least some items be inserted?

Can at least some items be inserted?

insert(items) uint

Insert items into this inventory.

Insert items into this inventory.

remove(items) uint

Remove items from this inventory.

Remove items from this inventory.

get_item_count(item?) changeduint

Get the number of all or some items in this inventory.

Get the number of all or some items in this inventory.

is_empty() boolean

Does this inventory contain nothing?

Does this inventory contain nothing?

is_full() boolean

Is every stack in this inventory full? [...]

Is every stack in this inventory full? [...]

get_contents() changed → array[ItemWithQualityCounts]

Get counts of all items in this inventory.

Get counts of all items in this inventory.

supports_bar() boolean

Does this inventory support a bar? [...]

Does this inventory support a bar? [...]

get_bar() uint

Get the current bar. [...]

Get the current bar. [...]

set_bar(bar?)

Set the current bar. [...]

Set the current bar. [...]

supports_filters() boolean

If this inventory supports filters.

If this inventory supports filters.

is_filtered() boolean

If this inventory supports filters and has at least 1 filter set.

If this inventory supports filters and has at least 1 filter set.

can_set_filter(index, filter) changedboolean

If the given inventory slot filter can be set to the given filter.

If the given inventory slot filter can be set to the given filter.

get_filter(index) changedItemFilter?

Gets the filter for the given item stack index.

Gets the filter for the given item stack index.

set_filter(index, filter) changedboolean

Sets the filter for the given item stack index. [...]

Sets the filter for the given item stack index. [...]

find_item_stack(item) changedLuaItemStack?, uint?

Finds the first LuaItemStack in the inventory that matches the given item name.

Finds the first LuaItemStack in the inventory that matches the given item name.

find_empty_stack(item?) changedLuaItemStack?, uint?

Finds the first empty stack. [...]

Finds the first empty stack. [...]

count_empty_stacks(include_filtered?, include_bar?) uint

Counts the number of empty stacks.

Counts the number of empty stacks.

get_insertable_count(item) changeduint

Gets the number of the given item that can be inserted into this inventory. [...]

Gets the number of the given item that can be inserted into this inventory. [...]

sort_and_merge()

Sorts and merges the items in this inventory.

Sorts and merges the items in this inventory.

resize(size)

Resizes the inventory. [...]

Resizes the inventory. [...]

destroy()

Destroys this inventory. [...]

Destroys this inventory. [...]

index :: R defines.inventory?

The inventory index this inventory uses, if any.

The inventory index this inventory uses, if any.

entity_owner :: R LuaEntity?

The entity that owns this inventory, if any.

The entity that owns this inventory, if any.

player_owner :: R LuaPlayer?

The player that owns this inventory, if any.

The player that owns this inventory, if any.

equipment_owner :: R LuaEquipment?

The equipment that owns this inventory, if any.

The equipment that owns this inventory, if any.

mod_owner :: R string?

The mod that owns this inventory, if any.

The mod that owns this inventory, if any.

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. [...]

[] (index) :: R LuaItemStack

The indexing operator.

The indexing operator.

# (length) :: R uint

Get the number of slots in this inventory.

Get the number of slots in this inventory.

Methods

clear()

Make this inventory empty.


can_insert(items) → boolean

Can at least some items be inserted?

Parameters

items :: ItemStackIdentification

Items that would be inserted.

Items that would be inserted.

Return values

→ boolean

true if at least a part of the given items could be inserted into this inventory.


insert(items) → uint

Insert items into this inventory.

Parameters

items :: ItemStackIdentification

Items to insert.

Items to insert.

Return values

→ uint

Number of items actually inserted.


remove(items) → uint

Remove items from this inventory.

Parameters

items :: ItemStackIdentification

Items to remove.

Items to remove.

Return values

→ uint

Number of items actually removed.


get_item_count(item?) → uintchanged

Get the number of all or some items in this inventory.

Parameters

item :: ItemWithQualityID?

The item to count. If not specified, count all items.

The item to count. If not specified, count all items.


is_empty() → boolean

Does this inventory contain nothing?


is_full() → boolean

Is every stack in this inventory full? Ignores stacks blocked by the current bar.


get_contents() → array[ItemWithQualityCounts] changed

Get counts of all items in this inventory.

Return values

→ array[ItemWithQualityCounts]

List of all items in the inventory.


supports_bar() → boolean

Does this inventory support a bar? Bar is the draggable red thing, found for example on chests, that limits the portion of the inventory that may be manipulated by machines.

"Supporting a bar" doesn't mean that the bar is set to some nontrivial value. Supporting a bar means the inventory supports having this limit at all. The character's inventory is an example of an inventory without a bar; the wooden chest's inventory is an example of one with a bar.


get_bar() → uint

Get the current bar. This is the index at which the red area starts.

Only useable if this inventory supports having a bar.


set_bar(bar?)

Set the current bar.

Only useable if this inventory supports having a bar.

Parameters

bar :: uint?

The new limit. Omitting this parameter will clear the limit.

The new limit. Omitting this parameter will clear the limit.


supports_filters() → boolean

If this inventory supports filters.


is_filtered() → boolean

If this inventory supports filters and has at least 1 filter set.


can_set_filter(index, filter) → booleanchanged

If the given inventory slot filter can be set to the given filter.

Parameters

index :: uint

The item stack index

The item stack index

filter :: ItemFilter

The item filter

The item filter


get_filter(index) → ItemFilter?changed

Gets the filter for the given item stack index.

Parameters

index :: uint

The item stack index

The item stack index

Return values

→ ItemFilter?

The current filter or nil if none.


set_filter(index, filter) → booleanchanged

Sets the filter for the given item stack index.

Some inventory slots don't allow some filters (gun ammo can't be filtered for non-ammo).

Parameters

index :: uint

The item stack index.

The item stack index.

filter :: ItemFilter or nil

The new filter. nil erases any existing filter.

The new filter. nil erases any existing filter.

Return values

→ boolean

If the filter was allowed to be set.


find_item_stack(item) → LuaItemStack?, uint?changed

Finds the first LuaItemStack in the inventory that matches the given item name.

Parameters

item :: ItemWithQualityID

The item to find

The item to find

Return values

→ LuaItemStack?

The first matching stack, or nil if none match.

→ uint?

The stack index of the matching stack, if any is found.


find_empty_stack(item?) → LuaItemStack?, uint?changed

Finds the first empty stack. Filtered slots are excluded unless a filter item is given.

Parameters

item :: ItemWithQualityID?

If given, empty stacks that are filtered for this item will be included.

If given, empty stacks that are filtered for this item will be included.

Return values

→ LuaItemStack?

The first empty stack, or nil if there aren't any empty stacks.

→ uint?

The stack index of the matching stack, if any is found.


count_empty_stacks(include_filtered?, include_bar?) → uint

Counts the number of empty stacks.

Parameters

include_filtered :: boolean?

If true, filtered slots will be included. Defaults to false.

If true, filtered slots will be included. Defaults to false.

include_bar :: boolean?

If true, slots blocked by the current bar will be included. Defaults to true.

If true, slots blocked by the current bar will be included. Defaults to true.


get_insertable_count(item) → uintchanged

Gets the number of the given item that can be inserted into this inventory.

This is a "best guess" number; things like assembling machine filtered slots, module slots, items with durability, and items with mixed health will cause the result to be inaccurate. The main use for this is in checking how many of a basic item can fit into a basic inventory.

This accounts for the 'bar' on the inventory.

Parameters

item :: ItemWithQualityID

The item to check.

The item to check.


sort_and_merge()

Sorts and merges the items in this inventory.


resize(size)

Resizes the inventory.

Items in slots beyond the new capacity are deleted.

Only inventories created by LuaGameScript::create_inventory can be resized.

Parameters

size :: uint16

New size of a inventory

New size of a inventory

Raised events


destroy()

Destroys this inventory.

Only inventories created by LuaGameScript::create_inventory can be destroyed this way.

Attributes

index :: Read defines.inventory  ?

The inventory index this inventory uses, if any.


entity_owner :: Read LuaEntity  ?

The entity that owns this inventory, if any.


player_owner :: Read LuaPlayer  ?

The player that owns this inventory, if any.


equipment_owner :: Read LuaEquipment  ?

The equipment that owns this inventory, if any.


mod_owner :: Read string  ?

The mod that owns this inventory, if any.


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.

Operators

[] (index)

The indexing operator.

Example

-- Will get the first item in the player's inventory.
game.player.get_main_inventory()[1]

# (length)

Get the number of slots in this inventory.

Example

-- Will print the number of slots in the player's main inventory.
game.player.print(#game.player.get_main_inventory())

Classes

Concepts

Events

Defines