LuaEntity

class LuaEntity extends LuaControl - sort
get_output_inventory() → LuaInventory Gets the entities output inventory if it has one.
get_module_inventory() → LuaInventory
get_fuel_inventory() → LuaInventory The fuel inventory for this entity or nil if this entity doesn't have a fuel inventory.
get_burnt_result_inventory() → LuaInventory The burnt result inventory for this entity or nil if this entity doesn't have a burnt result inventory.
damage(damage, force, type) → float Damages the entity.
can_be_destroyed() → boolean Checks if the entity can be destroyed
destroy() → boolean Destroys the entity.
set_command(command) Give the entity a command.
has_command() → boolean Has this unit been assigned a command?
die(force, cause) → boolean Immediately kills the entity.
has_flag(flag) → boolean Test whether this entity's prototype has a flag set.
add_market_item{price=…, offer=…} Offer a thing on the market.
remove_market_item(offer) → boolean Remove an offer from a market.
get_market_items() → array of Offer Get all offers in a market as an array.
connect_neighbour(target) Connect two devices with wire or cable.
disconnect_neighbour(target) Disconnect wires or cables.
order_deconstruction(force, player) → boolean Sets the entity to be deconstructed by construction robots.
cancel_deconstruction(force, player) Cancels deconstruction if it is scheduled, does nothing otherwise.
to_be_deconstructed(force) → boolean Is this entity marked for deconstruction?
get_request_slot(slot) → SimpleItemStack Get a logistic requester slot.
set_request_slot(request, slot) Set a logistic requester slot.
clear_request_slot(slot) Clear a logistic requester slot.
is_crafting() → boolean
is_opened() → boolean
is_opening() → boolean
is_closed() → boolean
is_closing() → boolean
request_to_open(force, extra_time)
request_to_close(force)
get_transport_line(index) → LuaTransportLine Get a transport line of a belt.
launch_rocket() → boolean
revive(return_item_request_proxy) → dictionary stringuint Revive a ghost.
get_connected_rail{rail_direction=…, rail_connection_direction=…} → LuaEntity
get_filter(uint) → string Get the filter for a slot in an inserter or a loader.
set_filter(uint, string) Set the filter for a slot in an inserter or a loader
get_infinity_filter(index) → InfinityFilter Gets the filter for this infinity container at the given index or nil if the filter index doesn't exist or is empty.
set_infinity_filter(index, filter) Sets the filter for this infinity container at the given index.
get_control_behavior() → LuaControlBehavior Gets the control behavior of the entity (if any).
get_or_create_control_behavior() → LuaControlBehavior Gets (and or creates if needed) the control behavior of the entity.
get_circuit_network(wire, circuit_connector) → LuaCircuitNetwork
supports_backer_name() → boolean
copy_settings(entity) → dictionary stringuint Copies settings from the given entity onto this entity.
get_logistic_point(defines.logistic_member_index) → LuaLogisticPoint or array of LuaLogisticPoint Gets the LuaLogisticPoint specified by the given index or if not given returns all of the points this entity owns.
play_note(instrument, note) → boolean Plays a note with the given instrument and note.
connect_rolling_stock(direction) → boolean Connects the rolling stock in the given direction.
disconnect_rolling_stock(direction) → boolean Tries to disconnect this rolling stock in the given direction.
update_connections() Reconnect loader and beacon connections to entities that might have been teleported out or in by the script.
get_recipe() Current recipe being assembled by this machine.
set_recipe(recipe) → dictionary stringuint Sets the current recipe in this assembly machine.
rotate(options) → boolean Rotates this entity as if the player rotated it
get_driver() → LuaEntity or LuaPlayer Gets the driver of this vehicle if any.
set_driver(driver) Sets the driver of this vehicle.
get_passenger() → LuaEntity or LuaPlayer Gets the passenger of this car if any.
set_passenger(passenger) Sets the passenger of this car.
is_connected_to_electric_network() Returns true if this entity is connected to an electric network.
get_train_stop_trains() The trains scheduled to stop at this train stop.
name :: string [R] Name of the entity prototype.
ghost_name :: string [R] Name of the entity or tile contained in this ghost
localised_name :: LocalisedString [R] Localised name of the entity.
localised_description :: LocalisedString [R]
ghost_localised_name :: LocalisedString [R] Localised name of the entity or tile contained in this ghost.
ghost_localised_description :: LocalisedString [R]
type :: string [R] The entity prototype type of this entity.
ghost_type :: string [R] The prototype type of the entity or tile contained in this ghost.
active :: boolean [RW] Deactivating an entity will stop all its operations (car will stop moving, inserters will stop working, fish will stop moving etc).
destructible :: boolean [RW] When the entity is not destructible it can't be damaged.
minable :: boolean [RW]
rotatable :: boolean [RW] When entity is not to be rotatable (inserter, transport belt etc), it can't be rotated by player using the R key.
operable :: boolean [RW] Player can't open gui of this entity and he can't quick insert/input stuff in to the entity when it is not operable.
health :: float [RW] Health of the entity.
direction :: defines.direction [RW] The current direction this entity is facing.
supports_direction :: boolean [R] Whether the entity has direction.
orientation :: float [RW] The smooth orientation.
amount :: uint [RW] Count of resource units contained.
initial_amount :: uint [RW] Count of initial resource units contained.
effectivity_modifier :: float [RW] Multiplies the acceleration the vehicle can create for one unit of energy.
consumption_modifier :: float [RW] Multiplies the energy consumption.
friction_modifier :: float [RW] Multiplies the car friction rate.
speed :: float [RW] The current speed of the car.
stack :: LuaItemStack [R]
prototype :: LuaEntityPrototype [R] The entity prototype of this entity.
ghost_prototype :: LuaEntityPrototype or LuaTilePrototype [R] The prototype of the entity or tile contained in this ghost.
drop_position :: Position [RW] Position where the entity puts its stuff.
pickup_position :: Position [RW] Where the inserter will pick up items from.
drop_target :: LuaEntity [R] The entity this entity is putting its stuff to or nil if there is no such entity.
pickup_target :: LuaEntity [R] The entity the inserter will attempt to pick up from.
selected_gun_index :: uint [RW] Index of the currently selected weapon slot of this character.
energy :: double [RW] Energy stored in the entity (heat in furnace, energy stored in electrical devices etc.
temperature :: double [RW] The temperature of this entities heat energy source if this entity uses a heat energy source or nil.
previous_recipe :: LuaRecipe [R] The previous recipe this furnace was using or nil if the furnace had no previous recipe.
held_stack :: LuaItemStack [R] The item stack currently held in an inserter's hand.
held_stack_position :: Position [R] Current position of the inserter's "hand".
train :: LuaTrain [R] The train this rolling stock belongs to or nil if not rolling stock.
neighbours :: dictionary stringarray of LuaEntity or array of array of LuaEntity or LuaEntity [R]
fluidbox :: LuaFluidBox [RW]
backer_name :: string [RW] The name of a backer (of Factorio) assigned to a lab or train station / stop.
time_to_live :: uint [RW] The ticks left before a ghost or combat robot is destroyed.
color :: Color [RW] The character or rolling stock color.
text :: LocalisedString [RW] The text of this flying-text entity.
signal_state :: defines.signal_state [R] The state of this rail signal.
chain_signal_state :: uint [R] The state of this chain signal.
to_be_looted :: boolean [RW] Will this entity be picked up automatically when the player walks over it?
crafting_progress :: float [RW] The current crafting progress, as a number in range [0, 1].
bonus_progress :: float [RW] The current productivity bonus progress, as a number in range [0, 1].
belt_to_ground_type :: string [R] "input" or "output", depending on whether this underground belt goes down or up.
loader_type :: string [RW] "input" or "output", depending on whether this loader puts to or gets from a container.
rocket_parts :: uint [RW] Number of rocket parts in the silo.
logistic_network :: LuaLogisticNetwork [R] The logistic network this entity is a part of.
logistic_cell :: LuaLogisticCell [R] The logistic cell this entity is a part of.
item_requests :: dictionary stringuint [RW] Items this ghost will request when revived or items this item request proxy is requesting.
player :: LuaPlayer [R] The player connected to this character or nil if none.
unit_group :: LuaUnitGroup [R] The unit group this unit is a member of, or nil if none.
damage_dealt :: double [RW] The damage dealt by this turret, artillery turret, or artillery wagon.
kills :: uint [RW] The number of units killed by this turret, artillery turret, or artillery wagon.
last_user :: LuaPlayer [RW] The player who built the entity
electric_buffer_size :: double [RW] The buffer size for the electric energy source or nil if the entity doesn't have an electric energy source.
electric_input_flow_limit :: double [R] The input flow limit for the electric energy source or nil if the entity doesn't have an electric energy source.
electric_output_flow_limit :: double [R] The output flow limit for the electric energy source or nil if the entity doesn't have an electric energy source.
electric_drain :: double [R] The electric drain for the electric energy source or nil if the entity doesn't have an electric energy source.
electric_emissions :: double [R] The emissions size for the electric energy source or nil if the entity doesn't have an electric energy source.
unit_number :: uint [R] The unit number or nil if the entity doesn't have one.
mining_progress :: double [RW] The mining progress for this mining drill or nil if this isn't a mining drill.
bonus_mining_progress :: double [RW] The bonus mining progress for this mining drill or nil if this isn't a mining drill.
power_production :: double [RW] The power production specific to the ElectricEnergyInterface entity type.
power_usage :: double [RW] The power usage specific to the ElectricEnergyInterface entity type.
bounding_box :: BoundingBox [R]
secondary_bounding_box :: BoundingBox [R] The secondary bounding box of this entity or nil if it doesn't have one.
selection_box :: BoundingBox [R]
secondary_selection_box :: BoundingBox [R] The secondary selection box of this entity or nil if it doesn't have one.
mining_target :: LuaEntity [R] The mining target or nil if none
circuit_connected_entities [R] Entities connected to this entity via the circuit network.
circuit_connection_definitions :: array of CircuitConnectionDefinition [R] The connection definition for entities connected to this entity via the circuit network.
request_slot_count :: uint [R] The number of request slots this entity has.
filter_slot_count :: uint [R] The number of filter slots this inserter or loader has.
grid :: LuaEquipmentGrid [R] The equipment grid or nil if this entity doesn't have an equipment grid.
graphics_variation :: uint8 [RW] The graphics variation for this entity or nil if this entity doesn't use graphics variations.
tree_color_index :: uint8 [RW] Index of the tree color
burner :: LuaBurner [R] The burner energy source for this entity or nil if there isn't one.
shooting_target :: LuaEntity [RW] The shooting target for this turret or nil.
proxy_target :: LuaEntity [R] The target entity for this item-request-proxy or nil
stickers :: array of LuaEntity [R] The sticker entities attached to this entity.
parameters :: ProgrammableSpeakerParameters [RW]
alert_parameters :: ProgrammableSpeakerAlertParameters [RW]
electric_network_statistics :: LuaFlowStatistics [R] The electric network statistics for this electric pole.
inserter_stack_size_override :: uint [RW] Sets the stack size limit on this inserter.
products_finished :: uint [RW]
spawner :: LuaEntity [R] The spawner associated with this unit entity or nil if the unit has no associated spawner.
units :: array of LuaEntity [R] The units associated with this spawner entity.
power_switch_state :: boolean [RW] The state of this power switch.
relative_turret_orientation :: float [RW] The relative orientation of the vehicle turret or nil if this entity isn't a vehicle or have a vehicle turret.
effects :: Effects [R] The effects being applied to this entity or nil.
infinity_filters :: array of InfinityFilter [RW] The filters for this infinity container.
remove_unfiltered_items :: boolean [RW] If items not included in this infinity container filters should be removed from the container.
character_corpse_player_index :: uint [RW] The player index associated with this character corpse.
character_corpse_tick_of_death :: uint [RW] The tick this character corpse died at.
character_corpse_death_cause :: LocalisedString [RW] The reason this character corpse character died (if any).
associated_player :: LuaPlayer [RW] The player this character is associated with or nil if none.
tick_of_last_attack :: uint [R] The last tick this character entity was attacked.
tick_of_last_damage :: uint [R] The last tick this character entity was damaged.
valid :: boolean [R] Is this object valid?
help() → string All methods, and properties that this object supports.

The primary interface for interacting with entities through the Lua API. Entity is everything on the map except tiles.

get_output_inventory() → LuaInventory

Gets the entities output inventory if it has one.

Return value
a reference to the entities output inventory.
get_module_inventory() → LuaInventory

Return value
Inventory for storing modules of this entity; nil if this entity has no module inventory.
get_fuel_inventory() → LuaInventory

The fuel inventory for this entity or nil if this entity doesn't have a fuel inventory.

get_burnt_result_inventory() → LuaInventory

The burnt result inventory for this entity or nil if this entity doesn't have a burnt result inventory.

damage(damage, force, type) → float

Damages the entity.

Parameters
damage :: float: The amount of damage to be done
force :: string or LuaForce: The force that will be doing the damage.
type :: string (optional): The type of damage to be done.
Return value
the total damage actually applied after resistances.
Can only be used if this is EntityWithHealth
can_be_destroyed() → boolean

Checks if the entity can be destroyed

Return value
if the entity can be destroyed.
destroy() → boolean

Destroys the entity.

Return value
if the entity was actually destroyed.
Note: Not all entities can be destroyed - things such as rails under trains cannot be destroyed until the train is moved or destroyed.
set_command(command)

Give the entity a command.

Parameters
command :: Command
Can only be used if this is Unit
has_command() → boolean

Has this unit been assigned a command?

Can only be used if this is Unit
die(force, cause) → boolean

Immediately kills the entity. Doesn't care whether the entity is destroyable or damageable. Does nothing if the entity doesn't have health. Unlike LuaEntity::destroy, die will trigger on_entity_died and the entity will drop loot and corpse if it have any.

Parameters
force :: string or LuaForce: The force to attribute the kill to.
cause :: LuaEntity (optional): The cause to attribute the kill to.
Return value
If the entity was killed.
Note: Pass nil for force if you just want to provide the cause entity.
has_flag(flag) → boolean

Test whether this entity's prototype has a flag set.

Parameters
flag :: string: The flag to test
Return value
true if the entity has the given flag set.
Note: entity.has_flag(f) is a shortcut for entity.prototype.has_flag(f).
add_market_item{price=…, offer=…}

Offer a thing on the market.

Parameters
Table with the following fields:
  • price: list of prices, every element is 2 item table, first is the item name, the second is count.
  • offer :: Modifier: The action that will take place when a player accepts the offer. Usually a "give-item" modifier.
Example
Adds market offer, 1 copper ore for 10 iron ore.
market.add_market_item{price={{"iron-ore", 10}}, offer={type="give-item", item="copper-ore"}}
Example
Adds market offer, 1 copper ore for 5 iron ore and 5 stone ore.
market.add_market_item{price={{"iron-ore", 5}, {"stone", 5}}, offer={type="give-item", item="copper-ore"}}
Can only be used if this is Market
remove_market_item(offer) → boolean

Remove an offer from a market.

Parameters
offer :: uint: Index of offer to remove.
Return value
true if the offer was successfully removed; false when the given index was not valid.
Can only be used if this is Market
get_market_items() → array of Offer

Get all offers in a market as an array.

Return value
See LuaEntity::add_market_item for the format of an Offer.
Can only be used if this is Market
connect_neighbour(target)

Connect two devices with wire or cable.

Parameters
target :: LuaEntity or table:
  • To connect two electric poles, target has to be a LuaEntity specifying another electric pole. This will connect them with copper cable.
  • To connect two devices with wire, this parameter is a table:
disconnect_neighbour(target)

Disconnect wires or cables.

Parameters
target :: defines.wire_type or LuaEntity or table (optional):
order_deconstruction(force, player) → boolean

Sets the entity to be deconstructed by construction robots.

Parameters
force :: string or LuaForce: The force whose robots are supposed to do the deconstruction.
player :: PlayerSpecification (optional): The player to set the last_user to if any.
Return value
if the entity was marked for deconstruction.
cancel_deconstruction(force, player)

Cancels deconstruction if it is scheduled, does nothing otherwise.

Parameters
force :: string or LuaForce: The force who did the deconstruction order.
player :: PlayerSpecification (optional): The player to set the last_user to if any.
to_be_deconstructed(force) → boolean

Is this entity marked for deconstruction?

Parameters
force :: string or LuaForce: The force which ordered the deconstruction. This parameter is is currently unused; it exists only for forward compatibility of the API.
get_request_slot(slot) → SimpleItemStack

Get a logistic requester slot.

Parameters
slot :: uint: The slot index.
Return value
Contents of the specified slot; nil if the given slot contains no request.
Note: Useable only on entities that have requester slots.
set_request_slot(request, slot)

Set a logistic requester slot.

Parameters
request :: SimpleItemStack: What to request.
slot :: uint: The slot index.
Note: Useable only on entities that have requester slots.
clear_request_slot(slot)

Clear a logistic requester slot.

Parameters
slot :: uint: The slot index.
Note: Useable only on entities that have requester slots.
is_crafting() → boolean

Return value
true if this machine is currently crafting.
Can only be used if this is CraftingMachine
is_opened() → boolean

Return value
true if this gate is currently opened.
Can only be used if this is Gate
is_opening() → boolean

Return value
true if this gate is currently opening.
Can only be used if this is Gate
is_closed() → boolean

Return value
true if this gate is currently closed.
Can only be used if this is Gate
is_closing() → boolean

Return value
true if this gate is currently closing
Can only be used if this is Gate
request_to_open(force, extra_time)

Parameters
force :: string or LuaForce: The force that requests the gate to be open.
extra_time :: uint (optional): Extra ticks to stay open.
Can only be used if this is Gate
request_to_close(force)

Parameters
force :: string or LuaForce: The force that requests the gate to be closed.
Can only be used if this is Gate
get_transport_line(index) → LuaTransportLine

Get a transport line of a belt.

Parameters
index :: uint: Index of the requested transport line.
Can only be used if this is TransportBeltConnectable
launch_rocket() → boolean

Return value
true if the rocket was successfully launched. Return value of false means the silo is not ready for launch.
Can only be used if this is RocketSilo
revive(return_item_request_proxy) → dictionary stringuint

Revive a ghost. I.e. turn it from a ghost to a real entity or tile.

Parameters
return_item_request_proxy :: boolean (optional): If true the function will return item request proxy as the third parameter.
Return value
Any items the new real entity collided with or nil if the ghost could not be revived.
Note: If this is an entity ghost and it is successfully revived this will also return the revived entity or nil as a second return value and possibly item request proxy as the third parameter depending on value of return_item_request_proxy.
get_connected_rail{rail_direction=…, rail_connection_direction=…} → LuaEntity

Parameters
Table with the following fields:
Return value
Rail connected in the specified manner to this one.
Can only be used if this is Rail
get_filter(uint) → string

Get the filter for a slot in an inserter or a loader.

Parameters
uint: Slot to get the filter of.
Return value
Prototype name of the entity being filtered; nil if the given slot has no filter.
Note: The inserter/loader must allow filters.
set_filter(uint, string)

Set the filter for a slot in an inserter or a loader

Parameters
uint: Slot to set the filter of.
string: Prototype name of the entity to filter.
Note: The inserter/loader must allow filters.
get_infinity_filter(index) → InfinityFilter

Gets the filter for this infinity container at the given index or nil if the filter index doesn't exist or is empty.

Parameters
index :: uint: The index to get.
Can only be used if this is InfinityContainer
set_infinity_filter(index, filter)

Sets the filter for this infinity container at the given index.

Parameters
index :: uint: The index to set.
filter :: InfinityFilter: The new filter or nil to clear the filter.
Can only be used if this is InfinityContainer
get_control_behavior() → LuaControlBehavior

Gets the control behavior of the entity (if any).

Return value
The control behavior or nil.
get_or_create_control_behavior() → LuaControlBehavior

Gets (and or creates if needed) the control behavior of the entity.

Return value
The control behavior or nil.
get_circuit_network(wire, circuit_connector) → LuaCircuitNetwork

Parameters
wire :: defines.wire_type: Wire colour of the network connected to this entity.
circuit_connector :: defines.circuit_connector_id (optional): The connector to get circuit network for. Must be specified for entities with more than one circuit network connector.
Return value
The circuit network or nil.
supports_backer_name() → boolean

Return value
true if this entity supports a backer name.
copy_settings(entity) → dictionary stringuint

Copies settings from the given entity onto this entity.

Parameters
entity :: LuaEntity
Return value
Any items removed from this entity as a result of copying the settings.
get_logistic_point(defines.logistic_member_index) → LuaLogisticPoint or array of LuaLogisticPoint

Gets the LuaLogisticPoint specified by the given index or if not given returns all of the points this entity owns.

Parameters
defines.logistic_member_index (optional)
Note: When the index is not given for most entities this will be a single entry. For some (such as the player character) this can be zero or more.
play_note(instrument, note) → boolean

Plays a note with the given instrument and note.

Parameters
instrument :: uint
note :: uint
Return value
If the request is valid. The sound may or may not be played depending on polyphony settings.
Can only be used if this is ProgrammableSpeaker
connect_rolling_stock(direction) → boolean

Connects the rolling stock in the given direction.

Parameters
Return value
If any connection was made
disconnect_rolling_stock(direction) → boolean

Tries to disconnect this rolling stock in the given direction.

Parameters
Return value
If anything was disconnected
update_connections()

Reconnect loader and beacon connections to entities that might have been teleported out or in by the script. The game doesn't do this automatically as we don't want to loose performance by checking this in normal games.

get_recipe()

Current recipe being assembled by this machine.

Can only be used if this is CraftingMachine
set_recipe(recipe) → dictionary stringuint

Sets the current recipe in this assembly machine.

Parameters
recipe :: string or LuaRecipe: The new recipe or nil to clear the recipe.
Return value
Any items removed from this entity as a result of setting the recipe.
Can only be used if this is CraftingMachine
rotate(options) → boolean

Rotates this entity as if the player rotated it

Parameters
options (optional): Table with the following fields:
  • reverse :: boolean (optional)
  • by_player :: LuaPlayer (optional)
  • spill_items :: boolean (optional): If the player is not given should extra items be spilled or returned as a second return value from this.
  • enable_looted :: boolean (optional): When true, each spilled item will be flagged with the LuaEntity::to_be_looted flag.
  • force :: LuaForce or string (optional): When provided the spilled items will be marked for deconstruction by this force.
Return value
If the rotation was successful.
get_driver() → LuaEntity or LuaPlayer

Gets the driver of this vehicle if any.

Note: May be nil if the vehicle contains no driver. To check if there's a passenger see LuaEntity::get_passenger.
Can only be used if this is Vehicle
set_driver(driver)

Sets the driver of this vehicle.

Parameters
driver :: LuaEntity or LuaPlayer: The new passenger or nil to eject the current driver if any.
Note: This differs over LuaEntity::set_passenger in that the passenger can't drive the vehicle.
Can only be used if this is Vehicle
get_passenger() → LuaEntity or LuaPlayer

Gets the passenger of this car if any.

Note: May be nil if the vehicle contains no passenger. To check if there's a driver see LuaEntity::get_driver.
Note: This differs over LuaEntity::get_driver in that the passenger can't drive the car.
Can only be used if this is Car
set_passenger(passenger)

Sets the passenger of this car.

Parameters
passenger :: LuaEntity or LuaPlayer
Note: This differs over LuaEntity::get_driver in that the passenger can't drive the car.
Can only be used if this is Car
is_connected_to_electric_network()

Returns true if this entity is connected to an electric network.

get_train_stop_trains()

The trains scheduled to stop at this train stop.

Can only be used if this is TrainStop
name :: string [Read-only]

Name of the entity prototype. E.g. "inserter" or "filter-inserter".

ghost_name :: string [Read-only]

Name of the entity or tile contained in this ghost

Can only be used if this is Ghost
localised_name :: LocalisedString [Read-only]

Localised name of the entity.

localised_description :: LocalisedString [Read-only]

ghost_localised_name :: LocalisedString [Read-only]

Localised name of the entity or tile contained in this ghost.

Can only be used if this is Ghost
ghost_localised_description :: LocalisedString [Read-only]

Can only be used if this is Ghost
type :: string [Read-only]

The entity prototype type of this entity.

ghost_type :: string [Read-only]

The prototype type of the entity or tile contained in this ghost.

Can only be used if this is Ghost
active :: boolean [Read-Write]

Deactivating an entity will stop all its operations (car will stop moving, inserters will stop working, fish will stop moving etc).

Note: Entities that are are not active naturally can't be set to be active (setting it to be active will do nothing)
Note: Ghosts, simple smoke, and corpses can't be modified at this time.
Note: It is even possible to set the player to not be active, so he can't move and perform most of the tasks.
destructible :: boolean [Read-Write]

When the entity is not destructible it can't be damaged.

Note: An indestructible entity can still be mined.
Note: Entities that are indestructible naturally (they have no health, like smoke, resource etc) can't be set to be destructible.
minable :: boolean [Read-Write]

Note: Not minable entities can still be destroyed.
Note: Entities that are not minable naturally (like smoke, player, enemy units etc) can't be set to minable.
rotatable :: boolean [Read-Write]

When entity is not to be rotatable (inserter, transport belt etc), it can't be rotated by player using the R key.

Note: Entities that are not rotatable naturally (like chest or furnace) can't be set to be rotatable.
operable :: boolean [Read-Write]

Player can't open gui of this entity and he can't quick insert/input stuff in to the entity when it is not operable.

health :: float [Read-Write]

Health of the entity. Setting health to less than 0 will set health to 0, entities with 0 health can not be attacked. Setting health to higher than max health will set health to max health.

Note: If used on an entity that doesn't support health, this field will be nil.
direction :: defines.direction [Read-Write]

The current direction this entity is facing.

supports_direction :: boolean [Read-only]

Whether the entity has direction. When it is false for this entity, it will always return north direction when asked for.

orientation :: float [Read-Write]

The smooth orientation.

amount :: uint [Read-Write]

Count of resource units contained.

Can only be used if this is ResourceEntity
initial_amount :: uint [Read-Write]

Count of initial resource units contained.

Note: If this is not an infinite resource reading will give nil and writing will give an error.
Can only be used if this is ResourceEntity
effectivity_modifier :: float [Read-Write]

Multiplies the acceleration the vehicle can create for one unit of energy. By default is 1.

Can only be used if this is Car
consumption_modifier :: float [Read-Write]

Multiplies the energy consumption.

Can only be used if this is Car
friction_modifier :: float [Read-Write]

Multiplies the car friction rate.

Example
This will allow the car to go much faster
game.player.vehicle.friction_modifier = 0.5
Can only be used if this is Car
speed :: float [Read-Write]

The current speed of the car.

Can only be used if this is Car
stack :: LuaItemStack [Read-only]

Can only be used if this is ItemEntity
prototype :: LuaEntityPrototype [Read-only]

The entity prototype of this entity.

ghost_prototype :: LuaEntityPrototype or LuaTilePrototype [Read-only]

The prototype of the entity or tile contained in this ghost.

Can only be used if this is Ghost
drop_position :: Position [Read-Write]

Position where the entity puts its stuff.

Note: Meaningful only for entities that put stuff somewhere, such as mining drills or inserters. Mining drills can't have their drop position changed.
pickup_position :: Position [Read-Write]

Where the inserter will pick up items from.

Can only be used if this is Inserter
drop_target :: LuaEntity [Read-only]

The entity this entity is putting its stuff to or nil if there is no such entity.

Note: Meaningful only for entities that put stuff somewhere, such as mining drills or inserters.
pickup_target :: LuaEntity [Read-only]

The entity the inserter will attempt to pick up from. For example, this can be a transport belt or a storage chest.

Can only be used if this is Inserter
selected_gun_index :: uint [Read-Write]

Index of the currently selected weapon slot of this character.

Can only be used if this is Character
energy :: double [Read-Write]

Energy stored in the entity (heat in furnace, energy stored in electrical devices etc.). always 0 for entities that don't have the concept of energy stored inside.

Example
game.player.print("Machine energy: " .. game.player.selected.energy .. "J")
game.player.selected.energy = 3000
temperature :: double [Read-Write]

The temperature of this entities heat energy source if this entity uses a heat energy source or nil.

previous_recipe :: LuaRecipe [Read-only]

The previous recipe this furnace was using or nil if the furnace had no previous recipe.

Can only be used if this is Furnace
held_stack :: LuaItemStack [Read-only]

The item stack currently held in an inserter's hand.

Can only be used if this is Inserter
held_stack_position :: Position [Read-only]

Current position of the inserter's "hand".

Can only be used if this is Inserter
train :: LuaTrain [Read-only]

The train this rolling stock belongs to or nil if not rolling stock.

Can only be used if this is RollingStock
neighbours :: dictionary stringarray of LuaEntity or array of array of LuaEntity or LuaEntity [Read-only]

  • When called on an electric pole, this is a dictionary of all connections, indexed by the strings "copper", "red", and "green".
  • When called on a pipe-connectable entity, this is an array of entity arrays of all entities a given fluidbox is connected to.
  • When called on an underground transport belt, this is the other end of the underground belt connection, or nil if none.

fluidbox :: LuaFluidBox [Read-Write]

backer_name :: string [Read-Write]

The name of a backer (of Factorio) assigned to a lab or train station / stop.

Note: Only useable on entities that support backer names. Returns nil when the entity doesn't support a backer name.
time_to_live :: uint [Read-Write]

The ticks left before a ghost or combat robot is destroyed.

  • for ghosts set to uint32 max (4,294,967,295) to never expire.
  • for ghosts Cannot be set higher than LuaForce::ghost_time_to_live of the entity's force.

color :: Color [Read-Write]

The character or rolling stock color.

text :: LocalisedString [Read-Write]

The text of this flying-text entity.

Can only be used if this is FlyingText
signal_state :: defines.signal_state [Read-only]

The state of this rail signal.

Can only be used if this is RailSignal
chain_signal_state :: uint [Read-only]

The state of this chain signal.

Can only be used if this is RailChainSignal
to_be_looted :: boolean [Read-Write]

Will this entity be picked up automatically when the player walks over it?

Can only be used if this is ItemEntity
crafting_progress :: float [Read-Write]

The current crafting progress, as a number in range [0, 1].

Can only be used if this is CraftingMachine
bonus_progress :: float [Read-Write]

The current productivity bonus progress, as a number in range [0, 1].

Can only be used if this is CraftingMachine
belt_to_ground_type :: string [Read-only]

"input" or "output", depending on whether this underground belt goes down or up.

Can only be used if this is TransportBeltToGround
loader_type :: string [Read-Write]

"input" or "output", depending on whether this loader puts to or gets from a container.

Can only be used if this is Loader
rocket_parts :: uint [Read-Write]

Number of rocket parts in the silo.

Can only be used if this is RocketSilo
logistic_network :: LuaLogisticNetwork [Read-only]

The logistic network this entity is a part of.

logistic_cell :: LuaLogisticCell [Read-only]

The logistic cell this entity is a part of. Will be nil if this entity is not a part of any logistic cell.

item_requests :: dictionary stringuint [Read-Write]

Items this ghost will request when revived or items this item request proxy is requesting. Result is a dictionary mapping each item prototype name to the required count.

player :: LuaPlayer [Read-only]

The player connected to this character or nil if none.

Can only be used if this is Character
unit_group :: LuaUnitGroup [Read-only]

The unit group this unit is a member of, or nil if none.

Can only be used if this is Unit
damage_dealt :: double [Read-Write]

The damage dealt by this turret, artillery turret, or artillery wagon.

Can only be used if this is Turret
kills :: uint [Read-Write]

The number of units killed by this turret, artillery turret, or artillery wagon.

Can only be used if this is Turret
last_user :: LuaPlayer [Read-Write]

The player who built the entity

Can only be used if this is EntityWithOwner
electric_buffer_size :: double [Read-Write]

The buffer size for the electric energy source or nil if the entity doesn't have an electric energy source.

Note: Write access is limited to the ElectricEnergyInterface type
electric_input_flow_limit :: double [Read-only]

The input flow limit for the electric energy source or nil if the entity doesn't have an electric energy source.

Note: Write access is limited to the ElectricEnergyInterface type
electric_output_flow_limit :: double [Read-only]

The output flow limit for the electric energy source or nil if the entity doesn't have an electric energy source.

Note: Write access is limited to the ElectricEnergyInterface type
electric_drain :: double [Read-only]

The electric drain for the electric energy source or nil if the entity doesn't have an electric energy source.

Note: Write access is limited to the ElectricEnergyInterface type
electric_emissions :: double [Read-only]

The emissions size for the electric energy source or nil if the entity doesn't have an electric energy source.

Note: Write access is limited to the ElectricEnergyInterface type
unit_number :: uint [Read-only]

The unit number or nil if the entity doesn't have one. This is universally unique for every entity that has one, for the lifetime of a whole game.

mining_progress :: double [Read-Write]

The mining progress for this mining drill or nil if this isn't a mining drill. Is a number in range [0, mining_target.prototype.mineable_properties.mining_time]

bonus_mining_progress :: double [Read-Write]

The bonus mining progress for this mining drill or nil if this isn't a mining drill. Read yields a number in range [0, mining_target.prototype.mineable_properties.mining_time]

power_production :: double [Read-Write]

The power production specific to the ElectricEnergyInterface entity type.

Can only be used if this is ElectricEnergyInterface
power_usage :: double [Read-Write]

The power usage specific to the ElectricEnergyInterface entity type.

Can only be used if this is ElectricEnergyInterface
bounding_box :: BoundingBox [Read-only]

secondary_bounding_box :: BoundingBox [Read-only]

The secondary bounding box of this entity or nil if it doesn't have one.

selection_box :: BoundingBox [Read-only]

secondary_selection_box :: BoundingBox [Read-only]

The secondary selection box of this entity or nil if it doesn't have one.

mining_target :: LuaEntity [Read-only]

The mining target or nil if none

Can only be used if this is MiningDrill
circuit_connected_entities [Read-only]

Entities connected to this entity via the circuit network. It is a table:

  • red :: array of LuaEntity: Entities connected via the red wire.
  • green :: array of LuaEntity: Entities connected via the green wire.

circuit_connection_definitions :: array of CircuitConnectionDefinition [Read-only]

The connection definition for entities connected to this entity via the circuit network.

Each CircuitConnectionDefinition is a table:

request_slot_count :: uint [Read-only]

The number of request slots this entity has.

filter_slot_count :: uint [Read-only]

The number of filter slots this inserter or loader has. 0 if not an inserter or loader.

grid :: LuaEquipmentGrid [Read-only]

The equipment grid or nil if this entity doesn't have an equipment grid.

graphics_variation :: uint8 [Read-Write]

The graphics variation for this entity or nil if this entity doesn't use graphics variations.

tree_color_index :: uint8 [Read-Write]

Index of the tree color

burner :: LuaBurner [Read-only]

The burner energy source for this entity or nil if there isn't one.

shooting_target :: LuaEntity [Read-Write]

The shooting target for this turret or nil.

proxy_target :: LuaEntity [Read-only]

The target entity for this item-request-proxy or nil

stickers :: array of LuaEntity [Read-only]

The sticker entities attached to this entity.

parameters :: ProgrammableSpeakerParameters [Read-Write]

Can only be used if this is ProgrammableSpeaker
alert_parameters :: ProgrammableSpeakerAlertParameters [Read-Write]

Can only be used if this is ProgrammableSpeaker
electric_network_statistics :: LuaFlowStatistics [Read-only]

The electric network statistics for this electric pole.

inserter_stack_size_override :: uint [Read-Write]

Sets the stack size limit on this inserter. If the stack size is > than the force stack size limit the value is ignored.

Note: Set to 0 to reset.
products_finished :: uint [Read-Write]

Can only be used if this is CraftingMachine
spawner :: LuaEntity [Read-only]

The spawner associated with this unit entity or nil if the unit has no associated spawner.

units :: array of LuaEntity [Read-only]

The units associated with this spawner entity.

power_switch_state :: boolean [Read-Write]

The state of this power switch.

relative_turret_orientation :: float [Read-Write]

The relative orientation of the vehicle turret or nil if this entity isn't a vehicle or have a vehicle turret.

Note: Writing does nothing if the vehicle doesn't have a turret.
Can only be used if this is Vehicle
effects :: Effects [Read-only]

The effects being applied to this entity or nil. For beacons this is the effect the beacon is broadcasting.

infinity_filters :: array of InfinityFilter [Read-Write]

The filters for this infinity container.

Can only be used if this is InfinityContainer
remove_unfiltered_items :: boolean [Read-Write]

If items not included in this infinity container filters should be removed from the container.

Can only be used if this is InfinityContainer
character_corpse_player_index :: uint [Read-Write]

The player index associated with this character corpse.

Note: The index is not guaranteed to be valid so it should always be checked first if a player with that index actually exists.
Can only be used if this is CharacterCorpse
character_corpse_tick_of_death :: uint [Read-Write]

The tick this character corpse died at.

Can only be used if this is CharacterCorpse
character_corpse_death_cause :: LocalisedString [Read-Write]

The reason this character corpse character died (if any).

Can only be used if this is CharacterCorpse
associated_player :: LuaPlayer [Read-Write]

The player this character is associated with or nil if none. When the player logs off in multiplayer all of the associated characters will be logged off with him.

Note: A character associated with a player is not directly controlled by any player.
Note: Set to nil to clear. The player will be automatically disassociated when a controller is set on the character.
Can only be used if this is Character
tick_of_last_attack :: uint [Read-only]

The last tick this character entity was attacked.

Can only be used if this is Character
tick_of_last_damage :: uint [Read-only]

The last tick this character entity was damaged.

Can only be used if this is Character