Factorio Runtime Docs

Class LuaTrain

A train. Trains are a sequence of connected rolling stocks -- locomotives and wagons.

Members

get_item_count(item?)  → uint

Get the amount of a particular item stored in the train.

Get the amount of a particular item stored in the train.

get_contents()  → dictionary[string → uint]

Get a mapping of the train's inventory.

Get a mapping of the train's inventory.

remove_item(stack)  → uint

Remove some items from the train.

Remove some items from the train.

insert(stack)

Insert a stack into the train.

Insert a stack into the train.

clear_items_inside()

Clear all items in this train.

Clear all items in this train.

recalculate_path(force?)  → boolean

Checks if the path is invalid and tries to re-path if it isn't.

Checks if the path is invalid and tries to re-path if it isn't.

get_fluid_count(fluid?)  → double

Get the amount of a particular fluid stored in the train.

Get the amount of a particular fluid stored in the train.

get_fluid_contents()  → dictionary[string → double]

Gets a mapping of the train's fluid inventory.

Gets a mapping of the train's fluid inventory.

remove_fluid(fluid)  → double

Remove some fluid from the train.

Remove some fluid from the train.

insert_fluid(fluid)  → double

Inserts the given fluid into the first available location in this train.

Inserts the given fluid into the first available location in this train.

clear_fluids_inside()

Clears all fluids in this train.

Clears all fluids in this train.

go_to_station(index)

Go to the station specified by the index in the train's schedule.

Go to the station specified by the index in the train's schedule.

get_rails()  → array[LuaEntity]

Gets all rails under the train.

Gets all rails under the train.

help()  → string

All methods and properties that this object supports.

All methods and properties that this object supports.

manual_mode [RW] :: boolean

When true, the train is explicitly controlled by the player or script.

When true, the train is explicitly controlled by the player or script.

speed [RW] :: double

Current speed.

Current speed.

max_forward_speed [R] :: double

Current max speed when moving forward, depends on locomotive prototype and fuel.

Current max speed when moving forward, depends on locomotive prototype and fuel.

max_backward_speed [R] :: double

Current max speed when moving backwards, depends on locomotive prototype and fuel.

Current max speed when moving backwards, depends on locomotive prototype and fuel.

weight [R] :: double

The weight of this train.

The weight of this train.

carriages [R] :: array[LuaEntity]

The rolling stocks this train is composed of, with the numbering starting at the front of the train.

The rolling stocks this train is composed of, with the numbering starting at the front of the train.

locomotives [R] :: dictionary[string → array[LuaEntity]]

Arrays of locomotives.

Arrays of locomotives.

cargo_wagons [R] :: array[LuaEntity]

The cargo carriages the train contains.

The cargo carriages the train contains.

fluid_wagons [R] :: array[LuaEntity]

The fluid carriages the train contains.

The fluid carriages the train contains.

schedule [RW] :: TrainSchedule?

This train's current schedule, if any.

This train's current schedule, if any.

state [R] :: defines.train_state

This train's current state.

This train's current state.

front_rail [R] :: LuaEntity?

The rail at the front end of the train, if any.

The rail at the front end of the train, if any.

back_rail [R] :: LuaEntity?

The rail at the back end of the train, if any.

The rail at the back end of the train, if any.

rail_direction_from_front_rail [R] :: defines.rail_direction
rail_direction_from_back_rail [R] :: defines.rail_direction
front_stock [R] :: LuaEntity?

The front stock of this train, if any.

The front stock of this train, if any.

back_stock [R] :: LuaEntity?

The back stock of this train, if any.

The back stock of this train, if any.

station [R] :: LuaEntity?

The train stop this train is stopped at, if any.

The train stop this train is stopped at, if any.

has_path [R] :: boolean

If this train has a path.

If this train has a path.

path_end_rail [R] :: LuaEntity?

The destination rail this train is currently pathing to, if any.

The destination rail this train is currently pathing to, if any.

path_end_stop [R] :: LuaEntity?

The destination train stop this train is currently pathing to, if any.

The destination train stop this train is currently pathing to, if any.

id [R] :: uint

The unique train ID.

The unique train ID.

passengers [R] :: array[LuaPlayer]

The player passengers on the train

The player passengers on the train

riding_state [R] :: RidingState

The riding state of this train.

The riding state of this train.

killed_players [R] :: dictionary[uint → uint]

The players killed by this train.

The players killed by this train.

kill_count [R] :: uint

The total number of kills by this train.

The total number of kills by this train.

path [R] :: LuaRailPath?

The path this train is using, if any.

The path this train is using, if any.

signal [R] :: LuaEntity?

The signal this train is arriving or waiting at, if any.

The signal this train is arriving or waiting at, 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.

Methods

get_item_count(item?)  → uint

Get the amount of a particular item stored in the train.

Parameters

item :: string?

Item name to count. If not given, counts all items.

Item name to count. If not given, counts all items.


get_contents()  → dictionary[string → uint]

Get a mapping of the train's inventory.

Return values

→ dictionary[string → uint]

