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

# Factorio Runtime Docs Version 2.0.77

# LuaSegment - Runtime Docs

## Class LuaSegment

An individual segment of a LuaSegmentedUnit. If the segment exists in a generated chunk, you can access the entity representation using LuaSegment::entity.

## Members

prototype | :: R LuaEntityPrototype | The prototype for the entity representation of the segment.
The prototype for the entity representation of the segment.
unit | :: R LuaSegmentedUnit | The segmented unit that owns the segment.
The segmented unit that owns the segment.
entity | :: R LuaEntity? | The actual entity representation of the segment if it exists. [...]
The actual entity representation of the segment if it exists. [...]
position | :: R MapPosition? | The position of the segment if one has been assigned. [...]
The position of the segment if one has been assigned. [...]
orientation | :: R RealOrientation? | The relative orientation of the segment if one has been assigned. [...]
The relative orientation of the segment if one has been assigned. [...]
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. [...]

## Attributes

### prototype :: Read LuaEntityPrototype

The prototype for the entity representation of the segment.

### unit :: Read LuaSegmentedUnit

The segmented unit that owns the segment.

### entity :: Read LuaEntity?

The actual entity representation of the segment if it exists. A segment's entity will be automatically destroyed if the segment moves into chunks that have not yet been fully generated or onto "out-of-map" tiles. Conversely, if a segment moves into a chunk that is fully generated and onto a non-"out-of-map" tile, then its entity will be created if it doesn't exist yet.

### position :: Read MapPosition?

The position of the segment if one has been assigned. A position may not be assigned if the unit's number of body nodes is fewer than LuaSegmentedUnit::max_body_nodes.

This position may be in an un-generated chunk. Use LuaSurface::is_chunk_generated to check before attempting to access the chunk.

If LuaSegment::entity is non-nil, this returns that entity's LuaEntity::position. If the entity is `nil`, then reading this field calculates the entity's would-be position if it existed. This can be expensive to compute, so avoid reading this field too often unless it is really necessary.

### orientation :: Read RealOrientation?

The relative orientation of the segment if one has been assigned. An orientation may not be assigned if the unit's number of body nodes is fewer than LuaSegmentedUnit::max_body_nodes.

If LuaSegment::entity is non-nil, this returns that entity's LuaEntity::orientation. If the entity is `nil`, then reading this field calculates the entity's would-be position if it existed. This can be expensive to compute, so avoid reading this field too often unless it is really necessary.

### 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.

Class used in

- LuaSegmentedUnit::segments