[index](../index.html) / [api](../api.html) / engine --- # Module api.engine[🔗](#api.engine) Contains API for reading the game engine state. This module is available as read-only access to the entire engine state (in particular to the entire entity component system). It can be accessed from both the GUI State and the Engine State. ``` [Expand All] [Collapse All] global record Engine type Entity = integer record Revision num: {integer, integer, integer} end record Component record Account new: function(): Account balance: integer loan: integer end record Aircraft new: function(): Aircraft reservedTakeOffRunway: boolean reservedLandingRunway: boolean pathIndex: integer reservedFrom: integer reservedTo: integer end record Animal new: function(): Animal worldPosition: Vec3f lookingAt: Vec2f targetCoord: Vec2f movementSpeed: number angularSpeed: number lastUpdateElapsed: number targetChangedElapsed: number invalidTileElapsed: number movementType: integer roll: number scaling: number flock: {Vec3f} end record AssetGroup new: function(): AssetGroup end record AssetGroupAutoRemove new: function(): AssetGroupAutoRemove end record AudioEmitter new: function(): AudioEmitter emitter: integer end record BaseEdge new: function(): BaseEdge clone: function(BaseEdge): BaseEdge type: BaseEdgeType typeIndex: integer objects: {{Engine.Entity, EdgeObjectType}} laneConfigs: {LaneConfig} laneConfigs_native: Vector roadDevelopmentLocked: boolean node0: Engine.Entity node1: Engine.Entity position0: Vec3f position1: Vec3f tangent0: Vec3f tangent1: Vec3f laneConfig: {LaneConfig} edgeDecorations: {{integer, boolean}} distance: number roadType: RoadType roadTemplate: ResName roadStyle: ResName end record BaseEdgeStreet new: function(): BaseEdgeStreet precedenceNode0: PrecedencePreference precedenceNode1: PrecedencePreference end record BaseNode new: function(): BaseNode clone: function(BaseNode): BaseNode position: Vec3f end record TrafficLightState new: function(): TrafficLightState clone: function(TrafficLightState): TrafficLightState lockedLanes: {integer} duration: number minDuration: number canSkip: boolean end record TrafficLightConfig new: function(): TrafficLightConfig clone: function(TrafficLightConfig): TrafficLightConfig states: {TrafficLightState} trafficLightType: integer end record BaseNodeConfig new: function(): BaseNodeConfig laneConnections: {LaneConnection} crosswalks: {Entity} trafficLightPreference: TrafficLightPreference trafficLightConfig: TrafficLightConfig doubleSlipSwitch: boolean userModifiedLaneConnections: boolean userModifiedTrafficLightStates: boolean end record BaseNodeTrafficLight new: function(): BaseNodeTrafficLight trafficLightData: TrafficLightData state: integer time: number stateTimes: {integer} end record BaseParallelStrip new: function(): BaseParallelStrip record BaseEdgeRange new: function(): BaseEdgeRange edge: Engine.Entity bounds: {number, number} end rangeGroups: {{BaseEdgeRange}} rangeGroups_native: Vector> end record BoundingVolume new: function(): BoundingVolume bbox: Box3f end record Bridge new: function(): Bridge record Interval new: function(): Interval splines: {{Vec3f}} railingModels: {{integer, Mat4f}} end intervals: {Interval} end record BuildCost new: function(): BuildCost buildCost: integer bulldozeCost: integer noCostAtAll: boolean end record BulldozerInfo new: function(): BulldozerInfo locked: boolean end record Carriage new: function(): Carriage reversed: boolean end record CarriageList new: function(): CarriageList carriages: {Engine.Entity} end record ColliderList new: function(): ColliderList colliders: {{Collider, Mat4f}} end record Color new: function(): Color color: Vec3f end record Construction new: function(): Construction record ConstructionParams new: function(): ConstructionParams seed: integer modules: {integer : } end fileName: ResName params: ConstructionParams params_native: NativeLuaTable transf: Mat4f timeBuilt: integer frozenNodes: {Engine.Entity} frozenEdges: {Engine.Entity} depots: {Engine.Entity} stations: {Engine.Entity} industries: {Engine.Entity} townBuildings: {Engine.Entity} subconstructions: {Engine.Entity} persistentMetadata: ConstructionInstanceMetadata slots: {Slot} slotConfig: {string : SlotConfig} dependentSlots: {integer, {integer}} tag2modelInstance: {string, {{Engine.Entity, integer}}} entityAndIndex2labelTexts: {{Engine.Entity, integer}, {string}} tag2segments: {string, {Engine.Entity}} end record CustomState new: function(): CustomState state: { : } end record EmissionEmitter new: function(): EmissionEmitter position: Vec3f radius: number noisePower: number pollutionPower: number end record EmissionGrid new: function(): EmissionGrid record Type Noise: Type Pollution: Type end X0: integer Y0: integer width: integer height: integer gridPointSize: Vec2f concentrationBuffer: Gridf averageConcentration: Gridf type: Type wind: Vec2f end record Field new: function(): Field end record GameScript new: function(): GameScript gameScript: ResName addedToExistingSavegame: boolean state: T state_native: NativeLuaTable eventSubscriptions: any end record GameSpeed new: function(): GameSpeed speedup: integer millisPerDay: integer end record GameTime new: function(): GameTime gameTime: integer gameTime0: integer dates: {{integer, Date}} timeOfDaySec: integer tickCount: integer updateCount: integer end record Industry new: function(): Industry stockList: Engine.Entity level: integer closureTimeStamp: integer upgradeProgress: number manualDevelopment: boolean construction: Engine.Entity maxLevel: integer end record Landmark new: function(): Landmark transportNetworkEntity: Engine.Entity active: boolean end record LandVehicle new: function(): LandVehicle record DynState new: function(): DynState brakingTimer: number turnLeft: boolean turnRight: boolean end isTram: boolean dyn: DynState end record Line new: function(): Line record LoadMode LOAD_IF_AVAILABLE: LoadMode FULL_LOAD_ANY: LoadMode FULL_LOAD_ALL: LoadMode LEGACY_UNLOAD_ONLY: LoadMode end record StopConfig new: function(StopConfig): StopConfig load: {boolean} maxLoad: {number} forceUnload: boolean destroyForConfigChange: boolean destroyForRefresh: boolean end record Stop new: function(): Stop stationGroup: Engine.Entity station: integer terminal: integer alternativeTerminals: {StationTerminal} loadMode: LoadMode minWaitingTime: number maxWaitingTime: number maxAdditionalWaitingTime: number waypoints: {Waypoint} stopConfig: StopConfig end stops: {Stop} vehicleInfo: LineVehicleInfo customFilters: boolean reservationPriority: number end record LogBook new: function(): LogBook record Log new: function(): Log times: {integer} values: {integer} times_native: Vector values_native: Vector end refEntity2name2log: {Engine.Entity : {string : Log}} name2log: {string : Log} name2log_native: Map end record LotList new: function(): LotList record Lot new: function(): Lot vertices: {Vec2f} texCoords: {Vec2f} triangles: {integer} texKey: ResName solid: boolean end lots: {Lot} end record MaintenanceCost new: function(): MaintenanceCost maintenanceCost: integer accumulatedCost: {{Carrier, Carrier} : integer} end record ModelInstanceList new: function(): ModelInstanceList fatInstances: {ModelInstance} thinInstances: {ThinModelInstance} fatInstances_native: Vector thinInstances_native: Vector dynamic: boolean end record ModelPerson new: function(): ModelPerson path: ExtPath pathPos: PathPos stopped: boolean topSpeed: number speed: number brakeDecel: number offset: number position: Vec3f movementType: integer dist: number dist0: number stateTime: integer startWaitTime: number endWaitTime: number end record ModelPersonIdle new: function(): ModelPersonIdle arrivalTime: integer end record MovePath new: function(): MovePath record DynState new: function(): DynState pathPos: PathPos speed: number brakeDecel: number accel: number timeUntilAccel: number timeStanding: number timeToIgnore: number approachingStation: boolean end path: Path endParam: number endPos: number state: VehicleState blocked: integer allowEarlyArrival: boolean reverse: boolean servedFrom: integer servedTo: integer occupiedBackIndex: integer occupiedFrontIndex: integer dyn: DynState dyn0: DynState end record MovePathAircraft new: function(): MovePathAircraft record AircraftState new: function(): AircraftState record DynState new: function(): DynState velocity: Vec2f lastAccel: Vec2f pitch: number pitchV: number roll: number rollV: number thrust: number thrustV: number elevator: number aileronLeft: number propPhase: number flaps: number alt: number end flightState: FlightState cruiseAlt: number waitingDistance: number waitingPriority: integer gear: boolean gearTime: integer dyn: DynState dyn0: DynState end record ShipState new: function(): ShipState record DynState new: function(): DynState lastAccel: number tractiveEffort: number tractiveEffortV: number roll: number rollV: number powerOutput: number approachingStation: boolean paddlePhase: number actualPos: PathPosData end waitingDist: number clearToLand: boolean startPathPosData: PathPosData targetPathPosData: PathPosData dyn: DynState dyn0: DynState end record PathState PATH0: PathState PATH1: PathState PATH2: PathState end path0: Path path1: {{EdgeGeometry, boolean}} path2: Path pathPos: PathPos pathPos0: PathPos state: VehicleState pathState: PathState speed: number speed0: number brakeDecel: number aircraftState: AircraftState shipState: ShipState end record Name new: function(): Name name: string end record Parcel new: function(): Parcel record CollisionType Environment: CollisionType Parcel: CollisionType end record Face new: function(): Face points: {Vec3f} collision: {CollisionType : boolean} end streetSegment: Engine.Entity left: boolean curveParam: number offset: number faces: {Face} end record PersonCapacity new: function(): PersonCapacity type: LandUseType capacity: integer personNodes: {NodeId} vehicleNodes: {NodeId} end record Player new: function(): Player headquarters: Engine.Entity end record PlayerOwned new: function(): PlayerOwned player: Engine.Entity end record RailroadCrossing new: function(): RailroadCrossing record State OPEN: State CLOSED: State WAITING: State end nodes: {Engine.Entity} edges: {Engine.Entity} typeIndex: integer state: State stateTime: integer end record RunwayList new: function(): RunwayList runways: {Runway} end record Scaffold new: function(): Scaffold record Type NEW: Type UPGRADE: Type DOWNGRADE: Type end type: Type oldModelId: integer oldTransf: Mat4f oldBuildingFace: {{Vec2f}} oldFloorLevel: {{number}} oldHeight: number buildingFace: {{Vec2f}} floorLevel: {{number}} height: number constructionStartTime: integer constructionEndTime: integer cranePosition: Vec2f craneAngle: number craneTerrainHeight: number craneAngleSpan: {number} end record ShapeList new: function(): ShapeList shapes: {Shape} end record Ship new: function(): Ship pathIndex: integer reservedFrom: integer reservedTo: integer end record SignalList new: function(): SignalList signals: {Signal} end record SimCargo record PickupPoint new: function(): PickupPoint vehicle: Engine.Entity line: Engine.Entity position: Vec3f carrier: Carrier end new: function(): SimCargo cargoType: CargoTypeId targetOrPickupEntity: Engine.Entity sourceEntity: Engine.Entity pickupPoints: {PickupPoint} speed: number startTime: integer pickupTime: integer deliveryExtensionDuration: integer end record SimEntityAtBuilding new: function(): SimEntityAtBuilding waitingTime: number end record SimEntityAtStock new: function(): SimEntityAtStock stock: {Engine.Entity, StockId} arrivalTime: integer end record SimEntityAtTerminal new: function(): SimEntityAtTerminal line: Engine.Entity lineStop0: integer lineStop1: integer arrivalTime: number vehicle: Engine.Entity end record SimEntityAtVehicle new: function(): SimEntityAtVehicle line: Engine.Entity lineStop0: integer lineStop1: integer vehicle: Engine.Entity roundTripCounter: integer end record SimEntityIdle new: function(): SimEntityIdle end record SimEntityNeedsPath new: function(): SimEntityNeedsPath input: PathFactoryInput output: PathFactoryOutput end record SimEntityMoving new: function(): SimEntityMoving line: Engine.Entity lineStop0: integer lineStop1: integer partialPath: boolean expectedArrivalTime: number end record SimPersonAtTerminal new: function(): SimPersonAtTerminal edgeId: EdgeId place: integer end record SimPersonAtVehicle new: function(): SimPersonAtVehicle vehicle: Engine.Entity part: integer place: integer expectedArrivalTime: number end record SimPerson new: function(): SimPerson cargoType: CargoTypeId destinations: {Engine.Entity} moveModes: {MoveMode} travelTimes: {number} targetOrAtEntity: Engine.Entity lastNonResType: LandUseType lastMoveMode: MoveMode walkSpeed: number modelIdPerson: integer colorConfigPerson: integer modelIdCar: integer colorConfigCar: integer lastDestinationUpdate: integer landUse2ReachableWalkDrive: {integer, integer} landUse2ReachableLines: {integer, integer} pickupTime: integer happiness: number end type Station = Station record StationGroup new: function(): StationGroup stations: {Engine.Entity} end record StockList record Stock new: function(): Stock type: StockListType cargoType: CargoTypeId cargoTypes: CargoTypeSet mixedTypes: boolean capacity: integer loadSpeedModifier: number loadIndicatorModelInstanceIndices: {integer} tag: integer end record StockData new: function(): StockData consumeFrequency: number end record Rule new: function(): Rule input: {{integer}} output: {CargoTypeId : integer} capacity: integer consumptionFactor: number booster: boolean boostFactor: number priority: integer slot: integer end record RuleData new: function(): RuleData record ApplyInfo new: function(): ApplyInfo time: integer interval: integer consumedCargo: {StockId} producedCargo: {{CargoTypeId, integer}} end applyHistory: {ApplyInfo} lastApplyDecayFactor: number end record CargoData new: function(): CargoData produceFrequency: integer end record Modifiers new: function(): Modifiers productivity: number end new: function(): StockList stocks: {Stock} rules: {Rule} stockDatas: {StockData} ruleDatas: {RuleData} cargoData: {CargoTypeId : CargoData} thrownAwayCargo: integer modifiers: Modifiers end record Subconstruction new: function(): Subconstruction tag: integer slotIds: {integer} metadata: SubconstructionInstanceMetadata end record Terrain new: function(): Terrain size: Vec2i baseLevels: integer baseResolution: Vec3f highLevels: integer offsetZ: number waterLevel: number dataMaps: {string, HeightmapNew} end record TerrainAlignmentList new: function(): TerrainAlignmentList terrainAlignments: {TerrainAlignment} end record TerrainTile new: function(): TerrainTile terrainEntity: Engine.Entity position: Vec2i end record TerrainTileBrush new: function(): TerrainTileBrush materialIndexBrush: {integer} forceAboveBit: {boolean} end record TerrainTileHeightmap new: function(): TerrainTileHeightmap vertices: {integer} end record TickEpoch new: function(): TickEpoch time: integer commandIndex: integer subIndex: integer end record Town new: function(): Town initialLandUseCapacities: {integer} capacityScalingFactor: number levelToCapacityDistributionWeights: {{number}} sizeFactors: {number} cargoNeeds: {{{CargoTypeId, number}}} developmentActive: boolean noise: number pollution: number end record TownBuilding new: function(): TownBuilding personCapacity: Engine.Entity stockList: Engine.Entity construction: Engine.Entity level: integer parcels: {Engine.Entity} depth: integer height: number town: Engine.Entity timeBuilt: integer blockedDevelopment: boolean end record TownConnection new: function(): TownConnection entity0: Engine.Entity entity1: Engine.Entity position0: Vec2f position1: Vec2f time: number currentTime: number lastUpgradeYear: integer valid: boolean end record TpNetLink new: function(): TpNetLink from: EdgePos to: EdgePos end record Train new: function(): Train end record TransportNetwork new: function(): TransportNetwork nodes: {Node} edges: {Edge} turnaroundEdges: {integer} end record TransportNetworkNodes new: function(): TransportNetworkNodes end record TransportVehicle record Modifiers new: function(): Modifiers topSpeedScale: number noiseScale: number pollutionScale: number comfortScale: number end record LoadSpeedModifiers vehicleOverlength: number stockCompatibility: number vehicleCompatibility: number vehicleIncompatibility: number getTotalPenalty: function(LoadSpeedModifiers): number end record Config new: function(): Config transportModes: {TransportMode : boolean} allCaps: {CargoTypeId} capacities: {CargoTypeId} loadSpeeds: {number} reversible: boolean end record LoadState new: function(): LoadState None: LoadState Arrived: LoadState Unloading: LoadState Loading: LoadState WaitForScheduledDeparture: LoadState Departing: LoadState end record PendingIncomeParams new: function(): PendingIncomeParams record EntityRev0 entity: Engine.Entity rev0: integer end amount: integer carrier: Carrier vehicleEntity: Engine.Entity lineEntity: Engine.Entity end new: function(): TransportVehicle carrier: Carrier transportVehicleConfig: TransportVehicleConfig config: Config state: TransportVehicleState userStopped: boolean depot: Engine.Entity sellOnArrival: boolean line: Engine.Entity stopIndex: integer arrivalStationTerminal: StationTerminal arrivalStationTerminalLocked: boolean lineStopDepartures: {integer} lastLineStopDeparture: integer sectionTimes: {number} lineStop2cargo2available: {{CargoTypeId}} loadState: LoadState timeUntilNextScheduledDeparture: number loadSpeedModifiers: {CargoTypeId : LoadSpeedModifiers} timeUntilCloseDoors: number timeUntilDeparture: number timeUntilNextLoad: {CargoTypeId : number} timeUntilNextUnload: {CargoTypeId : number} lastStationStockIndex: integer doorsTime: integer daysInDepot: integer daysAtTerminal: integer doorsOpen: boolean noPath: boolean autoDeparture: boolean maintenanceStation: Engine.Entity modifiers: Modifiers unloadPendingIncome: PendingIncomeParams closestTown: Engine.Entity visitedStops: {integer} end record VehicleDepot new: function(): VehicleDepot carrier: Carrier transportModes: {TransportMode : boolean} inNodes: {NodeId} outNodes: {NodeId} state: integer doors: number stateTime: integer catchmentArea: CatchmentArea maintenancePool: integer maxPoolUsage: number averagePoolUsage: number poolUsageTicks: integer filterTags: {string} end record VehicleOrder new: function(): VehicleOrder equals: function(VehicleOrder, VehicleOrder): boolean entity: Engine.Entity strongBrakeEntity: boolean waitingForSpace: boolean waitingForTrafficLight: boolean end record Warehouse new: function(): Warehouse stockList: Engine.Entity construction: Engine.Entity end record WaterMesh new: function(): WaterMesh record Contour new: function(): Contour vertices: {Vec2f} normals: {Vec2f} end waterLevel: number vertices: {Vec2f} depths: {number} indices: {integer} contours: {Contour} pos: Vec2i end record World new: function(): World cloudCoverage: number end end record ComponentType AIRCRAFT: ComponentType ANIMAL: ComponentType ASSET_GROUP: ComponentType BASE_EDGE: ComponentType BASE_EDGE_STREET: ComponentType BASE_NODE: ComponentType BASE_PARALLEL_STRIP: ComponentType CUSTOM_STATE: ComponentType EMISSION_EMITTER: ComponentType FIELD: ComponentType GAME_TIME: ComponentType GAME_SPEED: ComponentType MODEL_INSTANCE_LIST: ComponentType NAME: ComponentType LINE: ComponentType LOG_BOOK: ComponentType MODEL_PERSON: ComponentType MOVE_PATH: ComponentType MOVE_PATH_AIRCRAFT: ComponentType STATION: ComponentType STATION_GROUP: ComponentType SIM_PERSON: ComponentType SIM_PERSON_AT_TERMINAL: ComponentType SIM_PERSON_AT_VEHICLE: ComponentType SIM_CARGO: ComponentType SIM_ENTITY_AT_BUILDING: ComponentType SIM_ENTITY_AT_VEHICLE: ComponentType SIM_ENTITY_AT_TERMINAL: ComponentType SIM_ENTITY_IDLE: ComponentType SIM_ENTITY_MOVING: ComponentType SIGNAL_LIST: ComponentType TOWN: ComponentType INDUSTRY: ComponentType STOCK_LIST: ComponentType TOWN_BUILDING: ComponentType TRANSPORT_VEHICLE: ComponentType TRAIN: ComponentType CARRIAGE: ComponentType CARRIAGE_LIST: ComponentType VEHICLE_DEPOT: ComponentType COLOR: ComponentType BOUNDING_VOLUME: ComponentType CONSTRUCTION: ComponentType SUBCONSTRUCTION: ComponentType PERSON_CAPACITY: ComponentType PLAYER_OWNED: ComponentType ACCOUNT: ComponentType GAME_SCRIPT: ComponentType WAREHOUSE: ComponentType TRANSPORT_NETWORK: ComponentType MAINTENANCE_COST: ComponentType RAILROAD_CROSSING: ComponentType PLAYER: ComponentType WORLD: ComponentType BRIDGE: ComponentType BASE_NODE_CONFIG: ComponentType LAND_VEHICLE: ComponentType BASE_NODE_TRAFFIC_LIGHT: ComponentType EDGE_OBJECT: ComponentType EMISSION_GRID: ComponentType TERRAIN: ComponentType end getComponent: function(entity : Entity, type : ComponentType): T record EntityFilters requireOwnedByPlayer: Engine.Entity filterFn: function(Engine.Entity): boolean end forEachEntityWithComponent: function(fn : function(Entity), componentType : ComponentType) forEachEntity: function(callback : function(Entity)) getEntitiesWithComponent: function(componentType : ComponentType, filters : EntityFilters): {Engine.Entity} getRevision: function(entity : Entity): Revision entityExists: function(entity : Entity): boolean record UtilTerrain isValidCoordinate: function(position : Vec2f): boolean getHeightAt: function(position : Vec2f): number getBaseHeightAt: function(position : Vec2f): number isOnWater: function(position : Vec2f): boolean getHeightmapEntity: function(position : Vec2i): Engine.Entity getBoundingBox: function(): Box2f makeMapFromGame: function(withHeightmap : boolean, withTowns : boolean, withIndustries : boolean, withAssets : boolean): GameMap getTerrainEntityRevisions: function(): {Engine.Entity : Engine.Revision} getBaseResolution: function(): Vec3f getHighResolution: function(): Vec3f ceilTerrainFragmentInTiles: function(percentage : number): integer end record MapGen createTowns: function(string, {GameMap.Town}): TownResult createIndustries: function(string, {GameMap.Industry}): IndustryResult getDefaultTownConnections: function({GameMap.Town}): {{integer, integer}} getMinMaxValidTerrainHeight: function(): {number, number} getMinMaxValidNumTowns: function(): {integer, integer} getMinMaxValidNumIndustries: function(): {integer, integer} end record Config getConfigDict: function(): {string : string} getModParams: function(): {string : { : }} end system: System terrain: UtilTerrain mapgen: MapGen util: EngineUtil config: Config end ``` ## Category: main[🔗](#category-main) ### Engine[🔗](#$api.engine~Engine) ``` [Expand All] [Collapse All] global record Engine type Entity = integer record Revision num: {integer, integer, integer} end record Component record Account new: function(): Account balance: integer loan: integer end record Aircraft new: function(): Aircraft reservedTakeOffRunway: boolean reservedLandingRunway: boolean pathIndex: integer reservedFrom: integer reservedTo: integer end record Animal new: function(): Animal worldPosition: Vec3f lookingAt: Vec2f targetCoord: Vec2f movementSpeed: number angularSpeed: number lastUpdateElapsed: number targetChangedElapsed: number invalidTileElapsed: number movementType: integer roll: number scaling: number flock: {Vec3f} end record AssetGroup new: function(): AssetGroup end record AssetGroupAutoRemove new: function(): AssetGroupAutoRemove end record AudioEmitter new: function(): AudioEmitter emitter: integer end record BaseEdge new: function(): BaseEdge clone: function(BaseEdge): BaseEdge type: BaseEdgeType typeIndex: integer objects: {{Engine.Entity, EdgeObjectType}} laneConfigs: {LaneConfig} laneConfigs_native: Vector roadDevelopmentLocked: boolean node0: Engine.Entity node1: Engine.Entity position0: Vec3f position1: Vec3f tangent0: Vec3f tangent1: Vec3f laneConfig: {LaneConfig} edgeDecorations: {{integer, boolean}} distance: number roadType: RoadType roadTemplate: ResName roadStyle: ResName end record BaseEdgeStreet new: function(): BaseEdgeStreet precedenceNode0: PrecedencePreference precedenceNode1: PrecedencePreference end record BaseNode new: function(): BaseNode clone: function(BaseNode): BaseNode position: Vec3f end record TrafficLightState new: function(): TrafficLightState clone: function(TrafficLightState): TrafficLightState lockedLanes: {integer} duration: number minDuration: number canSkip: boolean end record TrafficLightConfig new: function(): TrafficLightConfig clone: function(TrafficLightConfig): TrafficLightConfig states: {TrafficLightState} trafficLightType: integer end record BaseNodeConfig new: function(): BaseNodeConfig laneConnections: {LaneConnection} crosswalks: {Entity} trafficLightPreference: TrafficLightPreference trafficLightConfig: TrafficLightConfig doubleSlipSwitch: boolean userModifiedLaneConnections: boolean userModifiedTrafficLightStates: boolean end record BaseNodeTrafficLight new: function(): BaseNodeTrafficLight trafficLightData: TrafficLightData state: integer time: number stateTimes: {integer} end record BaseParallelStrip new: function(): BaseParallelStrip record BaseEdgeRange new: function(): BaseEdgeRange edge: Engine.Entity bounds: {number, number} end rangeGroups: {{BaseEdgeRange}} rangeGroups_native: Vector> end record BoundingVolume new: function(): BoundingVolume bbox: Box3f end record Bridge new: function(): Bridge record Interval new: function(): Interval splines: {{Vec3f}} railingModels: {{integer, Mat4f}} end intervals: {Interval} end record BuildCost new: function(): BuildCost buildCost: integer bulldozeCost: integer noCostAtAll: boolean end record BulldozerInfo new: function(): BulldozerInfo locked: boolean end record Carriage new: function(): Carriage reversed: boolean end record CarriageList new: function(): CarriageList carriages: {Engine.Entity} end record ColliderList new: function(): ColliderList colliders: {{Collider, Mat4f}} end record Color new: function(): Color color: Vec3f end record Construction new: function(): Construction record ConstructionParams new: function(): ConstructionParams seed: integer modules: {integer : } end fileName: ResName params: ConstructionParams params_native: NativeLuaTable transf: Mat4f timeBuilt: integer frozenNodes: {Engine.Entity} frozenEdges: {Engine.Entity} depots: {Engine.Entity} stations: {Engine.Entity} industries: {Engine.Entity} townBuildings: {Engine.Entity} subconstructions: {Engine.Entity} persistentMetadata: ConstructionInstanceMetadata slots: {Slot} slotConfig: {string : SlotConfig} dependentSlots: {integer, {integer}} tag2modelInstance: {string, {{Engine.Entity, integer}}} entityAndIndex2labelTexts: {{Engine.Entity, integer}, {string}} tag2segments: {string, {Engine.Entity}} end record CustomState new: function(): CustomState state: { : } end record EmissionEmitter new: function(): EmissionEmitter position: Vec3f radius: number noisePower: number pollutionPower: number end record EmissionGrid new: function(): EmissionGrid record Type Noise: Type Pollution: Type end X0: integer Y0: integer width: integer height: integer gridPointSize: Vec2f concentrationBuffer: Gridf averageConcentration: Gridf type: Type wind: Vec2f end record Field new: function(): Field end record GameScript new: function(): GameScript gameScript: ResName addedToExistingSavegame: boolean state: T state_native: NativeLuaTable eventSubscriptions: any end record GameSpeed new: function(): GameSpeed speedup: integer millisPerDay: integer end record GameTime new: function(): GameTime gameTime: integer gameTime0: integer dates: {{integer, Date}} timeOfDaySec: integer tickCount: integer updateCount: integer end record Industry new: function(): Industry stockList: Engine.Entity level: integer closureTimeStamp: integer upgradeProgress: number manualDevelopment: boolean construction: Engine.Entity maxLevel: integer end record Landmark new: function(): Landmark transportNetworkEntity: Engine.Entity active: boolean end record LandVehicle new: function(): LandVehicle record DynState new: function(): DynState brakingTimer: number turnLeft: boolean turnRight: boolean end isTram: boolean dyn: DynState end record Line new: function(): Line record LoadMode LOAD_IF_AVAILABLE: LoadMode FULL_LOAD_ANY: LoadMode FULL_LOAD_ALL: LoadMode LEGACY_UNLOAD_ONLY: LoadMode end record StopConfig new: function(StopConfig): StopConfig load: {boolean} maxLoad: {number} forceUnload: boolean destroyForConfigChange: boolean destroyForRefresh: boolean end record Stop new: function(): Stop stationGroup: Engine.Entity station: integer terminal: integer alternativeTerminals: {StationTerminal} loadMode: LoadMode minWaitingTime: number maxWaitingTime: number maxAdditionalWaitingTime: number waypoints: {Waypoint} stopConfig: StopConfig end stops: {Stop} vehicleInfo: LineVehicleInfo customFilters: boolean reservationPriority: number end record LogBook new: function(): LogBook record Log new: function(): Log times: {integer} values: {integer} times_native: Vector values_native: Vector end refEntity2name2log: {Engine.Entity : {string : Log}} name2log: {string : Log} name2log_native: Map end record LotList new: function(): LotList record Lot new: function(): Lot vertices: {Vec2f} texCoords: {Vec2f} triangles: {integer} texKey: ResName solid: boolean end lots: {Lot} end record MaintenanceCost new: function(): MaintenanceCost maintenanceCost: integer accumulatedCost: {{Carrier, Carrier} : integer} end record ModelInstanceList new: function(): ModelInstanceList fatInstances: {ModelInstance} thinInstances: {ThinModelInstance} fatInstances_native: Vector thinInstances_native: Vector dynamic: boolean end record ModelPerson new: function(): ModelPerson path: ExtPath pathPos: PathPos stopped: boolean topSpeed: number speed: number brakeDecel: number offset: number position: Vec3f movementType: integer dist: number dist0: number stateTime: integer startWaitTime: number endWaitTime: number end record ModelPersonIdle new: function(): ModelPersonIdle arrivalTime: integer end record MovePath new: function(): MovePath record DynState new: function(): DynState pathPos: PathPos speed: number brakeDecel: number accel: number timeUntilAccel: number timeStanding: number timeToIgnore: number approachingStation: boolean end path: Path endParam: number endPos: number state: VehicleState blocked: integer allowEarlyArrival: boolean reverse: boolean servedFrom: integer servedTo: integer occupiedBackIndex: integer occupiedFrontIndex: integer dyn: DynState dyn0: DynState end record MovePathAircraft new: function(): MovePathAircraft record AircraftState new: function(): AircraftState record DynState new: function(): DynState velocity: Vec2f lastAccel: Vec2f pitch: number pitchV: number roll: number rollV: number thrust: number thrustV: number elevator: number aileronLeft: number propPhase: number flaps: number alt: number end flightState: FlightState cruiseAlt: number waitingDistance: number waitingPriority: integer gear: boolean gearTime: integer dyn: DynState dyn0: DynState end record ShipState new: function(): ShipState record DynState new: function(): DynState lastAccel: number tractiveEffort: number tractiveEffortV: number roll: number rollV: number powerOutput: number approachingStation: boolean paddlePhase: number actualPos: PathPosData end waitingDist: number clearToLand: boolean startPathPosData: PathPosData targetPathPosData: PathPosData dyn: DynState dyn0: DynState end record PathState PATH0: PathState PATH1: PathState PATH2: PathState end path0: Path path1: {{EdgeGeometry, boolean}} path2: Path pathPos: PathPos pathPos0: PathPos state: VehicleState pathState: PathState speed: number speed0: number brakeDecel: number aircraftState: AircraftState shipState: ShipState end record Name new: function(): Name name: string end record Parcel new: function(): Parcel record CollisionType Environment: CollisionType Parcel: CollisionType end record Face new: function(): Face points: {Vec3f} collision: {CollisionType : boolean} end streetSegment: Engine.Entity left: boolean curveParam: number offset: number faces: {Face} end record PersonCapacity new: function(): PersonCapacity type: LandUseType capacity: integer personNodes: {NodeId} vehicleNodes: {NodeId} end record Player new: function(): Player headquarters: Engine.Entity end record PlayerOwned new: function(): PlayerOwned player: Engine.Entity end record RailroadCrossing new: function(): RailroadCrossing record State OPEN: State CLOSED: State WAITING: State end nodes: {Engine.Entity} edges: {Engine.Entity} typeIndex: integer state: State stateTime: integer end record RunwayList new: function(): RunwayList runways: {Runway} end record Scaffold new: function(): Scaffold record Type NEW: Type UPGRADE: Type DOWNGRADE: Type end type: Type oldModelId: integer oldTransf: Mat4f oldBuildingFace: {{Vec2f}} oldFloorLevel: {{number}} oldHeight: number buildingFace: {{Vec2f}} floorLevel: {{number}} height: number constructionStartTime: integer constructionEndTime: integer cranePosition: Vec2f craneAngle: number craneTerrainHeight: number craneAngleSpan: {number} end record ShapeList new: function(): ShapeList shapes: {Shape} end record Ship new: function(): Ship pathIndex: integer reservedFrom: integer reservedTo: integer end record SignalList new: function(): SignalList signals: {Signal} end record SimCargo record PickupPoint new: function(): PickupPoint vehicle: Engine.Entity line: Engine.Entity position: Vec3f carrier: Carrier end new: function(): SimCargo cargoType: CargoTypeId targetOrPickupEntity: Engine.Entity sourceEntity: Engine.Entity pickupPoints: {PickupPoint} speed: number startTime: integer pickupTime: integer deliveryExtensionDuration: integer end record SimEntityAtBuilding new: function(): SimEntityAtBuilding waitingTime: number end record SimEntityAtStock new: function(): SimEntityAtStock stock: {Engine.Entity, StockId} arrivalTime: integer end record SimEntityAtTerminal new: function(): SimEntityAtTerminal line: Engine.Entity lineStop0: integer lineStop1: integer arrivalTime: number vehicle: Engine.Entity end record SimEntityAtVehicle new: function(): SimEntityAtVehicle line: Engine.Entity lineStop0: integer lineStop1: integer vehicle: Engine.Entity roundTripCounter: integer end record SimEntityIdle new: function(): SimEntityIdle end record SimEntityNeedsPath new: function(): SimEntityNeedsPath input: PathFactoryInput output: PathFactoryOutput end record SimEntityMoving new: function(): SimEntityMoving line: Engine.Entity lineStop0: integer lineStop1: integer partialPath: boolean expectedArrivalTime: number end record SimPersonAtTerminal new: function(): SimPersonAtTerminal edgeId: EdgeId place: integer end record SimPersonAtVehicle new: function(): SimPersonAtVehicle vehicle: Engine.Entity part: integer place: integer expectedArrivalTime: number end record SimPerson new: function(): SimPerson cargoType: CargoTypeId destinations: {Engine.Entity} moveModes: {MoveMode} travelTimes: {number} targetOrAtEntity: Engine.Entity lastNonResType: LandUseType lastMoveMode: MoveMode walkSpeed: number modelIdPerson: integer colorConfigPerson: integer modelIdCar: integer colorConfigCar: integer lastDestinationUpdate: integer landUse2ReachableWalkDrive: {integer, integer} landUse2ReachableLines: {integer, integer} pickupTime: integer happiness: number end type Station = Station record StationGroup new: function(): StationGroup stations: {Engine.Entity} end record StockList record Stock new: function(): Stock type: StockListType cargoType: CargoTypeId cargoTypes: CargoTypeSet mixedTypes: boolean capacity: integer loadSpeedModifier: number loadIndicatorModelInstanceIndices: {integer} tag: integer end record StockData new: function(): StockData consumeFrequency: number end record Rule new: function(): Rule input: {{integer}} output: {CargoTypeId : integer} capacity: integer consumptionFactor: number booster: boolean boostFactor: number priority: integer slot: integer end record RuleData new: function(): RuleData record ApplyInfo new: function(): ApplyInfo time: integer interval: integer consumedCargo: {StockId} producedCargo: {{CargoTypeId, integer}} end applyHistory: {ApplyInfo} lastApplyDecayFactor: number end record CargoData new: function(): CargoData produceFrequency: integer end record Modifiers new: function(): Modifiers productivity: number end new: function(): StockList stocks: {Stock} rules: {Rule} stockDatas: {StockData} ruleDatas: {RuleData} cargoData: {CargoTypeId : CargoData} thrownAwayCargo: integer modifiers: Modifiers end record Subconstruction new: function(): Subconstruction tag: integer slotIds: {integer} metadata: SubconstructionInstanceMetadata end record Terrain new: function(): Terrain size: Vec2i baseLevels: integer baseResolution: Vec3f highLevels: integer offsetZ: number waterLevel: number dataMaps: {string, HeightmapNew} end record TerrainAlignmentList new: function(): TerrainAlignmentList terrainAlignments: {TerrainAlignment} end record TerrainTile new: function(): TerrainTile terrainEntity: Engine.Entity position: Vec2i end record TerrainTileBrush new: function(): TerrainTileBrush materialIndexBrush: {integer} forceAboveBit: {boolean} end record TerrainTileHeightmap new: function(): TerrainTileHeightmap vertices: {integer} end record TickEpoch new: function(): TickEpoch time: integer commandIndex: integer subIndex: integer end record Town new: function(): Town initialLandUseCapacities: {integer} capacityScalingFactor: number levelToCapacityDistributionWeights: {{number}} sizeFactors: {number} cargoNeeds: {{{CargoTypeId, number}}} developmentActive: boolean noise: number pollution: number end record TownBuilding new: function(): TownBuilding personCapacity: Engine.Entity stockList: Engine.Entity construction: Engine.Entity level: integer parcels: {Engine.Entity} depth: integer height: number town: Engine.Entity timeBuilt: integer blockedDevelopment: boolean end record TownConnection new: function(): TownConnection entity0: Engine.Entity entity1: Engine.Entity position0: Vec2f position1: Vec2f time: number currentTime: number lastUpgradeYear: integer valid: boolean end record TpNetLink new: function(): TpNetLink from: EdgePos to: EdgePos end record Train new: function(): Train end record TransportNetwork new: function(): TransportNetwork nodes: {Node} edges: {Edge} turnaroundEdges: {integer} end record TransportNetworkNodes new: function(): TransportNetworkNodes end record TransportVehicle record Modifiers new: function(): Modifiers topSpeedScale: number noiseScale: number pollutionScale: number comfortScale: number end record LoadSpeedModifiers vehicleOverlength: number stockCompatibility: number vehicleCompatibility: number vehicleIncompatibility: number getTotalPenalty: function(LoadSpeedModifiers): number end record Config new: function(): Config transportModes: {TransportMode : boolean} allCaps: {CargoTypeId} capacities: {CargoTypeId} loadSpeeds: {number} reversible: boolean end record LoadState new: function(): LoadState None: LoadState Arrived: LoadState Unloading: LoadState Loading: LoadState WaitForScheduledDeparture: LoadState Departing: LoadState end record PendingIncomeParams new: function(): PendingIncomeParams record EntityRev0 entity: Engine.Entity rev0: integer end amount: integer carrier: Carrier vehicleEntity: Engine.Entity lineEntity: Engine.Entity end new: function(): TransportVehicle carrier: Carrier transportVehicleConfig: TransportVehicleConfig config: Config state: TransportVehicleState userStopped: boolean depot: Engine.Entity sellOnArrival: boolean line: Engine.Entity stopIndex: integer arrivalStationTerminal: StationTerminal arrivalStationTerminalLocked: boolean lineStopDepartures: {integer} lastLineStopDeparture: integer sectionTimes: {number} lineStop2cargo2available: {{CargoTypeId}} loadState: LoadState timeUntilNextScheduledDeparture: number loadSpeedModifiers: {CargoTypeId : LoadSpeedModifiers} timeUntilCloseDoors: number timeUntilDeparture: number timeUntilNextLoad: {CargoTypeId : number} timeUntilNextUnload: {CargoTypeId : number} lastStationStockIndex: integer doorsTime: integer daysInDepot: integer daysAtTerminal: integer doorsOpen: boolean noPath: boolean autoDeparture: boolean maintenanceStation: Engine.Entity modifiers: Modifiers unloadPendingIncome: PendingIncomeParams closestTown: Engine.Entity visitedStops: {integer} end record VehicleDepot new: function(): VehicleDepot carrier: Carrier transportModes: {TransportMode : boolean} inNodes: {NodeId} outNodes: {NodeId} state: integer doors: number stateTime: integer catchmentArea: CatchmentArea maintenancePool: integer maxPoolUsage: number averagePoolUsage: number poolUsageTicks: integer filterTags: {string} end record VehicleOrder new: function(): VehicleOrder equals: function(VehicleOrder, VehicleOrder): boolean entity: Engine.Entity strongBrakeEntity: boolean waitingForSpace: boolean waitingForTrafficLight: boolean end record Warehouse new: function(): Warehouse stockList: Engine.Entity construction: Engine.Entity end record WaterMesh new: function(): WaterMesh record Contour new: function(): Contour vertices: {Vec2f} normals: {Vec2f} end waterLevel: number vertices: {Vec2f} depths: {number} indices: {integer} contours: {Contour} pos: Vec2i end record World new: function(): World cloudCoverage: number end end record ComponentType AIRCRAFT: ComponentType ANIMAL: ComponentType ASSET_GROUP: ComponentType BASE_EDGE: ComponentType BASE_EDGE_STREET: ComponentType BASE_NODE: ComponentType BASE_PARALLEL_STRIP: ComponentType CUSTOM_STATE: ComponentType EMISSION_EMITTER: ComponentType FIELD: ComponentType GAME_TIME: ComponentType GAME_SPEED: ComponentType MODEL_INSTANCE_LIST: ComponentType NAME: ComponentType LINE: ComponentType LOG_BOOK: ComponentType MODEL_PERSON: ComponentType MOVE_PATH: ComponentType MOVE_PATH_AIRCRAFT: ComponentType STATION: ComponentType STATION_GROUP: ComponentType SIM_PERSON: ComponentType SIM_PERSON_AT_TERMINAL: ComponentType SIM_PERSON_AT_VEHICLE: ComponentType SIM_CARGO: ComponentType SIM_ENTITY_AT_BUILDING: ComponentType SIM_ENTITY_AT_VEHICLE: ComponentType SIM_ENTITY_AT_TERMINAL: ComponentType SIM_ENTITY_IDLE: ComponentType SIM_ENTITY_MOVING: ComponentType SIGNAL_LIST: ComponentType TOWN: ComponentType INDUSTRY: ComponentType STOCK_LIST: ComponentType TOWN_BUILDING: ComponentType TRANSPORT_VEHICLE: ComponentType TRAIN: ComponentType CARRIAGE: ComponentType CARRIAGE_LIST: ComponentType VEHICLE_DEPOT: ComponentType COLOR: ComponentType BOUNDING_VOLUME: ComponentType CONSTRUCTION: ComponentType SUBCONSTRUCTION: ComponentType PERSON_CAPACITY: ComponentType PLAYER_OWNED: ComponentType ACCOUNT: ComponentType GAME_SCRIPT: ComponentType WAREHOUSE: ComponentType TRANSPORT_NETWORK: ComponentType MAINTENANCE_COST: ComponentType RAILROAD_CROSSING: ComponentType PLAYER: ComponentType WORLD: ComponentType BRIDGE: ComponentType BASE_NODE_CONFIG: ComponentType LAND_VEHICLE: ComponentType BASE_NODE_TRAFFIC_LIGHT: ComponentType EDGE_OBJECT: ComponentType EMISSION_GRID: ComponentType TERRAIN: ComponentType end getComponent: function(entity : Entity, type : ComponentType): T record EntityFilters requireOwnedByPlayer: Engine.Entity filterFn: function(Engine.Entity): boolean end forEachEntityWithComponent: function(fn : function(Entity), componentType : ComponentType) forEachEntity: function(callback : function(Entity)) getEntitiesWithComponent: function(componentType : ComponentType, filters : EntityFilters): {Engine.Entity} getRevision: function(entity : Entity): Revision entityExists: function(entity : Entity): boolean record UtilTerrain isValidCoordinate: function(position : Vec2f): boolean getHeightAt: function(position : Vec2f): number getBaseHeightAt: function(position : Vec2f): number isOnWater: function(position : Vec2f): boolean getHeightmapEntity: function(position : Vec2i): Engine.Entity getBoundingBox: function(): Box2f makeMapFromGame: function(withHeightmap : boolean, withTowns : boolean, withIndustries : boolean, withAssets : boolean): GameMap getTerrainEntityRevisions: function(): {Engine.Entity : Engine.Revision} getBaseResolution: function(): Vec3f getHighResolution: function(): Vec3f ceilTerrainFragmentInTiles: function(percentage : number): integer end record MapGen createTowns: function(string, {GameMap.Town}): TownResult createIndustries: function(string, {GameMap.Industry}): IndustryResult getDefaultTownConnections: function({GameMap.Town}): {{integer, integer}} getMinMaxValidTerrainHeight: function(): {number, number} getMinMaxValidNumTowns: function(): {integer, integer} getMinMaxValidNumIndustries: function(): {integer, integer} end record Config getConfigDict: function(): {string : string} getModParams: function(): {string : { : }} end system: System terrain: UtilTerrain mapgen: MapGen util: EngineUtil config: Config end ``` Main Engine interface ### Engine.Entity[🔗](#$api.engine~Engine.Entity) ``` type Engine.Entity = integer ``` ### Engine.Revision[🔗](#$api.engine~Engine.Revision) ``` record Engine.Revision num: {integer, integer, integer} end ``` Keeps track of modifications to entities. ### Engine.Revision.num[🔗](#$api.engine~Engine.Revision.num) ``` Engine.Revision.num: {integer, integer, integer} ``` ### Engine.Component[🔗](#$api.engine~Engine.Component) ``` [Expand All] [Collapse All] record Engine.Component record Account new: function(): Account balance: integer loan: integer end record Aircraft new: function(): Aircraft reservedTakeOffRunway: boolean reservedLandingRunway: boolean pathIndex: integer reservedFrom: integer reservedTo: integer end record Animal new: function(): Animal worldPosition: Vec3f lookingAt: Vec2f targetCoord: Vec2f movementSpeed: number angularSpeed: number lastUpdateElapsed: number targetChangedElapsed: number invalidTileElapsed: number movementType: integer roll: number scaling: number flock: {Vec3f} end record AssetGroup new: function(): AssetGroup end record AssetGroupAutoRemove new: function(): AssetGroupAutoRemove end record AudioEmitter new: function(): AudioEmitter emitter: integer end record BaseEdge new: function(): BaseEdge clone: function(BaseEdge): BaseEdge type: BaseEdgeType typeIndex: integer objects: {{Engine.Entity, EdgeObjectType}} laneConfigs: {LaneConfig} laneConfigs_native: Vector roadDevelopmentLocked: boolean node0: Engine.Entity node1: Engine.Entity position0: Vec3f position1: Vec3f tangent0: Vec3f tangent1: Vec3f laneConfig: {LaneConfig} edgeDecorations: {{integer, boolean}} distance: number roadType: RoadType roadTemplate: ResName roadStyle: ResName end record BaseEdgeStreet new: function(): BaseEdgeStreet precedenceNode0: PrecedencePreference precedenceNode1: PrecedencePreference end record BaseNode new: function(): BaseNode clone: function(BaseNode): BaseNode position: Vec3f end record TrafficLightState new: function(): TrafficLightState clone: function(TrafficLightState): TrafficLightState lockedLanes: {integer} duration: number minDuration: number canSkip: boolean end record TrafficLightConfig new: function(): TrafficLightConfig clone: function(TrafficLightConfig): TrafficLightConfig states: {TrafficLightState} trafficLightType: integer end record BaseNodeConfig new: function(): BaseNodeConfig laneConnections: {LaneConnection} crosswalks: {Entity} trafficLightPreference: TrafficLightPreference trafficLightConfig: TrafficLightConfig doubleSlipSwitch: boolean userModifiedLaneConnections: boolean userModifiedTrafficLightStates: boolean end record BaseNodeTrafficLight new: function(): BaseNodeTrafficLight trafficLightData: TrafficLightData state: integer time: number stateTimes: {integer} end record BaseParallelStrip new: function(): BaseParallelStrip record BaseEdgeRange new: function(): BaseEdgeRange edge: Engine.Entity bounds: {number, number} end rangeGroups: {{BaseEdgeRange}} rangeGroups_native: Vector> end record BoundingVolume new: function(): BoundingVolume bbox: Box3f end record Bridge new: function(): Bridge record Interval new: function(): Interval splines: {{Vec3f}} railingModels: {{integer, Mat4f}} end intervals: {Interval} end record BuildCost new: function(): BuildCost buildCost: integer bulldozeCost: integer noCostAtAll: boolean end record BulldozerInfo new: function(): BulldozerInfo locked: boolean end record Carriage new: function(): Carriage reversed: boolean end record CarriageList new: function(): CarriageList carriages: {Engine.Entity} end record ColliderList new: function(): ColliderList colliders: {{Collider, Mat4f}} end record Color new: function(): Color color: Vec3f end record Construction new: function(): Construction record ConstructionParams new: function(): ConstructionParams seed: integer modules: {integer : } end fileName: ResName params: ConstructionParams params_native: NativeLuaTable transf: Mat4f timeBuilt: integer frozenNodes: {Engine.Entity} frozenEdges: {Engine.Entity} depots: {Engine.Entity} stations: {Engine.Entity} industries: {Engine.Entity} townBuildings: {Engine.Entity} subconstructions: {Engine.Entity} persistentMetadata: ConstructionInstanceMetadata slots: {Slot} slotConfig: {string : SlotConfig} dependentSlots: {integer, {integer}} tag2modelInstance: {string, {{Engine.Entity, integer}}} entityAndIndex2labelTexts: {{Engine.Entity, integer}, {string}} tag2segments: {string, {Engine.Entity}} end record CustomState new: function(): CustomState state: { : } end record EmissionEmitter new: function(): EmissionEmitter position: Vec3f radius: number noisePower: number pollutionPower: number end record EmissionGrid new: function(): EmissionGrid record Type Noise: Type Pollution: Type end X0: integer Y0: integer width: integer height: integer gridPointSize: Vec2f concentrationBuffer: Gridf averageConcentration: Gridf type: Type wind: Vec2f end record Field new: function(): Field end record GameScript new: function(): GameScript gameScript: ResName addedToExistingSavegame: boolean state: T state_native: NativeLuaTable eventSubscriptions: any end record GameSpeed new: function(): GameSpeed speedup: integer millisPerDay: integer end record GameTime new: function(): GameTime gameTime: integer gameTime0: integer dates: {{integer, Date}} timeOfDaySec: integer tickCount: integer updateCount: integer end record Industry new: function(): Industry stockList: Engine.Entity level: integer closureTimeStamp: integer upgradeProgress: number manualDevelopment: boolean construction: Engine.Entity maxLevel: integer end record Landmark new: function(): Landmark transportNetworkEntity: Engine.Entity active: boolean end record LandVehicle new: function(): LandVehicle record DynState new: function(): DynState brakingTimer: number turnLeft: boolean turnRight: boolean end isTram: boolean dyn: DynState end record Line new: function(): Line record LoadMode LOAD_IF_AVAILABLE: LoadMode FULL_LOAD_ANY: LoadMode FULL_LOAD_ALL: LoadMode LEGACY_UNLOAD_ONLY: LoadMode end record StopConfig new: function(StopConfig): StopConfig load: {boolean} maxLoad: {number} forceUnload: boolean destroyForConfigChange: boolean destroyForRefresh: boolean end record Stop new: function(): Stop stationGroup: Engine.Entity station: integer terminal: integer alternativeTerminals: {StationTerminal} loadMode: LoadMode minWaitingTime: number maxWaitingTime: number maxAdditionalWaitingTime: number waypoints: {Waypoint} stopConfig: StopConfig end stops: {Stop} vehicleInfo: LineVehicleInfo customFilters: boolean reservationPriority: number end record LogBook new: function(): LogBook record Log new: function(): Log times: {integer} values: {integer} times_native: Vector values_native: Vector end refEntity2name2log: {Engine.Entity : {string : Log}} name2log: {string : Log} name2log_native: Map end record LotList new: function(): LotList record Lot new: function(): Lot vertices: {Vec2f} texCoords: {Vec2f} triangles: {integer} texKey: ResName solid: boolean end lots: {Lot} end record MaintenanceCost new: function(): MaintenanceCost maintenanceCost: integer accumulatedCost: {{Carrier, Carrier} : integer} end record ModelInstanceList new: function(): ModelInstanceList fatInstances: {ModelInstance} thinInstances: {ThinModelInstance} fatInstances_native: Vector thinInstances_native: Vector dynamic: boolean end record ModelPerson new: function(): ModelPerson path: ExtPath pathPos: PathPos stopped: boolean topSpeed: number speed: number brakeDecel: number offset: number position: Vec3f movementType: integer dist: number dist0: number stateTime: integer startWaitTime: number endWaitTime: number end record ModelPersonIdle new: function(): ModelPersonIdle arrivalTime: integer end record MovePath new: function(): MovePath record DynState new: function(): DynState pathPos: PathPos speed: number brakeDecel: number accel: number timeUntilAccel: number timeStanding: number timeToIgnore: number approachingStation: boolean end path: Path endParam: number endPos: number state: VehicleState blocked: integer allowEarlyArrival: boolean reverse: boolean servedFrom: integer servedTo: integer occupiedBackIndex: integer occupiedFrontIndex: integer dyn: DynState dyn0: DynState end record MovePathAircraft new: function(): MovePathAircraft record AircraftState new: function(): AircraftState record DynState new: function(): DynState velocity: Vec2f lastAccel: Vec2f pitch: number pitchV: number roll: number rollV: number thrust: number thrustV: number elevator: number aileronLeft: number propPhase: number flaps: number alt: number end flightState: FlightState cruiseAlt: number waitingDistance: number waitingPriority: integer gear: boolean gearTime: integer dyn: DynState dyn0: DynState end record ShipState new: function(): ShipState record DynState new: function(): DynState lastAccel: number tractiveEffort: number tractiveEffortV: number roll: number rollV: number powerOutput: number approachingStation: boolean paddlePhase: number actualPos: PathPosData end waitingDist: number clearToLand: boolean startPathPosData: PathPosData targetPathPosData: PathPosData dyn: DynState dyn0: DynState end record PathState PATH0: PathState PATH1: PathState PATH2: PathState end path0: Path path1: {{EdgeGeometry, boolean}} path2: Path pathPos: PathPos pathPos0: PathPos state: VehicleState pathState: PathState speed: number speed0: number brakeDecel: number aircraftState: AircraftState shipState: ShipState end record Name new: function(): Name name: string end record Parcel new: function(): Parcel record CollisionType Environment: CollisionType Parcel: CollisionType end record Face new: function(): Face points: {Vec3f} collision: {CollisionType : boolean} end streetSegment: Engine.Entity left: boolean curveParam: number offset: number faces: {Face} end record PersonCapacity new: function(): PersonCapacity type: LandUseType capacity: integer personNodes: {NodeId} vehicleNodes: {NodeId} end record Player new: function(): Player headquarters: Engine.Entity end record PlayerOwned new: function(): PlayerOwned player: Engine.Entity end record RailroadCrossing new: function(): RailroadCrossing record State OPEN: State CLOSED: State WAITING: State end nodes: {Engine.Entity} edges: {Engine.Entity} typeIndex: integer state: State stateTime: integer end record RunwayList new: function(): RunwayList runways: {Runway} end record Scaffold new: function(): Scaffold record Type NEW: Type UPGRADE: Type DOWNGRADE: Type end type: Type oldModelId: integer oldTransf: Mat4f oldBuildingFace: {{Vec2f}} oldFloorLevel: {{number}} oldHeight: number buildingFace: {{Vec2f}} floorLevel: {{number}} height: number constructionStartTime: integer constructionEndTime: integer cranePosition: Vec2f craneAngle: number craneTerrainHeight: number craneAngleSpan: {number} end record ShapeList new: function(): ShapeList shapes: {Shape} end record Ship new: function(): Ship pathIndex: integer reservedFrom: integer reservedTo: integer end record SignalList new: function(): SignalList signals: {Signal} end record SimCargo record PickupPoint new: function(): PickupPoint vehicle: Engine.Entity line: Engine.Entity position: Vec3f carrier: Carrier end new: function(): SimCargo cargoType: CargoTypeId targetOrPickupEntity: Engine.Entity sourceEntity: Engine.Entity pickupPoints: {PickupPoint} speed: number startTime: integer pickupTime: integer deliveryExtensionDuration: integer end record SimEntityAtBuilding new: function(): SimEntityAtBuilding waitingTime: number end record SimEntityAtStock new: function(): SimEntityAtStock stock: {Engine.Entity, StockId} arrivalTime: integer end record SimEntityAtTerminal new: function(): SimEntityAtTerminal line: Engine.Entity lineStop0: integer lineStop1: integer arrivalTime: number vehicle: Engine.Entity end record SimEntityAtVehicle new: function(): SimEntityAtVehicle line: Engine.Entity lineStop0: integer lineStop1: integer vehicle: Engine.Entity roundTripCounter: integer end record SimEntityIdle new: function(): SimEntityIdle end record SimEntityNeedsPath new: function(): SimEntityNeedsPath input: PathFactoryInput output: PathFactoryOutput end record SimEntityMoving new: function(): SimEntityMoving line: Engine.Entity lineStop0: integer lineStop1: integer partialPath: boolean expectedArrivalTime: number end record SimPersonAtTerminal new: function(): SimPersonAtTerminal edgeId: EdgeId place: integer end record SimPersonAtVehicle new: function(): SimPersonAtVehicle vehicle: Engine.Entity part: integer place: integer expectedArrivalTime: number end record SimPerson new: function(): SimPerson cargoType: CargoTypeId destinations: {Engine.Entity} moveModes: {MoveMode} travelTimes: {number} targetOrAtEntity: Engine.Entity lastNonResType: LandUseType lastMoveMode: MoveMode walkSpeed: number modelIdPerson: integer colorConfigPerson: integer modelIdCar: integer colorConfigCar: integer lastDestinationUpdate: integer landUse2ReachableWalkDrive: {integer, integer} landUse2ReachableLines: {integer, integer} pickupTime: integer happiness: number end type Station = Station record StationGroup new: function(): StationGroup stations: {Engine.Entity} end record StockList record Stock new: function(): Stock type: StockListType cargoType: CargoTypeId cargoTypes: CargoTypeSet mixedTypes: boolean capacity: integer loadSpeedModifier: number loadIndicatorModelInstanceIndices: {integer} tag: integer end record StockData new: function(): StockData consumeFrequency: number end record Rule new: function(): Rule input: {{integer}} output: {CargoTypeId : integer} capacity: integer consumptionFactor: number booster: boolean boostFactor: number priority: integer slot: integer end record RuleData new: function(): RuleData record ApplyInfo new: function(): ApplyInfo time: integer interval: integer consumedCargo: {StockId} producedCargo: {{CargoTypeId, integer}} end applyHistory: {ApplyInfo} lastApplyDecayFactor: number end record CargoData new: function(): CargoData produceFrequency: integer end record Modifiers new: function(): Modifiers productivity: number end new: function(): StockList stocks: {Stock} rules: {Rule} stockDatas: {StockData} ruleDatas: {RuleData} cargoData: {CargoTypeId : CargoData} thrownAwayCargo: integer modifiers: Modifiers end record Subconstruction new: function(): Subconstruction tag: integer slotIds: {integer} metadata: SubconstructionInstanceMetadata end record Terrain new: function(): Terrain size: Vec2i baseLevels: integer baseResolution: Vec3f highLevels: integer offsetZ: number waterLevel: number dataMaps: {string, HeightmapNew} end record TerrainAlignmentList new: function(): TerrainAlignmentList terrainAlignments: {TerrainAlignment} end record TerrainTile new: function(): TerrainTile terrainEntity: Engine.Entity position: Vec2i end record TerrainTileBrush new: function(): TerrainTileBrush materialIndexBrush: {integer} forceAboveBit: {boolean} end record TerrainTileHeightmap new: function(): TerrainTileHeightmap vertices: {integer} end record TickEpoch new: function(): TickEpoch time: integer commandIndex: integer subIndex: integer end record Town new: function(): Town initialLandUseCapacities: {integer} capacityScalingFactor: number levelToCapacityDistributionWeights: {{number}} sizeFactors: {number} cargoNeeds: {{{CargoTypeId, number}}} developmentActive: boolean noise: number pollution: number end record TownBuilding new: function(): TownBuilding personCapacity: Engine.Entity stockList: Engine.Entity construction: Engine.Entity level: integer parcels: {Engine.Entity} depth: integer height: number town: Engine.Entity timeBuilt: integer blockedDevelopment: boolean end record TownConnection new: function(): TownConnection entity0: Engine.Entity entity1: Engine.Entity position0: Vec2f position1: Vec2f time: number currentTime: number lastUpgradeYear: integer valid: boolean end record TpNetLink new: function(): TpNetLink from: EdgePos to: EdgePos end record Train new: function(): Train end record TransportNetwork new: function(): TransportNetwork nodes: {Node} edges: {Edge} turnaroundEdges: {integer} end record TransportNetworkNodes new: function(): TransportNetworkNodes end record TransportVehicle record Modifiers new: function(): Modifiers topSpeedScale: number noiseScale: number pollutionScale: number comfortScale: number end record LoadSpeedModifiers vehicleOverlength: number stockCompatibility: number vehicleCompatibility: number vehicleIncompatibility: number getTotalPenalty: function(LoadSpeedModifiers): number end record Config new: function(): Config transportModes: {TransportMode : boolean} allCaps: {CargoTypeId} capacities: {CargoTypeId} loadSpeeds: {number} reversible: boolean end record LoadState new: function(): LoadState None: LoadState Arrived: LoadState Unloading: LoadState Loading: LoadState WaitForScheduledDeparture: LoadState Departing: LoadState end record PendingIncomeParams new: function(): PendingIncomeParams record EntityRev0 entity: Engine.Entity rev0: integer end amount: integer carrier: Carrier vehicleEntity: Engine.Entity lineEntity: Engine.Entity end new: function(): TransportVehicle carrier: Carrier transportVehicleConfig: TransportVehicleConfig config: Config state: TransportVehicleState userStopped: boolean depot: Engine.Entity sellOnArrival: boolean line: Engine.Entity stopIndex: integer arrivalStationTerminal: StationTerminal arrivalStationTerminalLocked: boolean lineStopDepartures: {integer} lastLineStopDeparture: integer sectionTimes: {number} lineStop2cargo2available: {{CargoTypeId}} loadState: LoadState timeUntilNextScheduledDeparture: number loadSpeedModifiers: {CargoTypeId : LoadSpeedModifiers} timeUntilCloseDoors: number timeUntilDeparture: number timeUntilNextLoad: {CargoTypeId : number} timeUntilNextUnload: {CargoTypeId : number} lastStationStockIndex: integer doorsTime: integer daysInDepot: integer daysAtTerminal: integer doorsOpen: boolean noPath: boolean autoDeparture: boolean maintenanceStation: Engine.Entity modifiers: Modifiers unloadPendingIncome: PendingIncomeParams closestTown: Engine.Entity visitedStops: {integer} end record VehicleDepot new: function(): VehicleDepot carrier: Carrier transportModes: {TransportMode : boolean} inNodes: {NodeId} outNodes: {NodeId} state: integer doors: number stateTime: integer catchmentArea: CatchmentArea maintenancePool: integer maxPoolUsage: number averagePoolUsage: number poolUsageTicks: integer filterTags: {string} end record VehicleOrder new: function(): VehicleOrder equals: function(VehicleOrder, VehicleOrder): boolean entity: Engine.Entity strongBrakeEntity: boolean waitingForSpace: boolean waitingForTrafficLight: boolean end record Warehouse new: function(): Warehouse stockList: Engine.Entity construction: Engine.Entity end record WaterMesh new: function(): WaterMesh record Contour new: function(): Contour vertices: {Vec2f} normals: {Vec2f} end waterLevel: number vertices: {Vec2f} depths: {number} indices: {integer} contours: {Contour} pos: Vec2i end record World new: function(): World cloudCoverage: number end end ``` ### Engine.Component.Account[🔗](#$api.engine~Engine.Component.Account) ``` record Engine.Component.Account new: function(): Account balance: integer loan: integer end ``` Contains financial data. Usually attached to the player Entity ### Engine.Component.Account.new[🔗](#$api.engine~Engine.Component.Account.new) ``` function Engine.Component.Account.new(): Account ``` **Returns** 1. `Account` ### Engine.Component.Account.balance[🔗](#$api.engine~Engine.Component.Account.balance) ``` Engine.Component.Account.balance: integer ``` Current balance ### Engine.Component.Account.loan[🔗](#$api.engine~Engine.Component.Account.loan) ``` Engine.Component.Account.loan: integer ``` Current loan ### Engine.Component.Aircraft[🔗](#$api.engine~Engine.Component.Aircraft) ``` record Engine.Component.Aircraft new: function(): Aircraft reservedTakeOffRunway: boolean reservedLandingRunway: boolean pathIndex: integer reservedFrom: integer reservedTo: integer end ``` Data attached to aircraft ### Engine.Component.Aircraft.new[🔗](#$api.engine~Engine.Component.Aircraft.new) ``` function Engine.Component.Aircraft.new(): Aircraft ``` **Returns** 1. `Aircraft` ### Engine.Component.Aircraft.reservedTakeOffRunway[🔗](#$api.engine~Engine.Component.Aircraft.reservedTakeOffRunway) ``` Engine.Component.Aircraft.reservedTakeOffRunway: boolean ``` Has the runway been reserved for takeoff ### Engine.Component.Aircraft.reservedLandingRunway[🔗](#$api.engine~Engine.Component.Aircraft.reservedLandingRunway) ``` Engine.Component.Aircraft.reservedLandingRunway: boolean ``` Has the runway been reserved for landing ### Engine.Component.Aircraft.pathIndex[🔗](#$api.engine~Engine.Component.Aircraft.pathIndex) ``` Engine.Component.Aircraft.pathIndex: integer ``` Edge index on the path ### Engine.Component.Aircraft.reservedFrom[🔗](#$api.engine~Engine.Component.Aircraft.reservedFrom) ``` Engine.Component.Aircraft.reservedFrom: integer ``` Edge index on the path from which the reservation starts ### Engine.Component.Aircraft.reservedTo[🔗](#$api.engine~Engine.Component.Aircraft.reservedTo) ``` Engine.Component.Aircraft.reservedTo: integer ``` Edge index on the path on which the reservation stops ### Engine.Component.Animal[🔗](#$api.engine~Engine.Component.Animal) ``` record Engine.Component.Animal new: function(): Animal worldPosition: Vec3f lookingAt: Vec2f targetCoord: Vec2f movementSpeed: number angularSpeed: number lastUpdateElapsed: number targetChangedElapsed: number invalidTileElapsed: number movementType: integer roll: number scaling: number flock: {Vec3f} end ``` Data attached to animals. Contains information about position and movement ### Engine.Component.Animal.new[🔗](#$api.engine~Engine.Component.Animal.new) ``` function Engine.Component.Animal.new(): Animal ``` **Returns** 1. `Animal` ### Engine.Component.Animal.worldPosition[🔗](#$api.engine~Engine.Component.Animal.worldPosition) ``` Engine.Component.Animal.worldPosition: Vec3f ``` Current location in the game world ### Engine.Component.Animal.lookingAt[🔗](#$api.engine~Engine.Component.Animal.lookingAt) ``` Engine.Component.Animal.lookingAt: Vec2f ``` Direction in which the animal is oriented ### Engine.Component.Animal.targetCoord[🔗](#$api.engine~Engine.Component.Animal.targetCoord) ``` Engine.Component.Animal.targetCoord: Vec2f ``` Destination where the animal is heading ### Engine.Component.Animal.movementSpeed[🔗](#$api.engine~Engine.Component.Animal.movementSpeed) ``` Engine.Component.Animal.movementSpeed: number ``` The forward speed ### Engine.Component.Animal.angularSpeed[🔗](#$api.engine~Engine.Component.Animal.angularSpeed) ``` Engine.Component.Animal.angularSpeed: number ``` The turn speed ### Engine.Component.Animal.lastUpdateElapsed[🔗](#$api.engine~Engine.Component.Animal.lastUpdateElapsed) ``` Engine.Component.Animal.lastUpdateElapsed: number ``` Time since the last update of the animal ### Engine.Component.Animal.targetChangedElapsed[🔗](#$api.engine~Engine.Component.Animal.targetChangedElapsed) ``` Engine.Component.Animal.targetChangedElapsed: number ``` Time since the last reorientation of the animal ### Engine.Component.Animal.invalidTileElapsed[🔗](#$api.engine~Engine.Component.Animal.invalidTileElapsed) ``` Engine.Component.Animal.invalidTileElapsed: number ``` Time since the animal is in an invalid location ### Engine.Component.Animal.movementType[🔗](#$api.engine~Engine.Component.Animal.movementType) ``` Engine.Component.Animal.movementType: integer ``` Index of the current movement type ### Engine.Component.Animal.roll[🔗](#$api.engine~Engine.Component.Animal.roll) ``` Engine.Component.Animal.roll: number ``` Current roll value ### Engine.Component.Animal.scaling[🔗](#$api.engine~Engine.Component.Animal.scaling) ``` Engine.Component.Animal.scaling: number ``` Scale of the animal ### Engine.Component.Animal.flock[🔗](#$api.engine~Engine.Component.Animal.flock) ``` Engine.Component.Animal.flock: {Vec3f} ``` Offset for each of the flock animals relative to the worldPosition ### Engine.Component.AssetGroup[🔗](#$api.engine~Engine.Component.AssetGroup) ``` record Engine.Component.AssetGroup new: function(): AssetGroup end ``` Data attached to assets, in particular trees. Assets are grouped together when built together in order to speed up rendering performance. Usually comes together with a ModelInstanceList ### Engine.Component.AssetGroup.new[🔗](#$api.engine~Engine.Component.AssetGroup.new) ``` function Engine.Component.AssetGroup.new(): AssetGroup ``` **Returns** 1. `AssetGroup` ### Engine.Component.AssetGroupAutoRemove[🔗](#$api.engine~Engine.Component.AssetGroupAutoRemove) ``` record Engine.Component.AssetGroupAutoRemove new: function(): AssetGroupAutoRemove end ``` Data attached to assets entities to enable automatic removal when it collides with newly built objects ### Engine.Component.AssetGroupAutoRemove.new[🔗](#$api.engine~Engine.Component.AssetGroupAutoRemove.new) ``` function Engine.Component.AssetGroupAutoRemove.new(): AssetGroupAutoRemove ``` **Returns** 1. `AssetGroupAutoRemove` ### Engine.Component.AudioEmitter[🔗](#$api.engine~Engine.Component.AudioEmitter) ``` record Engine.Component.AudioEmitter new: function(): AudioEmitter emitter: integer end ``` An entity with an AudioEmitter emits a sound source ### Engine.Component.AudioEmitter.new[🔗](#$api.engine~Engine.Component.AudioEmitter.new) ``` function Engine.Component.AudioEmitter.new(): AudioEmitter ``` **Returns** 1. `AudioEmitter` ### Engine.Component.AudioEmitter.emitter[🔗](#$api.engine~Engine.Component.AudioEmitter.emitter) ``` Engine.Component.AudioEmitter.emitter: integer ``` Audio emitter reference ### Engine.Component.BaseEdge[🔗](#$api.engine~Engine.Component.BaseEdge) ``` record Engine.Component.BaseEdge new: function(): BaseEdge clone: function(BaseEdge): BaseEdge type: BaseEdgeType typeIndex: integer objects: {{Engine.Entity, EdgeObjectType}} laneConfigs: {LaneConfig} laneConfigs_native: Vector roadDevelopmentLocked: boolean node0: Engine.Entity node1: Engine.Entity position0: Vec3f position1: Vec3f tangent0: Vec3f tangent1: Vec3f laneConfig: {LaneConfig} edgeDecorations: {{integer, boolean}} distance: number roadType: RoadType roadTemplate: ResName roadStyle: ResName end ``` Type attached to streets and tracks, specifying the street type and other details. A BaseEdge usually also has a BaseEdgeStreet and a TransportNetwork ### Engine.Component.BaseEdge.new[🔗](#$api.engine~Engine.Component.BaseEdge.new) ``` function Engine.Component.BaseEdge.new(): BaseEdge ``` **Returns** 1. `BaseEdge` ### Engine.Component.BaseEdge.clone[🔗](#$api.engine~Engine.Component.BaseEdge.clone) ``` function Engine.Component.BaseEdge.clone(BaseEdge): BaseEdge ``` **Parameters** * `BaseEdge` **Returns** 1. `BaseEdge` ### Engine.Component.BaseEdge.type[🔗](#$api.engine~Engine.Component.BaseEdge.type) ``` Engine.Component.BaseEdge.type: BaseEdgeType ``` ### Engine.Component.BaseEdge.typeIndex[🔗](#$api.engine~Engine.Component.BaseEdge.typeIndex) ``` Engine.Component.BaseEdge.typeIndex: integer ``` ### Engine.Component.BaseEdge.objects[🔗](#$api.engine~Engine.Component.BaseEdge.objects) ``` Engine.Component.BaseEdge.objects: {{Engine.Entity, EdgeObjectType}} ``` ### Engine.Component.BaseEdge.laneConfigs[🔗](#$api.engine~Engine.Component.BaseEdge.laneConfigs) ``` Engine.Component.BaseEdge.laneConfigs: {LaneConfig} ``` ### Engine.Component.BaseEdge.laneConfigs\_native[🔗](#$api.engine~Engine.Component.BaseEdge.laneConfigs_native) ``` Engine.Component.BaseEdge.laneConfigs_native: Vector ``` ### Engine.Component.BaseEdge.roadDevelopmentLocked[🔗](#$api.engine~Engine.Component.BaseEdge.roadDevelopmentLocked) ``` Engine.Component.BaseEdge.roadDevelopmentLocked: boolean ``` prevent towns from updating or extending this road ### Engine.Component.BaseEdge.node0[🔗](#$api.engine~Engine.Component.BaseEdge.node0) ``` Engine.Component.BaseEdge.node0: Engine.Entity ``` ### Engine.Component.BaseEdge.node1[🔗](#$api.engine~Engine.Component.BaseEdge.node1) ``` Engine.Component.BaseEdge.node1: Engine.Entity ``` ### Engine.Component.BaseEdge.position0[🔗](#$api.engine~Engine.Component.BaseEdge.position0) ``` Engine.Component.BaseEdge.position0: Vec3f ``` ### Engine.Component.BaseEdge.position1[🔗](#$api.engine~Engine.Component.BaseEdge.position1) ``` Engine.Component.BaseEdge.position1: Vec3f ``` ### Engine.Component.BaseEdge.tangent0[🔗](#$api.engine~Engine.Component.BaseEdge.tangent0) ``` Engine.Component.BaseEdge.tangent0: Vec3f ``` ### Engine.Component.BaseEdge.tangent1[🔗](#$api.engine~Engine.Component.BaseEdge.tangent1) ``` Engine.Component.BaseEdge.tangent1: Vec3f ``` ### Engine.Component.BaseEdge.laneConfig[🔗](#$api.engine~Engine.Component.BaseEdge.laneConfig) ``` Engine.Component.BaseEdge.laneConfig: {LaneConfig} ``` ### Engine.Component.BaseEdge.edgeDecorations[🔗](#$api.engine~Engine.Component.BaseEdge.edgeDecorations) ``` Engine.Component.BaseEdge.edgeDecorations: {{integer, boolean}} ``` ### Engine.Component.BaseEdge.distance[🔗](#$api.engine~Engine.Component.BaseEdge.distance) ``` Engine.Component.BaseEdge.distance: number ``` ### Engine.Component.BaseEdge.roadType[🔗](#$api.engine~Engine.Component.BaseEdge.roadType) ``` Engine.Component.BaseEdge.roadType: RoadType ``` Type of road (STREET or TRACK) ### Engine.Component.BaseEdge.roadTemplate[🔗](#$api.engine~Engine.Component.BaseEdge.roadTemplate) ``` Engine.Component.BaseEdge.roadTemplate: ResName ``` Road template resource name ### Engine.Component.BaseEdge.roadStyle[🔗](#$api.engine~Engine.Component.BaseEdge.roadStyle) ``` Engine.Component.BaseEdge.roadStyle: ResName ``` Road style resource name ### Engine.Component.BaseEdgeStreet[🔗](#$api.engine~Engine.Component.BaseEdgeStreet) ``` record Engine.Component.BaseEdgeStreet new: function(): BaseEdgeStreet precedenceNode0: PrecedencePreference precedenceNode1: PrecedencePreference end ``` Contains details about a base edge when it is a street ### Engine.Component.BaseEdgeStreet.new[🔗](#$api.engine~Engine.Component.BaseEdgeStreet.new) ``` function Engine.Component.BaseEdgeStreet.new(): BaseEdgeStreet ``` **Returns** 1. `BaseEdgeStreet` ### Engine.Component.BaseEdgeStreet.precedenceNode0[🔗](#$api.engine~Engine.Component.BaseEdgeStreet.precedenceNode0) ``` Engine.Component.BaseEdgeStreet.precedenceNode0: PrecedencePreference ``` Precedence preference at first node ### Engine.Component.BaseEdgeStreet.precedenceNode1[🔗](#$api.engine~Engine.Component.BaseEdgeStreet.precedenceNode1) ``` Engine.Component.BaseEdgeStreet.precedenceNode1: PrecedencePreference ``` Precedence preference at second node ### Engine.Component.BaseNode[🔗](#$api.engine~Engine.Component.BaseNode) ``` record Engine.Component.BaseNode new: function(): BaseNode clone: function(BaseNode): BaseNode position: Vec3f end ``` A node in a street graph, e.g. a railroad crossing, a switch, or street crossing ### Engine.Component.BaseNode.new[🔗](#$api.engine~Engine.Component.BaseNode.new) ``` function Engine.Component.BaseNode.new(): BaseNode ``` **Returns** 1. `BaseNode` ### Engine.Component.BaseNode.clone[🔗](#$api.engine~Engine.Component.BaseNode.clone) ``` function Engine.Component.BaseNode.clone(BaseNode): BaseNode ``` **Parameters** * `BaseNode` **Returns** 1. `BaseNode` ### Engine.Component.BaseNode.position[🔗](#$api.engine~Engine.Component.BaseNode.position) ``` Engine.Component.BaseNode.position: Vec3f ``` Position of the node in world coordinates ### Engine.Component.TrafficLightState[🔗](#$api.engine~Engine.Component.TrafficLightState) ``` record Engine.Component.TrafficLightState new: function(): TrafficLightState clone: function(TrafficLightState): TrafficLightState lockedLanes: {integer} duration: number minDuration: number canSkip: boolean end ``` A signle state (= phase) of the traffic light ### Engine.Component.TrafficLightState.new[🔗](#$api.engine~Engine.Component.TrafficLightState.new) ``` function Engine.Component.TrafficLightState.new(): TrafficLightState ``` **Returns** 1. `TrafficLightState` ### Engine.Component.TrafficLightState.clone[🔗](#$api.engine~Engine.Component.TrafficLightState.clone) ``` function Engine.Component.TrafficLightState.clone(TrafficLightState): TrafficLightState ``` **Parameters** * `TrafficLightState` **Returns** 1. `TrafficLightState` ### Engine.Component.TrafficLightState.lockedLanes[🔗](#$api.engine~Engine.Component.TrafficLightState.lockedLanes) ``` Engine.Component.TrafficLightState.lockedLanes: {integer} ``` ### Engine.Component.TrafficLightState.duration[🔗](#$api.engine~Engine.Component.TrafficLightState.duration) ``` Engine.Component.TrafficLightState.duration: number ``` ### Engine.Component.TrafficLightState.minDuration[🔗](#$api.engine~Engine.Component.TrafficLightState.minDuration) ``` Engine.Component.TrafficLightState.minDuration: number ``` ### Engine.Component.TrafficLightState.canSkip[🔗](#$api.engine~Engine.Component.TrafficLightState.canSkip) ``` Engine.Component.TrafficLightState.canSkip: boolean ``` ### Engine.Component.TrafficLightConfig[🔗](#$api.engine~Engine.Component.TrafficLightConfig) ``` record Engine.Component.TrafficLightConfig new: function(): TrafficLightConfig clone: function(TrafficLightConfig): TrafficLightConfig states: {TrafficLightState} trafficLightType: integer end ``` Traffic light configuration for the node, including phases (states) ### Engine.Component.TrafficLightConfig.new[🔗](#$api.engine~Engine.Component.TrafficLightConfig.new) ``` function Engine.Component.TrafficLightConfig.new(): TrafficLightConfig ``` **Returns** 1. `TrafficLightConfig` ### Engine.Component.TrafficLightConfig.clone[🔗](#$api.engine~Engine.Component.TrafficLightConfig.clone) ``` function Engine.Component.TrafficLightConfig.clone(TrafficLightConfig): TrafficLightConfig ``` **Parameters** * `TrafficLightConfig` **Returns** 1. `TrafficLightConfig` ### Engine.Component.TrafficLightConfig.states[🔗](#$api.engine~Engine.Component.TrafficLightConfig.states) ``` Engine.Component.TrafficLightConfig.states: {TrafficLightState} ``` ### Engine.Component.TrafficLightConfig.trafficLightType[🔗](#$api.engine~Engine.Component.TrafficLightConfig.trafficLightType) ``` Engine.Component.TrafficLightConfig.trafficLightType: integer ``` ### Engine.Component.BaseNodeConfig[🔗](#$api.engine~Engine.Component.BaseNodeConfig) ``` record Engine.Component.BaseNodeConfig new: function(): BaseNodeConfig laneConnections: {LaneConnection} crosswalks: {Entity} trafficLightPreference: TrafficLightPreference trafficLightConfig: TrafficLightConfig doubleSlipSwitch: boolean userModifiedLaneConnections: boolean userModifiedTrafficLightStates: boolean end ``` A custom configuration for the lanes ### Engine.Component.BaseNodeConfig.new[🔗](#$api.engine~Engine.Component.BaseNodeConfig.new) ``` function Engine.Component.BaseNodeConfig.new(): BaseNodeConfig ``` **Returns** 1. `BaseNodeConfig` ### Engine.Component.BaseNodeConfig.laneConnections[🔗](#$api.engine~Engine.Component.BaseNodeConfig.laneConnections) ``` Engine.Component.BaseNodeConfig.laneConnections: {LaneConnection} ``` ### Engine.Component.BaseNodeConfig.crosswalks[🔗](#$api.engine~Engine.Component.BaseNodeConfig.crosswalks) ``` Engine.Component.BaseNodeConfig.crosswalks: {Entity} ``` ### Engine.Component.BaseNodeConfig.trafficLightPreference[🔗](#$api.engine~Engine.Component.BaseNodeConfig.trafficLightPreference) ``` Engine.Component.BaseNodeConfig.trafficLightPreference: TrafficLightPreference ``` ### Engine.Component.BaseNodeConfig.trafficLightConfig[🔗](#$api.engine~Engine.Component.BaseNodeConfig.trafficLightConfig) ``` Engine.Component.BaseNodeConfig.trafficLightConfig: TrafficLightConfig ``` ### Engine.Component.BaseNodeConfig.doubleSlipSwitch[🔗](#$api.engine~Engine.Component.BaseNodeConfig.doubleSlipSwitch) ``` Engine.Component.BaseNodeConfig.doubleSlipSwitch: boolean ``` ### Engine.Component.BaseNodeConfig.userModifiedLaneConnections[🔗](#$api.engine~Engine.Component.BaseNodeConfig.userModifiedLaneConnections) ``` Engine.Component.BaseNodeConfig.userModifiedLaneConnections: boolean ``` ### Engine.Component.BaseNodeConfig.userModifiedTrafficLightStates[🔗](#$api.engine~Engine.Component.BaseNodeConfig.userModifiedTrafficLightStates) ``` Engine.Component.BaseNodeConfig.userModifiedTrafficLightStates: boolean ``` ### Engine.Component.BaseNodeTrafficLight[🔗](#$api.engine~Engine.Component.BaseNodeTrafficLight) ``` record Engine.Component.BaseNodeTrafficLight new: function(): BaseNodeTrafficLight trafficLightData: TrafficLightData state: integer time: number stateTimes: {integer} end ``` Additional traffic light data for a base node ### Engine.Component.BaseNodeTrafficLight.new[🔗](#$api.engine~Engine.Component.BaseNodeTrafficLight.new) ``` function Engine.Component.BaseNodeTrafficLight.new(): BaseNodeTrafficLight ``` **Returns** 1. `BaseNodeTrafficLight` ### Engine.Component.BaseNodeTrafficLight.trafficLightData[🔗](#$api.engine~Engine.Component.BaseNodeTrafficLight.trafficLightData) ``` Engine.Component.BaseNodeTrafficLight.trafficLightData: TrafficLightData ``` ### Engine.Component.BaseNodeTrafficLight.state[🔗](#$api.engine~Engine.Component.BaseNodeTrafficLight.state) ``` Engine.Component.BaseNodeTrafficLight.state: integer ``` ### Engine.Component.BaseNodeTrafficLight.time[🔗](#$api.engine~Engine.Component.BaseNodeTrafficLight.time) ``` Engine.Component.BaseNodeTrafficLight.time: number ``` ### Engine.Component.BaseNodeTrafficLight.stateTimes[🔗](#$api.engine~Engine.Component.BaseNodeTrafficLight.stateTimes) ``` Engine.Component.BaseNodeTrafficLight.stateTimes: {integer} ``` ### Engine.Component.BaseParallelStrip[🔗](#$api.engine~Engine.Component.BaseParallelStrip) ``` [Expand All] [Collapse All] record Engine.Component.BaseParallelStrip new: function(): BaseParallelStrip record BaseEdgeRange new: function(): BaseEdgeRange edge: Engine.Entity bounds: {number, number} end rangeGroups: {{BaseEdgeRange}} rangeGroups_native: Vector> end ``` Stores groups of ranges (a range is reflected as a BaseEdgeRange) ### Engine.Component.BaseParallelStrip.new[🔗](#$api.engine~Engine.Component.BaseParallelStrip.new) ``` function Engine.Component.BaseParallelStrip.new(): BaseParallelStrip ``` **Returns** 1. `BaseParallelStrip` ### Engine.Component.BaseParallelStrip.BaseEdgeRange[🔗](#$api.engine~Engine.Component.BaseParallelStrip.BaseEdgeRange) ``` record Engine.Component.BaseParallelStrip.BaseEdgeRange new: function(): BaseEdgeRange edge: Engine.Entity bounds: {number, number} end ``` Stores a fraction of a base edge (BaseEdge) ### Engine.Component.BaseParallelStrip.BaseEdgeRange.new[🔗](#$api.engine~Engine.Component.BaseParallelStrip.BaseEdgeRange.new) ``` function Engine.Component.BaseParallelStrip.BaseEdgeRange.new(): BaseEdgeRange ``` **Returns** 1. `BaseEdgeRange` ### Engine.Component.BaseParallelStrip.BaseEdgeRange.edge[🔗](#$api.engine~Engine.Component.BaseParallelStrip.BaseEdgeRange.edge) ``` Engine.Component.BaseParallelStrip.BaseEdgeRange.edge: Engine.Entity ``` ### Engine.Component.BaseParallelStrip.BaseEdgeRange.bounds[🔗](#$api.engine~Engine.Component.BaseParallelStrip.BaseEdgeRange.bounds) ``` Engine.Component.BaseParallelStrip.BaseEdgeRange.bounds: {number, number} ``` ### Engine.Component.BaseParallelStrip.rangeGroups[🔗](#$api.engine~Engine.Component.BaseParallelStrip.rangeGroups) ``` Engine.Component.BaseParallelStrip.rangeGroups: {{BaseEdgeRange}} ``` ### Engine.Component.BaseParallelStrip.rangeGroups\_native[🔗](#$api.engine~Engine.Component.BaseParallelStrip.rangeGroups_native) ``` Engine.Component.BaseParallelStrip.rangeGroups_native: Vector> ``` ### Engine.Component.BoundingVolume[🔗](#$api.engine~Engine.Component.BoundingVolume) ``` record Engine.Component.BoundingVolume new: function(): BoundingVolume bbox: Box3f end ``` Contains the bounding box of an entity ### Engine.Component.BoundingVolume.new[🔗](#$api.engine~Engine.Component.BoundingVolume.new) ``` function Engine.Component.BoundingVolume.new(): BoundingVolume ``` **Returns** 1. `BoundingVolume` ### Engine.Component.BoundingVolume.bbox[🔗](#$api.engine~Engine.Component.BoundingVolume.bbox) ``` Engine.Component.BoundingVolume.bbox: Box3f ``` The axis aligned bounding box ### Engine.Component.Bridge[🔗](#$api.engine~Engine.Component.Bridge) ``` [Expand All] [Collapse All] record Engine.Component.Bridge new: function(): Bridge record Interval new: function(): Interval splines: {{Vec3f}} railingModels: {{integer, Mat4f}} end intervals: {Interval} end ``` Contains the full information and the entire spline of a bridge, if this was configured to do so ### Engine.Component.Bridge.new[🔗](#$api.engine~Engine.Component.Bridge.new) ``` function Engine.Component.Bridge.new(): Bridge ``` **Returns** 1. `Bridge` ### Engine.Component.Bridge.Interval[🔗](#$api.engine~Engine.Component.Bridge.Interval) ``` record Engine.Component.Bridge.Interval new: function(): Interval splines: {{Vec3f}} railingModels: {{integer, Mat4f}} end ``` A subsection of a bridge ### Engine.Component.Bridge.Interval.new[🔗](#$api.engine~Engine.Component.Bridge.Interval.new) ``` function Engine.Component.Bridge.Interval.new(): Interval ``` **Returns** 1. `Interval` ### Engine.Component.Bridge.Interval.splines[🔗](#$api.engine~Engine.Component.Bridge.Interval.splines) ``` Engine.Component.Bridge.Interval.splines: {{Vec3f}} ``` ### Engine.Component.Bridge.Interval.railingModels[🔗](#$api.engine~Engine.Component.Bridge.Interval.railingModels) ``` Engine.Component.Bridge.Interval.railingModels: {{integer, Mat4f}} ``` ### Engine.Component.Bridge.intervals[🔗](#$api.engine~Engine.Component.Bridge.intervals) ``` Engine.Component.Bridge.intervals: {Interval} ``` ### Engine.Component.BuildCost[🔗](#$api.engine~Engine.Component.BuildCost) ``` record Engine.Component.BuildCost new: function(): BuildCost buildCost: integer bulldozeCost: integer noCostAtAll: boolean end ``` Stores the costs of an entity (e.g. Constructions or Edges) ### Engine.Component.BuildCost.new[🔗](#$api.engine~Engine.Component.BuildCost.new) ``` function Engine.Component.BuildCost.new(): BuildCost ``` **Returns** 1. `BuildCost` ### Engine.Component.BuildCost.buildCost[🔗](#$api.engine~Engine.Component.BuildCost.buildCost) ``` Engine.Component.BuildCost.buildCost: integer ``` ### Engine.Component.BuildCost.bulldozeCost[🔗](#$api.engine~Engine.Component.BuildCost.bulldozeCost) ``` Engine.Component.BuildCost.bulldozeCost: integer ``` ### Engine.Component.BuildCost.noCostAtAll[🔗](#$api.engine~Engine.Component.BuildCost.noCostAtAll) ``` Engine.Component.BuildCost.noCostAtAll: boolean ``` ### Engine.Component.BulldozerInfo[🔗](#$api.engine~Engine.Component.BulldozerInfo) ``` record Engine.Component.BulldozerInfo new: function(): BulldozerInfo locked: boolean end ``` Allows to set certain entities to be not bulldozable ### Engine.Component.BulldozerInfo.new[🔗](#$api.engine~Engine.Component.BulldozerInfo.new) ``` function Engine.Component.BulldozerInfo.new(): BulldozerInfo ``` **Returns** 1. `BulldozerInfo` ### Engine.Component.BulldozerInfo.locked[🔗](#$api.engine~Engine.Component.BulldozerInfo.locked) ``` Engine.Component.BulldozerInfo.locked: boolean ``` ### Engine.Component.Carriage[🔗](#$api.engine~Engine.Component.Carriage) ``` record Engine.Component.Carriage new: function(): Carriage reversed: boolean end ``` Represents a single waggon of a train (a single carriage or engine). ### Engine.Component.Carriage.new[🔗](#$api.engine~Engine.Component.Carriage.new) ``` function Engine.Component.Carriage.new(): Carriage ``` **Returns** 1. `Carriage` ### Engine.Component.Carriage.reversed[🔗](#$api.engine~Engine.Component.Carriage.reversed) ``` Engine.Component.Carriage.reversed: boolean ``` true if the train travels reversed ### Engine.Component.CarriageList[🔗](#$api.engine~Engine.Component.CarriageList) ``` record Engine.Component.CarriageList new: function(): CarriageList carriages: {Engine.Entity} end ``` Represents a list of engines and carriages (usually of a train) ### Engine.Component.CarriageList.new[🔗](#$api.engine~Engine.Component.CarriageList.new) ``` function Engine.Component.CarriageList.new(): CarriageList ``` **Returns** 1. `CarriageList` ### Engine.Component.CarriageList.carriages[🔗](#$api.engine~Engine.Component.CarriageList.carriages) ``` Engine.Component.CarriageList.carriages: {Engine.Entity} ``` all waggons and engines ### Engine.Component.ColliderList[🔗](#$api.engine~Engine.Component.ColliderList) ``` record Engine.Component.ColliderList new: function(): ColliderList colliders: {{Collider, Mat4f}} end ``` A list of colliders of different shapes, with an extra transformation ### Engine.Component.ColliderList.new[🔗](#$api.engine~Engine.Component.ColliderList.new) ``` function Engine.Component.ColliderList.new(): ColliderList ``` **Returns** 1. `ColliderList` ### Engine.Component.ColliderList.colliders[🔗](#$api.engine~Engine.Component.ColliderList.colliders) ``` Engine.Component.ColliderList.colliders: {{Collider, Mat4f}} ``` a list of colliders and transformation that belong to the entity ### Engine.Component.Color[🔗](#$api.engine~Engine.Component.Color) ``` record Engine.Component.Color new: function(): Color color: Vec3f end ``` Specifies the color of an entity ### Engine.Component.Color.new[🔗](#$api.engine~Engine.Component.Color.new) ``` function Engine.Component.Color.new(): Color ``` **Returns** 1. `Color` ### Engine.Component.Color.color[🔗](#$api.engine~Engine.Component.Color.color) ``` Engine.Component.Color.color: Vec3f ``` the RGB color of the entity ### Engine.Component.Construction[🔗](#$api.engine~Engine.Component.Construction) ``` [Expand All] [Collapse All] record Engine.Component.Construction new: function(): Construction record ConstructionParams new: function(): ConstructionParams seed: integer modules: {integer : } end fileName: ResName params: ConstructionParams params_native: NativeLuaTable transf: Mat4f timeBuilt: integer frozenNodes: {Engine.Entity} frozenEdges: {Engine.Entity} depots: {Engine.Entity} stations: {Engine.Entity} industries: {Engine.Entity} townBuildings: {Engine.Entity} subconstructions: {Engine.Entity} persistentMetadata: ConstructionInstanceMetadata slots: {Slot} slotConfig: {string : SlotConfig} dependentSlots: {integer, {integer}} tag2modelInstance: {string, {{Engine.Entity, integer}}} entityAndIndex2labelTexts: {{Engine.Entity, integer}, {string}} tag2segments: {string, {Engine.Entity}} end ``` A construction: usually contains stations, depots, town buildings or industries. ### Engine.Component.Construction.new[🔗](#$api.engine~Engine.Component.Construction.new) ``` function Engine.Component.Construction.new(): Construction ``` **Returns** 1. `Construction` ### Engine.Component.Construction.ConstructionParams[🔗](#$api.engine~Engine.Component.Construction.ConstructionParams) ``` record Engine.Component.Construction.ConstructionParams new: function(): ConstructionParams seed: integer modules: {integer : } end ``` ### Engine.Component.Construction.ConstructionParams.new[🔗](#$api.engine~Engine.Component.Construction.ConstructionParams.new) ``` function Engine.Component.Construction.ConstructionParams.new(): ConstructionParams ``` **Returns** 1. `ConstructionParams` ### Engine.Component.Construction.ConstructionParams.seed[🔗](#$api.engine~Engine.Component.Construction.ConstructionParams.seed) ``` Engine.Component.Construction.ConstructionParams.seed: integer ``` ### Engine.Component.Construction.ConstructionParams.modules[🔗](#$api.engine~Engine.Component.Construction.ConstructionParams.modules) ``` Engine.Component.Construction.ConstructionParams.modules: {integer : } ``` ### Engine.Component.Construction.fileName[🔗](#$api.engine~Engine.Component.Construction.fileName) ``` Engine.Component.Construction.fileName: ResName ``` the name of the construction (or the id in case of dynamic constructions) ### Engine.Component.Construction.params[🔗](#$api.engine~Engine.Component.Construction.params) ``` Engine.Component.Construction.params: ConstructionParams ``` the parameters, passed to the `updateFn`. ### Engine.Component.Construction.params\_native[🔗](#$api.engine~Engine.Component.Construction.params_native) ``` Engine.Component.Construction.params_native: NativeLuaTable ``` ### Engine.Component.Construction.transf[🔗](#$api.engine~Engine.Component.Construction.transf) ``` Engine.Component.Construction.transf: Mat4f ``` the world transformation of the construction ### Engine.Component.Construction.timeBuilt[🔗](#$api.engine~Engine.Component.Construction.timeBuilt) ``` Engine.Component.Construction.timeBuilt: integer ``` the in-game time when the construction was first placed ### Engine.Component.Construction.frozenNodes[🔗](#$api.engine~Engine.Component.Construction.frozenNodes) ``` Engine.Component.Construction.frozenNodes: {Engine.Entity} ``` nodes that belong to the construction and cannot be moved ### Engine.Component.Construction.frozenEdges[🔗](#$api.engine~Engine.Component.Construction.frozenEdges) ``` Engine.Component.Construction.frozenEdges: {Engine.Entity} ``` edges that belong to the construction and cannot be moved ### Engine.Component.Construction.depots[🔗](#$api.engine~Engine.Component.Construction.depots) ``` Engine.Component.Construction.depots: {Engine.Entity} ``` depots that belong to the construction ### Engine.Component.Construction.stations[🔗](#$api.engine~Engine.Component.Construction.stations) ``` Engine.Component.Construction.stations: {Engine.Entity} ``` stations that belong to the construction ### Engine.Component.Construction.industries[🔗](#$api.engine~Engine.Component.Construction.industries) ``` Engine.Component.Construction.industries: {Engine.Entity} ``` industries that belong to the construction ### Engine.Component.Construction.townBuildings[🔗](#$api.engine~Engine.Component.Construction.townBuildings) ``` Engine.Component.Construction.townBuildings: {Engine.Entity} ``` town building that belong to the construction ### Engine.Component.Construction.subconstructions[🔗](#$api.engine~Engine.Component.Construction.subconstructions) ``` Engine.Component.Construction.subconstructions: {Engine.Entity} ``` all subconstructions generated by the construction ### Engine.Component.Construction.persistentMetadata[🔗](#$api.engine~Engine.Component.Construction.persistentMetadata) ``` Engine.Component.Construction.persistentMetadata: ConstructionInstanceMetadata ``` all metadata that is persisted in the component ### Engine.Component.Construction.slots[🔗](#$api.engine~Engine.Component.Construction.slots) ``` Engine.Component.Construction.slots: {Slot} ``` all slots of the modular construction ### Engine.Component.Construction.slotConfig[🔗](#$api.engine~Engine.Component.Construction.slotConfig) ``` Engine.Component.Construction.slotConfig: {string : SlotConfig} ``` configuration by slot type ### Engine.Component.Construction.dependentSlots[🔗](#$api.engine~Engine.Component.Construction.dependentSlots) ``` Engine.Component.Construction.dependentSlots: {integer, {integer}} ``` ### Engine.Component.Construction.tag2modelInstance[🔗](#$api.engine~Engine.Component.Construction.tag2modelInstance) ``` Engine.Component.Construction.tag2modelInstance: {string, {{Engine.Entity, integer}}} ``` ### Engine.Component.Construction.entityAndIndex2labelTexts[🔗](#$api.engine~Engine.Component.Construction.entityAndIndex2labelTexts) ``` Engine.Component.Construction.entityAndIndex2labelTexts: {{Engine.Entity, integer}, {string}} ``` ### Engine.Component.Construction.tag2segments[🔗](#$api.engine~Engine.Component.Construction.tag2segments) ``` Engine.Component.Construction.tag2segments: {string, {Engine.Entity}} ``` ### Engine.Component.CustomState[🔗](#$api.engine~Engine.Component.CustomState) ``` record Engine.Component.CustomState new: function(): CustomState state: { : } end ``` The internal state of a custom entity state ### Engine.Component.CustomState.new[🔗](#$api.engine~Engine.Component.CustomState.new) ``` function Engine.Component.CustomState.new(): CustomState ``` **Returns** 1. `CustomState` ### Engine.Component.CustomState.state[🔗](#$api.engine~Engine.Component.CustomState.state) ``` Engine.Component.CustomState.state: { : } ``` the internal state as a generic table ### Engine.Component.EmissionEmitter[🔗](#$api.engine~Engine.Component.EmissionEmitter) ``` record Engine.Component.EmissionEmitter new: function(): EmissionEmitter position: Vec3f radius: number noisePower: number pollutionPower: number end ``` An emission emitter, which emits pollution and/or noise ### Engine.Component.EmissionEmitter.new[🔗](#$api.engine~Engine.Component.EmissionEmitter.new) ``` function Engine.Component.EmissionEmitter.new(): EmissionEmitter ``` **Returns** 1. `EmissionEmitter` ### Engine.Component.EmissionEmitter.position[🔗](#$api.engine~Engine.Component.EmissionEmitter.position) ``` Engine.Component.EmissionEmitter.position: Vec3f ``` the position of the emission emitter ### Engine.Component.EmissionEmitter.radius[🔗](#$api.engine~Engine.Component.EmissionEmitter.radius) ``` Engine.Component.EmissionEmitter.radius: number ``` the radius in which the emitter is applied (usually 0) ### Engine.Component.EmissionEmitter.noisePower[🔗](#$api.engine~Engine.Component.EmissionEmitter.noisePower) ``` Engine.Component.EmissionEmitter.noisePower: number ``` the noise power of the emission emitter ### Engine.Component.EmissionEmitter.pollutionPower[🔗](#$api.engine~Engine.Component.EmissionEmitter.pollutionPower) ``` Engine.Component.EmissionEmitter.pollutionPower: number ``` the pollution power of the emission emitter ### Engine.Component.EmissionGrid[🔗](#$api.engine~Engine.Component.EmissionGrid) ``` [Expand All] [Collapse All] record Engine.Component.EmissionGrid new: function(): EmissionGrid record Type Noise: Type Pollution: Type end X0: integer Y0: integer width: integer height: integer gridPointSize: Vec2f concentrationBuffer: Gridf averageConcentration: Gridf type: Type wind: Vec2f end ``` The grid containing the emission data ### Engine.Component.EmissionGrid.new[🔗](#$api.engine~Engine.Component.EmissionGrid.new) ``` function Engine.Component.EmissionGrid.new(): EmissionGrid ``` **Returns** 1. `EmissionGrid` ### Engine.Component.EmissionGrid.Type[🔗](#$api.engine~Engine.Component.EmissionGrid.Type) ``` record Engine.Component.EmissionGrid.Type Noise: Type Pollution: Type end ``` The emission grid type ### Engine.Component.EmissionGrid.Type.Noise[🔗](#$api.engine~Engine.Component.EmissionGrid.Type.Noise) ``` Engine.Component.EmissionGrid.Type.Noise: Type ``` ### Engine.Component.EmissionGrid.Type.Pollution[🔗](#$api.engine~Engine.Component.EmissionGrid.Type.Pollution) ``` Engine.Component.EmissionGrid.Type.Pollution: Type ``` ### Engine.Component.EmissionGrid.X0[🔗](#$api.engine~Engine.Component.EmissionGrid.X0) ``` Engine.Component.EmissionGrid.X0: integer ``` the bottom left corner x coordinate ### Engine.Component.EmissionGrid.Y0[🔗](#$api.engine~Engine.Component.EmissionGrid.Y0) ``` Engine.Component.EmissionGrid.Y0: integer ``` the bottom left corner y coordinate ### Engine.Component.EmissionGrid.width[🔗](#$api.engine~Engine.Component.EmissionGrid.width) ``` Engine.Component.EmissionGrid.width: integer ``` ### Engine.Component.EmissionGrid.height[🔗](#$api.engine~Engine.Component.EmissionGrid.height) ``` Engine.Component.EmissionGrid.height: integer ``` ### Engine.Component.EmissionGrid.gridPointSize[🔗](#$api.engine~Engine.Component.EmissionGrid.gridPointSize) ``` Engine.Component.EmissionGrid.gridPointSize: Vec2f ``` the resolution of the grid ### Engine.Component.EmissionGrid.concentrationBuffer[🔗](#$api.engine~Engine.Component.EmissionGrid.concentrationBuffer) ``` Engine.Component.EmissionGrid.concentrationBuffer: Gridf ``` ### Engine.Component.EmissionGrid.averageConcentration[🔗](#$api.engine~Engine.Component.EmissionGrid.averageConcentration) ``` Engine.Component.EmissionGrid.averageConcentration: Gridf ``` ### Engine.Component.EmissionGrid.type[🔗](#$api.engine~Engine.Component.EmissionGrid.type) ``` Engine.Component.EmissionGrid.type: Type ``` enum type for noise (0) or pollution (1) ### Engine.Component.EmissionGrid.wind[🔗](#$api.engine~Engine.Component.EmissionGrid.wind) ``` Engine.Component.EmissionGrid.wind: Vec2f ``` global wind direction ### Engine.Component.Field[🔗](#$api.engine~Engine.Component.Field) ``` record Engine.Component.Field new: function(): Field end ``` Contains data representing a farm field on the terrain ### Engine.Component.Field.new[🔗](#$api.engine~Engine.Component.Field.new) ``` function Engine.Component.Field.new(): Field ``` **Returns** 1. `Field` ### Engine.Component.GameScript[🔗](#$api.engine~Engine.Component.GameScript) ``` record Engine.Component.GameScript new: function(): GameScript gameScript: ResName addedToExistingSavegame: boolean state: T state_native: NativeLuaTable eventSubscriptions: any end ``` The internal state of a single gamescript ##### Type Parameters * **`T`** ### Engine.Component.GameScript.new[🔗](#$api.engine~Engine.Component.GameScript.new) ``` function Engine.Component.GameScript.new(): GameScript ``` **Returns** 1. `GameScript` ### Engine.Component.GameScript.gameScript[🔗](#$api.engine~Engine.Component.GameScript.gameScript) ``` Engine.Component.GameScript.gameScript: ResName ``` the gamescript for this entity ### Engine.Component.GameScript.addedToExistingSavegame[🔗](#$api.engine~Engine.Component.GameScript.addedToExistingSavegame) ``` Engine.Component.GameScript.addedToExistingSavegame: boolean ``` ### Engine.Component.GameScript.state[🔗](#$api.engine~Engine.Component.GameScript.state) ``` Engine.Component.GameScript.state: T ``` the internal state as a generic table ### Engine.Component.GameScript.state\_native[🔗](#$api.engine~Engine.Component.GameScript.state_native) ``` Engine.Component.GameScript.state_native: NativeLuaTable ``` ### Engine.Component.GameScript.eventSubscriptions[🔗](#$api.engine~Engine.Component.GameScript.eventSubscriptions) ``` Engine.Component.GameScript.eventSubscriptions: any ``` the event subscriptions for this gamescript ### Engine.Component.GameSpeed[🔗](#$api.engine~Engine.Component.GameSpeed) ``` record Engine.Component.GameSpeed new: function(): GameSpeed speedup: integer millisPerDay: integer end ``` Information about the current game simulation and calendar speed. ### Engine.Component.GameSpeed.new[🔗](#$api.engine~Engine.Component.GameSpeed.new) ``` function Engine.Component.GameSpeed.new(): GameSpeed ``` **Returns** 1. `GameSpeed` ### Engine.Component.GameSpeed.speedup[🔗](#$api.engine~Engine.Component.GameSpeed.speedup) ``` Engine.Component.GameSpeed.speedup: integer ``` multiplier for game simulation speed (non-negative, 0 = paused) ### Engine.Component.GameSpeed.millisPerDay[🔗](#$api.engine~Engine.Component.GameSpeed.millisPerDay) ``` Engine.Component.GameSpeed.millisPerDay: integer ``` length of an in-game calendar day in milliseconds (affected by speedup, 0 = paused) ### Engine.Component.GameTime[🔗](#$api.engine~Engine.Component.GameTime) ``` record Engine.Component.GameTime new: function(): GameTime gameTime: integer gameTime0: integer dates: {{integer, Date}} timeOfDaySec: integer tickCount: integer updateCount: integer end ``` Information about the current ingame time. ### Engine.Component.GameTime.new[🔗](#$api.engine~Engine.Component.GameTime.new) ``` function Engine.Component.GameTime.new(): GameTime ``` **Returns** 1. `GameTime` ### Engine.Component.GameTime.gameTime[🔗](#$api.engine~Engine.Component.GameTime.gameTime) ``` Engine.Component.GameTime.gameTime: integer ``` the current ingame time ### Engine.Component.GameTime.gameTime0[🔗](#$api.engine~Engine.Component.GameTime.gameTime0) ``` Engine.Component.GameTime.gameTime0: integer ``` the ingame time when the last update occured ### Engine.Component.GameTime.dates[🔗](#$api.engine~Engine.Component.GameTime.dates) ``` Engine.Component.GameTime.dates: {{integer, Date}} ``` ### Engine.Component.GameTime.timeOfDaySec[🔗](#$api.engine~Engine.Component.GameTime.timeOfDaySec) ``` Engine.Component.GameTime.timeOfDaySec: integer ``` ### Engine.Component.GameTime.tickCount[🔗](#$api.engine~Engine.Component.GameTime.tickCount) ``` Engine.Component.GameTime.tickCount: integer ``` number of simulation ticks, ticks also when the game is paused (once per frame) ### Engine.Component.GameTime.updateCount[🔗](#$api.engine~Engine.Component.GameTime.updateCount) ``` Engine.Component.GameTime.updateCount: integer ``` number of simulation updates, does not tick when the simulation is paused ### Engine.Component.Industry[🔗](#$api.engine~Engine.Component.Industry) ``` record Engine.Component.Industry new: function(): Industry stockList: Engine.Entity level: integer closureTimeStamp: integer upgradeProgress: number manualDevelopment: boolean construction: Engine.Entity maxLevel: integer end ``` Contains information about industries. ### Engine.Component.Industry.new[🔗](#$api.engine~Engine.Component.Industry.new) ``` function Engine.Component.Industry.new(): Industry ``` **Returns** 1. `Industry` ### Engine.Component.Industry.stockList[🔗](#$api.engine~Engine.Component.Industry.stockList) ``` Engine.Component.Industry.stockList: Engine.Entity ``` stock list entity ### Engine.Component.Industry.level[🔗](#$api.engine~Engine.Component.Industry.level) ``` Engine.Component.Industry.level: integer ``` the current level of the construction ### Engine.Component.Industry.closureTimeStamp[🔗](#$api.engine~Engine.Component.Industry.closureTimeStamp) ``` Engine.Component.Industry.closureTimeStamp: integer ``` time after which the building will be closed ### Engine.Component.Industry.upgradeProgress[🔗](#$api.engine~Engine.Component.Industry.upgradeProgress) ``` Engine.Component.Industry.upgradeProgress: number ``` the progress towards upgrade/downgrade ### Engine.Component.Industry.manualDevelopment[🔗](#$api.engine~Engine.Component.Industry.manualDevelopment) ``` Engine.Component.Industry.manualDevelopment: boolean ``` set to true if industries do not start to close/stop countdown and do not level up or down ### Engine.Component.Industry.construction[🔗](#$api.engine~Engine.Component.Industry.construction) ``` Engine.Component.Industry.construction: Engine.Entity ``` the construction entity ### Engine.Component.Industry.maxLevel[🔗](#$api.engine~Engine.Component.Industry.maxLevel) ``` Engine.Component.Industry.maxLevel: integer ``` the maximum level of the construction ### Engine.Component.Landmark[🔗](#$api.engine~Engine.Component.Landmark) ``` record Engine.Component.Landmark new: function(): Landmark transportNetworkEntity: Engine.Entity active: boolean end ``` Information about landmarks used for path finding. ### Engine.Component.Landmark.new[🔗](#$api.engine~Engine.Component.Landmark.new) ``` function Engine.Component.Landmark.new(): Landmark ``` **Returns** 1. `Landmark` ### Engine.Component.Landmark.transportNetworkEntity[🔗](#$api.engine~Engine.Component.Landmark.transportNetworkEntity) ``` Engine.Component.Landmark.transportNetworkEntity: Engine.Entity ``` the entity for the landmark ### Engine.Component.Landmark.active[🔗](#$api.engine~Engine.Component.Landmark.active) ``` Engine.Component.Landmark.active: boolean ``` whether the landmark is currently active ### Engine.Component.LandVehicle[🔗](#$api.engine~Engine.Component.LandVehicle) ``` [Expand All] [Collapse All] record Engine.Component.LandVehicle new: function(): LandVehicle record DynState new: function(): DynState brakingTimer: number turnLeft: boolean turnRight: boolean end isTram: boolean dyn: DynState end ``` Represents a vehicle travelling on roads (either bus or truck) ### Engine.Component.LandVehicle.new[🔗](#$api.engine~Engine.Component.LandVehicle.new) ``` function Engine.Component.LandVehicle.new(): LandVehicle ``` **Returns** 1. `LandVehicle` ### Engine.Component.LandVehicle.DynState[🔗](#$api.engine~Engine.Component.LandVehicle.DynState) ``` record Engine.Component.LandVehicle.DynState new: function(): DynState brakingTimer: number turnLeft: boolean turnRight: boolean end ``` The fast-changing component of a LandVehicle. ### Engine.Component.LandVehicle.DynState.new[🔗](#$api.engine~Engine.Component.LandVehicle.DynState.new) ``` function Engine.Component.LandVehicle.DynState.new(): DynState ``` **Returns** 1. `DynState` ### Engine.Component.LandVehicle.DynState.brakingTimer[🔗](#$api.engine~Engine.Component.LandVehicle.DynState.brakingTimer) ``` Engine.Component.LandVehicle.DynState.brakingTimer: number ``` time in seconds that counts down. When positive, braking lights are on ### Engine.Component.LandVehicle.DynState.turnLeft[🔗](#$api.engine~Engine.Component.LandVehicle.DynState.turnLeft) ``` Engine.Component.LandVehicle.DynState.turnLeft: boolean ``` true if the vehicle is turning left ### Engine.Component.LandVehicle.DynState.turnRight[🔗](#$api.engine~Engine.Component.LandVehicle.DynState.turnRight) ``` Engine.Component.LandVehicle.DynState.turnRight: boolean ``` true if the vehicle is turning right ### Engine.Component.LandVehicle.isTram[🔗](#$api.engine~Engine.Component.LandVehicle.isTram) ``` Engine.Component.LandVehicle.isTram: boolean ``` ### Engine.Component.LandVehicle.dyn[🔗](#$api.engine~Engine.Component.LandVehicle.dyn) ``` Engine.Component.LandVehicle.dyn: DynState ``` the fast-changing component of the LandVehicle ### Engine.Component.Line[🔗](#$api.engine~Engine.Component.Line) ``` [Expand All] [Collapse All] record Engine.Component.Line new: function(): Line record LoadMode LOAD_IF_AVAILABLE: LoadMode FULL_LOAD_ANY: LoadMode FULL_LOAD_ALL: LoadMode LEGACY_UNLOAD_ONLY: LoadMode end record StopConfig new: function(StopConfig): StopConfig load: {boolean} maxLoad: {number} forceUnload: boolean destroyForConfigChange: boolean destroyForRefresh: boolean end record Stop new: function(): Stop stationGroup: Engine.Entity station: integer terminal: integer alternativeTerminals: {StationTerminal} loadMode: LoadMode minWaitingTime: number maxWaitingTime: number maxAdditionalWaitingTime: number waypoints: {Waypoint} stopConfig: StopConfig end stops: {Stop} vehicleInfo: LineVehicleInfo customFilters: boolean reservationPriority: number end ``` An line with stops and configurations ### Engine.Component.Line.new()[🔗](#$api.engine~Engine.Component.Line.new()) ``` function Engine.Component.Line.new()(): Line ``` **Returns** 1. `Line` ### Engine.Component.Line.new(Line)[🔗](#$api.engine~Engine.Component.Line.new(Line)) ``` function Engine.Component.Line.new(Line)(Line): Line ``` **Parameters** * `Line` **Returns** 1. `Line` ### Engine.Component.Line.LoadMode[🔗](#$api.engine~Engine.Component.Line.LoadMode) ``` record Engine.Component.Line.LoadMode LOAD_IF_AVAILABLE: LoadMode FULL_LOAD_ANY: LoadMode FULL_LOAD_ALL: LoadMode LEGACY_UNLOAD_ONLY: LoadMode end ``` Type of loading/waiting for the line. ### Engine.Component.Line.LoadMode.LOAD\_IF\_AVAILABLE[🔗](#$api.engine~Engine.Component.Line.LoadMode.LOAD_IF_AVAILABLE) ``` Engine.Component.Line.LoadMode.LOAD_IF_AVAILABLE: LoadMode ``` ### Engine.Component.Line.LoadMode.FULL\_LOAD\_ANY[🔗](#$api.engine~Engine.Component.Line.LoadMode.FULL_LOAD_ANY) ``` Engine.Component.Line.LoadMode.FULL_LOAD_ANY: LoadMode ``` ### Engine.Component.Line.LoadMode.FULL\_LOAD\_ALL[🔗](#$api.engine~Engine.Component.Line.LoadMode.FULL_LOAD_ALL) ``` Engine.Component.Line.LoadMode.FULL_LOAD_ALL: LoadMode ``` ### Engine.Component.Line.LoadMode.LEGACY\_UNLOAD\_ONLY[🔗](#$api.engine~Engine.Component.Line.LoadMode.LEGACY_UNLOAD_ONLY) ``` Engine.Component.Line.LoadMode.LEGACY_UNLOAD_ONLY: LoadMode ``` ### Engine.Component.Line.StopConfig[🔗](#$api.engine~Engine.Component.Line.StopConfig) ``` record Engine.Component.Line.StopConfig new: function(StopConfig): StopConfig load: {boolean} maxLoad: {number} forceUnload: boolean destroyForConfigChange: boolean destroyForRefresh: boolean end ``` Configuration details for a line stop ### Engine.Component.Line.StopConfig.new[🔗](#$api.engine~Engine.Component.Line.StopConfig.new) ``` function Engine.Component.Line.StopConfig.new(StopConfig): StopConfig ``` **Parameters** * `StopConfig` **Returns** 1. `StopConfig` ### Engine.Component.Line.StopConfig.load[🔗](#$api.engine~Engine.Component.Line.StopConfig.load) ``` Engine.Component.Line.StopConfig.load: {boolean} ``` for each cargo type, if it should be loaded ### Engine.Component.Line.StopConfig.maxLoad[🔗](#$api.engine~Engine.Component.Line.StopConfig.maxLoad) ``` Engine.Component.Line.StopConfig.maxLoad: {number} ``` for each cargo type, its max allowed fraction of total capacity (from 0 to 1) ### Engine.Component.Line.StopConfig.forceUnload[🔗](#$api.engine~Engine.Component.Line.StopConfig.forceUnload) ``` Engine.Component.Line.StopConfig.forceUnload: boolean ``` whether to unload cargo at compatible input-stocks, even if there is no space in that stock (cargo will be destroyed) ### Engine.Component.Line.StopConfig.destroyForConfigChange[🔗](#$api.engine~Engine.Component.Line.StopConfig.destroyForConfigChange) ``` Engine.Component.Line.StopConfig.destroyForConfigChange: boolean ``` whether to destroy cargo to allow changing the load config of a vehicle (even without compatible input-stock). This only happens in case a different cargo type is available to be loaded up at this stock. ### Engine.Component.Line.StopConfig.destroyForRefresh[🔗](#$api.engine~Engine.Component.Line.StopConfig.destroyForRefresh) ``` Engine.Component.Line.StopConfig.destroyForRefresh: boolean ``` whether to destroy cargo that was originally picked up by the vehicle at this output-stock (even without compatible input-stock). This only happens in case the cargo did a full round trip and new cargo of the same type is available to be loaded up at this stock. ### Engine.Component.Line.Stop[🔗](#$api.engine~Engine.Component.Line.Stop) ``` record Engine.Component.Line.Stop new: function(): Stop stationGroup: Engine.Entity station: integer terminal: integer alternativeTerminals: {StationTerminal} loadMode: LoadMode minWaitingTime: number maxWaitingTime: number maxAdditionalWaitingTime: number waypoints: {Waypoint} stopConfig: StopConfig end ``` Configuration for a line stop ### Engine.Component.Line.Stop.new[🔗](#$api.engine~Engine.Component.Line.Stop.new) ``` function Engine.Component.Line.Stop.new(): Stop ``` **Returns** 1. `Stop` ### Engine.Component.Line.Stop.stationGroup[🔗](#$api.engine~Engine.Component.Line.Stop.stationGroup) ``` Engine.Component.Line.Stop.stationGroup: Engine.Entity ``` the station group entity to which the line stop belongs ### Engine.Component.Line.Stop.station[🔗](#$api.engine~Engine.Component.Line.Stop.station) ``` Engine.Component.Line.Stop.station: integer ``` the station (within the station group) ### Engine.Component.Line.Stop.terminal[🔗](#$api.engine~Engine.Component.Line.Stop.terminal) ``` Engine.Component.Line.Stop.terminal: integer ``` the terminal (within the station) for the stop ### Engine.Component.Line.Stop.alternativeTerminals[🔗](#$api.engine~Engine.Component.Line.Stop.alternativeTerminals) ``` Engine.Component.Line.Stop.alternativeTerminals: {StationTerminal} ``` Alternative terminals for the stop ### Engine.Component.Line.Stop.loadMode[🔗](#$api.engine~Engine.Component.Line.Stop.loadMode) ``` Engine.Component.Line.Stop.loadMode: LoadMode ``` the configuration of what to load and not to load ### Engine.Component.Line.Stop.minWaitingTime[🔗](#$api.engine~Engine.Component.Line.Stop.minWaitingTime) ``` Engine.Component.Line.Stop.minWaitingTime: number ``` minimum waiting time at this stop ### Engine.Component.Line.Stop.maxWaitingTime[🔗](#$api.engine~Engine.Component.Line.Stop.maxWaitingTime) ``` Engine.Component.Line.Stop.maxWaitingTime: number ``` maximum waiting time at this stop ### Engine.Component.Line.Stop.maxAdditionalWaitingTime[🔗](#$api.engine~Engine.Component.Line.Stop.maxAdditionalWaitingTime) ``` Engine.Component.Line.Stop.maxAdditionalWaitingTime: number ``` maximum additional waiting time (after unloading/loading) at this stop ### Engine.Component.Line.Stop.waypoints[🔗](#$api.engine~Engine.Component.Line.Stop.waypoints) ``` Engine.Component.Line.Stop.waypoints: {Waypoint} ``` all waypoints after the stop ### Engine.Component.Line.Stop.stopConfig[🔗](#$api.engine~Engine.Component.Line.Stop.stopConfig) ``` Engine.Component.Line.Stop.stopConfig: StopConfig ``` configuration how much of what cargo type to load and unload ### Engine.Component.Line.stops[🔗](#$api.engine~Engine.Component.Line.stops) ``` Engine.Component.Line.stops: {Stop} ``` all line stops in order ### Engine.Component.Line.vehicleInfo[🔗](#$api.engine~Engine.Component.Line.vehicleInfo) ``` Engine.Component.Line.vehicleInfo: LineVehicleInfo ``` information about vehicles of the line ### Engine.Component.Line.customFilters[🔗](#$api.engine~Engine.Component.Line.customFilters) ``` Engine.Component.Line.customFilters: boolean ``` ### Engine.Component.Line.reservationPriority[🔗](#$api.engine~Engine.Component.Line.reservationPriority) ``` Engine.Component.Line.reservationPriority: number ``` ### Engine.Component.LogBook[🔗](#$api.engine~Engine.Component.LogBook) ``` [Expand All] [Collapse All] record Engine.Component.LogBook new: function(): LogBook record Log new: function(): Log times: {integer} values: {integer} times_native: Vector values_native: Vector end refEntity2name2log: {Engine.Entity : {string : Log}} name2log: {string : Log} name2log_native: Map end ``` A LogBook contains information about the evolution of a variable (e.g. amounts of money) over time. Be caucious when working with this component, as it can grow quite large over time and lua performance might not be ideal. Prefer the native utilities in `api.engine.util.logbook` whenever possible. ### Engine.Component.LogBook.new[🔗](#$api.engine~Engine.Component.LogBook.new) ``` function Engine.Component.LogBook.new(): LogBook ``` **Returns** 1. `LogBook` ### Engine.Component.LogBook.Log[🔗](#$api.engine~Engine.Component.LogBook.Log) ``` record Engine.Component.LogBook.Log new: function(): Log times: {integer} values: {integer} times_native: Vector values_native: Vector end ``` A Log is an entry into a LogBook and keeps track of the evolution of data in time. ### Engine.Component.LogBook.Log.new[🔗](#$api.engine~Engine.Component.LogBook.Log.new) ``` function Engine.Component.LogBook.Log.new(): Log ``` **Returns** 1. `Log` ### Engine.Component.LogBook.Log.times[🔗](#$api.engine~Engine.Component.LogBook.Log.times) ``` Engine.Component.LogBook.Log.times: {integer} ``` ### Engine.Component.LogBook.Log.values[🔗](#$api.engine~Engine.Component.LogBook.Log.values) ``` Engine.Component.LogBook.Log.values: {integer} ``` ### Engine.Component.LogBook.Log.times\_native[🔗](#$api.engine~Engine.Component.LogBook.Log.times_native) ``` Engine.Component.LogBook.Log.times_native: Vector ``` ### Engine.Component.LogBook.Log.values\_native[🔗](#$api.engine~Engine.Component.LogBook.Log.values_native) ``` Engine.Component.LogBook.Log.values_native: Vector ``` ### Engine.Component.LogBook.refEntity2name2log[🔗](#$api.engine~Engine.Component.LogBook.refEntity2name2log) ``` Engine.Component.LogBook.refEntity2name2log: {Engine.Entity : {string : Log}} ``` ### Engine.Component.LogBook.name2log[🔗](#$api.engine~Engine.Component.LogBook.name2log) ``` Engine.Component.LogBook.name2log: {string : Log} ``` A map from a key to a Log ### Engine.Component.LogBook.name2log\_native[🔗](#$api.engine~Engine.Component.LogBook.name2log_native) ``` Engine.Component.LogBook.name2log_native: Map ``` ### Engine.Component.LotList[🔗](#$api.engine~Engine.Component.LotList) ``` [Expand All] [Collapse All] record Engine.Component.LotList new: function(): LotList record Lot new: function(): Lot vertices: {Vec2f} texCoords: {Vec2f} triangles: {integer} texKey: ResName solid: boolean end lots: {Lot} end ``` Information about ground textures that are paining the terrain ### Engine.Component.LotList.new[🔗](#$api.engine~Engine.Component.LotList.new) ``` function Engine.Component.LotList.new(): LotList ``` **Returns** 1. `LotList` ### Engine.Component.LotList.Lot[🔗](#$api.engine~Engine.Component.LotList.Lot) ``` record Engine.Component.LotList.Lot new: function(): Lot vertices: {Vec2f} texCoords: {Vec2f} triangles: {integer} texKey: ResName solid: boolean end ``` Actual information of a LotList ### Engine.Component.LotList.Lot.new[🔗](#$api.engine~Engine.Component.LotList.Lot.new) ``` function Engine.Component.LotList.Lot.new(): Lot ``` **Returns** 1. `Lot` ### Engine.Component.LotList.Lot.vertices[🔗](#$api.engine~Engine.Component.LotList.Lot.vertices) ``` Engine.Component.LotList.Lot.vertices: {Vec2f} ``` list vertices of the lot ### Engine.Component.LotList.Lot.texCoords[🔗](#$api.engine~Engine.Component.LotList.Lot.texCoords) ``` Engine.Component.LotList.Lot.texCoords: {Vec2f} ``` list of texture coordinates for the lot (same length as vertices) ### Engine.Component.LotList.Lot.triangles[🔗](#$api.engine~Engine.Component.LotList.Lot.triangles) ``` Engine.Component.LotList.Lot.triangles: {integer} ``` alternative to vertices, a list of triangles can be specified instead (must be a multiple of 3) ### Engine.Component.LotList.Lot.texKey[🔗](#$api.engine~Engine.Component.LotList.Lot.texKey) ``` Engine.Component.LotList.Lot.texKey: ResName ``` the ground texture key to use ### Engine.Component.LotList.Lot.solid[🔗](#$api.engine~Engine.Component.LotList.Lot.solid) ``` Engine.Component.LotList.Lot.solid: boolean ``` ### Engine.Component.LotList.lots[🔗](#$api.engine~Engine.Component.LotList.lots) ``` Engine.Component.LotList.lots: {Lot} ``` a list of lots for the entity ### Engine.Component.MaintenanceCost[🔗](#$api.engine~Engine.Component.MaintenanceCost) ``` record Engine.Component.MaintenanceCost new: function(): MaintenanceCost maintenanceCost: integer accumulatedCost: {{Carrier, Carrier} : integer} end ``` Contains the maintenance cost of objects ### Engine.Component.MaintenanceCost.new[🔗](#$api.engine~Engine.Component.MaintenanceCost.new) ``` function Engine.Component.MaintenanceCost.new(): MaintenanceCost ``` **Returns** 1. `MaintenanceCost` ### Engine.Component.MaintenanceCost.maintenanceCost[🔗](#$api.engine~Engine.Component.MaintenanceCost.maintenanceCost) ``` Engine.Component.MaintenanceCost.maintenanceCost: integer ``` the maintenance cost of an object ### Engine.Component.MaintenanceCost.accumulatedCost[🔗](#$api.engine~Engine.Component.MaintenanceCost.accumulatedCost) ``` Engine.Component.MaintenanceCost.accumulatedCost: {{Carrier, Carrier} : integer} ``` ### Engine.Component.ModelInstanceList[🔗](#$api.engine~Engine.Component.ModelInstanceList) ``` record Engine.Component.ModelInstanceList new: function(): ModelInstanceList fatInstances: {ModelInstance} thinInstances: {ThinModelInstance} fatInstances_native: Vector thinInstances_native: Vector dynamic: boolean end ``` Contains all models rendered by the entity ### Engine.Component.ModelInstanceList.new[🔗](#$api.engine~Engine.Component.ModelInstanceList.new) ``` function Engine.Component.ModelInstanceList.new(): ModelInstanceList ``` **Returns** 1. `ModelInstanceList` ### Engine.Component.ModelInstanceList.fatInstances[🔗](#$api.engine~Engine.Component.ModelInstanceList.fatInstances) ``` Engine.Component.ModelInstanceList.fatInstances: {ModelInstance} ``` A list of models with a full transform attached ### Engine.Component.ModelInstanceList.thinInstances[🔗](#$api.engine~Engine.Component.ModelInstanceList.thinInstances) ``` Engine.Component.ModelInstanceList.thinInstances: {ThinModelInstance} ``` A list of models with very simple data attached ### Engine.Component.ModelInstanceList.fatInstances\_native[🔗](#$api.engine~Engine.Component.ModelInstanceList.fatInstances_native) ``` Engine.Component.ModelInstanceList.fatInstances_native: Vector ``` native variant for more performant access ### Engine.Component.ModelInstanceList.thinInstances\_native[🔗](#$api.engine~Engine.Component.ModelInstanceList.thinInstances_native) ``` Engine.Component.ModelInstanceList.thinInstances_native: Vector ``` native variant for more performant access ### Engine.Component.ModelInstanceList.dynamic[🔗](#$api.engine~Engine.Component.ModelInstanceList.dynamic) ``` Engine.Component.ModelInstanceList.dynamic: boolean ``` ### Engine.Component.ModelPerson[🔗](#$api.engine~Engine.Component.ModelPerson) ``` record Engine.Component.ModelPerson new: function(): ModelPerson path: ExtPath pathPos: PathPos stopped: boolean topSpeed: number speed: number brakeDecel: number offset: number position: Vec3f movementType: integer dist: number dist0: number stateTime: integer startWaitTime: number endWaitTime: number end ``` Additional data for persons walking in the world ### Engine.Component.ModelPerson.new[🔗](#$api.engine~Engine.Component.ModelPerson.new) ``` function Engine.Component.ModelPerson.new(): ModelPerson ``` **Returns** 1. `ModelPerson` ### Engine.Component.ModelPerson.path[🔗](#$api.engine~Engine.Component.ModelPerson.path) ``` Engine.Component.ModelPerson.path: ExtPath ``` the current path of the person ### Engine.Component.ModelPerson.pathPos[🔗](#$api.engine~Engine.Component.ModelPerson.pathPos) ``` Engine.Component.ModelPerson.pathPos: PathPos ``` the current position on the path ### Engine.Component.ModelPerson.stopped[🔗](#$api.engine~Engine.Component.ModelPerson.stopped) ``` Engine.Component.ModelPerson.stopped: boolean ``` whether a person is currently not walking ### Engine.Component.ModelPerson.topSpeed[🔗](#$api.engine~Engine.Component.ModelPerson.topSpeed) ``` Engine.Component.ModelPerson.topSpeed: number ``` the maximal speed of a person ### Engine.Component.ModelPerson.speed[🔗](#$api.engine~Engine.Component.ModelPerson.speed) ``` Engine.Component.ModelPerson.speed: number ``` the current speed of a person ### Engine.Component.ModelPerson.brakeDecel[🔗](#$api.engine~Engine.Component.ModelPerson.brakeDecel) ``` Engine.Component.ModelPerson.brakeDecel: number ``` the current deceleration speed of persons ### Engine.Component.ModelPerson.offset[🔗](#$api.engine~Engine.Component.ModelPerson.offset) ``` Engine.Component.ModelPerson.offset: number ``` an offset perpendicular to the path ### Engine.Component.ModelPerson.position[🔗](#$api.engine~Engine.Component.ModelPerson.position) ``` Engine.Component.ModelPerson.position: Vec3f ``` the position in the world ### Engine.Component.ModelPerson.movementType[🔗](#$api.engine~Engine.Component.ModelPerson.movementType) ``` Engine.Component.ModelPerson.movementType: integer ``` the animation used to move the person ### Engine.Component.ModelPerson.dist[🔗](#$api.engine~Engine.Component.ModelPerson.dist) ``` Engine.Component.ModelPerson.dist: number ``` distance from the target ### Engine.Component.ModelPerson.dist0[🔗](#$api.engine~Engine.Component.ModelPerson.dist0) ``` Engine.Component.ModelPerson.dist0: number ``` distance from the target (last frame) ### Engine.Component.ModelPerson.stateTime[🔗](#$api.engine~Engine.Component.ModelPerson.stateTime) ``` Engine.Component.ModelPerson.stateTime: integer ``` the animation timer ### Engine.Component.ModelPerson.startWaitTime[🔗](#$api.engine~Engine.Component.ModelPerson.startWaitTime) ``` Engine.Component.ModelPerson.startWaitTime: number ``` waiting beside a car (before getting in, after coming out) start ### Engine.Component.ModelPerson.endWaitTime[🔗](#$api.engine~Engine.Component.ModelPerson.endWaitTime) ``` Engine.Component.ModelPerson.endWaitTime: number ``` waiting in front of a car (before getting in, after coming out) end ### Engine.Component.ModelPersonIdle[🔗](#$api.engine~Engine.Component.ModelPersonIdle) ``` record Engine.Component.ModelPersonIdle new: function(): ModelPersonIdle arrivalTime: integer end ``` Additional data for idle person ### Engine.Component.ModelPersonIdle.new[🔗](#$api.engine~Engine.Component.ModelPersonIdle.new) ``` function Engine.Component.ModelPersonIdle.new(): ModelPersonIdle ``` **Returns** 1. `ModelPersonIdle` ### Engine.Component.ModelPersonIdle.arrivalTime[🔗](#$api.engine~Engine.Component.ModelPersonIdle.arrivalTime) ``` Engine.Component.ModelPersonIdle.arrivalTime: integer ``` the time since the person stopped ### Engine.Component.MovePath[🔗](#$api.engine~Engine.Component.MovePath) ``` [Expand All] [Collapse All] record Engine.Component.MovePath new: function(): MovePath record DynState new: function(): DynState pathPos: PathPos speed: number brakeDecel: number accel: number timeUntilAccel: number timeStanding: number timeToIgnore: number approachingStation: boolean end path: Path endParam: number endPos: number state: VehicleState blocked: integer allowEarlyArrival: boolean reverse: boolean servedFrom: integer servedTo: integer occupiedBackIndex: integer occupiedFrontIndex: integer dyn: DynState dyn0: DynState end ``` Represents a path a vehicle is currently following ### Engine.Component.MovePath.new[🔗](#$api.engine~Engine.Component.MovePath.new) ``` function Engine.Component.MovePath.new(): MovePath ``` **Returns** 1. `MovePath` ### Engine.Component.MovePath.DynState[🔗](#$api.engine~Engine.Component.MovePath.DynState) ``` record Engine.Component.MovePath.DynState new: function(): DynState pathPos: PathPos speed: number brakeDecel: number accel: number timeUntilAccel: number timeStanding: number timeToIgnore: number approachingStation: boolean end ``` The fast-changing component of the position on a path. ### Engine.Component.MovePath.DynState.new[🔗](#$api.engine~Engine.Component.MovePath.DynState.new) ``` function Engine.Component.MovePath.DynState.new(): DynState ``` **Returns** 1. `DynState` ### Engine.Component.MovePath.DynState.pathPos[🔗](#$api.engine~Engine.Component.MovePath.DynState.pathPos) ``` Engine.Component.MovePath.DynState.pathPos: PathPos ``` the position on the path ### Engine.Component.MovePath.DynState.speed[🔗](#$api.engine~Engine.Component.MovePath.DynState.speed) ``` Engine.Component.MovePath.DynState.speed: number ``` ### Engine.Component.MovePath.DynState.brakeDecel[🔗](#$api.engine~Engine.Component.MovePath.DynState.brakeDecel) ``` Engine.Component.MovePath.DynState.brakeDecel: number ``` ### Engine.Component.MovePath.DynState.accel[🔗](#$api.engine~Engine.Component.MovePath.DynState.accel) ``` Engine.Component.MovePath.DynState.accel: number ``` ### Engine.Component.MovePath.DynState.timeUntilAccel[🔗](#$api.engine~Engine.Component.MovePath.DynState.timeUntilAccel) ``` Engine.Component.MovePath.DynState.timeUntilAccel: number ``` ### Engine.Component.MovePath.DynState.timeStanding[🔗](#$api.engine~Engine.Component.MovePath.DynState.timeStanding) ``` Engine.Component.MovePath.DynState.timeStanding: number ``` ### Engine.Component.MovePath.DynState.timeToIgnore[🔗](#$api.engine~Engine.Component.MovePath.DynState.timeToIgnore) ``` Engine.Component.MovePath.DynState.timeToIgnore: number ``` ### Engine.Component.MovePath.DynState.approachingStation[🔗](#$api.engine~Engine.Component.MovePath.DynState.approachingStation) ``` Engine.Component.MovePath.DynState.approachingStation: boolean ``` ### Engine.Component.MovePath.path[🔗](#$api.engine~Engine.Component.MovePath.path) ``` Engine.Component.MovePath.path: Path ``` a series of edges the vehicle is following ### Engine.Component.MovePath.endParam[🔗](#$api.engine~Engine.Component.MovePath.endParam) ``` Engine.Component.MovePath.endParam: number ``` ### Engine.Component.MovePath.endPos[🔗](#$api.engine~Engine.Component.MovePath.endPos) ``` Engine.Component.MovePath.endPos: number ``` ### Engine.Component.MovePath.state[🔗](#$api.engine~Engine.Component.MovePath.state) ``` Engine.Component.MovePath.state: VehicleState ``` ### Engine.Component.MovePath.blocked[🔗](#$api.engine~Engine.Component.MovePath.blocked) ``` Engine.Component.MovePath.blocked: integer ``` ### Engine.Component.MovePath.allowEarlyArrival[🔗](#$api.engine~Engine.Component.MovePath.allowEarlyArrival) ``` Engine.Component.MovePath.allowEarlyArrival: boolean ``` ### Engine.Component.MovePath.reverse[🔗](#$api.engine~Engine.Component.MovePath.reverse) ``` Engine.Component.MovePath.reverse: boolean ``` ### Engine.Component.MovePath.servedFrom[🔗](#$api.engine~Engine.Component.MovePath.servedFrom) ``` Engine.Component.MovePath.servedFrom: integer ``` ### Engine.Component.MovePath.servedTo[🔗](#$api.engine~Engine.Component.MovePath.servedTo) ``` Engine.Component.MovePath.servedTo: integer ``` ### Engine.Component.MovePath.occupiedBackIndex[🔗](#$api.engine~Engine.Component.MovePath.occupiedBackIndex) ``` Engine.Component.MovePath.occupiedBackIndex: integer ``` ### Engine.Component.MovePath.occupiedFrontIndex[🔗](#$api.engine~Engine.Component.MovePath.occupiedFrontIndex) ``` Engine.Component.MovePath.occupiedFrontIndex: integer ``` ### Engine.Component.MovePath.dyn[🔗](#$api.engine~Engine.Component.MovePath.dyn) ``` Engine.Component.MovePath.dyn: DynState ``` the fast-changing component of the position on the path ### Engine.Component.MovePath.dyn0[🔗](#$api.engine~Engine.Component.MovePath.dyn0) ``` Engine.Component.MovePath.dyn0: DynState ``` the dyn state at the beginning of the simulation frame (optional) ### Engine.Component.MovePathAircraft[🔗](#$api.engine~Engine.Component.MovePathAircraft) ``` [Expand All] [Collapse All] record Engine.Component.MovePathAircraft new: function(): MovePathAircraft record AircraftState new: function(): AircraftState record DynState new: function(): DynState velocity: Vec2f lastAccel: Vec2f pitch: number pitchV: number roll: number rollV: number thrust: number thrustV: number elevator: number aileronLeft: number propPhase: number flaps: number alt: number end flightState: FlightState cruiseAlt: number waitingDistance: number waitingPriority: integer gear: boolean gearTime: integer dyn: DynState dyn0: DynState end record ShipState new: function(): ShipState record DynState new: function(): DynState lastAccel: number tractiveEffort: number tractiveEffortV: number roll: number rollV: number powerOutput: number approachingStation: boolean paddlePhase: number actualPos: PathPosData end waitingDist: number clearToLand: boolean startPathPosData: PathPosData targetPathPosData: PathPosData dyn: DynState dyn0: DynState end record PathState PATH0: PathState PATH1: PathState PATH2: PathState end path0: Path path1: {{EdgeGeometry, boolean}} path2: Path pathPos: PathPos pathPos0: PathPos state: VehicleState pathState: PathState speed: number speed0: number brakeDecel: number aircraftState: AircraftState shipState: ShipState end ``` ### Engine.Component.MovePathAircraft.new[🔗](#$api.engine~Engine.Component.MovePathAircraft.new) ``` function Engine.Component.MovePathAircraft.new(): MovePathAircraft ``` **Returns** 1. `MovePathAircraft` ### Engine.Component.MovePathAircraft.AircraftState[🔗](#$api.engine~Engine.Component.MovePathAircraft.AircraftState) ``` [Expand All] [Collapse All] record Engine.Component.MovePathAircraft.AircraftState new: function(): AircraftState record DynState new: function(): DynState velocity: Vec2f lastAccel: Vec2f pitch: number pitchV: number roll: number rollV: number thrust: number thrustV: number elevator: number aileronLeft: number propPhase: number flaps: number alt: number end flightState: FlightState cruiseAlt: number waitingDistance: number waitingPriority: integer gear: boolean gearTime: integer dyn: DynState dyn0: DynState end ``` Additional data for aircraft path ### Engine.Component.MovePathAircraft.AircraftState.new[🔗](#$api.engine~Engine.Component.MovePathAircraft.AircraftState.new) ``` function Engine.Component.MovePathAircraft.AircraftState.new(): AircraftState ``` **Returns** 1. `AircraftState` ### Engine.Component.MovePathAircraft.AircraftState.DynState[🔗](#$api.engine~Engine.Component.MovePathAircraft.AircraftState.DynState) ``` record Engine.Component.MovePathAircraft.AircraftState.DynState new: function(): DynState velocity: Vec2f lastAccel: Vec2f pitch: number pitchV: number roll: number rollV: number thrust: number thrustV: number elevator: number aileronLeft: number propPhase: number flaps: number alt: number end ``` ### Engine.Component.MovePathAircraft.AircraftState.DynState.new[🔗](#$api.engine~Engine.Component.MovePathAircraft.AircraftState.DynState.new) ``` function Engine.Component.MovePathAircraft.AircraftState.DynState.new(): DynState ``` **Returns** 1. `DynState` ### Engine.Component.MovePathAircraft.AircraftState.DynState.velocity[🔗](#$api.engine~Engine.Component.MovePathAircraft.AircraftState.DynState.velocity) ``` Engine.Component.MovePathAircraft.AircraftState.DynState.velocity: Vec2f ``` ### Engine.Component.MovePathAircraft.AircraftState.DynState.lastAccel[🔗](#$api.engine~Engine.Component.MovePathAircraft.AircraftState.DynState.lastAccel) ``` Engine.Component.MovePathAircraft.AircraftState.DynState.lastAccel: Vec2f ``` ### Engine.Component.MovePathAircraft.AircraftState.DynState.pitch[🔗](#$api.engine~Engine.Component.MovePathAircraft.AircraftState.DynState.pitch) ``` Engine.Component.MovePathAircraft.AircraftState.DynState.pitch: number ``` ### Engine.Component.MovePathAircraft.AircraftState.DynState.pitchV[🔗](#$api.engine~Engine.Component.MovePathAircraft.AircraftState.DynState.pitchV) ``` Engine.Component.MovePathAircraft.AircraftState.DynState.pitchV: number ``` ### Engine.Component.MovePathAircraft.AircraftState.DynState.roll[🔗](#$api.engine~Engine.Component.MovePathAircraft.AircraftState.DynState.roll) ``` Engine.Component.MovePathAircraft.AircraftState.DynState.roll: number ``` ### Engine.Component.MovePathAircraft.AircraftState.DynState.rollV[🔗](#$api.engine~Engine.Component.MovePathAircraft.AircraftState.DynState.rollV) ``` Engine.Component.MovePathAircraft.AircraftState.DynState.rollV: number ``` ### Engine.Component.MovePathAircraft.AircraftState.DynState.thrust[🔗](#$api.engine~Engine.Component.MovePathAircraft.AircraftState.DynState.thrust) ``` Engine.Component.MovePathAircraft.AircraftState.DynState.thrust: number ``` ### Engine.Component.MovePathAircraft.AircraftState.DynState.thrustV[🔗](#$api.engine~Engine.Component.MovePathAircraft.AircraftState.DynState.thrustV) ``` Engine.Component.MovePathAircraft.AircraftState.DynState.thrustV: number ``` ### Engine.Component.MovePathAircraft.AircraftState.DynState.elevator[🔗](#$api.engine~Engine.Component.MovePathAircraft.AircraftState.DynState.elevator) ``` Engine.Component.MovePathAircraft.AircraftState.DynState.elevator: number ``` ### Engine.Component.MovePathAircraft.AircraftState.DynState.aileronLeft[🔗](#$api.engine~Engine.Component.MovePathAircraft.AircraftState.DynState.aileronLeft) ``` Engine.Component.MovePathAircraft.AircraftState.DynState.aileronLeft: number ``` ### Engine.Component.MovePathAircraft.AircraftState.DynState.propPhase[🔗](#$api.engine~Engine.Component.MovePathAircraft.AircraftState.DynState.propPhase) ``` Engine.Component.MovePathAircraft.AircraftState.DynState.propPhase: number ``` ### Engine.Component.MovePathAircraft.AircraftState.DynState.flaps[🔗](#$api.engine~Engine.Component.MovePathAircraft.AircraftState.DynState.flaps) ``` Engine.Component.MovePathAircraft.AircraftState.DynState.flaps: number ``` ### Engine.Component.MovePathAircraft.AircraftState.DynState.alt[🔗](#$api.engine~Engine.Component.MovePathAircraft.AircraftState.DynState.alt) ``` Engine.Component.MovePathAircraft.AircraftState.DynState.alt: number ``` ### Engine.Component.MovePathAircraft.AircraftState.flightState[🔗](#$api.engine~Engine.Component.MovePathAircraft.AircraftState.flightState) ``` Engine.Component.MovePathAircraft.AircraftState.flightState: FlightState ``` current flight state of the aircraft ### Engine.Component.MovePathAircraft.AircraftState.cruiseAlt[🔗](#$api.engine~Engine.Component.MovePathAircraft.AircraftState.cruiseAlt) ``` Engine.Component.MovePathAircraft.AircraftState.cruiseAlt: number ``` ### Engine.Component.MovePathAircraft.AircraftState.waitingDistance[🔗](#$api.engine~Engine.Component.MovePathAircraft.AircraftState.waitingDistance) ``` Engine.Component.MovePathAircraft.AircraftState.waitingDistance: number ``` ### Engine.Component.MovePathAircraft.AircraftState.waitingPriority[🔗](#$api.engine~Engine.Component.MovePathAircraft.AircraftState.waitingPriority) ``` Engine.Component.MovePathAircraft.AircraftState.waitingPriority: integer ``` ### Engine.Component.MovePathAircraft.AircraftState.gear[🔗](#$api.engine~Engine.Component.MovePathAircraft.AircraftState.gear) ``` Engine.Component.MovePathAircraft.AircraftState.gear: boolean ``` ### Engine.Component.MovePathAircraft.AircraftState.gearTime[🔗](#$api.engine~Engine.Component.MovePathAircraft.AircraftState.gearTime) ``` Engine.Component.MovePathAircraft.AircraftState.gearTime: integer ``` ### Engine.Component.MovePathAircraft.AircraftState.dyn[🔗](#$api.engine~Engine.Component.MovePathAircraft.AircraftState.dyn) ``` Engine.Component.MovePathAircraft.AircraftState.dyn: DynState ``` ### Engine.Component.MovePathAircraft.AircraftState.dyn0[🔗](#$api.engine~Engine.Component.MovePathAircraft.AircraftState.dyn0) ``` Engine.Component.MovePathAircraft.AircraftState.dyn0: DynState ``` ### Engine.Component.MovePathAircraft.ShipState[🔗](#$api.engine~Engine.Component.MovePathAircraft.ShipState) ``` [Expand All] [Collapse All] record Engine.Component.MovePathAircraft.ShipState new: function(): ShipState record DynState new: function(): DynState lastAccel: number tractiveEffort: number tractiveEffortV: number roll: number rollV: number powerOutput: number approachingStation: boolean paddlePhase: number actualPos: PathPosData end waitingDist: number clearToLand: boolean startPathPosData: PathPosData targetPathPosData: PathPosData dyn: DynState dyn0: DynState end ``` ### Engine.Component.MovePathAircraft.ShipState.new[🔗](#$api.engine~Engine.Component.MovePathAircraft.ShipState.new) ``` function Engine.Component.MovePathAircraft.ShipState.new(): ShipState ``` **Returns** 1. `ShipState` ### Engine.Component.MovePathAircraft.ShipState.DynState[🔗](#$api.engine~Engine.Component.MovePathAircraft.ShipState.DynState) ``` record Engine.Component.MovePathAircraft.ShipState.DynState new: function(): DynState lastAccel: number tractiveEffort: number tractiveEffortV: number roll: number rollV: number powerOutput: number approachingStation: boolean paddlePhase: number actualPos: PathPosData end ``` ### Engine.Component.MovePathAircraft.ShipState.DynState.new[🔗](#$api.engine~Engine.Component.MovePathAircraft.ShipState.DynState.new) ``` function Engine.Component.MovePathAircraft.ShipState.DynState.new(): DynState ``` **Returns** 1. `DynState` ### Engine.Component.MovePathAircraft.ShipState.DynState.lastAccel[🔗](#$api.engine~Engine.Component.MovePathAircraft.ShipState.DynState.lastAccel) ``` Engine.Component.MovePathAircraft.ShipState.DynState.lastAccel: number ``` ### Engine.Component.MovePathAircraft.ShipState.DynState.tractiveEffort[🔗](#$api.engine~Engine.Component.MovePathAircraft.ShipState.DynState.tractiveEffort) ``` Engine.Component.MovePathAircraft.ShipState.DynState.tractiveEffort: number ``` ### Engine.Component.MovePathAircraft.ShipState.DynState.tractiveEffortV[🔗](#$api.engine~Engine.Component.MovePathAircraft.ShipState.DynState.tractiveEffortV) ``` Engine.Component.MovePathAircraft.ShipState.DynState.tractiveEffortV: number ``` ### Engine.Component.MovePathAircraft.ShipState.DynState.roll[🔗](#$api.engine~Engine.Component.MovePathAircraft.ShipState.DynState.roll) ``` Engine.Component.MovePathAircraft.ShipState.DynState.roll: number ``` ### Engine.Component.MovePathAircraft.ShipState.DynState.rollV[🔗](#$api.engine~Engine.Component.MovePathAircraft.ShipState.DynState.rollV) ``` Engine.Component.MovePathAircraft.ShipState.DynState.rollV: number ``` ### Engine.Component.MovePathAircraft.ShipState.DynState.powerOutput[🔗](#$api.engine~Engine.Component.MovePathAircraft.ShipState.DynState.powerOutput) ``` Engine.Component.MovePathAircraft.ShipState.DynState.powerOutput: number ``` ### Engine.Component.MovePathAircraft.ShipState.DynState.approachingStation[🔗](#$api.engine~Engine.Component.MovePathAircraft.ShipState.DynState.approachingStation) ``` Engine.Component.MovePathAircraft.ShipState.DynState.approachingStation: boolean ``` ### Engine.Component.MovePathAircraft.ShipState.DynState.paddlePhase[🔗](#$api.engine~Engine.Component.MovePathAircraft.ShipState.DynState.paddlePhase) ``` Engine.Component.MovePathAircraft.ShipState.DynState.paddlePhase: number ``` ### Engine.Component.MovePathAircraft.ShipState.DynState.actualPos[🔗](#$api.engine~Engine.Component.MovePathAircraft.ShipState.DynState.actualPos) ``` Engine.Component.MovePathAircraft.ShipState.DynState.actualPos: PathPosData ``` ### Engine.Component.MovePathAircraft.ShipState.waitingDist[🔗](#$api.engine~Engine.Component.MovePathAircraft.ShipState.waitingDist) ``` Engine.Component.MovePathAircraft.ShipState.waitingDist: number ``` ### Engine.Component.MovePathAircraft.ShipState.clearToLand[🔗](#$api.engine~Engine.Component.MovePathAircraft.ShipState.clearToLand) ``` Engine.Component.MovePathAircraft.ShipState.clearToLand: boolean ``` ### Engine.Component.MovePathAircraft.ShipState.startPathPosData[🔗](#$api.engine~Engine.Component.MovePathAircraft.ShipState.startPathPosData) ``` Engine.Component.MovePathAircraft.ShipState.startPathPosData: PathPosData ``` ### Engine.Component.MovePathAircraft.ShipState.targetPathPosData[🔗](#$api.engine~Engine.Component.MovePathAircraft.ShipState.targetPathPosData) ``` Engine.Component.MovePathAircraft.ShipState.targetPathPosData: PathPosData ``` ### Engine.Component.MovePathAircraft.ShipState.dyn[🔗](#$api.engine~Engine.Component.MovePathAircraft.ShipState.dyn) ``` Engine.Component.MovePathAircraft.ShipState.dyn: DynState ``` ### Engine.Component.MovePathAircraft.ShipState.dyn0[🔗](#$api.engine~Engine.Component.MovePathAircraft.ShipState.dyn0) ``` Engine.Component.MovePathAircraft.ShipState.dyn0: DynState ``` ### Engine.Component.MovePathAircraft.PathState[🔗](#$api.engine~Engine.Component.MovePathAircraft.PathState) ``` record Engine.Component.MovePathAircraft.PathState PATH0: PathState PATH1: PathState PATH2: PathState end ``` ### Engine.Component.MovePathAircraft.PathState.PATH0[🔗](#$api.engine~Engine.Component.MovePathAircraft.PathState.PATH0) ``` Engine.Component.MovePathAircraft.PathState.PATH0: PathState ``` ### Engine.Component.MovePathAircraft.PathState.PATH1[🔗](#$api.engine~Engine.Component.MovePathAircraft.PathState.PATH1) ``` Engine.Component.MovePathAircraft.PathState.PATH1: PathState ``` ### Engine.Component.MovePathAircraft.PathState.PATH2[🔗](#$api.engine~Engine.Component.MovePathAircraft.PathState.PATH2) ``` Engine.Component.MovePathAircraft.PathState.PATH2: PathState ``` ### Engine.Component.MovePathAircraft.path0[🔗](#$api.engine~Engine.Component.MovePathAircraft.path0) ``` Engine.Component.MovePathAircraft.path0: Path ``` ### Engine.Component.MovePathAircraft.path1[🔗](#$api.engine~Engine.Component.MovePathAircraft.path1) ``` Engine.Component.MovePathAircraft.path1: {{EdgeGeometry, boolean}} ``` ### Engine.Component.MovePathAircraft.path2[🔗](#$api.engine~Engine.Component.MovePathAircraft.path2) ``` Engine.Component.MovePathAircraft.path2: Path ``` ### Engine.Component.MovePathAircraft.pathPos[🔗](#$api.engine~Engine.Component.MovePathAircraft.pathPos) ``` Engine.Component.MovePathAircraft.pathPos: PathPos ``` ### Engine.Component.MovePathAircraft.pathPos0[🔗](#$api.engine~Engine.Component.MovePathAircraft.pathPos0) ``` Engine.Component.MovePathAircraft.pathPos0: PathPos ``` ### Engine.Component.MovePathAircraft.state[🔗](#$api.engine~Engine.Component.MovePathAircraft.state) ``` Engine.Component.MovePathAircraft.state: VehicleState ``` ### Engine.Component.MovePathAircraft.pathState[🔗](#$api.engine~Engine.Component.MovePathAircraft.pathState) ``` Engine.Component.MovePathAircraft.pathState: PathState ``` ### Engine.Component.MovePathAircraft.speed[🔗](#$api.engine~Engine.Component.MovePathAircraft.speed) ``` Engine.Component.MovePathAircraft.speed: number ``` ### Engine.Component.MovePathAircraft.speed0[🔗](#$api.engine~Engine.Component.MovePathAircraft.speed0) ``` Engine.Component.MovePathAircraft.speed0: number ``` ### Engine.Component.MovePathAircraft.brakeDecel[🔗](#$api.engine~Engine.Component.MovePathAircraft.brakeDecel) ``` Engine.Component.MovePathAircraft.brakeDecel: number ``` ### Engine.Component.MovePathAircraft.aircraftState[🔗](#$api.engine~Engine.Component.MovePathAircraft.aircraftState) ``` Engine.Component.MovePathAircraft.aircraftState: AircraftState ``` ### Engine.Component.MovePathAircraft.shipState[🔗](#$api.engine~Engine.Component.MovePathAircraft.shipState) ``` Engine.Component.MovePathAircraft.shipState: ShipState ``` ### Engine.Component.Name[🔗](#$api.engine~Engine.Component.Name) ``` record Engine.Component.Name new: function(): Name name: string end ``` Specifies the name of an entity ### Engine.Component.Name.new[🔗](#$api.engine~Engine.Component.Name.new) ``` function Engine.Component.Name.new(): Name ``` **Returns** 1. `Name` ### Engine.Component.Name.name[🔗](#$api.engine~Engine.Component.Name.name) ``` Engine.Component.Name.name: string ``` the name of the entity ### Engine.Component.Parcel[🔗](#$api.engine~Engine.Component.Parcel) ``` [Expand All] [Collapse All] record Engine.Component.Parcel new: function(): Parcel record CollisionType Environment: CollisionType Parcel: CollisionType end record Face new: function(): Face points: {Vec3f} collision: {CollisionType : boolean} end streetSegment: Engine.Entity left: boolean curveParam: number offset: number faces: {Face} end ``` A parcel is a region of space near a road where a town building can be built. ### Engine.Component.Parcel.new[🔗](#$api.engine~Engine.Component.Parcel.new) ``` function Engine.Component.Parcel.new(): Parcel ``` **Returns** 1. `Parcel` ### Engine.Component.Parcel.CollisionType[🔗](#$api.engine~Engine.Component.Parcel.CollisionType) ``` record Engine.Component.Parcel.CollisionType Environment: CollisionType Parcel: CollisionType end ``` ### Engine.Component.Parcel.CollisionType.Environment[🔗](#$api.engine~Engine.Component.Parcel.CollisionType.Environment) ``` Engine.Component.Parcel.CollisionType.Environment: CollisionType ``` ### Engine.Component.Parcel.CollisionType.Parcel[🔗](#$api.engine~Engine.Component.Parcel.CollisionType.Parcel) ``` Engine.Component.Parcel.CollisionType.Parcel: CollisionType ``` ### Engine.Component.Parcel.Face[🔗](#$api.engine~Engine.Component.Parcel.Face) ``` record Engine.Component.Parcel.Face new: function(): Face points: {Vec3f} collision: {CollisionType : boolean} end ``` ### Engine.Component.Parcel.Face.new[🔗](#$api.engine~Engine.Component.Parcel.Face.new) ``` function Engine.Component.Parcel.Face.new(): Face ``` **Returns** 1. `Face` ### Engine.Component.Parcel.Face.points[🔗](#$api.engine~Engine.Component.Parcel.Face.points) ``` Engine.Component.Parcel.Face.points: {Vec3f} ``` ### Engine.Component.Parcel.Face.collision[🔗](#$api.engine~Engine.Component.Parcel.Face.collision) ``` Engine.Component.Parcel.Face.collision: {CollisionType : boolean} ``` ### Engine.Component.Parcel.streetSegment[🔗](#$api.engine~Engine.Component.Parcel.streetSegment) ``` Engine.Component.Parcel.streetSegment: Engine.Entity ``` the street edge to which the parcel belongs ### Engine.Component.Parcel.left[🔗](#$api.engine~Engine.Component.Parcel.left) ``` Engine.Component.Parcel.left: boolean ``` ### Engine.Component.Parcel.curveParam[🔗](#$api.engine~Engine.Component.Parcel.curveParam) ``` Engine.Component.Parcel.curveParam: number ``` ### Engine.Component.Parcel.offset[🔗](#$api.engine~Engine.Component.Parcel.offset) ``` Engine.Component.Parcel.offset: number ``` ### Engine.Component.Parcel.faces[🔗](#$api.engine~Engine.Component.Parcel.faces) ``` Engine.Component.Parcel.faces: {Face} ``` ### Engine.Component.PersonCapacity[🔗](#$api.engine~Engine.Component.PersonCapacity) ``` record Engine.Component.PersonCapacity new: function(): PersonCapacity type: LandUseType capacity: integer personNodes: {NodeId} vehicleNodes: {NodeId} end ``` Contains information about a workplace of household. ### Engine.Component.PersonCapacity.new[🔗](#$api.engine~Engine.Component.PersonCapacity.new) ``` function Engine.Component.PersonCapacity.new(): PersonCapacity ``` **Returns** 1. `PersonCapacity` ### Engine.Component.PersonCapacity.type[🔗](#$api.engine~Engine.Component.PersonCapacity.type) ``` Engine.Component.PersonCapacity.type: LandUseType ``` the type of capacity (1 = residential, 2 = commercial, 3 = industrial) ### Engine.Component.PersonCapacity.capacity[🔗](#$api.engine~Engine.Component.PersonCapacity.capacity) ``` Engine.Component.PersonCapacity.capacity: integer ``` total capacity (tenants or workers) of the Entity ### Engine.Component.PersonCapacity.personNodes[🔗](#$api.engine~Engine.Component.PersonCapacity.personNodes) ``` Engine.Component.PersonCapacity.personNodes: {NodeId} ``` ### Engine.Component.PersonCapacity.vehicleNodes[🔗](#$api.engine~Engine.Component.PersonCapacity.vehicleNodes) ``` Engine.Component.PersonCapacity.vehicleNodes: {NodeId} ``` ### Engine.Component.Player[🔗](#$api.engine~Engine.Component.Player) ``` record Engine.Component.Player new: function(): Player headquarters: Engine.Entity end ``` Represent a player ### Engine.Component.Player.new[🔗](#$api.engine~Engine.Component.Player.new) ``` function Engine.Component.Player.new(): Player ``` **Returns** 1. `Player` ### Engine.Component.Player.headquarters[🔗](#$api.engine~Engine.Component.Player.headquarters) ``` Engine.Component.Player.headquarters: Engine.Entity ``` the current headquarters construction ### Engine.Component.PlayerOwned[🔗](#$api.engine~Engine.Component.PlayerOwned) ``` record Engine.Component.PlayerOwned new: function(): PlayerOwned player: Engine.Entity end ``` An entity with player owner is property of the owner and can be bulldozed only by him. ### Engine.Component.PlayerOwned.new[🔗](#$api.engine~Engine.Component.PlayerOwned.new) ``` function Engine.Component.PlayerOwned.new(): PlayerOwned ``` **Returns** 1. `PlayerOwned` ### Engine.Component.PlayerOwned.player[🔗](#$api.engine~Engine.Component.PlayerOwned.player) ``` Engine.Component.PlayerOwned.player: Engine.Entity ``` the owner of the entity ### Engine.Component.RailroadCrossing[🔗](#$api.engine~Engine.Component.RailroadCrossing) ``` [Expand All] [Collapse All] record Engine.Component.RailroadCrossing new: function(): RailroadCrossing record State OPEN: State CLOSED: State WAITING: State end nodes: {Engine.Entity} edges: {Engine.Entity} typeIndex: integer state: State stateTime: integer end ``` A railroad crossing ### Engine.Component.RailroadCrossing.new[🔗](#$api.engine~Engine.Component.RailroadCrossing.new) ``` function Engine.Component.RailroadCrossing.new(): RailroadCrossing ``` **Returns** 1. `RailroadCrossing` ### Engine.Component.RailroadCrossing.State[🔗](#$api.engine~Engine.Component.RailroadCrossing.State) ``` record Engine.Component.RailroadCrossing.State OPEN: State CLOSED: State WAITING: State end ``` Animation state of a railroad crossing ### Engine.Component.RailroadCrossing.State.OPEN[🔗](#$api.engine~Engine.Component.RailroadCrossing.State.OPEN) ``` Engine.Component.RailroadCrossing.State.OPEN: State ``` ### Engine.Component.RailroadCrossing.State.CLOSED[🔗](#$api.engine~Engine.Component.RailroadCrossing.State.CLOSED) ``` Engine.Component.RailroadCrossing.State.CLOSED: State ``` ### Engine.Component.RailroadCrossing.State.WAITING[🔗](#$api.engine~Engine.Component.RailroadCrossing.State.WAITING) ``` Engine.Component.RailroadCrossing.State.WAITING: State ``` ### Engine.Component.RailroadCrossing.nodes[🔗](#$api.engine~Engine.Component.RailroadCrossing.nodes) ``` Engine.Component.RailroadCrossing.nodes: {Engine.Entity} ``` nodes belonging to the railroad crossing ### Engine.Component.RailroadCrossing.edges[🔗](#$api.engine~Engine.Component.RailroadCrossing.edges) ``` Engine.Component.RailroadCrossing.edges: {Engine.Entity} ``` edges belonging to the railroad crossing ### Engine.Component.RailroadCrossing.typeIndex[🔗](#$api.engine~Engine.Component.RailroadCrossing.typeIndex) ``` Engine.Component.RailroadCrossing.typeIndex: integer ``` the type of crossing, as an index in api.res.railroadCrossingTypeRep. ### Engine.Component.RailroadCrossing.state[🔗](#$api.engine~Engine.Component.RailroadCrossing.state) ``` Engine.Component.RailroadCrossing.state: State ``` the current animation ### Engine.Component.RailroadCrossing.stateTime[🔗](#$api.engine~Engine.Component.RailroadCrossing.stateTime) ``` Engine.Component.RailroadCrossing.stateTime: integer ``` the animation timer ### Engine.Component.RunwayList[🔗](#$api.engine~Engine.Component.RunwayList) ``` record Engine.Component.RunwayList new: function(): RunwayList runways: {Runway} end ``` All runways for the entity transport network. ### Engine.Component.RunwayList.new[🔗](#$api.engine~Engine.Component.RunwayList.new) ``` function Engine.Component.RunwayList.new(): RunwayList ``` **Returns** 1. `RunwayList` ### Engine.Component.RunwayList.runways[🔗](#$api.engine~Engine.Component.RunwayList.runways) ``` Engine.Component.RunwayList.runways: {Runway} ``` ### Engine.Component.Scaffold[🔗](#$api.engine~Engine.Component.Scaffold) ``` [Expand All] [Collapse All] record Engine.Component.Scaffold new: function(): Scaffold record Type NEW: Type UPGRADE: Type DOWNGRADE: Type end type: Type oldModelId: integer oldTransf: Mat4f oldBuildingFace: {{Vec2f}} oldFloorLevel: {{number}} oldHeight: number buildingFace: {{Vec2f}} floorLevel: {{number}} height: number constructionStartTime: integer constructionEndTime: integer cranePosition: Vec2f craneAngle: number craneTerrainHeight: number craneAngleSpan: {number} end ``` ### Engine.Component.Scaffold.new[🔗](#$api.engine~Engine.Component.Scaffold.new) ``` function Engine.Component.Scaffold.new(): Scaffold ``` **Returns** 1. `Scaffold` ### Engine.Component.Scaffold.Type[🔗](#$api.engine~Engine.Component.Scaffold.Type) ``` record Engine.Component.Scaffold.Type NEW: Type UPGRADE: Type DOWNGRADE: Type end ``` ### Engine.Component.Scaffold.Type.NEW[🔗](#$api.engine~Engine.Component.Scaffold.Type.NEW) ``` Engine.Component.Scaffold.Type.NEW: Type ``` ### Engine.Component.Scaffold.Type.UPGRADE[🔗](#$api.engine~Engine.Component.Scaffold.Type.UPGRADE) ``` Engine.Component.Scaffold.Type.UPGRADE: Type ``` ### Engine.Component.Scaffold.Type.DOWNGRADE[🔗](#$api.engine~Engine.Component.Scaffold.Type.DOWNGRADE) ``` Engine.Component.Scaffold.Type.DOWNGRADE: Type ``` ### Engine.Component.Scaffold.type[🔗](#$api.engine~Engine.Component.Scaffold.type) ``` Engine.Component.Scaffold.type: Type ``` ### Engine.Component.Scaffold.oldModelId[🔗](#$api.engine~Engine.Component.Scaffold.oldModelId) ``` Engine.Component.Scaffold.oldModelId: integer ``` ### Engine.Component.Scaffold.oldTransf[🔗](#$api.engine~Engine.Component.Scaffold.oldTransf) ``` Engine.Component.Scaffold.oldTransf: Mat4f ``` ### Engine.Component.Scaffold.oldBuildingFace[🔗](#$api.engine~Engine.Component.Scaffold.oldBuildingFace) ``` Engine.Component.Scaffold.oldBuildingFace: {{Vec2f}} ``` ### Engine.Component.Scaffold.oldFloorLevel[🔗](#$api.engine~Engine.Component.Scaffold.oldFloorLevel) ``` Engine.Component.Scaffold.oldFloorLevel: {{number}} ``` ### Engine.Component.Scaffold.oldHeight[🔗](#$api.engine~Engine.Component.Scaffold.oldHeight) ``` Engine.Component.Scaffold.oldHeight: number ``` ### Engine.Component.Scaffold.buildingFace[🔗](#$api.engine~Engine.Component.Scaffold.buildingFace) ``` Engine.Component.Scaffold.buildingFace: {{Vec2f}} ``` ### Engine.Component.Scaffold.floorLevel[🔗](#$api.engine~Engine.Component.Scaffold.floorLevel) ``` Engine.Component.Scaffold.floorLevel: {{number}} ``` ### Engine.Component.Scaffold.height[🔗](#$api.engine~Engine.Component.Scaffold.height) ``` Engine.Component.Scaffold.height: number ``` ### Engine.Component.Scaffold.constructionStartTime[🔗](#$api.engine~Engine.Component.Scaffold.constructionStartTime) ``` Engine.Component.Scaffold.constructionStartTime: integer ``` ### Engine.Component.Scaffold.constructionEndTime[🔗](#$api.engine~Engine.Component.Scaffold.constructionEndTime) ``` Engine.Component.Scaffold.constructionEndTime: integer ``` ### Engine.Component.Scaffold.cranePosition[🔗](#$api.engine~Engine.Component.Scaffold.cranePosition) ``` Engine.Component.Scaffold.cranePosition: Vec2f ``` ### Engine.Component.Scaffold.craneAngle[🔗](#$api.engine~Engine.Component.Scaffold.craneAngle) ``` Engine.Component.Scaffold.craneAngle: number ``` ### Engine.Component.Scaffold.craneTerrainHeight[🔗](#$api.engine~Engine.Component.Scaffold.craneTerrainHeight) ``` Engine.Component.Scaffold.craneTerrainHeight: number ``` ### Engine.Component.Scaffold.craneAngleSpan[🔗](#$api.engine~Engine.Component.Scaffold.craneAngleSpan) ``` Engine.Component.Scaffold.craneAngleSpan: {number} ``` ### Engine.Component.ShapeList[🔗](#$api.engine~Engine.Component.ShapeList) ``` record Engine.Component.ShapeList new: function(): ShapeList shapes: {Shape} end ``` Contains a list procedurally generated shapes. ### Engine.Component.ShapeList.new[🔗](#$api.engine~Engine.Component.ShapeList.new) ``` function Engine.Component.ShapeList.new(): ShapeList ``` **Returns** 1. `ShapeList` ### Engine.Component.ShapeList.shapes[🔗](#$api.engine~Engine.Component.ShapeList.shapes) ``` Engine.Component.ShapeList.shapes: {Shape} ``` a list of shapes ### Engine.Component.Ship[🔗](#$api.engine~Engine.Component.Ship) ``` record Engine.Component.Ship new: function(): Ship pathIndex: integer reservedFrom: integer reservedTo: integer end ``` Contains information about pathing and extra data of ships. ### Engine.Component.Ship.new[🔗](#$api.engine~Engine.Component.Ship.new) ``` function Engine.Component.Ship.new(): Ship ``` **Returns** 1. `Ship` ### Engine.Component.Ship.pathIndex[🔗](#$api.engine~Engine.Component.Ship.pathIndex) ``` Engine.Component.Ship.pathIndex: integer ``` the current position on the path ### Engine.Component.Ship.reservedFrom[🔗](#$api.engine~Engine.Component.Ship.reservedFrom) ``` Engine.Component.Ship.reservedFrom: integer ``` the starting edge reserved by the ship ### Engine.Component.Ship.reservedTo[🔗](#$api.engine~Engine.Component.Ship.reservedTo) ``` Engine.Component.Ship.reservedTo: integer ``` the ending edge reserved by the ship ### Engine.Component.SignalList[🔗](#$api.engine~Engine.Component.SignalList) ``` record Engine.Component.SignalList new: function(): SignalList signals: {Signal} end ``` Contains a list of signals for the entity. ### Engine.Component.SignalList.new[🔗](#$api.engine~Engine.Component.SignalList.new) ``` function Engine.Component.SignalList.new(): SignalList ``` **Returns** 1. `SignalList` ### Engine.Component.SignalList.signals[🔗](#$api.engine~Engine.Component.SignalList.signals) ``` Engine.Component.SignalList.signals: {Signal} ``` a list of signals ### Engine.Component.SimCargo[🔗](#$api.engine~Engine.Component.SimCargo) ``` [Expand All] [Collapse All] record Engine.Component.SimCargo record PickupPoint new: function(): PickupPoint vehicle: Engine.Entity line: Engine.Entity position: Vec3f carrier: Carrier end new: function(): SimCargo cargoType: CargoTypeId targetOrPickupEntity: Engine.Entity sourceEntity: Engine.Entity pickupPoints: {PickupPoint} speed: number startTime: integer pickupTime: integer deliveryExtensionDuration: integer end ``` Additional data for cargo. ### Engine.Component.SimCargo.PickupPoint[🔗](#$api.engine~Engine.Component.SimCargo.PickupPoint) ``` record Engine.Component.SimCargo.PickupPoint new: function(): PickupPoint vehicle: Engine.Entity line: Engine.Entity position: Vec3f carrier: Carrier end ``` Historic transport data for cargo items. ### Engine.Component.SimCargo.PickupPoint.new[🔗](#$api.engine~Engine.Component.SimCargo.PickupPoint.new) ``` function Engine.Component.SimCargo.PickupPoint.new(): PickupPoint ``` **Returns** 1. `PickupPoint` ### Engine.Component.SimCargo.PickupPoint.vehicle[🔗](#$api.engine~Engine.Component.SimCargo.PickupPoint.vehicle) ``` Engine.Component.SimCargo.PickupPoint.vehicle: Engine.Entity ``` the vehicle the cargo item was transported with ### Engine.Component.SimCargo.PickupPoint.line[🔗](#$api.engine~Engine.Component.SimCargo.PickupPoint.line) ``` Engine.Component.SimCargo.PickupPoint.line: Engine.Entity ``` the line the cargo item was transported on ### Engine.Component.SimCargo.PickupPoint.position[🔗](#$api.engine~Engine.Component.SimCargo.PickupPoint.position) ``` Engine.Component.SimCargo.PickupPoint.position: Vec3f ``` the position of the cargo item on the vehicle ### Engine.Component.SimCargo.PickupPoint.carrier[🔗](#$api.engine~Engine.Component.SimCargo.PickupPoint.carrier) ``` Engine.Component.SimCargo.PickupPoint.carrier: Carrier ``` the transport method used to transport the cargo item ### Engine.Component.SimCargo.new[🔗](#$api.engine~Engine.Component.SimCargo.new) ``` function Engine.Component.SimCargo.new(): SimCargo ``` **Returns** 1. `SimCargo` ### Engine.Component.SimCargo.cargoType[🔗](#$api.engine~Engine.Component.SimCargo.cargoType) ``` Engine.Component.SimCargo.cargoType: CargoTypeId ``` The cargo type of the cargo (never 0) ### Engine.Component.SimCargo.targetOrPickupEntity[🔗](#$api.engine~Engine.Component.SimCargo.targetOrPickupEntity) ``` Engine.Component.SimCargo.targetOrPickupEntity: Engine.Entity ``` the entity of the target where the cargo item heads to ### Engine.Component.SimCargo.sourceEntity[🔗](#$api.engine~Engine.Component.SimCargo.sourceEntity) ``` Engine.Component.SimCargo.sourceEntity: Engine.Entity ``` the entity of the source where the cargo item came from ### Engine.Component.SimCargo.pickupPoints[🔗](#$api.engine~Engine.Component.SimCargo.pickupPoints) ``` Engine.Component.SimCargo.pickupPoints: {PickupPoint} ``` ### Engine.Component.SimCargo.speed[🔗](#$api.engine~Engine.Component.SimCargo.speed) ``` Engine.Component.SimCargo.speed: number ``` ### Engine.Component.SimCargo.startTime[🔗](#$api.engine~Engine.Component.SimCargo.startTime) ``` Engine.Component.SimCargo.startTime: integer ``` the timestamp when the cargo item was produced ### Engine.Component.SimCargo.pickupTime[🔗](#$api.engine~Engine.Component.SimCargo.pickupTime) ``` Engine.Component.SimCargo.pickupTime: integer ``` the timestamp when the cargo item was picked up ### Engine.Component.SimCargo.deliveryExtensionDuration[🔗](#$api.engine~Engine.Component.SimCargo.deliveryExtensionDuration) ``` Engine.Component.SimCargo.deliveryExtensionDuration: integer ``` the duration of extra time to deliver the cargo ### Engine.Component.SimEntityAtBuilding[🔗](#$api.engine~Engine.Component.SimEntityAtBuilding) ``` record Engine.Component.SimEntityAtBuilding new: function(): SimEntityAtBuilding waitingTime: number end ``` Additional data for entities waiting at buildings. ### Engine.Component.SimEntityAtBuilding.new[🔗](#$api.engine~Engine.Component.SimEntityAtBuilding.new) ``` function Engine.Component.SimEntityAtBuilding.new(): SimEntityAtBuilding ``` **Returns** 1. `SimEntityAtBuilding` ### Engine.Component.SimEntityAtBuilding.waitingTime[🔗](#$api.engine~Engine.Component.SimEntityAtBuilding.waitingTime) ``` Engine.Component.SimEntityAtBuilding.waitingTime: number ``` How long the entity has been waiting ### Engine.Component.SimEntityAtStock[🔗](#$api.engine~Engine.Component.SimEntityAtStock) ``` record Engine.Component.SimEntityAtStock new: function(): SimEntityAtStock stock: {Engine.Entity, StockId} arrivalTime: integer end ``` Additional data for entities waiting at industries. ### Engine.Component.SimEntityAtStock.new[🔗](#$api.engine~Engine.Component.SimEntityAtStock.new) ``` function Engine.Component.SimEntityAtStock.new(): SimEntityAtStock ``` **Returns** 1. `SimEntityAtStock` ### Engine.Component.SimEntityAtStock.stock[🔗](#$api.engine~Engine.Component.SimEntityAtStock.stock) ``` Engine.Component.SimEntityAtStock.stock: {Engine.Entity, StockId} ``` The industry the entity is waiting at ### Engine.Component.SimEntityAtStock.arrivalTime[🔗](#$api.engine~Engine.Component.SimEntityAtStock.arrivalTime) ``` Engine.Component.SimEntityAtStock.arrivalTime: integer ``` the timestamp when the item arrived at the industry ### Engine.Component.SimEntityAtTerminal[🔗](#$api.engine~Engine.Component.SimEntityAtTerminal) ``` record Engine.Component.SimEntityAtTerminal new: function(): SimEntityAtTerminal line: Engine.Entity lineStop0: integer lineStop1: integer arrivalTime: number vehicle: Engine.Entity end ``` Additional data for entities waiting at terminals. ### Engine.Component.SimEntityAtTerminal.new[🔗](#$api.engine~Engine.Component.SimEntityAtTerminal.new) ``` function Engine.Component.SimEntityAtTerminal.new(): SimEntityAtTerminal ``` **Returns** 1. `SimEntityAtTerminal` ### Engine.Component.SimEntityAtTerminal.line[🔗](#$api.engine~Engine.Component.SimEntityAtTerminal.line) ``` Engine.Component.SimEntityAtTerminal.line: Engine.Entity ``` The line the entity is waiting for ### Engine.Component.SimEntityAtTerminal.lineStop0[🔗](#$api.engine~Engine.Component.SimEntityAtTerminal.lineStop0) ``` Engine.Component.SimEntityAtTerminal.lineStop0: integer ``` The stop the entity is waiting at ### Engine.Component.SimEntityAtTerminal.lineStop1[🔗](#$api.engine~Engine.Component.SimEntityAtTerminal.lineStop1) ``` Engine.Component.SimEntityAtTerminal.lineStop1: integer ``` The stop the entity will get off the vehicle ### Engine.Component.SimEntityAtTerminal.arrivalTime[🔗](#$api.engine~Engine.Component.SimEntityAtTerminal.arrivalTime) ``` Engine.Component.SimEntityAtTerminal.arrivalTime: number ``` the timestamp when the item arrived at the station terminal ### Engine.Component.SimEntityAtTerminal.vehicle[🔗](#$api.engine~Engine.Component.SimEntityAtTerminal.vehicle) ``` Engine.Component.SimEntityAtTerminal.vehicle: Engine.Entity ``` the vehicle the entity is currently waiting for ### Engine.Component.SimEntityAtVehicle[🔗](#$api.engine~Engine.Component.SimEntityAtVehicle) ``` record Engine.Component.SimEntityAtVehicle new: function(): SimEntityAtVehicle line: Engine.Entity lineStop0: integer lineStop1: integer vehicle: Engine.Entity roundTripCounter: integer end ``` Additional data for entities travelling on a vehicle. ### Engine.Component.SimEntityAtVehicle.new[🔗](#$api.engine~Engine.Component.SimEntityAtVehicle.new) ``` function Engine.Component.SimEntityAtVehicle.new(): SimEntityAtVehicle ``` **Returns** 1. `SimEntityAtVehicle` ### Engine.Component.SimEntityAtVehicle.line[🔗](#$api.engine~Engine.Component.SimEntityAtVehicle.line) ``` Engine.Component.SimEntityAtVehicle.line: Engine.Entity ``` The line the entity is currently using ### Engine.Component.SimEntityAtVehicle.lineStop0[🔗](#$api.engine~Engine.Component.SimEntityAtVehicle.lineStop0) ``` Engine.Component.SimEntityAtVehicle.lineStop0: integer ``` The stop the entity waited at ### Engine.Component.SimEntityAtVehicle.lineStop1[🔗](#$api.engine~Engine.Component.SimEntityAtVehicle.lineStop1) ``` Engine.Component.SimEntityAtVehicle.lineStop1: integer ``` The stop the entity will get off the vehicle ### Engine.Component.SimEntityAtVehicle.vehicle[🔗](#$api.engine~Engine.Component.SimEntityAtVehicle.vehicle) ``` Engine.Component.SimEntityAtVehicle.vehicle: Engine.Entity ``` the vehicle the entity is currently in ### Engine.Component.SimEntityAtVehicle.roundTripCounter[🔗](#$api.engine~Engine.Component.SimEntityAtVehicle.roundTripCounter) ``` Engine.Component.SimEntityAtVehicle.roundTripCounter: integer ``` how often the entity reached the stock again where it was by the vehicle loaded ### Engine.Component.SimEntityIdle[🔗](#$api.engine~Engine.Component.SimEntityIdle) ``` record Engine.Component.SimEntityIdle new: function(): SimEntityIdle end ``` Additional data for entities that are idle. ### Engine.Component.SimEntityIdle.new[🔗](#$api.engine~Engine.Component.SimEntityIdle.new) ``` function Engine.Component.SimEntityIdle.new(): SimEntityIdle ``` **Returns** 1. `SimEntityIdle` ### Engine.Component.SimEntityNeedsPath[🔗](#$api.engine~Engine.Component.SimEntityNeedsPath) ``` record Engine.Component.SimEntityNeedsPath new: function(): SimEntityNeedsPath input: PathFactoryInput output: PathFactoryOutput end ``` Additional data for entities that need path calculation. ### Engine.Component.SimEntityNeedsPath.new[🔗](#$api.engine~Engine.Component.SimEntityNeedsPath.new) ``` function Engine.Component.SimEntityNeedsPath.new(): SimEntityNeedsPath ``` **Returns** 1. `SimEntityNeedsPath` ### Engine.Component.SimEntityNeedsPath.input[🔗](#$api.engine~Engine.Component.SimEntityNeedsPath.input) ``` Engine.Component.SimEntityNeedsPath.input: PathFactoryInput ``` ### Engine.Component.SimEntityNeedsPath.output[🔗](#$api.engine~Engine.Component.SimEntityNeedsPath.output) ``` Engine.Component.SimEntityNeedsPath.output: PathFactoryOutput ``` ### Engine.Component.SimEntityMoving[🔗](#$api.engine~Engine.Component.SimEntityMoving) ``` record Engine.Component.SimEntityMoving new: function(): SimEntityMoving line: Engine.Entity lineStop0: integer lineStop1: integer partialPath: boolean expectedArrivalTime: number end ``` Additional data for entities that are moving. ### Engine.Component.SimEntityMoving.new[🔗](#$api.engine~Engine.Component.SimEntityMoving.new) ``` function Engine.Component.SimEntityMoving.new(): SimEntityMoving ``` **Returns** 1. `SimEntityMoving` ### Engine.Component.SimEntityMoving.line[🔗](#$api.engine~Engine.Component.SimEntityMoving.line) ``` Engine.Component.SimEntityMoving.line: Engine.Entity ``` The line the entity is currently using ### Engine.Component.SimEntityMoving.lineStop0[🔗](#$api.engine~Engine.Component.SimEntityMoving.lineStop0) ``` Engine.Component.SimEntityMoving.lineStop0: integer ``` The stop the entity waited at ### Engine.Component.SimEntityMoving.lineStop1[🔗](#$api.engine~Engine.Component.SimEntityMoving.lineStop1) ``` Engine.Component.SimEntityMoving.lineStop1: integer ``` ### Engine.Component.SimEntityMoving.partialPath[🔗](#$api.engine~Engine.Component.SimEntityMoving.partialPath) ``` Engine.Component.SimEntityMoving.partialPath: boolean ``` true if the path complete until the destination ### Engine.Component.SimEntityMoving.expectedArrivalTime[🔗](#$api.engine~Engine.Component.SimEntityMoving.expectedArrivalTime) ``` Engine.Component.SimEntityMoving.expectedArrivalTime: number ``` ### Engine.Component.SimPersonAtTerminal[🔗](#$api.engine~Engine.Component.SimPersonAtTerminal) ``` record Engine.Component.SimPersonAtTerminal new: function(): SimPersonAtTerminal edgeId: EdgeId place: integer end ``` Additional data for a person waiting at the terminal ### Engine.Component.SimPersonAtTerminal.new[🔗](#$api.engine~Engine.Component.SimPersonAtTerminal.new) ``` function Engine.Component.SimPersonAtTerminal.new(): SimPersonAtTerminal ``` **Returns** 1. `SimPersonAtTerminal` ### Engine.Component.SimPersonAtTerminal.edgeId[🔗](#$api.engine~Engine.Component.SimPersonAtTerminal.edgeId) ``` Engine.Component.SimPersonAtTerminal.edgeId: EdgeId ``` the edge of the transport network the entity is waiting at ### Engine.Component.SimPersonAtTerminal.place[🔗](#$api.engine~Engine.Component.SimPersonAtTerminal.place) ``` Engine.Component.SimPersonAtTerminal.place: integer ``` the place on the edge ### Engine.Component.SimPersonAtVehicle[🔗](#$api.engine~Engine.Component.SimPersonAtVehicle) ``` record Engine.Component.SimPersonAtVehicle new: function(): SimPersonAtVehicle vehicle: Engine.Entity part: integer place: integer expectedArrivalTime: number end ``` Additional data for a person travelling on a vehicle ### Engine.Component.SimPersonAtVehicle.new[🔗](#$api.engine~Engine.Component.SimPersonAtVehicle.new) ``` function Engine.Component.SimPersonAtVehicle.new(): SimPersonAtVehicle ``` **Returns** 1. `SimPersonAtVehicle` ### Engine.Component.SimPersonAtVehicle.vehicle[🔗](#$api.engine~Engine.Component.SimPersonAtVehicle.vehicle) ``` Engine.Component.SimPersonAtVehicle.vehicle: Engine.Entity ``` the vehicle the entity is using ### Engine.Component.SimPersonAtVehicle.part[🔗](#$api.engine~Engine.Component.SimPersonAtVehicle.part) ``` Engine.Component.SimPersonAtVehicle.part: integer ``` the vehicle part (carriage) the entity is using ### Engine.Component.SimPersonAtVehicle.place[🔗](#$api.engine~Engine.Component.SimPersonAtVehicle.place) ``` Engine.Component.SimPersonAtVehicle.place: integer ``` the place (seat) in the vehicle ### Engine.Component.SimPersonAtVehicle.expectedArrivalTime[🔗](#$api.engine~Engine.Component.SimPersonAtVehicle.expectedArrivalTime) ``` Engine.Component.SimPersonAtVehicle.expectedArrivalTime: number ``` ### Engine.Component.SimPerson[🔗](#$api.engine~Engine.Component.SimPerson) ``` record Engine.Component.SimPerson new: function(): SimPerson cargoType: CargoTypeId destinations: {Engine.Entity} moveModes: {MoveMode} travelTimes: {number} targetOrAtEntity: Engine.Entity lastNonResType: LandUseType lastMoveMode: MoveMode walkSpeed: number modelIdPerson: integer colorConfigPerson: integer modelIdCar: integer colorConfigCar: integer lastDestinationUpdate: integer landUse2ReachableWalkDrive: {integer, integer} landUse2ReachableLines: {integer, integer} pickupTime: integer happiness: number end ``` Additional data for persons. ### Engine.Component.SimPerson.new[🔗](#$api.engine~Engine.Component.SimPerson.new) ``` function Engine.Component.SimPerson.new(): SimPerson ``` **Returns** 1. `SimPerson` ### Engine.Component.SimPerson.cargoType[🔗](#$api.engine~Engine.Component.SimPerson.cargoType) ``` Engine.Component.SimPerson.cargoType: CargoTypeId ``` the cargo type of the person (always 0) ### Engine.Component.SimPerson.destinations[🔗](#$api.engine~Engine.Component.SimPerson.destinations) ``` Engine.Component.SimPerson.destinations: {Engine.Entity} ``` the destinations for residence, shopping and work ### Engine.Component.SimPerson.moveModes[🔗](#$api.engine~Engine.Component.SimPerson.moveModes) ``` Engine.Component.SimPerson.moveModes: {MoveMode} ``` ### Engine.Component.SimPerson.travelTimes[🔗](#$api.engine~Engine.Component.SimPerson.travelTimes) ``` Engine.Component.SimPerson.travelTimes: {number} ``` ### Engine.Component.SimPerson.targetOrAtEntity[🔗](#$api.engine~Engine.Component.SimPerson.targetOrAtEntity) ``` Engine.Component.SimPerson.targetOrAtEntity: Engine.Entity ``` the entity where the person is or where the person heads to ### Engine.Component.SimPerson.lastNonResType[🔗](#$api.engine~Engine.Component.SimPerson.lastNonResType) ``` Engine.Component.SimPerson.lastNonResType: LandUseType ``` ### Engine.Component.SimPerson.lastMoveMode[🔗](#$api.engine~Engine.Component.SimPerson.lastMoveMode) ``` Engine.Component.SimPerson.lastMoveMode: MoveMode ``` the last used move mode ### Engine.Component.SimPerson.walkSpeed[🔗](#$api.engine~Engine.Component.SimPerson.walkSpeed) ``` Engine.Component.SimPerson.walkSpeed: number ``` ### Engine.Component.SimPerson.modelIdPerson[🔗](#$api.engine~Engine.Component.SimPerson.modelIdPerson) ``` Engine.Component.SimPerson.modelIdPerson: integer ``` the model that is used for the person ### Engine.Component.SimPerson.colorConfigPerson[🔗](#$api.engine~Engine.Component.SimPerson.colorConfigPerson) ``` Engine.Component.SimPerson.colorConfigPerson: integer ``` the color config for the clothes of the person ### Engine.Component.SimPerson.modelIdCar[🔗](#$api.engine~Engine.Component.SimPerson.modelIdCar) ``` Engine.Component.SimPerson.modelIdCar: integer ``` the model that is used as a car ### Engine.Component.SimPerson.colorConfigCar[🔗](#$api.engine~Engine.Component.SimPerson.colorConfigCar) ``` Engine.Component.SimPerson.colorConfigCar: integer ``` the color config for the car ### Engine.Component.SimPerson.lastDestinationUpdate[🔗](#$api.engine~Engine.Component.SimPerson.lastDestinationUpdate) ``` Engine.Component.SimPerson.lastDestinationUpdate: integer ``` the timestamp of the latest destination recalculation ### Engine.Component.SimPerson.landUse2ReachableWalkDrive[🔗](#$api.engine~Engine.Component.SimPerson.landUse2ReachableWalkDrive) ``` Engine.Component.SimPerson.landUse2ReachableWalkDrive: {integer, integer} ``` ### Engine.Component.SimPerson.landUse2ReachableLines[🔗](#$api.engine~Engine.Component.SimPerson.landUse2ReachableLines) ``` Engine.Component.SimPerson.landUse2ReachableLines: {integer, integer} ``` ### Engine.Component.SimPerson.pickupTime[🔗](#$api.engine~Engine.Component.SimPerson.pickupTime) ``` Engine.Component.SimPerson.pickupTime: integer ``` ### Engine.Component.SimPerson.happiness[🔗](#$api.engine~Engine.Component.SimPerson.happiness) ``` Engine.Component.SimPerson.happiness: number ``` ### Engine.Component.Station[🔗](#$api.engine~Engine.Component.Station) ``` type Engine.Component.Station = Station ``` Defines a station, i.e. a group of terminals (places where a vehicle stops and loads cargo) ### Engine.Component.StationGroup[🔗](#$api.engine~Engine.Component.StationGroup) ``` record Engine.Component.StationGroup new: function(): StationGroup stations: {Engine.Entity} end ``` Defines a group of stations, can group together stations with very different transport modes ### Engine.Component.StationGroup.new[🔗](#$api.engine~Engine.Component.StationGroup.new) ``` function Engine.Component.StationGroup.new(): StationGroup ``` **Returns** 1. `StationGroup` ### Engine.Component.StationGroup.stations[🔗](#$api.engine~Engine.Component.StationGroup.stations) ``` Engine.Component.StationGroup.stations: {Engine.Entity} ``` A list of stations that are grouped together ### Engine.Component.StockList[🔗](#$api.engine~Engine.Component.StockList) ``` [Expand All] [Collapse All] record Engine.Component.StockList record Stock new: function(): Stock type: StockListType cargoType: CargoTypeId cargoTypes: CargoTypeSet mixedTypes: boolean capacity: integer loadSpeedModifier: number loadIndicatorModelInstanceIndices: {integer} tag: integer end record StockData new: function(): StockData consumeFrequency: number end record Rule new: function(): Rule input: {{integer}} output: {CargoTypeId : integer} capacity: integer consumptionFactor: number booster: boolean boostFactor: number priority: integer slot: integer end record RuleData new: function(): RuleData record ApplyInfo new: function(): ApplyInfo time: integer interval: integer consumedCargo: {StockId} producedCargo: {{CargoTypeId, integer}} end applyHistory: {ApplyInfo} lastApplyDecayFactor: number end record CargoData new: function(): CargoData produceFrequency: integer end record Modifiers new: function(): Modifiers productivity: number end new: function(): StockList stocks: {Stock} rules: {Rule} stockDatas: {StockData} ruleDatas: {RuleData} cargoData: {CargoTypeId : CargoData} thrownAwayCargo: integer modifiers: Modifiers end ``` Stock list data. ### Engine.Component.StockList.Stock[🔗](#$api.engine~Engine.Component.StockList.Stock) ``` record Engine.Component.StockList.Stock new: function(): Stock type: StockListType cargoType: CargoTypeId cargoTypes: CargoTypeSet mixedTypes: boolean capacity: integer loadSpeedModifier: number loadIndicatorModelInstanceIndices: {integer} tag: integer end ``` Stock data for a single stock in a StockList. ### Engine.Component.StockList.Stock.new[🔗](#$api.engine~Engine.Component.StockList.Stock.new) ``` function Engine.Component.StockList.Stock.new(): Stock ``` **Returns** 1. `Stock` ### Engine.Component.StockList.Stock.type[🔗](#$api.engine~Engine.Component.StockList.Stock.type) ``` Engine.Component.StockList.Stock.type: StockListType ``` ### Engine.Component.StockList.Stock.cargoType[🔗](#$api.engine~Engine.Component.StockList.Stock.cargoType) ``` Engine.Component.StockList.Stock.cargoType: CargoTypeId ``` ### Engine.Component.StockList.Stock.cargoTypes[🔗](#$api.engine~Engine.Component.StockList.Stock.cargoTypes) ``` Engine.Component.StockList.Stock.cargoTypes: CargoTypeSet ``` ### Engine.Component.StockList.Stock.mixedTypes[🔗](#$api.engine~Engine.Component.StockList.Stock.mixedTypes) ``` Engine.Component.StockList.Stock.mixedTypes: boolean ``` ### Engine.Component.StockList.Stock.capacity[🔗](#$api.engine~Engine.Component.StockList.Stock.capacity) ``` Engine.Component.StockList.Stock.capacity: integer ``` ### Engine.Component.StockList.Stock.loadSpeedModifier[🔗](#$api.engine~Engine.Component.StockList.Stock.loadSpeedModifier) ``` Engine.Component.StockList.Stock.loadSpeedModifier: number ``` ### Engine.Component.StockList.Stock.loadIndicatorModelInstanceIndices[🔗](#$api.engine~Engine.Component.StockList.Stock.loadIndicatorModelInstanceIndices) ``` Engine.Component.StockList.Stock.loadIndicatorModelInstanceIndices: {integer} ``` ### Engine.Component.StockList.Stock.tag[🔗](#$api.engine~Engine.Component.StockList.Stock.tag) ``` Engine.Component.StockList.Stock.tag: integer ``` ### Engine.Component.StockList.StockData[🔗](#$api.engine~Engine.Component.StockList.StockData) ``` record Engine.Component.StockList.StockData new: function(): StockData consumeFrequency: number end ``` StockData for a StockList. ### Engine.Component.StockList.StockData.new[🔗](#$api.engine~Engine.Component.StockList.StockData.new) ``` function Engine.Component.StockList.StockData.new(): StockData ``` **Returns** 1. `StockData` ### Engine.Component.StockList.StockData.consumeFrequency[🔗](#$api.engine~Engine.Component.StockList.StockData.consumeFrequency) ``` Engine.Component.StockList.StockData.consumeFrequency: number ``` ### Engine.Component.StockList.Rule[🔗](#$api.engine~Engine.Component.StockList.Rule) ``` record Engine.Component.StockList.Rule new: function(): Rule input: {{integer}} output: {CargoTypeId : integer} capacity: integer consumptionFactor: number booster: boolean boostFactor: number priority: integer slot: integer end ``` Rule data for a StockList. ### Engine.Component.StockList.Rule.new[🔗](#$api.engine~Engine.Component.StockList.Rule.new) ``` function Engine.Component.StockList.Rule.new(): Rule ``` **Returns** 1. `Rule` ### Engine.Component.StockList.Rule.input[🔗](#$api.engine~Engine.Component.StockList.Rule.input) ``` Engine.Component.StockList.Rule.input: {{integer}} ``` ### Engine.Component.StockList.Rule.output[🔗](#$api.engine~Engine.Component.StockList.Rule.output) ``` Engine.Component.StockList.Rule.output: {CargoTypeId : integer} ``` ### Engine.Component.StockList.Rule.capacity[🔗](#$api.engine~Engine.Component.StockList.Rule.capacity) ``` Engine.Component.StockList.Rule.capacity: integer ``` ### Engine.Component.StockList.Rule.consumptionFactor[🔗](#$api.engine~Engine.Component.StockList.Rule.consumptionFactor) ``` Engine.Component.StockList.Rule.consumptionFactor: number ``` ### Engine.Component.StockList.Rule.booster[🔗](#$api.engine~Engine.Component.StockList.Rule.booster) ``` Engine.Component.StockList.Rule.booster: boolean ``` ### Engine.Component.StockList.Rule.boostFactor[🔗](#$api.engine~Engine.Component.StockList.Rule.boostFactor) ``` Engine.Component.StockList.Rule.boostFactor: number ``` ### Engine.Component.StockList.Rule.priority[🔗](#$api.engine~Engine.Component.StockList.Rule.priority) ``` Engine.Component.StockList.Rule.priority: integer ``` ### Engine.Component.StockList.Rule.slot[🔗](#$api.engine~Engine.Component.StockList.Rule.slot) ``` Engine.Component.StockList.Rule.slot: integer ``` ### Engine.Component.StockList.RuleData[🔗](#$api.engine~Engine.Component.StockList.RuleData) ``` [Expand All] [Collapse All] record Engine.Component.StockList.RuleData new: function(): RuleData record ApplyInfo new: function(): ApplyInfo time: integer interval: integer consumedCargo: {StockId} producedCargo: {{CargoTypeId, integer}} end applyHistory: {ApplyInfo} lastApplyDecayFactor: number end ``` RuleData data for a StockList. ### Engine.Component.StockList.RuleData.new[🔗](#$api.engine~Engine.Component.StockList.RuleData.new) ``` function Engine.Component.StockList.RuleData.new(): RuleData ``` **Returns** 1. `RuleData` ### Engine.Component.StockList.RuleData.ApplyInfo[🔗](#$api.engine~Engine.Component.StockList.RuleData.ApplyInfo) ``` record Engine.Component.StockList.RuleData.ApplyInfo new: function(): ApplyInfo time: integer interval: integer consumedCargo: {StockId} producedCargo: {{CargoTypeId, integer}} end ``` ApplyInfo data for a StockList. ### Engine.Component.StockList.RuleData.ApplyInfo.new[🔗](#$api.engine~Engine.Component.StockList.RuleData.ApplyInfo.new) ``` function Engine.Component.StockList.RuleData.ApplyInfo.new(): ApplyInfo ``` **Returns** 1. `ApplyInfo` ### Engine.Component.StockList.RuleData.ApplyInfo.time[🔗](#$api.engine~Engine.Component.StockList.RuleData.ApplyInfo.time) ``` Engine.Component.StockList.RuleData.ApplyInfo.time: integer ``` ### Engine.Component.StockList.RuleData.ApplyInfo.interval[🔗](#$api.engine~Engine.Component.StockList.RuleData.ApplyInfo.interval) ``` Engine.Component.StockList.RuleData.ApplyInfo.interval: integer ``` ### Engine.Component.StockList.RuleData.ApplyInfo.consumedCargo[🔗](#$api.engine~Engine.Component.StockList.RuleData.ApplyInfo.consumedCargo) ``` Engine.Component.StockList.RuleData.ApplyInfo.consumedCargo: {StockId} ``` ### Engine.Component.StockList.RuleData.ApplyInfo.producedCargo[🔗](#$api.engine~Engine.Component.StockList.RuleData.ApplyInfo.producedCargo) ``` Engine.Component.StockList.RuleData.ApplyInfo.producedCargo: {{CargoTypeId, integer}} ``` ### Engine.Component.StockList.RuleData.applyHistory[🔗](#$api.engine~Engine.Component.StockList.RuleData.applyHistory) ``` Engine.Component.StockList.RuleData.applyHistory: {ApplyInfo} ``` ### Engine.Component.StockList.RuleData.lastApplyDecayFactor[🔗](#$api.engine~Engine.Component.StockList.RuleData.lastApplyDecayFactor) ``` Engine.Component.StockList.RuleData.lastApplyDecayFactor: number ``` ### Engine.Component.StockList.CargoData[🔗](#$api.engine~Engine.Component.StockList.CargoData) ``` record Engine.Component.StockList.CargoData new: function(): CargoData produceFrequency: integer end ``` CargoData for a StockList. ### Engine.Component.StockList.CargoData.new[🔗](#$api.engine~Engine.Component.StockList.CargoData.new) ``` function Engine.Component.StockList.CargoData.new(): CargoData ``` **Returns** 1. `CargoData` ### Engine.Component.StockList.CargoData.produceFrequency[🔗](#$api.engine~Engine.Component.StockList.CargoData.produceFrequency) ``` Engine.Component.StockList.CargoData.produceFrequency: integer ``` ### Engine.Component.StockList.Modifiers[🔗](#$api.engine~Engine.Component.StockList.Modifiers) ``` record Engine.Component.StockList.Modifiers new: function(): Modifiers productivity: number end ``` Modifiers for the stocklist ### Engine.Component.StockList.Modifiers.new()[🔗](#$api.engine~Engine.Component.StockList.Modifiers.new()) ``` function Engine.Component.StockList.Modifiers.new()(): Modifiers ``` **Returns** 1. `Modifiers` ### Engine.Component.StockList.Modifiers.new(Modifiers)[🔗](#$api.engine~Engine.Component.StockList.Modifiers.new(Modifiers)) ``` function Engine.Component.StockList.Modifiers.new(Modifiers)(Modifiers): Modifiers ``` **Parameters** * `Modifiers` **Returns** 1. `Modifiers` ### Engine.Component.StockList.Modifiers.productivity[🔗](#$api.engine~Engine.Component.StockList.Modifiers.productivity) ``` Engine.Component.StockList.Modifiers.productivity: number ``` the productivity of the stocklist ### Engine.Component.StockList.new[🔗](#$api.engine~Engine.Component.StockList.new) ``` function Engine.Component.StockList.new(): StockList ``` **Returns** 1. `StockList` ### Engine.Component.StockList.stocks[🔗](#$api.engine~Engine.Component.StockList.stocks) ``` Engine.Component.StockList.stocks: {Stock} ``` ### Engine.Component.StockList.rules[🔗](#$api.engine~Engine.Component.StockList.rules) ``` Engine.Component.StockList.rules: {Rule} ``` ### Engine.Component.StockList.stockDatas[🔗](#$api.engine~Engine.Component.StockList.stockDatas) ``` Engine.Component.StockList.stockDatas: {StockData} ``` ### Engine.Component.StockList.ruleDatas[🔗](#$api.engine~Engine.Component.StockList.ruleDatas) ``` Engine.Component.StockList.ruleDatas: {RuleData} ``` ### Engine.Component.StockList.cargoData[🔗](#$api.engine~Engine.Component.StockList.cargoData) ``` Engine.Component.StockList.cargoData: {CargoTypeId : CargoData} ``` ### Engine.Component.StockList.thrownAwayCargo[🔗](#$api.engine~Engine.Component.StockList.thrownAwayCargo) ``` Engine.Component.StockList.thrownAwayCargo: integer ``` ### Engine.Component.StockList.modifiers[🔗](#$api.engine~Engine.Component.StockList.modifiers) ``` Engine.Component.StockList.modifiers: Modifiers ``` ### Engine.Component.Subconstruction[🔗](#$api.engine~Engine.Component.Subconstruction) ``` record Engine.Component.Subconstruction new: function(): Subconstruction tag: integer slotIds: {integer} metadata: SubconstructionInstanceMetadata end ``` Subconstruction data. ### Engine.Component.Subconstruction.new[🔗](#$api.engine~Engine.Component.Subconstruction.new) ``` function Engine.Component.Subconstruction.new(): Subconstruction ``` **Returns** 1. `Subconstruction` ### Engine.Component.Subconstruction.tag[🔗](#$api.engine~Engine.Component.Subconstruction.tag) ``` Engine.Component.Subconstruction.tag: integer ``` ### Engine.Component.Subconstruction.slotIds[🔗](#$api.engine~Engine.Component.Subconstruction.slotIds) ``` Engine.Component.Subconstruction.slotIds: {integer} ``` Slots that are assigned to this subconstruction, for selection/bulldoze purposes ### Engine.Component.Subconstruction.metadata[🔗](#$api.engine~Engine.Component.Subconstruction.metadata) ``` Engine.Component.Subconstruction.metadata: SubconstructionInstanceMetadata ``` ### Engine.Component.Terrain[🔗](#$api.engine~Engine.Component.Terrain) ``` record Engine.Component.Terrain new: function(): Terrain size: Vec2i baseLevels: integer baseResolution: Vec3f highLevels: integer offsetZ: number waterLevel: number dataMaps: {string, HeightmapNew} end ``` Contains information about the map. ### Engine.Component.Terrain.new[🔗](#$api.engine~Engine.Component.Terrain.new) ``` function Engine.Component.Terrain.new(): Terrain ``` **Returns** 1. `Terrain` ### Engine.Component.Terrain.size[🔗](#$api.engine~Engine.Component.Terrain.size) ``` Engine.Component.Terrain.size: Vec2i ``` the number of tiles of the terrain ### Engine.Component.Terrain.baseLevels[🔗](#$api.engine~Engine.Component.Terrain.baseLevels) ``` Engine.Component.Terrain.baseLevels: integer ``` number of base levels ### Engine.Component.Terrain.baseResolution[🔗](#$api.engine~Engine.Component.Terrain.baseResolution) ``` Engine.Component.Terrain.baseResolution: Vec3f ``` resolution for all three dimensions ### Engine.Component.Terrain.highLevels[🔗](#$api.engine~Engine.Component.Terrain.highLevels) ``` Engine.Component.Terrain.highLevels: integer ``` ### Engine.Component.Terrain.offsetZ[🔗](#$api.engine~Engine.Component.Terrain.offsetZ) ``` Engine.Component.Terrain.offsetZ: number ``` ### Engine.Component.Terrain.waterLevel[🔗](#$api.engine~Engine.Component.Terrain.waterLevel) ``` Engine.Component.Terrain.waterLevel: number ``` level for the surface of the navigatable water ### Engine.Component.Terrain.dataMaps[🔗](#$api.engine~Engine.Component.Terrain.dataMaps) ``` Engine.Component.Terrain.dataMaps: {string, HeightmapNew} ``` ### Engine.Component.TerrainAlignmentList[🔗](#$api.engine~Engine.Component.TerrainAlignmentList) ``` record Engine.Component.TerrainAlignmentList new: function(): TerrainAlignmentList terrainAlignments: {TerrainAlignment} end ``` Contains information about how terrain needs to be aligned. ### Engine.Component.TerrainAlignmentList.new[🔗](#$api.engine~Engine.Component.TerrainAlignmentList.new) ``` function Engine.Component.TerrainAlignmentList.new(): TerrainAlignmentList ``` **Returns** 1. `TerrainAlignmentList` ### Engine.Component.TerrainAlignmentList.terrainAlignments[🔗](#$api.engine~Engine.Component.TerrainAlignmentList.terrainAlignments) ``` Engine.Component.TerrainAlignmentList.terrainAlignments: {TerrainAlignment} ``` ### Engine.Component.TerrainTile[🔗](#$api.engine~Engine.Component.TerrainTile) ``` record Engine.Component.TerrainTile new: function(): TerrainTile terrainEntity: Engine.Entity position: Vec2i end ``` Contains information about a single tile of the map. A tile is a 256m x 256m chunk of the map. ### Engine.Component.TerrainTile.new[🔗](#$api.engine~Engine.Component.TerrainTile.new) ``` function Engine.Component.TerrainTile.new(): TerrainTile ``` **Returns** 1. `TerrainTile` ### Engine.Component.TerrainTile.terrainEntity[🔗](#$api.engine~Engine.Component.TerrainTile.terrainEntity) ``` Engine.Component.TerrainTile.terrainEntity: Engine.Entity ``` a reference to the entity with terrain information ### Engine.Component.TerrainTile.position[🔗](#$api.engine~Engine.Component.TerrainTile.position) ``` Engine.Component.TerrainTile.position: Vec2i ``` the position of the tile in the tile grid ### Engine.Component.TerrainTileBrush[🔗](#$api.engine~Engine.Component.TerrainTileBrush) ``` record Engine.Component.TerrainTileBrush new: function(): TerrainTileBrush materialIndexBrush: {integer} forceAboveBit: {boolean} end ``` Contains information about the brush layer of a tile of the map. ### Engine.Component.TerrainTileBrush.new[🔗](#$api.engine~Engine.Component.TerrainTileBrush.new) ``` function Engine.Component.TerrainTileBrush.new(): TerrainTileBrush ``` **Returns** 1. `TerrainTileBrush` ### Engine.Component.TerrainTileBrush.materialIndexBrush[🔗](#$api.engine~Engine.Component.TerrainTileBrush.materialIndexBrush) ``` Engine.Component.TerrainTileBrush.materialIndexBrush: {integer} ``` contains the material id of the brush layer ### Engine.Component.TerrainTileBrush.forceAboveBit[🔗](#$api.engine~Engine.Component.TerrainTileBrush.forceAboveBit) ``` Engine.Component.TerrainTileBrush.forceAboveBit: {boolean} ``` ### Engine.Component.TerrainTileHeightmap[🔗](#$api.engine~Engine.Component.TerrainTileHeightmap) ``` record Engine.Component.TerrainTileHeightmap new: function(): TerrainTileHeightmap vertices: {integer} end ``` Contains information about the geometry of the tile. ### Engine.Component.TerrainTileHeightmap.new[🔗](#$api.engine~Engine.Component.TerrainTileHeightmap.new) ``` function Engine.Component.TerrainTileHeightmap.new(): TerrainTileHeightmap ``` **Returns** 1. `TerrainTileHeightmap` ### Engine.Component.TerrainTileHeightmap.vertices[🔗](#$api.engine~Engine.Component.TerrainTileHeightmap.vertices) ``` Engine.Component.TerrainTileHeightmap.vertices: {integer} ``` contains the heightmap information for the tile. Each value is for a position in the heightmap grid of the tile with a 4m resolution ### Engine.Component.TickEpoch[🔗](#$api.engine~Engine.Component.TickEpoch) ``` record Engine.Component.TickEpoch new: function(): TickEpoch time: integer commandIndex: integer subIndex: integer end ``` Tracks information about the last time an entity was modified or added. ### Engine.Component.TickEpoch.new[🔗](#$api.engine~Engine.Component.TickEpoch.new) ``` function Engine.Component.TickEpoch.new(): TickEpoch ``` **Returns** 1. `TickEpoch` ### Engine.Component.TickEpoch.time[🔗](#$api.engine~Engine.Component.TickEpoch.time) ``` Engine.Component.TickEpoch.time: integer ``` a unique index incrementing each simulation update step ### Engine.Component.TickEpoch.commandIndex[🔗](#$api.engine~Engine.Component.TickEpoch.commandIndex) ``` Engine.Component.TickEpoch.commandIndex: integer ``` a unique index counting commands within a frame ### Engine.Component.TickEpoch.subIndex[🔗](#$api.engine~Engine.Component.TickEpoch.subIndex) ``` Engine.Component.TickEpoch.subIndex: integer ``` a unique increasing index within a command ### Engine.Component.Town[🔗](#$api.engine~Engine.Component.Town) ``` record Engine.Component.Town new: function(): Town initialLandUseCapacities: {integer} capacityScalingFactor: number levelToCapacityDistributionWeights: {{number}} sizeFactors: {number} cargoNeeds: {{{CargoTypeId, number}}} developmentActive: boolean noise: number pollution: number end ``` Contains information about a single town. ### Engine.Component.Town.new[🔗](#$api.engine~Engine.Component.Town.new) ``` function Engine.Component.Town.new(): Town ``` **Returns** 1. `Town` ### Engine.Component.Town.initialLandUseCapacities[🔗](#$api.engine~Engine.Component.Town.initialLandUseCapacities) ``` Engine.Component.Town.initialLandUseCapacities: {integer} ``` initial capacities for the residential, commercial and industrial district of the town ### Engine.Component.Town.capacityScalingFactor[🔗](#$api.engine~Engine.Component.Town.capacityScalingFactor) ``` Engine.Component.Town.capacityScalingFactor: number ``` ### Engine.Component.Town.levelToCapacityDistributionWeights[🔗](#$api.engine~Engine.Component.Town.levelToCapacityDistributionWeights) ``` Engine.Component.Town.levelToCapacityDistributionWeights: {{number}} ``` ### Engine.Component.Town.sizeFactors[🔗](#$api.engine~Engine.Component.Town.sizeFactors) ``` Engine.Component.Town.sizeFactors: {number} ``` a base size of the town ### Engine.Component.Town.cargoNeeds[🔗](#$api.engine~Engine.Component.Town.cargoNeeds) ``` Engine.Component.Town.cargoNeeds: {{{CargoTypeId, number}}} ``` list of cargo type ids for the needs of each of the three town districts **residential**, **commercial** and **industrial** ### Engine.Component.Town.developmentActive[🔗](#$api.engine~Engine.Component.Town.developmentActive) ``` Engine.Component.Town.developmentActive: boolean ``` turns off growth of the town ### Engine.Component.Town.noise[🔗](#$api.engine~Engine.Component.Town.noise) ``` Engine.Component.Town.noise: number ``` the accumulated noise in decibels, it's prefered to use `api.engine.util.getTownEmissionDB` ### Engine.Component.Town.pollution[🔗](#$api.engine~Engine.Component.Town.pollution) ``` Engine.Component.Town.pollution: number ``` the accumulated noise in decibels, it's prefered to use `api.engine.util.getTownEmissionDB` ### Engine.Component.TownBuilding[🔗](#$api.engine~Engine.Component.TownBuilding) ``` record Engine.Component.TownBuilding new: function(): TownBuilding personCapacity: Engine.Entity stockList: Engine.Entity construction: Engine.Entity level: integer parcels: {Engine.Entity} depth: integer height: number town: Engine.Entity timeBuilt: integer blockedDevelopment: boolean end ``` Contains information about a town building. ### Engine.Component.TownBuilding.new[🔗](#$api.engine~Engine.Component.TownBuilding.new) ``` function Engine.Component.TownBuilding.new(): TownBuilding ``` **Returns** 1. `TownBuilding` ### Engine.Component.TownBuilding.personCapacity[🔗](#$api.engine~Engine.Component.TownBuilding.personCapacity) ``` Engine.Component.TownBuilding.personCapacity: Engine.Entity ``` ### Engine.Component.TownBuilding.stockList[🔗](#$api.engine~Engine.Component.TownBuilding.stockList) ``` Engine.Component.TownBuilding.stockList: Engine.Entity ``` ### Engine.Component.TownBuilding.construction[🔗](#$api.engine~Engine.Component.TownBuilding.construction) ``` Engine.Component.TownBuilding.construction: Engine.Entity ``` ### Engine.Component.TownBuilding.level[🔗](#$api.engine~Engine.Component.TownBuilding.level) ``` Engine.Component.TownBuilding.level: integer ``` level of the building (1-4) ### Engine.Component.TownBuilding.parcels[🔗](#$api.engine~Engine.Component.TownBuilding.parcels) ``` Engine.Component.TownBuilding.parcels: {Engine.Entity} ``` parcels occupied by the building ### Engine.Component.TownBuilding.depth[🔗](#$api.engine~Engine.Component.TownBuilding.depth) ``` Engine.Component.TownBuilding.depth: integer ``` the depth in number of parcels (1-4) ### Engine.Component.TownBuilding.height[🔗](#$api.engine~Engine.Component.TownBuilding.height) ``` Engine.Component.TownBuilding.height: number ``` the height in meters of the building ### Engine.Component.TownBuilding.town[🔗](#$api.engine~Engine.Component.TownBuilding.town) ``` Engine.Component.TownBuilding.town: Engine.Entity ``` the town entity ### Engine.Component.TownBuilding.timeBuilt[🔗](#$api.engine~Engine.Component.TownBuilding.timeBuilt) ``` Engine.Component.TownBuilding.timeBuilt: integer ``` the timestamp when the building was built ### Engine.Component.TownBuilding.blockedDevelopment[🔗](#$api.engine~Engine.Component.TownBuilding.blockedDevelopment) ``` Engine.Component.TownBuilding.blockedDevelopment: boolean ``` block town developer from changing this building ### Engine.Component.TownConnection[🔗](#$api.engine~Engine.Component.TownConnection) ``` record Engine.Component.TownConnection new: function(): TownConnection entity0: Engine.Entity entity1: Engine.Entity position0: Vec2f position1: Vec2f time: number currentTime: number lastUpgradeYear: integer valid: boolean end ``` Defines a connection between towns. ### Engine.Component.TownConnection.new[🔗](#$api.engine~Engine.Component.TownConnection.new) ``` function Engine.Component.TownConnection.new(): TownConnection ``` **Returns** 1. `TownConnection` ### Engine.Component.TownConnection.entity0[🔗](#$api.engine~Engine.Component.TownConnection.entity0) ``` Engine.Component.TownConnection.entity0: Engine.Entity ``` first town ### Engine.Component.TownConnection.entity1[🔗](#$api.engine~Engine.Component.TownConnection.entity1) ``` Engine.Component.TownConnection.entity1: Engine.Entity ``` second town ### Engine.Component.TownConnection.position0[🔗](#$api.engine~Engine.Component.TownConnection.position0) ``` Engine.Component.TownConnection.position0: Vec2f ``` position of the first town ### Engine.Component.TownConnection.position1[🔗](#$api.engine~Engine.Component.TownConnection.position1) ``` Engine.Component.TownConnection.position1: Vec2f ``` position of the second town ### Engine.Component.TownConnection.time[🔗](#$api.engine~Engine.Component.TownConnection.time) ``` Engine.Component.TownConnection.time: number ``` approximate time taken to travel the connection ### Engine.Component.TownConnection.currentTime[🔗](#$api.engine~Engine.Component.TownConnection.currentTime) ``` Engine.Component.TownConnection.currentTime: number ``` ### Engine.Component.TownConnection.lastUpgradeYear[🔗](#$api.engine~Engine.Component.TownConnection.lastUpgradeYear) ``` Engine.Component.TownConnection.lastUpgradeYear: integer ``` ### Engine.Component.TownConnection.valid[🔗](#$api.engine~Engine.Component.TownConnection.valid) ``` Engine.Component.TownConnection.valid: boolean ``` ### Engine.Component.TpNetLink[🔗](#$api.engine~Engine.Component.TpNetLink) ``` record Engine.Component.TpNetLink new: function(): TpNetLink from: EdgePos to: EdgePos end ``` Represents a link between transport networks. A link is an automatic pedestrian connection. ### Engine.Component.TpNetLink.new[🔗](#$api.engine~Engine.Component.TpNetLink.new) ``` function Engine.Component.TpNetLink.new(): TpNetLink ``` **Returns** 1. `TpNetLink` ### Engine.Component.TpNetLink.from[🔗](#$api.engine~Engine.Component.TpNetLink.from) ``` Engine.Component.TpNetLink.from: EdgePos ``` link starting edge position ### Engine.Component.TpNetLink.to[🔗](#$api.engine~Engine.Component.TpNetLink.to) ``` Engine.Component.TpNetLink.to: EdgePos ``` link end edge position ### Engine.Component.Train[🔗](#$api.engine~Engine.Component.Train) ``` record Engine.Component.Train new: function(): Train end ``` Represents an entire train ### Engine.Component.Train.new[🔗](#$api.engine~Engine.Component.Train.new) ``` function Engine.Component.Train.new(): Train ``` **Returns** 1. `Train` ### Engine.Component.TransportNetwork[🔗](#$api.engine~Engine.Component.TransportNetwork) ``` record Engine.Component.TransportNetwork new: function(): TransportNetwork nodes: {Node} edges: {Edge} turnaroundEdges: {integer} end ``` Contains the graph of edges and nodes onto which vehicles and person move. ### Engine.Component.TransportNetwork.new[🔗](#$api.engine~Engine.Component.TransportNetwork.new) ``` function Engine.Component.TransportNetwork.new(): TransportNetwork ``` **Returns** 1. `TransportNetwork` ### Engine.Component.TransportNetwork.nodes[🔗](#$api.engine~Engine.Component.TransportNetwork.nodes) ``` Engine.Component.TransportNetwork.nodes: {Node} ``` The list of nodes of the transport network ### Engine.Component.TransportNetwork.edges[🔗](#$api.engine~Engine.Component.TransportNetwork.edges) ``` Engine.Component.TransportNetwork.edges: {Edge} ``` The list of edges of the transport network ### Engine.Component.TransportNetwork.turnaroundEdges[🔗](#$api.engine~Engine.Component.TransportNetwork.turnaroundEdges) ``` Engine.Component.TransportNetwork.turnaroundEdges: {integer} ``` for each edge, the index of the first edge on the opposite lane ### Engine.Component.TransportNetworkNodes[🔗](#$api.engine~Engine.Component.TransportNetworkNodes) ``` record Engine.Component.TransportNetworkNodes new: function(): TransportNetworkNodes end ``` Data for TransportNetworkNodes marker component. ### Engine.Component.TransportNetworkNodes.new[🔗](#$api.engine~Engine.Component.TransportNetworkNodes.new) ``` function Engine.Component.TransportNetworkNodes.new(): TransportNetworkNodes ``` **Returns** 1. `TransportNetworkNodes` ### Engine.Component.TransportVehicle[🔗](#$api.engine~Engine.Component.TransportVehicle) ``` [Expand All] [Collapse All] record Engine.Component.TransportVehicle record Modifiers new: function(): Modifiers topSpeedScale: number noiseScale: number pollutionScale: number comfortScale: number end record LoadSpeedModifiers vehicleOverlength: number stockCompatibility: number vehicleCompatibility: number vehicleIncompatibility: number getTotalPenalty: function(LoadSpeedModifiers): number end record Config new: function(): Config transportModes: {TransportMode : boolean} allCaps: {CargoTypeId} capacities: {CargoTypeId} loadSpeeds: {number} reversible: boolean end record LoadState new: function(): LoadState None: LoadState Arrived: LoadState Unloading: LoadState Loading: LoadState WaitForScheduledDeparture: LoadState Departing: LoadState end record PendingIncomeParams new: function(): PendingIncomeParams record EntityRev0 entity: Engine.Entity rev0: integer end amount: integer carrier: Carrier vehicleEntity: Engine.Entity lineEntity: Engine.Entity end new: function(): TransportVehicle carrier: Carrier transportVehicleConfig: TransportVehicleConfig config: Config state: TransportVehicleState userStopped: boolean depot: Engine.Entity sellOnArrival: boolean line: Engine.Entity stopIndex: integer arrivalStationTerminal: StationTerminal arrivalStationTerminalLocked: boolean lineStopDepartures: {integer} lastLineStopDeparture: integer sectionTimes: {number} lineStop2cargo2available: {{CargoTypeId}} loadState: LoadState timeUntilNextScheduledDeparture: number loadSpeedModifiers: {CargoTypeId : LoadSpeedModifiers} timeUntilCloseDoors: number timeUntilDeparture: number timeUntilNextLoad: {CargoTypeId : number} timeUntilNextUnload: {CargoTypeId : number} lastStationStockIndex: integer doorsTime: integer daysInDepot: integer daysAtTerminal: integer doorsOpen: boolean noPath: boolean autoDeparture: boolean maintenanceStation: Engine.Entity modifiers: Modifiers unloadPendingIncome: PendingIncomeParams closestTown: Engine.Entity visitedStops: {integer} end ``` Represents a single transport vehicle ### Engine.Component.TransportVehicle.Modifiers[🔗](#$api.engine~Engine.Component.TransportVehicle.Modifiers) ``` record Engine.Component.TransportVehicle.Modifiers new: function(): Modifiers topSpeedScale: number noiseScale: number pollutionScale: number comfortScale: number end ``` Contains modifiers for the entire transport vehicle ### Engine.Component.TransportVehicle.Modifiers.new()[🔗](#$api.engine~Engine.Component.TransportVehicle.Modifiers.new()) ``` function Engine.Component.TransportVehicle.Modifiers.new()(): Modifiers ``` **Returns** 1. `Modifiers` ### Engine.Component.TransportVehicle.Modifiers.new(Modifiers)[🔗](#$api.engine~Engine.Component.TransportVehicle.Modifiers.new(Modifiers)) ``` function Engine.Component.TransportVehicle.Modifiers.new(Modifiers)(Modifiers): Modifiers ``` **Parameters** * `Modifiers` **Returns** 1. `Modifiers` ### Engine.Component.TransportVehicle.Modifiers.topSpeedScale[🔗](#$api.engine~Engine.Component.TransportVehicle.Modifiers.topSpeedScale) ``` Engine.Component.TransportVehicle.Modifiers.topSpeedScale: number ``` allows scaling the transport vehicle top speed ### Engine.Component.TransportVehicle.Modifiers.noiseScale[🔗](#$api.engine~Engine.Component.TransportVehicle.Modifiers.noiseScale) ``` Engine.Component.TransportVehicle.Modifiers.noiseScale: number ``` allows scaling the transport vehicle noise ### Engine.Component.TransportVehicle.Modifiers.pollutionScale[🔗](#$api.engine~Engine.Component.TransportVehicle.Modifiers.pollutionScale) ``` Engine.Component.TransportVehicle.Modifiers.pollutionScale: number ``` allows scaling the transport vehicle pollution ### Engine.Component.TransportVehicle.Modifiers.comfortScale[🔗](#$api.engine~Engine.Component.TransportVehicle.Modifiers.comfortScale) ``` Engine.Component.TransportVehicle.Modifiers.comfortScale: number ``` allows scaling the transport vehicle comfort ### Engine.Component.TransportVehicle.LoadSpeedModifiers[🔗](#$api.engine~Engine.Component.TransportVehicle.LoadSpeedModifiers) ``` record Engine.Component.TransportVehicle.LoadSpeedModifiers vehicleOverlength: number stockCompatibility: number vehicleCompatibility: number vehicleIncompatibility: number getTotalPenalty: function(LoadSpeedModifiers): number end ``` Contains current effective modifiers for the transport vehicle load speed. ### Engine.Component.TransportVehicle.LoadSpeedModifiers.vehicleOverlength[🔗](#$api.engine~Engine.Component.TransportVehicle.LoadSpeedModifiers.vehicleOverlength) ``` Engine.Component.TransportVehicle.LoadSpeedModifiers.vehicleOverlength: number ``` the modifier poriton because of overlength with the terminal ### Engine.Component.TransportVehicle.LoadSpeedModifiers.stockCompatibility[🔗](#$api.engine~Engine.Component.TransportVehicle.LoadSpeedModifiers.stockCompatibility) ``` Engine.Component.TransportVehicle.LoadSpeedModifiers.stockCompatibility: number ``` the compatibility with the stock ### Engine.Component.TransportVehicle.LoadSpeedModifiers.vehicleCompatibility[🔗](#$api.engine~Engine.Component.TransportVehicle.LoadSpeedModifiers.vehicleCompatibility) ``` Engine.Component.TransportVehicle.LoadSpeedModifiers.vehicleCompatibility: number ``` the compatibility with the terminal ### Engine.Component.TransportVehicle.LoadSpeedModifiers.vehicleIncompatibility[🔗](#$api.engine~Engine.Component.TransportVehicle.LoadSpeedModifiers.vehicleIncompatibility) ``` Engine.Component.TransportVehicle.LoadSpeedModifiers.vehicleIncompatibility: number ``` the incompatibility with the terminal ### Engine.Component.TransportVehicle.LoadSpeedModifiers.getTotalPenalty[🔗](#$api.engine~Engine.Component.TransportVehicle.LoadSpeedModifiers.getTotalPenalty) ``` function Engine.Component.TransportVehicle.LoadSpeedModifiers.getTotalPenalty(LoadSpeedModifiers): number ``` computed total penalty from all modifiers **Parameters** * `LoadSpeedModifiers` **Returns** 1. `number` ### Engine.Component.TransportVehicle.Config[🔗](#$api.engine~Engine.Component.TransportVehicle.Config) ``` record Engine.Component.TransportVehicle.Config new: function(): Config transportModes: {TransportMode : boolean} allCaps: {CargoTypeId} capacities: {CargoTypeId} loadSpeeds: {number} reversible: boolean end ``` Contains additional data for the transport vehicle ### Engine.Component.TransportVehicle.Config.new[🔗](#$api.engine~Engine.Component.TransportVehicle.Config.new) ``` function Engine.Component.TransportVehicle.Config.new(): Config ``` **Returns** 1. `Config` ### Engine.Component.TransportVehicle.Config.transportModes[🔗](#$api.engine~Engine.Component.TransportVehicle.Config.transportModes) ``` Engine.Component.TransportVehicle.Config.transportModes: {TransportMode : boolean} ``` ### Engine.Component.TransportVehicle.Config.allCaps[🔗](#$api.engine~Engine.Component.TransportVehicle.Config.allCaps) ``` Engine.Component.TransportVehicle.Config.allCaps: {CargoTypeId} ``` ### Engine.Component.TransportVehicle.Config.capacities[🔗](#$api.engine~Engine.Component.TransportVehicle.Config.capacities) ``` Engine.Component.TransportVehicle.Config.capacities: {CargoTypeId} ``` all cargo capacities of the vehicle ### Engine.Component.TransportVehicle.Config.loadSpeeds[🔗](#$api.engine~Engine.Component.TransportVehicle.Config.loadSpeeds) ``` Engine.Component.TransportVehicle.Config.loadSpeeds: {number} ``` ### Engine.Component.TransportVehicle.Config.reversible[🔗](#$api.engine~Engine.Component.TransportVehicle.Config.reversible) ``` Engine.Component.TransportVehicle.Config.reversible: boolean ``` ### Engine.Component.TransportVehicle.LoadState[🔗](#$api.engine~Engine.Component.TransportVehicle.LoadState) ``` record Engine.Component.TransportVehicle.LoadState new: function(): LoadState None: LoadState Arrived: LoadState Unloading: LoadState Loading: LoadState WaitForScheduledDeparture: LoadState Departing: LoadState end ``` Contains additional data for the transport vehicle ### Engine.Component.TransportVehicle.LoadState.new[🔗](#$api.engine~Engine.Component.TransportVehicle.LoadState.new) ``` function Engine.Component.TransportVehicle.LoadState.new(): LoadState ``` **Returns** 1. `LoadState` ### Engine.Component.TransportVehicle.LoadState.None[🔗](#$api.engine~Engine.Component.TransportVehicle.LoadState.None) ``` Engine.Component.TransportVehicle.LoadState.None: LoadState ``` ### Engine.Component.TransportVehicle.LoadState.Arrived[🔗](#$api.engine~Engine.Component.TransportVehicle.LoadState.Arrived) ``` Engine.Component.TransportVehicle.LoadState.Arrived: LoadState ``` ### Engine.Component.TransportVehicle.LoadState.Unloading[🔗](#$api.engine~Engine.Component.TransportVehicle.LoadState.Unloading) ``` Engine.Component.TransportVehicle.LoadState.Unloading: LoadState ``` ### Engine.Component.TransportVehicle.LoadState.Loading[🔗](#$api.engine~Engine.Component.TransportVehicle.LoadState.Loading) ``` Engine.Component.TransportVehicle.LoadState.Loading: LoadState ``` ### Engine.Component.TransportVehicle.LoadState.WaitForScheduledDeparture[🔗](#$api.engine~Engine.Component.TransportVehicle.LoadState.WaitForScheduledDeparture) ``` Engine.Component.TransportVehicle.LoadState.WaitForScheduledDeparture: LoadState ``` ### Engine.Component.TransportVehicle.LoadState.Departing[🔗](#$api.engine~Engine.Component.TransportVehicle.LoadState.Departing) ``` Engine.Component.TransportVehicle.LoadState.Departing: LoadState ``` ### Engine.Component.TransportVehicle.PendingIncomeParams[🔗](#$api.engine~Engine.Component.TransportVehicle.PendingIncomeParams) ``` [Expand All] [Collapse All] record Engine.Component.TransportVehicle.PendingIncomeParams new: function(): PendingIncomeParams record EntityRev0 entity: Engine.Entity rev0: integer end amount: integer carrier: Carrier vehicleEntity: Engine.Entity lineEntity: Engine.Entity end ``` Contains information about pending split income for the transport vehicle ### Engine.Component.TransportVehicle.PendingIncomeParams.new[🔗](#$api.engine~Engine.Component.TransportVehicle.PendingIncomeParams.new) ``` function Engine.Component.TransportVehicle.PendingIncomeParams.new(): PendingIncomeParams ``` **Returns** 1. `PendingIncomeParams` ### Engine.Component.TransportVehicle.PendingIncomeParams.EntityRev0[🔗](#$api.engine~Engine.Component.TransportVehicle.PendingIncomeParams.EntityRev0) ``` record Engine.Component.TransportVehicle.PendingIncomeParams.EntityRev0 entity: Engine.Entity rev0: integer end ``` Contains information about entity and revision for the pending income ### Engine.Component.TransportVehicle.PendingIncomeParams.EntityRev0.entity[🔗](#$api.engine~Engine.Component.TransportVehicle.PendingIncomeParams.EntityRev0.entity) ``` Engine.Component.TransportVehicle.PendingIncomeParams.EntityRev0.entity: Engine.Entity ``` the entity id ### Engine.Component.TransportVehicle.PendingIncomeParams.EntityRev0.rev0[🔗](#$api.engine~Engine.Component.TransportVehicle.PendingIncomeParams.EntityRev0.rev0) ``` Engine.Component.TransportVehicle.PendingIncomeParams.EntityRev0.rev0: integer ``` the revision 0 of the entity ### Engine.Component.TransportVehicle.PendingIncomeParams.amount[🔗](#$api.engine~Engine.Component.TransportVehicle.PendingIncomeParams.amount) ``` Engine.Component.TransportVehicle.PendingIncomeParams.amount: integer ``` total income pending to be unloaded ### Engine.Component.TransportVehicle.PendingIncomeParams.carrier[🔗](#$api.engine~Engine.Component.TransportVehicle.PendingIncomeParams.carrier) ``` Engine.Component.TransportVehicle.PendingIncomeParams.carrier: Carrier ``` the carrier for which the income is pending ### Engine.Component.TransportVehicle.PendingIncomeParams.vehicleEntity[🔗](#$api.engine~Engine.Component.TransportVehicle.PendingIncomeParams.vehicleEntity) ``` Engine.Component.TransportVehicle.PendingIncomeParams.vehicleEntity: Engine.Entity ``` accounted vehicle entity id ### Engine.Component.TransportVehicle.PendingIncomeParams.lineEntity[🔗](#$api.engine~Engine.Component.TransportVehicle.PendingIncomeParams.lineEntity) ``` Engine.Component.TransportVehicle.PendingIncomeParams.lineEntity: Engine.Entity ``` accounted line entity id ### Engine.Component.TransportVehicle.new[🔗](#$api.engine~Engine.Component.TransportVehicle.new) ``` function Engine.Component.TransportVehicle.new(): TransportVehicle ``` **Returns** 1. `TransportVehicle` ### Engine.Component.TransportVehicle.carrier[🔗](#$api.engine~Engine.Component.TransportVehicle.carrier) ``` Engine.Component.TransportVehicle.carrier: Carrier ``` the type of transport vehicle ### Engine.Component.TransportVehicle.transportVehicleConfig[🔗](#$api.engine~Engine.Component.TransportVehicle.transportVehicleConfig) ``` Engine.Component.TransportVehicle.transportVehicleConfig: TransportVehicleConfig ``` the configuration of vehicle models in this vehicle ### Engine.Component.TransportVehicle.config[🔗](#$api.engine~Engine.Component.TransportVehicle.config) ``` Engine.Component.TransportVehicle.config: Config ``` various configuration properties for the vehicle ### Engine.Component.TransportVehicle.state[🔗](#$api.engine~Engine.Component.TransportVehicle.state) ``` Engine.Component.TransportVehicle.state: TransportVehicleState ``` current state of the vehicle ### Engine.Component.TransportVehicle.userStopped[🔗](#$api.engine~Engine.Component.TransportVehicle.userStopped) ``` Engine.Component.TransportVehicle.userStopped: boolean ``` whether or not the user stopped the vehicle ### Engine.Component.TransportVehicle.depot[🔗](#$api.engine~Engine.Component.TransportVehicle.depot) ``` Engine.Component.TransportVehicle.depot: Engine.Entity ``` if in depot, the Entity Id of the depot ### Engine.Component.TransportVehicle.sellOnArrival[🔗](#$api.engine~Engine.Component.TransportVehicle.sellOnArrival) ``` Engine.Component.TransportVehicle.sellOnArrival: boolean ``` whether or not the vehicle will be sold on arrival ### Engine.Component.TransportVehicle.line[🔗](#$api.engine~Engine.Component.TransportVehicle.line) ``` Engine.Component.TransportVehicle.line: Engine.Entity ``` the entity of the line (if assigned to one) ### Engine.Component.TransportVehicle.stopIndex[🔗](#$api.engine~Engine.Component.TransportVehicle.stopIndex) ``` Engine.Component.TransportVehicle.stopIndex: integer ``` the stop index of the line (if assigned to one) ### Engine.Component.TransportVehicle.arrivalStationTerminal[🔗](#$api.engine~Engine.Component.TransportVehicle.arrivalStationTerminal) ``` Engine.Component.TransportVehicle.arrivalStationTerminal: StationTerminal ``` The terminal to which the vehicle currently tries to go ### Engine.Component.TransportVehicle.arrivalStationTerminalLocked[🔗](#$api.engine~Engine.Component.TransportVehicle.arrivalStationTerminalLocked) ``` Engine.Component.TransportVehicle.arrivalStationTerminalLocked: boolean ``` If the arrivalStationTerminal is the final decision ### Engine.Component.TransportVehicle.lineStopDepartures[🔗](#$api.engine~Engine.Component.TransportVehicle.lineStopDepartures) ``` Engine.Component.TransportVehicle.lineStopDepartures: {integer} ``` timestamps of the last departures at each line stop ### Engine.Component.TransportVehicle.lastLineStopDeparture[🔗](#$api.engine~Engine.Component.TransportVehicle.lastLineStopDeparture) ``` Engine.Component.TransportVehicle.lastLineStopDeparture: integer ``` timestamp of the last departure at any line ### Engine.Component.TransportVehicle.sectionTimes[🔗](#$api.engine~Engine.Component.TransportVehicle.sectionTimes) ``` Engine.Component.TransportVehicle.sectionTimes: {number} ``` time taken for each section between line stops ### Engine.Component.TransportVehicle.lineStop2cargo2available[🔗](#$api.engine~Engine.Component.TransportVehicle.lineStop2cargo2available) ``` Engine.Component.TransportVehicle.lineStop2cargo2available: {{CargoTypeId}} ``` available capacity per cargo type for each line stop ### Engine.Component.TransportVehicle.loadState[🔗](#$api.engine~Engine.Component.TransportVehicle.loadState) ``` Engine.Component.TransportVehicle.loadState: LoadState ``` current loading state of the vehicle ### Engine.Component.TransportVehicle.timeUntilNextScheduledDeparture[🔗](#$api.engine~Engine.Component.TransportVehicle.timeUntilNextScheduledDeparture) ``` Engine.Component.TransportVehicle.timeUntilNextScheduledDeparture: number ``` how much time is left until the vehicle will start loading cargo ### Engine.Component.TransportVehicle.loadSpeedModifiers[🔗](#$api.engine~Engine.Component.TransportVehicle.loadSpeedModifiers) ``` Engine.Component.TransportVehicle.loadSpeedModifiers: {CargoTypeId : LoadSpeedModifiers} ``` current effective load speed modifiers per cargo type ### Engine.Component.TransportVehicle.timeUntilCloseDoors[🔗](#$api.engine~Engine.Component.TransportVehicle.timeUntilCloseDoors) ``` Engine.Component.TransportVehicle.timeUntilCloseDoors: number ``` how much time is left until the vehicle starts closing the doors ### Engine.Component.TransportVehicle.timeUntilDeparture[🔗](#$api.engine~Engine.Component.TransportVehicle.timeUntilDeparture) ``` Engine.Component.TransportVehicle.timeUntilDeparture: number ``` how much time is left until the vehicle leaves the terminal ### Engine.Component.TransportVehicle.timeUntilNextLoad[🔗](#$api.engine~Engine.Component.TransportVehicle.timeUntilNextLoad) ``` Engine.Component.TransportVehicle.timeUntilNextLoad: {CargoTypeId : number} ``` time until the next load per cargo type ### Engine.Component.TransportVehicle.timeUntilNextUnload[🔗](#$api.engine~Engine.Component.TransportVehicle.timeUntilNextUnload) ``` Engine.Component.TransportVehicle.timeUntilNextUnload: {CargoTypeId : number} ``` time until the next unload per cargo type ### Engine.Component.TransportVehicle.lastStationStockIndex[🔗](#$api.engine~Engine.Component.TransportVehicle.lastStationStockIndex) ``` Engine.Component.TransportVehicle.lastStationStockIndex: integer ``` index of the last station/stock where cargo was loaded/unloaded if multiple compatible stocks are in reach of the current terminal of the currently loading/unloading cargo type. ### Engine.Component.TransportVehicle.doorsTime[🔗](#$api.engine~Engine.Component.TransportVehicle.doorsTime) ``` Engine.Component.TransportVehicle.doorsTime: integer ``` time at which the door have been closed/open ### Engine.Component.TransportVehicle.daysInDepot[🔗](#$api.engine~Engine.Component.TransportVehicle.daysInDepot) ``` Engine.Component.TransportVehicle.daysInDepot: integer ``` amount of days waiting in depot ### Engine.Component.TransportVehicle.daysAtTerminal[🔗](#$api.engine~Engine.Component.TransportVehicle.daysAtTerminal) ``` Engine.Component.TransportVehicle.daysAtTerminal: integer ``` amount of days waiting at terminal ### Engine.Component.TransportVehicle.doorsOpen[🔗](#$api.engine~Engine.Component.TransportVehicle.doorsOpen) ``` Engine.Component.TransportVehicle.doorsOpen: boolean ``` whether doors should be open or closed ### Engine.Component.TransportVehicle.noPath[🔗](#$api.engine~Engine.Component.TransportVehicle.noPath) ``` Engine.Component.TransportVehicle.noPath: boolean ``` whether or not the vehicle has a path ### Engine.Component.TransportVehicle.autoDeparture[🔗](#$api.engine~Engine.Component.TransportVehicle.autoDeparture) ``` Engine.Component.TransportVehicle.autoDeparture: boolean ``` whether the vehicle departure is managed by the game or not ### Engine.Component.TransportVehicle.maintenanceStation[🔗](#$api.engine~Engine.Component.TransportVehicle.maintenanceStation) ``` Engine.Component.TransportVehicle.maintenanceStation: Engine.Entity ``` the maintenance station maintaining the vehicle ### Engine.Component.TransportVehicle.modifiers[🔗](#$api.engine~Engine.Component.TransportVehicle.modifiers) ``` Engine.Component.TransportVehicle.modifiers: Modifiers ``` modifiers applied to the transport vehicle ### Engine.Component.TransportVehicle.unloadPendingIncome[🔗](#$api.engine~Engine.Component.TransportVehicle.unloadPendingIncome) ``` Engine.Component.TransportVehicle.unloadPendingIncome: PendingIncomeParams ``` list of pending income ### Engine.Component.TransportVehicle.closestTown[🔗](#$api.engine~Engine.Component.TransportVehicle.closestTown) ``` Engine.Component.TransportVehicle.closestTown: Engine.Entity ``` the closest town to the vehicle ### Engine.Component.TransportVehicle.visitedStops[🔗](#$api.engine~Engine.Component.TransportVehicle.visitedStops) ``` Engine.Component.TransportVehicle.visitedStops: {integer} ``` The last stops on the line the transport vehicle stopped at The length is limited to the number of stops on the line ### Engine.Component.VehicleDepot[🔗](#$api.engine~Engine.Component.VehicleDepot) ``` record Engine.Component.VehicleDepot new: function(): VehicleDepot carrier: Carrier transportModes: {TransportMode : boolean} inNodes: {NodeId} outNodes: {NodeId} state: integer doors: number stateTime: integer catchmentArea: CatchmentArea maintenancePool: integer maxPoolUsage: number averagePoolUsage: number poolUsageTicks: integer filterTags: {string} end ``` Defines a vehicle depot ### Engine.Component.VehicleDepot.new[🔗](#$api.engine~Engine.Component.VehicleDepot.new) ``` function Engine.Component.VehicleDepot.new(): VehicleDepot ``` **Returns** 1. `VehicleDepot` ### Engine.Component.VehicleDepot.carrier[🔗](#$api.engine~Engine.Component.VehicleDepot.carrier) ``` Engine.Component.VehicleDepot.carrier: Carrier ``` The transport method for the depot, affects available vehicles ### Engine.Component.VehicleDepot.transportModes[🔗](#$api.engine~Engine.Component.VehicleDepot.transportModes) ``` Engine.Component.VehicleDepot.transportModes: {TransportMode : boolean} ``` ### Engine.Component.VehicleDepot.inNodes[🔗](#$api.engine~Engine.Component.VehicleDepot.inNodes) ``` Engine.Component.VehicleDepot.inNodes: {NodeId} ``` the nodes that are entry points for the depot ### Engine.Component.VehicleDepot.outNodes[🔗](#$api.engine~Engine.Component.VehicleDepot.outNodes) ``` Engine.Component.VehicleDepot.outNodes: {NodeId} ``` the nodes that are exit points for the depot ### Engine.Component.VehicleDepot.state[🔗](#$api.engine~Engine.Component.VehicleDepot.state) ``` Engine.Component.VehicleDepot.state: integer ``` ### Engine.Component.VehicleDepot.doors[🔗](#$api.engine~Engine.Component.VehicleDepot.doors) ``` Engine.Component.VehicleDepot.doors: number ``` ### Engine.Component.VehicleDepot.stateTime[🔗](#$api.engine~Engine.Component.VehicleDepot.stateTime) ``` Engine.Component.VehicleDepot.stateTime: integer ``` ### Engine.Component.VehicleDepot.catchmentArea[🔗](#$api.engine~Engine.Component.VehicleDepot.catchmentArea) ``` Engine.Component.VehicleDepot.catchmentArea: CatchmentArea ``` the area around the station where vehicles are maintained ### Engine.Component.VehicleDepot.maintenancePool[🔗](#$api.engine~Engine.Component.VehicleDepot.maintenancePool) ``` Engine.Component.VehicleDepot.maintenancePool: integer ``` number of vehicles that can be maintained ### Engine.Component.VehicleDepot.maxPoolUsage[🔗](#$api.engine~Engine.Component.VehicleDepot.maxPoolUsage) ``` Engine.Component.VehicleDepot.maxPoolUsage: number ``` maximum number of vehicles that were recently maintained at the same time ### Engine.Component.VehicleDepot.averagePoolUsage[🔗](#$api.engine~Engine.Component.VehicleDepot.averagePoolUsage) ``` Engine.Component.VehicleDepot.averagePoolUsage: number ``` average accumulated number of vehicles that were recently maintained at the same time ### Engine.Component.VehicleDepot.poolUsageTicks[🔗](#$api.engine~Engine.Component.VehicleDepot.poolUsageTicks) ``` Engine.Component.VehicleDepot.poolUsageTicks: integer ``` number of ticks for recently maintained vehicles statistics ### Engine.Component.VehicleDepot.filterTags[🔗](#$api.engine~Engine.Component.VehicleDepot.filterTags) ``` Engine.Component.VehicleDepot.filterTags: {string} ``` vehicle filter tags ### Engine.Component.VehicleOrder[🔗](#$api.engine~Engine.Component.VehicleOrder) ``` record Engine.Component.VehicleOrder new: function(): VehicleOrder equals: function(VehicleOrder, VehicleOrder): boolean entity: Engine.Entity strongBrakeEntity: boolean waitingForSpace: boolean waitingForTrafficLight: boolean end ``` Contains information about precedence and breaking. ### Engine.Component.VehicleOrder.new[🔗](#$api.engine~Engine.Component.VehicleOrder.new) ``` function Engine.Component.VehicleOrder.new(): VehicleOrder ``` **Returns** 1. `VehicleOrder` ### Engine.Component.VehicleOrder.equals[🔗](#$api.engine~Engine.Component.VehicleOrder.equals) ``` function Engine.Component.VehicleOrder.equals(VehicleOrder, VehicleOrder): boolean ``` **Parameters** * `VehicleOrder` * `VehicleOrder` **Returns** 1. `boolean` ### Engine.Component.VehicleOrder.entity[🔗](#$api.engine~Engine.Component.VehicleOrder.entity) ``` Engine.Component.VehicleOrder.entity: Engine.Entity ``` the vehicle entity of the vehicle before this vehicle ### Engine.Component.VehicleOrder.strongBrakeEntity[🔗](#$api.engine~Engine.Component.VehicleOrder.strongBrakeEntity) ``` Engine.Component.VehicleOrder.strongBrakeEntity: boolean ``` ### Engine.Component.VehicleOrder.waitingForSpace[🔗](#$api.engine~Engine.Component.VehicleOrder.waitingForSpace) ``` Engine.Component.VehicleOrder.waitingForSpace: boolean ``` ### Engine.Component.VehicleOrder.waitingForTrafficLight[🔗](#$api.engine~Engine.Component.VehicleOrder.waitingForTrafficLight) ``` Engine.Component.VehicleOrder.waitingForTrafficLight: boolean ``` ### Engine.Component.Warehouse[🔗](#$api.engine~Engine.Component.Warehouse) ``` record Engine.Component.Warehouse new: function(): Warehouse stockList: Engine.Entity construction: Engine.Entity end ``` Contains information about warehouses. ### Engine.Component.Warehouse.new[🔗](#$api.engine~Engine.Component.Warehouse.new) ``` function Engine.Component.Warehouse.new(): Warehouse ``` **Returns** 1. `Warehouse` ### Engine.Component.Warehouse.stockList[🔗](#$api.engine~Engine.Component.Warehouse.stockList) ``` Engine.Component.Warehouse.stockList: Engine.Entity ``` contains coresponding stock list ### Engine.Component.Warehouse.construction[🔗](#$api.engine~Engine.Component.Warehouse.construction) ``` Engine.Component.Warehouse.construction: Engine.Entity ``` containing the warehouse ### Engine.Component.WaterMesh[🔗](#$api.engine~Engine.Component.WaterMesh) ``` [Expand All] [Collapse All] record Engine.Component.WaterMesh new: function(): WaterMesh record Contour new: function(): Contour vertices: {Vec2f} normals: {Vec2f} end waterLevel: number vertices: {Vec2f} depths: {number} indices: {integer} contours: {Contour} pos: Vec2i end ``` Contains the geometry information for a single tile of water. ### Engine.Component.WaterMesh.new[🔗](#$api.engine~Engine.Component.WaterMesh.new) ``` function Engine.Component.WaterMesh.new(): WaterMesh ``` **Returns** 1. `WaterMesh` ### Engine.Component.WaterMesh.Contour[🔗](#$api.engine~Engine.Component.WaterMesh.Contour) ``` record Engine.Component.WaterMesh.Contour new: function(): Contour vertices: {Vec2f} normals: {Vec2f} end ``` Represents the boundary of a water mesh. ### Engine.Component.WaterMesh.Contour.new[🔗](#$api.engine~Engine.Component.WaterMesh.Contour.new) ``` function Engine.Component.WaterMesh.Contour.new(): Contour ``` **Returns** 1. `Contour` ### Engine.Component.WaterMesh.Contour.vertices[🔗](#$api.engine~Engine.Component.WaterMesh.Contour.vertices) ``` Engine.Component.WaterMesh.Contour.vertices: {Vec2f} ``` The list of vertices of the contour ### Engine.Component.WaterMesh.Contour.normals[🔗](#$api.engine~Engine.Component.WaterMesh.Contour.normals) ``` Engine.Component.WaterMesh.Contour.normals: {Vec2f} ``` The list of normals at the vertex ### Engine.Component.WaterMesh.waterLevel[🔗](#$api.engine~Engine.Component.WaterMesh.waterLevel) ``` Engine.Component.WaterMesh.waterLevel: number ``` level for the surface of the navigatable water ### Engine.Component.WaterMesh.vertices[🔗](#$api.engine~Engine.Component.WaterMesh.vertices) ``` Engine.Component.WaterMesh.vertices: {Vec2f} ``` the list of vertices of the mesh ### Engine.Component.WaterMesh.depths[🔗](#$api.engine~Engine.Component.WaterMesh.depths) ``` Engine.Component.WaterMesh.depths: {number} ``` the water depth at the vertex position ### Engine.Component.WaterMesh.indices[🔗](#$api.engine~Engine.Component.WaterMesh.indices) ``` Engine.Component.WaterMesh.indices: {integer} ``` ### Engine.Component.WaterMesh.contours[🔗](#$api.engine~Engine.Component.WaterMesh.contours) ``` Engine.Component.WaterMesh.contours: {Contour} ``` a list with boundaries of the water mesh ### Engine.Component.WaterMesh.pos[🔗](#$api.engine~Engine.Component.WaterMesh.pos) ``` Engine.Component.WaterMesh.pos: Vec2i ``` coordinate of the tile ### Engine.Component.World[🔗](#$api.engine~Engine.Component.World) ``` record Engine.Component.World new: function(): World cloudCoverage: number end ``` The World Component ### Engine.Component.World.new[🔗](#$api.engine~Engine.Component.World.new) ``` function Engine.Component.World.new(): World ``` **Returns** 1. `World` ### Engine.Component.World.cloudCoverage[🔗](#$api.engine~Engine.Component.World.cloudCoverage) ``` Engine.Component.World.cloudCoverage: number ``` ### Engine.ComponentType[🔗](#$api.engine~Engine.ComponentType) ``` record Engine.ComponentType AIRCRAFT: ComponentType ANIMAL: ComponentType ASSET_GROUP: ComponentType BASE_EDGE: ComponentType BASE_EDGE_STREET: ComponentType BASE_NODE: ComponentType BASE_PARALLEL_STRIP: ComponentType CUSTOM_STATE: ComponentType EMISSION_EMITTER: ComponentType FIELD: ComponentType GAME_TIME: ComponentType GAME_SPEED: ComponentType MODEL_INSTANCE_LIST: ComponentType NAME: ComponentType LINE: ComponentType LOG_BOOK: ComponentType MODEL_PERSON: ComponentType MOVE_PATH: ComponentType MOVE_PATH_AIRCRAFT: ComponentType STATION: ComponentType STATION_GROUP: ComponentType SIM_PERSON: ComponentType SIM_PERSON_AT_TERMINAL: ComponentType SIM_PERSON_AT_VEHICLE: ComponentType SIM_CARGO: ComponentType SIM_ENTITY_AT_BUILDING: ComponentType SIM_ENTITY_AT_VEHICLE: ComponentType SIM_ENTITY_AT_TERMINAL: ComponentType SIM_ENTITY_IDLE: ComponentType SIM_ENTITY_MOVING: ComponentType SIGNAL_LIST: ComponentType TOWN: ComponentType INDUSTRY: ComponentType STOCK_LIST: ComponentType TOWN_BUILDING: ComponentType TRANSPORT_VEHICLE: ComponentType TRAIN: ComponentType CARRIAGE: ComponentType CARRIAGE_LIST: ComponentType VEHICLE_DEPOT: ComponentType COLOR: ComponentType BOUNDING_VOLUME: ComponentType CONSTRUCTION: ComponentType SUBCONSTRUCTION: ComponentType PERSON_CAPACITY: ComponentType PLAYER_OWNED: ComponentType ACCOUNT: ComponentType GAME_SCRIPT: ComponentType WAREHOUSE: ComponentType TRANSPORT_NETWORK: ComponentType MAINTENANCE_COST: ComponentType RAILROAD_CROSSING: ComponentType PLAYER: ComponentType WORLD: ComponentType BRIDGE: ComponentType BASE_NODE_CONFIG: ComponentType LAND_VEHICLE: ComponentType BASE_NODE_TRAFFIC_LIGHT: ComponentType EDGE_OBJECT: ComponentType EMISSION_GRID: ComponentType TERRAIN: ComponentType end ``` Represents a single component that can be attached to an entity. ### Engine.ComponentType.AIRCRAFT[🔗](#$api.engine~Engine.ComponentType.AIRCRAFT) ``` Engine.ComponentType.AIRCRAFT: ComponentType ``` ### Engine.ComponentType.ANIMAL[🔗](#$api.engine~Engine.ComponentType.ANIMAL) ``` Engine.ComponentType.ANIMAL: ComponentType ``` ### Engine.ComponentType.ASSET\_GROUP[🔗](#$api.engine~Engine.ComponentType.ASSET_GROUP) ``` Engine.ComponentType.ASSET_GROUP: ComponentType ``` ### Engine.ComponentType.BASE\_EDGE[🔗](#$api.engine~Engine.ComponentType.BASE_EDGE) ``` Engine.ComponentType.BASE_EDGE: ComponentType ``` ### Engine.ComponentType.BASE\_EDGE\_STREET[🔗](#$api.engine~Engine.ComponentType.BASE_EDGE_STREET) ``` Engine.ComponentType.BASE_EDGE_STREET: ComponentType ``` ### Engine.ComponentType.BASE\_NODE[🔗](#$api.engine~Engine.ComponentType.BASE_NODE) ``` Engine.ComponentType.BASE_NODE: ComponentType ``` ### Engine.ComponentType.BASE\_PARALLEL\_STRIP[🔗](#$api.engine~Engine.ComponentType.BASE_PARALLEL_STRIP) ``` Engine.ComponentType.BASE_PARALLEL_STRIP: ComponentType ``` ### Engine.ComponentType.CUSTOM\_STATE[🔗](#$api.engine~Engine.ComponentType.CUSTOM_STATE) ``` Engine.ComponentType.CUSTOM_STATE: ComponentType ``` ### Engine.ComponentType.EMISSION\_EMITTER[🔗](#$api.engine~Engine.ComponentType.EMISSION_EMITTER) ``` Engine.ComponentType.EMISSION_EMITTER: ComponentType ``` ### Engine.ComponentType.FIELD[🔗](#$api.engine~Engine.ComponentType.FIELD) ``` Engine.ComponentType.FIELD: ComponentType ``` ### Engine.ComponentType.GAME\_TIME[🔗](#$api.engine~Engine.ComponentType.GAME_TIME) ``` Engine.ComponentType.GAME_TIME: ComponentType ``` ### Engine.ComponentType.GAME\_SPEED[🔗](#$api.engine~Engine.ComponentType.GAME_SPEED) ``` Engine.ComponentType.GAME_SPEED: ComponentType ``` ### Engine.ComponentType.MODEL\_INSTANCE\_LIST[🔗](#$api.engine~Engine.ComponentType.MODEL_INSTANCE_LIST) ``` Engine.ComponentType.MODEL_INSTANCE_LIST: ComponentType ``` ### Engine.ComponentType.NAME[🔗](#$api.engine~Engine.ComponentType.NAME) ``` Engine.ComponentType.NAME: ComponentType ``` ### Engine.ComponentType.LINE[🔗](#$api.engine~Engine.ComponentType.LINE) ``` Engine.ComponentType.LINE: ComponentType ``` ### Engine.ComponentType.LOG\_BOOK[🔗](#$api.engine~Engine.ComponentType.LOG_BOOK) ``` Engine.ComponentType.LOG_BOOK: ComponentType ``` ### Engine.ComponentType.MODEL\_PERSON[🔗](#$api.engine~Engine.ComponentType.MODEL_PERSON) ``` Engine.ComponentType.MODEL_PERSON: ComponentType ``` ### Engine.ComponentType.MOVE\_PATH[🔗](#$api.engine~Engine.ComponentType.MOVE_PATH) ``` Engine.ComponentType.MOVE_PATH: ComponentType ``` ### Engine.ComponentType.MOVE\_PATH\_AIRCRAFT[🔗](#$api.engine~Engine.ComponentType.MOVE_PATH_AIRCRAFT) ``` Engine.ComponentType.MOVE_PATH_AIRCRAFT: ComponentType ``` ### Engine.ComponentType.STATION[🔗](#$api.engine~Engine.ComponentType.STATION) ``` Engine.ComponentType.STATION: ComponentType ``` ### Engine.ComponentType.STATION\_GROUP[🔗](#$api.engine~Engine.ComponentType.STATION_GROUP) ``` Engine.ComponentType.STATION_GROUP: ComponentType ``` ### Engine.ComponentType.SIM\_PERSON[🔗](#$api.engine~Engine.ComponentType.SIM_PERSON) ``` Engine.ComponentType.SIM_PERSON: ComponentType ``` ### Engine.ComponentType.SIM\_PERSON\_AT\_TERMINAL[🔗](#$api.engine~Engine.ComponentType.SIM_PERSON_AT_TERMINAL) ``` Engine.ComponentType.SIM_PERSON_AT_TERMINAL: ComponentType ``` ### Engine.ComponentType.SIM\_PERSON\_AT\_VEHICLE[🔗](#$api.engine~Engine.ComponentType.SIM_PERSON_AT_VEHICLE) ``` Engine.ComponentType.SIM_PERSON_AT_VEHICLE: ComponentType ``` ### Engine.ComponentType.SIM\_CARGO[🔗](#$api.engine~Engine.ComponentType.SIM_CARGO) ``` Engine.ComponentType.SIM_CARGO: ComponentType ``` ### Engine.ComponentType.SIM\_ENTITY\_AT\_BUILDING[🔗](#$api.engine~Engine.ComponentType.SIM_ENTITY_AT_BUILDING) ``` Engine.ComponentType.SIM_ENTITY_AT_BUILDING: ComponentType ``` ### Engine.ComponentType.SIM\_ENTITY\_AT\_VEHICLE[🔗](#$api.engine~Engine.ComponentType.SIM_ENTITY_AT_VEHICLE) ``` Engine.ComponentType.SIM_ENTITY_AT_VEHICLE: ComponentType ``` ### Engine.ComponentType.SIM\_ENTITY\_AT\_TERMINAL[🔗](#$api.engine~Engine.ComponentType.SIM_ENTITY_AT_TERMINAL) ``` Engine.ComponentType.SIM_ENTITY_AT_TERMINAL: ComponentType ``` ### Engine.ComponentType.SIM\_ENTITY\_IDLE[🔗](#$api.engine~Engine.ComponentType.SIM_ENTITY_IDLE) ``` Engine.ComponentType.SIM_ENTITY_IDLE: ComponentType ``` ### Engine.ComponentType.SIM\_ENTITY\_MOVING[🔗](#$api.engine~Engine.ComponentType.SIM_ENTITY_MOVING) ``` Engine.ComponentType.SIM_ENTITY_MOVING: ComponentType ``` ### Engine.ComponentType.SIGNAL\_LIST[🔗](#$api.engine~Engine.ComponentType.SIGNAL_LIST) ``` Engine.ComponentType.SIGNAL_LIST: ComponentType ``` ### Engine.ComponentType.TOWN[🔗](#$api.engine~Engine.ComponentType.TOWN) ``` Engine.ComponentType.TOWN: ComponentType ``` ### Engine.ComponentType.INDUSTRY[🔗](#$api.engine~Engine.ComponentType.INDUSTRY) ``` Engine.ComponentType.INDUSTRY: ComponentType ``` ### Engine.ComponentType.STOCK\_LIST[🔗](#$api.engine~Engine.ComponentType.STOCK_LIST) ``` Engine.ComponentType.STOCK_LIST: ComponentType ``` ### Engine.ComponentType.TOWN\_BUILDING[🔗](#$api.engine~Engine.ComponentType.TOWN_BUILDING) ``` Engine.ComponentType.TOWN_BUILDING: ComponentType ``` ### Engine.ComponentType.TRANSPORT\_VEHICLE[🔗](#$api.engine~Engine.ComponentType.TRANSPORT_VEHICLE) ``` Engine.ComponentType.TRANSPORT_VEHICLE: ComponentType ``` ### Engine.ComponentType.TRAIN[🔗](#$api.engine~Engine.ComponentType.TRAIN) ``` Engine.ComponentType.TRAIN: ComponentType ``` ### Engine.ComponentType.CARRIAGE[🔗](#$api.engine~Engine.ComponentType.CARRIAGE) ``` Engine.ComponentType.CARRIAGE: ComponentType ``` ### Engine.ComponentType.CARRIAGE\_LIST[🔗](#$api.engine~Engine.ComponentType.CARRIAGE_LIST) ``` Engine.ComponentType.CARRIAGE_LIST: ComponentType ``` ### Engine.ComponentType.VEHICLE\_DEPOT[🔗](#$api.engine~Engine.ComponentType.VEHICLE_DEPOT) ``` Engine.ComponentType.VEHICLE_DEPOT: ComponentType ``` ### Engine.ComponentType.COLOR[🔗](#$api.engine~Engine.ComponentType.COLOR) ``` Engine.ComponentType.COLOR: ComponentType ``` ### Engine.ComponentType.BOUNDING\_VOLUME[🔗](#$api.engine~Engine.ComponentType.BOUNDING_VOLUME) ``` Engine.ComponentType.BOUNDING_VOLUME: ComponentType ``` ### Engine.ComponentType.CONSTRUCTION[🔗](#$api.engine~Engine.ComponentType.CONSTRUCTION) ``` Engine.ComponentType.CONSTRUCTION: ComponentType ``` ### Engine.ComponentType.SUBCONSTRUCTION[🔗](#$api.engine~Engine.ComponentType.SUBCONSTRUCTION) ``` Engine.ComponentType.SUBCONSTRUCTION: ComponentType ``` ### Engine.ComponentType.PERSON\_CAPACITY[🔗](#$api.engine~Engine.ComponentType.PERSON_CAPACITY) ``` Engine.ComponentType.PERSON_CAPACITY: ComponentType ``` ### Engine.ComponentType.PLAYER\_OWNED[🔗](#$api.engine~Engine.ComponentType.PLAYER_OWNED) ``` Engine.ComponentType.PLAYER_OWNED: ComponentType ``` ### Engine.ComponentType.ACCOUNT[🔗](#$api.engine~Engine.ComponentType.ACCOUNT) ``` Engine.ComponentType.ACCOUNT: ComponentType ``` ### Engine.ComponentType.GAME\_SCRIPT[🔗](#$api.engine~Engine.ComponentType.GAME_SCRIPT) ``` Engine.ComponentType.GAME_SCRIPT: ComponentType ``` ### Engine.ComponentType.WAREHOUSE[🔗](#$api.engine~Engine.ComponentType.WAREHOUSE) ``` Engine.ComponentType.WAREHOUSE: ComponentType ``` ### Engine.ComponentType.TRANSPORT\_NETWORK[🔗](#$api.engine~Engine.ComponentType.TRANSPORT_NETWORK) ``` Engine.ComponentType.TRANSPORT_NETWORK: ComponentType ``` ### Engine.ComponentType.MAINTENANCE\_COST[🔗](#$api.engine~Engine.ComponentType.MAINTENANCE_COST) ``` Engine.ComponentType.MAINTENANCE_COST: ComponentType ``` ### Engine.ComponentType.RAILROAD\_CROSSING[🔗](#$api.engine~Engine.ComponentType.RAILROAD_CROSSING) ``` Engine.ComponentType.RAILROAD_CROSSING: ComponentType ``` ### Engine.ComponentType.PLAYER[🔗](#$api.engine~Engine.ComponentType.PLAYER) ``` Engine.ComponentType.PLAYER: ComponentType ``` ### Engine.ComponentType.WORLD[🔗](#$api.engine~Engine.ComponentType.WORLD) ``` Engine.ComponentType.WORLD: ComponentType ``` ### Engine.ComponentType.BRIDGE[🔗](#$api.engine~Engine.ComponentType.BRIDGE) ``` Engine.ComponentType.BRIDGE: ComponentType ``` ### Engine.ComponentType.BASE\_NODE\_CONFIG[🔗](#$api.engine~Engine.ComponentType.BASE_NODE_CONFIG) ``` Engine.ComponentType.BASE_NODE_CONFIG: ComponentType ``` ### Engine.ComponentType.LAND\_VEHICLE[🔗](#$api.engine~Engine.ComponentType.LAND_VEHICLE) ``` Engine.ComponentType.LAND_VEHICLE: ComponentType ``` ### Engine.ComponentType.BASE\_NODE\_TRAFFIC\_LIGHT[🔗](#$api.engine~Engine.ComponentType.BASE_NODE_TRAFFIC_LIGHT) ``` Engine.ComponentType.BASE_NODE_TRAFFIC_LIGHT: ComponentType ``` ### Engine.ComponentType.EDGE\_OBJECT[🔗](#$api.engine~Engine.ComponentType.EDGE_OBJECT) ``` Engine.ComponentType.EDGE_OBJECT: ComponentType ``` ### Engine.ComponentType.EMISSION\_GRID[🔗](#$api.engine~Engine.ComponentType.EMISSION_GRID) ``` Engine.ComponentType.EMISSION_GRID: ComponentType ``` ### Engine.ComponentType.TERRAIN[🔗](#$api.engine~Engine.ComponentType.TERRAIN) ``` Engine.ComponentType.TERRAIN: ComponentType ``` ### Engine.getComponent[🔗](#$api.engine~Engine.getComponent) ``` function Engine.getComponent(entity : Entity, type : ComponentType): T ``` Obtains a component from an entity, if available. ##### Type Parameters * **`T`** **Parameters** * `entity` :`Entity` — the entity (must be a valid, existing entity) * `type` :`ComponentType` — the component type to obtain **Returns** 1. `T` — the component if the entity has one, or nil otherwise ### Engine.EntityFilters[🔗](#$api.engine~Engine.EntityFilters) ``` record Engine.EntityFilters requireOwnedByPlayer: Engine.Entity filterFn: function(Engine.Entity): boolean end ``` Optional filter configuration for `getEntitiesWithComponent`. ### Engine.EntityFilters.requireOwnedByPlayer[🔗](#$api.engine~Engine.EntityFilters.requireOwnedByPlayer) ``` Engine.EntityFilters.requireOwnedByPlayer: Engine.Entity ``` Only include entities owned by the given player entity. ### Engine.EntityFilters.filterFn[🔗](#$api.engine~Engine.EntityFilters.filterFn) ``` function Engine.EntityFilters.filterFn(Engine.Entity): boolean ``` Custom filter: Most flexible - but very slow. **Parameters** * `Engine.Entity` **Returns** 1. `boolean` ### Engine.forEachEntityWithComponent[🔗](#$api.engine~Engine.forEachEntityWithComponent) ``` function Engine.forEachEntityWithComponent(fn : function(Entity), componentType : ComponentType) ``` Loop over each entity with a given component. **Parameters** * `fn` :`function(Entity)` — the callback called for each entity with the given component * `componentType` :`ComponentType` — the component used to filter the entities ### Engine.forEachEntity[🔗](#$api.engine~Engine.forEachEntity) ``` function Engine.forEachEntity(callback : function(Entity)) ``` Loop over each entity in the engine. **Parameters** * `callback` :`function(Entity)` — the callback called for each entity ### Engine.getEntitiesWithComponent[🔗](#$api.engine~Engine.getEntitiesWithComponent) ``` function Engine.getEntitiesWithComponent(componentType : ComponentType, filters : EntityFilters): {Engine.Entity} ``` Get each entity with a given component. **Parameters** * `componentType` :`ComponentType` — the component used to filter the entities * `filters` :`EntityFilters` — optional table with filter configuration (`requireOwnedByPlayer` and `filterFn`) **Returns** 1. `{Engine.Entity}` ### Engine.getRevision[🔗](#$api.engine~Engine.getRevision) ``` function Engine.getRevision(entity : Entity): Revision ``` Returns the revision of the entity. **Parameters** * `entity` :`Entity` — the entity **Returns** 1. `Revision` — the entity revision ### Engine.entityExists[🔗](#$api.engine~Engine.entityExists) ``` function Engine.entityExists(entity : Entity): boolean ``` Checks whether an entity exists. **Parameters** * `entity` :`Entity` — the entity **Returns** 1. `boolean` — true if the entity exists ### Engine.UtilTerrain[🔗](#$api.engine~Engine.UtilTerrain) ``` record Engine.UtilTerrain isValidCoordinate: function(position : Vec2f): boolean getHeightAt: function(position : Vec2f): number getBaseHeightAt: function(position : Vec2f): number isOnWater: function(position : Vec2f): boolean getHeightmapEntity: function(position : Vec2i): Engine.Entity getBoundingBox: function(): Box2f makeMapFromGame: function(withHeightmap : boolean, withTowns : boolean, withIndustries : boolean, withAssets : boolean): GameMap getTerrainEntityRevisions: function(): {Engine.Entity : Engine.Revision} getBaseResolution: function(): Vec3f getHighResolution: function(): Vec3f ceilTerrainFragmentInTiles: function(percentage : number): integer end ``` ### Engine.UtilTerrain.isValidCoordinate[🔗](#$api.engine~Engine.UtilTerrain.isValidCoordinate) ``` function Engine.UtilTerrain.isValidCoordinate(position : Vec2f): boolean ``` Check if coordinate is within bounds of world. **Parameters** * `position` :`Vec2f` — world position with x and y coordinate from center of the map **Returns** 1. `boolean` — true if valid coordinate, false if non valid coordinate ### Engine.UtilTerrain.getHeightAt[🔗](#$api.engine~Engine.UtilTerrain.getHeightAt) ``` function Engine.UtilTerrain.getHeightAt(position : Vec2f): number ``` Fetches height at the world position. When the coordinates are outside the map, the value of the nearest position on the map is returned. **Parameters** * `position` :`Vec2f` — world position with x and y coordinate from center of the map **Returns** 1. `number` — the height at the position ### Engine.UtilTerrain.getBaseHeightAt[🔗](#$api.engine~Engine.UtilTerrain.getBaseHeightAt) ``` function Engine.UtilTerrain.getBaseHeightAt(position : Vec2f): number ``` Fetches base height at the world position. Differently than `getHeightAt`, this does not include terrain alignments (non-permanent modifications) and has a lower resolution of 4 meters. When the coordinates are outside the map, the value of the nearest position on the map is returned. **Parameters** * `position` :`Vec2f` — world position with x and y coordinate from center of the map **Returns** 1. `number` — the height at the position ### Engine.UtilTerrain.isOnWater[🔗](#$api.engine~Engine.UtilTerrain.isOnWater) ``` function Engine.UtilTerrain.isOnWater(position : Vec2f): boolean ``` Returns whether the given world position is on water, i.e. below the water level. **Parameters** * `position` :`Vec2f` — world position with x and y coordinate from center of the map **Returns** 1. `boolean` — true if the position is on water, false otherwise ### Engine.UtilTerrain.getHeightmapEntity[🔗](#$api.engine~Engine.UtilTerrain.getHeightmapEntity) ``` function Engine.UtilTerrain.getHeightmapEntity(position : Vec2i): Engine.Entity ``` Fetches the entity at the given tile position. **Parameters** * `position` :`Vec2i` — tile position **Returns** 1. `Engine.Entity` — the heightmap entity at the position ### Engine.UtilTerrain.getBoundingBox[🔗](#$api.engine~Engine.UtilTerrain.getBoundingBox) ``` function Engine.UtilTerrain.getBoundingBox(): Box2f ``` Returns the bounding box of the terrain. **Returns** 1. `Box2f` — bounding box of the terrain ### Engine.UtilTerrain.makeMapFromGame[🔗](#$api.engine~Engine.UtilTerrain.makeMapFromGame) ``` function Engine.UtilTerrain.makeMapFromGame(withHeightmap : boolean, withTowns : boolean, withIndustries : boolean, withAssets : boolean): GameMap ``` Creates a map data structure from the current game state. **Parameters** * `withHeightmap` :`boolean` — include heightmap data * `withTowns` :`boolean` — include town data * `withIndustries` :`boolean` — include industry data * `withAssets` :`boolean` — include asset data **Returns** 1. `GameMap` — the generated map ### Engine.UtilTerrain.getTerrainEntityRevisions[🔗](#$api.engine~Engine.UtilTerrain.getTerrainEntityRevisions) ``` function Engine.UtilTerrain.getTerrainEntityRevisions(): {Engine.Entity : Engine.Revision} ``` Gets the entity revision numbers for all terrain entities. **Returns** 1. `{Engine.Entity : Engine.Revision}` — map of entity to revision number ### Engine.UtilTerrain.getBaseResolution[🔗](#$api.engine~Engine.UtilTerrain.getBaseResolution) ``` function Engine.UtilTerrain.getBaseResolution(): Vec3f ``` Gets the base resolution of the terrain. **Returns** 1. `Vec3f` — the base resolution ### Engine.UtilTerrain.getHighResolution[🔗](#$api.engine~Engine.UtilTerrain.getHighResolution) ``` function Engine.UtilTerrain.getHighResolution(): Vec3f ``` Gets the high resolution of the terrain. **Returns** 1. `Vec3f` — the high resolution ### Engine.UtilTerrain.ceilTerrainFragmentInTiles[🔗](#$api.engine~Engine.UtilTerrain.ceilTerrainFragmentInTiles) ``` function Engine.UtilTerrain.ceilTerrainFragmentInTiles(percentage : number): integer ``` Calculates the ceiling of terrain fragment size in tiles based on percentage. **Parameters** * `percentage` :`number` — the percentage value **Returns** 1. `integer` — the calculated terrain fragment size in tiles ### Engine.MapGen[🔗](#$api.engine~Engine.MapGen) ``` record Engine.MapGen createTowns: function(string, {GameMap.Town}): TownResult createIndustries: function(string, {GameMap.Industry}): IndustryResult getDefaultTownConnections: function({GameMap.Town}): {{integer, integer}} getMinMaxValidTerrainHeight: function(): {number, number} getMinMaxValidNumTowns: function(): {integer, integer} getMinMaxValidNumIndustries: function(): {integer, integer} end ``` ### Engine.MapGen.createTowns[🔗](#$api.engine~Engine.MapGen.createTowns) ``` function Engine.MapGen.createTowns(string, {GameMap.Town}): TownResult ``` Create a town proposal from a town list. **Parameters** * `string` * `{GameMap.Town}` **Returns** 1. `TownResult` ### Engine.MapGen.createIndustries[🔗](#$api.engine~Engine.MapGen.createIndustries) ``` function Engine.MapGen.createIndustries(string, {GameMap.Industry}): IndustryResult ``` Create an industry proposal from an industry list. **Parameters** * `string` * `{GameMap.Industry}` **Returns** 1. `IndustryResult` ### Engine.MapGen.getDefaultTownConnections[🔗](#$api.engine~Engine.MapGen.getDefaultTownConnections) ``` function Engine.MapGen.getDefaultTownConnections({GameMap.Town}): {{integer, integer}} ``` Create default town connections. **Parameters** * `{GameMap.Town}` **Returns** 1. `{{integer, integer}}` ### Engine.MapGen.getMinMaxValidTerrainHeight[🔗](#$api.engine~Engine.MapGen.getMinMaxValidTerrainHeight) ``` function Engine.MapGen.getMinMaxValidTerrainHeight(): {number, number} ``` Returns the absolute limits of terrain height ranges. **Returns** 1. `{number, number}` ### Engine.MapGen.getMinMaxValidNumTowns[🔗](#$api.engine~Engine.MapGen.getMinMaxValidNumTowns) ``` function Engine.MapGen.getMinMaxValidNumTowns(): {integer, integer} ``` Returns the absolute limits of number of towns. **Returns** 1. `{integer, integer}` ### Engine.MapGen.getMinMaxValidNumIndustries[🔗](#$api.engine~Engine.MapGen.getMinMaxValidNumIndustries) ``` function Engine.MapGen.getMinMaxValidNumIndustries(): {integer, integer} ``` Returns the absolute limits of number of industries. **Returns** 1. `{integer, integer}` ### Engine.Config[🔗](#$api.engine~Engine.Config) ``` record Engine.Config getConfigDict: function(): {string : string} getModParams: function(): {string : { : }} end ``` ### Engine.Config.getConfigDict[🔗](#$api.engine~Engine.Config.getConfigDict) ``` function Engine.Config.getConfigDict(): {string : string} ``` Returns the config dict for the game. **Returns** 1. `{string : string}` ### Engine.Config.getModParams[🔗](#$api.engine~Engine.Config.getModParams) ``` function Engine.Config.getModParams(): {string : { : }} ``` Returns the mod params for the game. **Returns** 1. `{string : { : }}` ### Engine.system[🔗](#$api.engine~Engine.system) ``` Engine.system: System ``` ### Engine.terrain[🔗](#$api.engine~Engine.terrain) ``` Engine.terrain: UtilTerrain ``` ### Engine.mapgen[🔗](#$api.engine~Engine.mapgen) ``` Engine.mapgen: MapGen ``` ### Engine.util[🔗](#$api.engine~Engine.util) ``` Engine.util: EngineUtil ``` ### Engine.config[🔗](#$api.engine~Engine.config) ``` Engine.config: Config ```