The counts, indexed by item names.


remove_item(stack)  → uint

Remove some items from the train.

Parameters

stack :: ItemStackIdentification

The amount and type of items to remove

The amount and type of items to remove

Return values

→ uint

Number of items actually removed.


insert(stack)

Insert a stack into the train.

Parameters

stack :: ItemStackIdentification

clear_items_inside()

Clear all items in this train.


recalculate_path(force?)  → boolean

Checks if the path is invalid and tries to re-path if it isn't.

Parameters

force :: boolean?

Forces the train to re-path regardless of the current path being valid or not.

Forces the train to re-path regardless of the current path being valid or not.

Return values

→ boolean

If the train has a path after the repath attempt.


get_fluid_count(fluid?)  → double

Get the amount of a particular fluid stored in the train.

Parameters

fluid :: string?

Fluid name to count. If not given, counts all fluids.

Fluid name to count. If not given, counts all fluids.


get_fluid_contents()  → dictionary[string → double]

Gets a mapping of the train's fluid inventory.

Return values

→ dictionary[string → double]

The counts, indexed by fluid names.


remove_fluid(fluid)  → double

Remove some fluid from the train.

Parameters

fluid :: Fluid

Return values

→ double

The amount of fluid actually removed.


insert_fluid(fluid)  → double

Inserts the given fluid into the first available location in this train.

Parameters

fluid :: Fluid

Return values

→ double

The amount inserted.


clear_fluids_inside()

Clears all fluids in this train.


go_to_station(index)

Go to the station specified by the index in the train's schedule.

Parameters

index :: uint

get_rails()  → array[LuaEntity]

Gets all rails under the train.


help()  → string

All methods and properties that this object supports.

Attributes

manual_mode :: boolean Read/Write

When true, the train is explicitly controlled by the player or script. When false, the train moves autonomously according to its schedule.


speed :: double Read/Write

Current speed.

Note

Changing the speed of the train is potentially an unsafe operation because train uses the speed for its internal calculations of break distances, etc.


max_forward_speed :: double Read

Current max speed when moving forward, depends on locomotive prototype and fuel.


max_backward_speed :: double Read

Current max speed when moving backwards, depends on locomotive prototype and fuel.


weight :: double Read

The weight of this train.


carriages :: array[LuaEntity] Read

The rolling stocks this train is composed of, with the numbering starting at the front of the train.


locomotives :: dictionary[string → array[LuaEntity]] Read

Arrays of locomotives. The result is two arrays, indexed by "front_movers" and "back_movers" containing the locomotives. E.g. {front_movers={loco1, loco2}, back_movers={loco3}}.


cargo_wagons :: array[LuaEntity] Read

The cargo carriages the train contains.


fluid_wagons :: array[LuaEntity] Read

The fluid carriages the train contains.


schedule :: TrainSchedule? Read/Write

This train's current schedule, if any. Set to nil to clear.

Note

The schedule can't be changed by modifying the returned table. Instead, changes must be made by assigning a new table to this attribute.


state :: defines.train_state Read

This train's current state.


front_rail :: LuaEntity? Read

The rail at the front end of the train, if any.


back_rail :: LuaEntity? Read

The rail at the back end of the train, if any.


rail_direction_from_front_rail :: defines.rail_direction Read


rail_direction_from_back_rail :: defines.rail_direction Read


front_stock :: LuaEntity? Read

The front stock of this train, if any. The front of the train is in the direction that a majority of locomotives are pointing in. If it's a tie, the North and West directions take precedence.


back_stock :: LuaEntity? Read

The back stock of this train, if any. The back of the train is at the opposite end of the front.


station :: LuaEntity? Read

The train stop this train is stopped at, if any.


has_path :: boolean Read

If this train has a path.


path_end_rail :: LuaEntity? Read

The destination rail this train is currently pathing to, if any.


path_end_stop :: LuaEntity? Read

The destination train stop this train is currently pathing to, if any.


id :: uint Read

The unique train ID.


passengers :: array[LuaPlayer] Read

The player passengers on the train

Note

This does not index using player index. See LuaPlayer::index on each player instance for the player index.


riding_state :: RidingState Read

The riding state of this train.


killed_players :: dictionary[uint → uint] Read

The players killed by this train.

The keys are the player indices, the values are how often this train killed that player.


kill_count :: uint Read

The total number of kills by this train.


path :: LuaRailPath? Read

The path this train is using, if any.


signal :: LuaEntity? Read

The signal this train is arriving or waiting at, if any.


valid :: boolean Read

Is this object valid? This Lua object holds a reference to an object within the game engine. It is possible that the game-engine object is removed whilst a mod still holds the corresponding Lua object. If that happens, the object becomes invalid, i.e. this attribute will be false. Mods are advised to check for object validity if any change to the game state might have occurred between the creation of the Lua object and its access.


object_name :: string Read

The class name of this object. Available even when valid is false. For LuaStruct objects it may also be suffixed with a dotted path to a member of the struct.

Classes

Events

Concepts

Defines

Builtin types

>|