This is an abstract base class containing the common functionality between LuaPlayer and entities (see LuaEntity). When accessing player-related functions through a LuaEntity, it must refer to a character entity.
get_inventory(inventory) | → LuaInventory? |
Get an inventory belonging to this entity. |
Get an inventory belonging to this entity. |
||
get_max_inventory_index() | → defines.inventory |
The maximum inventory index this entity may use. |
The maximum inventory index this entity may use. |
||
get_main_inventory() | → LuaInventory? |
Gets the main inventory for this character or player if this is a character or player. |
Gets the main inventory for this character or player if this is a character or player. |
||
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 entity. |
Insert items into this entity. |
||
set_gui_arrow{type=…} |
Create an arrow which points at this entity. |
|
Create an arrow which points at this entity. |
||
clear_gui_arrow() |
Removes the arrow created by |
|
Removes the arrow created by |
||
get_item_count(item?) | → uint |
Get the number of all or some items in this entity. |
Get the number of all or some items in this entity. |
||
has_items_inside() | → boolean |
Does this entity have any item inside it? |
Does this entity have any item inside it? |
||
can_reach_entity(entity) | → boolean |
Can a given entity be opened or accessed? |
Can a given entity be opened or accessed? |
||
clear_items_inside() |
Remove all items from this entity. |
|
Remove all items from this entity. |
||
remove_item(items) | → uint |
Remove items from this entity. |
Remove items from this entity. |
||
teleport(position, surface?, raise_teleported?) | → boolean |
Teleport the entity to a given position, possibly on another surface. |
Teleport the entity to a given position, possibly on another surface. |
||
update_selected_entity(position) |
Select an entity, as if by hovering the mouse above it. |
|
Select an entity, as if by hovering the mouse above it. |
||
clear_selected_entity() |
Unselect any selected entity. |
|
Unselect any selected entity. |
||
disable_flashlight() |
Disable the flashlight. |
|
Disable the flashlight. |
||
enable_flashlight() |
Enable the flashlight. |
|
Enable the flashlight. |
||
is_flashlight_enabled() | → boolean |
Is the flashlight enabled. |
Is the flashlight enabled. |
||
get_craftable_count(recipe) | → uint |
Gets the count of the given recipe that can be crafted. |
Gets the count of the given recipe that can be crafted. |
||
begin_crafting{count=…, recipe=…, silent?=…} | → uint |
Begins crafting the given count of the given recipe. |
Begins crafting the given count of the given recipe. |
||
cancel_crafting{index=…, count=…} |
Cancels crafting the given count of the given crafting queue index. |
|
Cancels crafting the given count of the given crafting queue index. |
||
mine_entity(entity, force?) | → boolean |
Mines the given entity as if this player (or character) mined it. |
Mines the given entity as if this player (or character) mined it. |
||
mine_tile(tile) | → boolean |
Mines the given tile as if this player (or character) mined it. |
Mines the given tile as if this player (or character) mined it. |
||
is_player() | → boolean |
When |
When |
||
open_technology_gui(technology?) |
Open the technology GUI and select a given technology. |
|
Open the technology GUI and select a given technology. |
||
set_personal_logistic_slot(slot_index, value) | → boolean |
Sets a personal logistic request and auto-trash slot to the given value. |
Sets a personal logistic request and auto-trash slot to the given value. |
||
set_vehicle_logistic_slot(slot_index, value) | → boolean |
Sets a vehicle logistic request and auto-trash slot to the given value. |
Sets a vehicle logistic request and auto-trash slot to the given value. |
||
get_personal_logistic_slot(slot_index) | → LogisticParameters |
Gets the parameters of a personal logistic request and auto-trash slot. |
Gets the parameters of a personal logistic request and auto-trash slot. |
||
get_vehicle_logistic_slot(slot_index) | → LogisticParameters |
Gets the parameters of a vehicle logistic request and auto-trash slot. |
Gets the parameters of a vehicle logistic request and auto-trash slot. |
||
clear_personal_logistic_slot(slot_index) |
|
|
clear_vehicle_logistic_slot(slot_index) |
|
|
is_cursor_blueprint() | → boolean |
Returns whether the player is holding a blueprint. |
Returns whether the player is holding a blueprint. |
||
get_blueprint_entities() | → array[BlueprintEntity]? |
Gets the entities that are part of the currently selected blueprint, regardless of it being in a blueprint book or picked from the blueprint library. |
Gets the entities that are part of the currently selected blueprint, regardless of it being in a blueprint book or picked from the blueprint library. |
||
is_cursor_empty() | → boolean |
Returns whether the player is holding something in the cursor. |
Returns whether the player is holding something in the cursor. |
||
surface [R] | :: LuaSurface |
The surface this entity is currently on. |
The surface this entity is currently on. |
||
surface_index [R] | :: uint |
Unique ID associated with the surface this entity is currently on. |
Unique ID associated with the surface this entity is currently on. |
||
position [R] | :: MapPosition |
The current position of the entity. |
The current position of the entity. |
||
vehicle [R] | :: LuaEntity? |
The vehicle the player is currently sitting in. |
The vehicle the player is currently sitting in. |
||
force [RW] | :: ForceIdentification |
The force of this entity. |
The force of this entity. |
||
force_index [R] | :: uint |
Unique ID associated with the force of this entity. |
Unique ID associated with the force of this entity. |
||
selected [RW] | :: LuaEntity? |
The currently selected entity. |
The currently selected entity. |
||
opened [RW] | :: LuaEntity or LuaItemStack or LuaEquipment or LuaEquipmentGrid or LuaPlayer or LuaGuiElement or LuaInventory or LuaTechnology or defines.gui_type? |
The GUI the player currently has open. |
The GUI the player currently has open. |
||
crafting_queue_size [R] | :: uint |
Size of the crafting queue. |
Size of the crafting queue. |
||
crafting_queue_progress [RW] | :: double |
The crafting queue progress in the range |
The crafting queue progress in the range |
||
walking_state [RW] | :: table |
Current walking state. |
Current walking state. |
||
riding_state [RW] | :: RidingState |
Current riding state of this car, or of the car this player is riding in. |
Current riding state of this car, or of the car this player is riding in. |
||
mining_state [RW] | :: table |
Current mining state. |
Current mining state. |
||
shooting_state [RW] | :: table |
Current shooting state. |
Current shooting state. |
||
picking_state [RW] | :: boolean |
Current item-picking state. |
Current item-picking state. |
||
repair_state [RW] | :: table |
Current repair state. |
Current repair state. |
||
cursor_stack [R] | :: LuaItemStack? |
The player's cursor stack. |
The player's cursor stack. |
||
cursor_ghost [RW] | :: ItemPrototypeIdentification? |
The ghost prototype in the player's cursor. |
The ghost prototype in the player's cursor. |
||
driving [RW] | :: boolean |
|
|
||
crafting_queue [R] | :: array[CraftingQueueItem] |
The current crafting queue items. |
The current crafting queue items. |
||
following_robots [R] | :: array[LuaEntity] |
The current combat robots following the character. |
The current combat robots following the character. |
||
cheat_mode [RW] | :: boolean |
When |
When |
||
character_crafting_speed_modifier [RW] | :: double |
|
character_mining_speed_modifier [RW] | :: double |
|
character_additional_mining_categories [RW] | :: array[string] |
|
character_running_speed_modifier [RW] | :: double |
Modifies the running speed of this character by the given value as a percentage. |
Modifies the running speed of this character by the given value as a percentage. |
||
character_build_distance_bonus [RW] | :: uint |
|
character_item_drop_distance_bonus [RW] | :: uint |
|
character_reach_distance_bonus [RW] | :: uint |
|
character_resource_reach_distance_bonus [RW] | :: uint |
|
character_item_pickup_distance_bonus [RW] | :: uint |
|
character_loot_pickup_distance_bonus [RW] | :: uint |
|
character_inventory_slots_bonus [RW] | :: uint |
|
character_trash_slot_count_bonus [RW] | :: uint |
|
character_maximum_following_robot_count_bonus [RW] | :: uint |
|
character_health_bonus [RW] | :: float |
|
character_personal_logistic_requests_enabled [RW] | :: boolean |
If personal logistic requests are enabled for this character or players character. |
If personal logistic requests are enabled for this character or players character. |
||
vehicle_logistic_requests_enabled [RW] | :: boolean |
If personal logistic requests are enabled for this vehicle (spidertron). |
If personal logistic requests are enabled for this vehicle (spidertron). |
||
opened_gui_type [R] | :: defines.gui_type? |
|
build_distance [R] | :: uint |
The build distance of this character or max uint when not a character or player connected to a character. |
The build distance of this character or max uint when not a character or player connected to a character. |
||
drop_item_distance [R] | :: uint |
The item drop distance of this character or max uint when not a character or player connected to a character. |
The item drop distance of this character or max uint when not a character or player connected to a character. |
||
reach_distance [R] | :: uint |
The reach distance of this character or max uint when not a character or player connected to a character. |
The reach distance of this character or max uint when not a character or player connected to a character. |
||
item_pickup_distance [R] | :: double |
The item pickup distance of this character or max double when not a character or player connected to a character. |
The item pickup distance of this character or max double when not a character or player connected to a character. |
||
loot_pickup_distance [R] | :: double |
The loot pickup distance of this character or max double when not a character or player connected to a character. |
The loot pickup distance of this character or max double when not a character or player connected to a character. |
||
resource_reach_distance [R] | :: double |
The resource reach distance of this character or max double when not a character or player connected to a character. |
The resource reach distance of this character or max double when not a character or player connected to a character. |
||
in_combat [R] | :: boolean |
Whether this character entity is in combat. |
Whether this character entity is in combat. |
||
character_running_speed [R] | :: double |
The current movement speed of this character, including effects from exoskeletons, tiles, stickers and shooting. |
The current movement speed of this character, including effects from exoskeletons, tiles, stickers and shooting. |
||
character_mining_progress [R] | :: double |
The current mining progress between 0 and 1 of this character, or 0 if they aren't mining. |
The current mining progress between 0 and 1 of this character, or 0 if they aren't mining. |
Get an inventory belonging to this entity. This can be either the "main" inventory or some auxiliary one, like the module slots or logistic trash slots.
inventory | :: defines.inventory |
|
→ LuaInventory? |
The inventory or |
A given defines.inventory is only meaningful for the corresponding LuaObject type. EG: get_inventory(defines.inventory.character_main) is only meaningful if 'this' is a player character. You may get a value back but if the type of 'this' isn't the type referred to by the defines.inventory it's almost guaranteed to not be the inventory asked for.
The maximum inventory index this entity may use.
Gets the main inventory for this character or player if this is a character or player.
→ LuaInventory? |
The inventory or |
Can at least some items be inserted?
items | :: ItemStackIdentification |
Items that would be inserted. |
Items that would be inserted. |
→ boolean |
|
Insert items into this entity. This works the same way as inserters or shift-clicking: the "best" inventory is chosen automatically.
items | :: ItemStackIdentification |
The items to insert. |
The items to insert. |
→ uint |
The number of items that were actually inserted. |
Create an arrow which points at this entity. This is used in the tutorial. For examples, see control.lua
in the campaign missions.
type | :: string |
Where to point to. This field determines what other fields are mandatory. May be |
Where to point to. This field determines what other fields are mandatory. May be |
Other attributes may be specified depending on type
:
entity
entity | :: LuaEntity |
|
position
position | :: MapPosition |
|
crafting_queue
crafting_queueindex | :: uint |
|
item_stack
inventory_index | :: defines.inventory |
|
item_stack_index | :: uint |
|
source | :: string |
May be either |
May be either |
Get the number of all or some items in this entity.
item | :: string? |
Prototype name of the item to count. If not specified, count all items. |
Prototype name of the item to count. If not specified, count all items. |
Does this entity have any item inside it?
Remove items from this entity.
items | :: ItemStackIdentification |
The items to remove. |
The items to remove. |
→ uint |
The number of items that were actually removed. |
Teleport the entity to a given position, possibly on another surface.
position | :: MapPosition |
Where to teleport to. |
Where to teleport to. |
||
surface | :: SurfaceIdentification? |
Surface to teleport to. If not given, will teleport to the entity's current surface. Only players, cars, and spidertrons can be teleported cross-surface. |
Surface to teleport to. If not given, will teleport to the entity's current surface. Only players, cars, and spidertrons can be teleported cross-surface. |
||
raise_teleported | :: boolean? |
If true, defines.events.script_raised_teleported will be fired on successful entity teleportation. |
If true, defines.events.script_raised_teleported will be fired on successful entity teleportation. |
→ boolean |
|
on_player_changed_position? instantly |
Raised if the teleported entity is a player character. |
script_raised_teleported? instantly |
Raised if the |
Some entities may not be teleported. For instance, transport belts won't allow teleportation and this method will always return false
when used on any such entity.
You can also pass 1 or 2 numbers as the parameters and they will be used as relative teleport coordinates 'teleport(0, 1)'
to move the entity 1 tile positive y. 'teleport(4)'
to move the entity 4 tiles to the positive x.
script_raised_teleported
will not be raised if teleporting a player with no character.
Select an entity, as if by hovering the mouse above it.
position | :: MapPosition |
Position of the entity to select. |
Position of the entity to select. |
on_selected_entity_changed? instantly |
Raised if there is an entity at the given position to select. |
Unselect any selected entity.
on_selected_entity_changed? instantly |
Raised if there is a currently selected entity. |
Is the flashlight enabled.
Begins crafting the given count of the given recipe.
count | :: uint |
The count to craft. |
The count to craft. |
||
recipe | :: string or LuaRecipe |
The recipe to craft. |
The recipe to craft. |
||
silent | :: boolean? |
If false and the recipe can't be crafted the requested number of times printing the failure is skipped. |
If false and the recipe can't be crafted the requested number of times printing the failure is skipped. |
→ uint |
The count that was actually started crafting. |
on_pre_player_crafted_item? instantly |
Raised if crafting was able to be started. |
on_player_main_inventory_changed? current_tick |
Raised if crafting was able to be started. |
Cancels crafting the given count of the given crafting queue index.
index | :: uint |
The crafting queue index. |
The crafting queue index. |
||
count | :: uint |
The count to cancel crafting. |
The count to cancel crafting. |
on_player_cancelled_crafting? instantly |
Raised if crafting was able to be cancelled. |
on_player_main_inventory_changed? current_tick |
Raised if crafting was able to be cancelled. |
Mines the given entity as if this player (or character) mined it.
entity | :: LuaEntity |
The entity to mine |
The entity to mine |
||
force | :: boolean? |
Forces mining the entity even if the items can't fit in the player. |
Forces mining the entity even if the items can't fit in the player. |
→ boolean |
Whether the mining succeeded. |
on_pre_player_mined_item? instantly |
Raised if mining is possible. |
on_player_mined_entity? instantly |
Raised if mining is successful. |
on_player_mined_item? instantly |
Raised if mining is successful. |
Mines the given tile as if this player (or character) mined it.
tile | :: LuaTile |
The tile to mine. |
The tile to mine. |
→ boolean |
Whether the mining succeeded. |
on_player_mined_item? instantly |
Raised if mining is successful. |
on_player_mined_tile? instantly |
Raised if mining is successful. |
When true
control adapter is a LuaPlayer object, false
for entities including characters with players.
Open the technology GUI and select a given technology.
technology | :: TechnologyIdentification? |
The technology to select after opening the GUI. |
The technology to select after opening the GUI. |
Sets a personal logistic request and auto-trash slot to the given value.
slot_index | :: uint |
The slot to set. |
The slot to set. |
||
value | :: LogisticParameters |
The logistic request parameters. |
The logistic request parameters. |
→ boolean |
Whether the slot was set successfully. |
on_entity_logistic_slot_changed? instantly |
Raised if setting of logistic slot was successful. |
This will silently fail if personal logistics are not researched yet.
Sets a vehicle logistic request and auto-trash slot to the given value. Only used on spider-vehicle
.
slot_index | :: uint |
The slot to set. |
The slot to set. |
||
value | :: LogisticParameters |
The logistic request parameters. |
The logistic request parameters. |
→ boolean |
Whether the slot was set successfully. |
on_entity_logistic_slot_changed? instantly |
Raised if setting of logistic slot was successful. |
Gets the parameters of a personal logistic request and auto-trash slot.
slot_index | :: uint |
The slot to get. |
The slot to get. |
→ LogisticParameters |
The logistic parameters. If personal logistics are not researched yet, their |
Gets the parameters of a vehicle logistic request and auto-trash slot. Only used on spider-vehicle
.
slot_index | :: uint |
The slot to get. |
The slot to get. |
→ LogisticParameters |
The logistic parameters. If the vehicle does not use logistics, their |
slot_index | :: uint |
The slot to clear. |
The slot to clear. |
on_entity_logistic_slot_changed? instantly |
Raised if clearing of logistic slot was successful. |
This will silently fail if personal logistics are not researched yet.
slot_index | :: uint |
The slot to clear. |
The slot to clear. |
on_entity_logistic_slot_changed? instantly |
Raised if clearing of logistic slot was successful. |
This will silently fail if the vehicle does not use logistics.
Returns whether the player is holding a blueprint. This takes both blueprint items as well as blueprint records from the blueprint library into account.
Note that both this method and LuaControl::get_blueprint_entities refer to the currently selected blueprint, meaning a blueprint book with a selected blueprint will return the information as well.
Gets the entities that are part of the currently selected blueprint, regardless of it being in a blueprint book or picked from the blueprint library.
→ array[BlueprintEntity]? |
Returns |
Returns whether the player is holding something in the cursor. It takes into account items from the blueprint library, as well as items and ghost cursor.
The surface this entity is currently on.
Unique ID associated with the surface this entity is currently on.
The current position of the entity.
The vehicle the player is currently sitting in.
Unique ID associated with the force of this entity.
The currently selected entity. Assigning an entity will select it if is selectable, otherwise the selection is cleared.
on_selected_entity_changed? instantly |
Raised when a selectable entity is written to this attribute. |
The GUI the player currently has open.
This is the GUI that will asked to close (by firing the on_gui_closed event) when the Esc
or E
keys are pressed. If this attribute is not nil
, and a new GUI is written to it, the existing one will be asked to close.
on_gui_opened? instantly |
Raised when writing a valid GUI target to this attribute. |
Write supports any of the types. Read will return the entity
, equipment
, equipment-grid
, player
, element
, inventory
, technology
, or nil
.
Size of the crafting queue.
The crafting queue progress in the range [0-1]
. 0
when no recipe is being crafted.
Current walking state.
walking | :: boolean |
If |
If |
||
direction | :: defines.direction |
Direction where the player is walking |
Direction where the player is walking |
Make the player go north. Note that a one-shot action like this will only make the player walk for one tick.
|
Current riding state of this car, or of the car this player is riding in.
Current mining state.
mining | :: boolean |
Whether the player is mining at all |
Whether the player is mining at all |
||
position | :: MapPosition? |
What tiles the player is mining; only used when the player is mining tiles (holding a tile in the cursor). |
What tiles the player is mining; only used when the player is mining tiles (holding a tile in the cursor). |
When the player isn't mining tiles the player will mine what ever entity is currently selected. See LuaControl::selected and LuaControl::update_selected_entity.
Current shooting state.
state | :: defines.shooting |
The current state |
The current state |
||
position | :: MapPosition |
The position being shot at |
The position being shot at |
Current item-picking state.
Current repair state.
repairing | :: boolean |
The current state |
The current state |
||
position | :: MapPosition |
The position being repaired |
The position being repaired |
The player's cursor stack. nil
if the player controller is a spectator.
Even though this property is marked as read-only, it returns a LuaItemStack, meaning it can be manipulated like so:
|
The ghost prototype in the player's cursor. When read, it will be a LuaItemPrototype.
Items in the cursor stack will take priority over the cursor ghost.
true
if the player is in a vehicle. Writing to this attribute puts the player in or out of a vehicle.
on_player_driving_changed_state? instantly |
Raised if the driving state successfully changed. |
The current crafting queue items.
The current combat robots following the character.
When called on a LuaPlayer, it must be associated with a character(see LuaPlayer::character).
When true
hand crafting is free and instant.
When called on a LuaPlayer, it must be associated with a character (see LuaPlayer::character).
When called on a LuaPlayer, it must be associated with a character (see LuaPlayer::character).
When called on a LuaPlayer, it must be associated with a character (see LuaPlayer::character).
Modifies the running speed of this character by the given value as a percentage. Setting the running modifier to 0.5
makes the character run 50% faster. The minimum value of -1
reduces the movement speed by 100%, resulting in a speed of 0
.
When called on a LuaPlayer, it must be associated with a character (see LuaPlayer::character).
When called on a LuaPlayer, it must be associated with a character (see LuaPlayer::character).
When called on a LuaPlayer, it must be associated with a character (see LuaPlayer::character).
When called on a LuaPlayer, it must be associated with a character (see LuaPlayer::character).
When called on a LuaPlayer, it must be associated with a character (see LuaPlayer::character).
When called on a LuaPlayer, it must be associated with a character (see LuaPlayer::character).
When called on a LuaPlayer, it must be associated with a character (see LuaPlayer::character).
When called on a LuaPlayer, it must be associated with a character (see LuaPlayer::character).
When called on a LuaPlayer, it must be associated with a character (see LuaPlayer::character).
When called on a LuaPlayer, it must be associated with a character (see LuaPlayer::character).
When called on a LuaPlayer, it must be associated with a character (see LuaPlayer::character).
If personal logistic requests are enabled for this character or players character.
If personal logistic requests are enabled for this vehicle (spidertron).
The build distance of this character or max uint when not a character or player connected to a character.
The item drop distance of this character or max uint when not a character or player connected to a character.
The reach distance of this character or max uint when not a character or player connected to a character.
The item pickup distance of this character or max double when not a character or player connected to a character.
The loot pickup distance of this character or max double when not a character or player connected to a character.
The resource reach distance of this character or max double when not a character or player connected to a character.
Whether this character entity is in combat.
The current movement speed of this character, including effects from exoskeletons, tiles, stickers and shooting.
The current mining progress between 0 and 1 of this character, or 0 if they aren't mining.