Commonly used conventions for passing data between mods and Factorio.
ElemID | table | |
ElemType | union | A string specifying a type for choose elem buttons. [...] |
A string specifying a type for choose elem buttons. [...] | ||
SwitchState | union | State of a GUI switch. |
State of a GUI switch. | ||
CliffOrientation | union | |
RadiusVisualisationSpecification | table | |
CursorBoxRenderType | union | One of the following values: |
One of the following values: | ||
MapViewSettings | table | What is shown in the map view. [...] |
What is shown in the map view. [...] | ||
PrototypeFilterMode | union | One of the following values: |
One of the following values: | ||
AutoplaceSettings | table | |
RailEnd | table | |
TrainStopGoal | table | |
TrainPathRequestType | union | A string specifying the type of request for LuaGameScript::request_train_path. |
A string specifying the type of request for LuaGameScript::request_train_path. | ||
TrainPathFinderPathResult | table | |
TrainPathAnyGoalResult | table | |
TrainPathAllGoalsResult | table | |
ModifierType | union | Used by TechnologyModifier. |
Used by TechnologyModifier. | ||
DamageTypeFilters | table | |
TriggerDelivery | table | |
TriggerEffectItemType | union | Used by TriggerEffectItem. |
Used by TriggerEffectItem. | ||
TriggerEffectItem | table | |
TriggerItem | table | |
TriggerTargetMask | dictionary[string → true ] | A set of trigger target masks. |
A set of trigger target masks. | ||
TextAlign | union | The text is aligned so that the target position is at the given side of the text. [...] |
The text is aligned so that the target position is at the given side of the text. [...] | ||
VerticalTextAlign | union | The text is aligned so that the target position is at the given side of the text. [...] |
The text is aligned so that the target position is at the given side of the text. [...] | ||
GuiArrowSpecification | table | Used for specifying where a GUI arrow should point to. |
Used for specifying where a GUI arrow should point to. | ||
PrintSettings | table | |
PrototypeFilter | array[union] | Types |
Types | ||
EventFilter | array[union] | Used to filter out irrelevant event callbacks in a performant way. [...] |
Used to filter out irrelevant event callbacks in a performant way. [...] | ||
LocalisedString | string or number or boolean or LuaObject or nil or array[LocalisedString] | Localised strings are a way to support translation of in-game text. [...] |
Localised strings are a way to support translation of in-game text. [...] | ||
DisplayResolution | table | |
LogisticParameters | table | |
RealOrientation | float | The smooth orientation. [...] |
The smooth orientation. [...] | ||
MapPosition | table or {double, double} | Coordinates on a surface, for example of an entity. [...] |
Coordinates on a surface, for example of an entity. [...] | ||
ChunkPosition | table or {int, int} | Coordinates of a chunk in a LuaSurface where each integer |
Coordinates of a chunk in a LuaSurface where each integer | ||
TilePosition | table or {int, int} | Coordinates of a tile on a LuaSurface where each integer |
Coordinates of a tile on a LuaSurface where each integer | ||
EquipmentPosition | table or {int, int} | Position inside an equipment grid. [...] |
Position inside an equipment grid. [...] | ||
GuiLocation | table or {int, int} | Screen coordinates of a GUI element in a LuaGui. [...] |
Screen coordinates of a GUI element in a LuaGui. [...] | ||
ChunkPositionAndArea | table | A ChunkPosition with an added bounding box for the area of the chunk. |
A ChunkPosition with an added bounding box for the area of the chunk. | ||
EquipmentPoint | table | A table used to define a manual shape for a piece of equipment. |
A table used to define a manual shape for a piece of equipment. | ||
GuiAnchor | table | |
TabAndContent | table | |
OldTileAndPosition | table | |
Tags | dictionary[string → AnyBasic] | A dictionary of string to the four basic Lua types: |
A dictionary of string to the four basic Lua types: | ||
SmokeSource | table | The vectors for all 5 position attributes are a table with |
The vectors for all 5 position attributes are a table with | ||
Vector | table or {float, float} | A vector is a two-element array containing the |
A vector is a two-element array containing the | ||
BoundingBox | table or {MapPosition, MapPosition} | Two positions, specifying the top-left and bottom-right corner of the box respectively. [...] |
Two positions, specifying the top-left and bottom-right corner of the box respectively. [...] | ||
ScriptArea | table | An area defined using the map editor. |
An area defined using the map editor. | ||
ScriptPosition | table | A position defined using the map editor. |
A position defined using the map editor. | ||
Color | table or {float, float, float, float} | Red, green, blue and alpha values, all in range [0, 1] or all in range [0, 255] if any value is > 1. [...] |
Red, green, blue and alpha values, all in range [0, 1] or all in range [0, 255] if any value is > 1. [...] | ||
ColorModifier | table or {float, float, float, float} | Same as Color, but red, green, blue and alpha values can be any floating point number, without any special handling of the range [1, 255]. |
Same as Color, but red, green, blue and alpha values can be any floating point number, without any special handling of the range [1, 255]. | ||
CraftingQueueItem | table | |
Alert | table | |
ScriptRenderVertexTarget | table | One vertex of a ScriptRenderPolygon. |
One vertex of a ScriptRenderPolygon. | ||
PathfinderWaypoint | table | |
CutsceneWaypoint | table | |
Decorative | table | |
DecorativeResult | table | |
PrototypeHistory | table | |
ChartTagSpec | table | Either |
Either | ||
GameViewSettings | LuaStruct | Parameters that affect the look and control of the game. [...] |
Parameters that affect the look and control of the game. [...] | ||
PollutionMapSettings | table | These values are for the time frame of one second (60 ticks). |
These values are for the time frame of one second (60 ticks). | ||
EnemyEvolutionMapSettings | table | These values represent a percentual increase in evolution. [...] |
These values represent a percentual increase in evolution. [...] | ||
EnemyExpansionMapSettings | table | Candidate chunks are given scores to determine which one of them should be expanded into. [...] |
Candidate chunks are given scores to determine which one of them should be expanded into. [...] | ||
UnitGroupMapSettings | table | |
SteeringMapSetting | table | |
SteeringMapSettings | table | |
PathFinderMapSettings | table | |
MapSettings | LuaStruct | Various game-related settings. [...] |
Various game-related settings. [...] | ||
DifficultySettings | LuaStruct | Technology and recipe difficulty settings. [...] |
Technology and recipe difficulty settings. [...] | ||
MapAndDifficultySettings | table | A standard table containing all MapSettings attributes plus an additional table that contains all DifficultySettings properties. |
A standard table containing all MapSettings attributes plus an additional table that contains all DifficultySettings properties. | ||
MapDifficultySettings | table | |
MapExchangeStringData | table | The data that can be extracted from a map exchange string, as a plain table. |
The data that can be extracted from a map exchange string, as a plain table. | ||
BlueprintSignalIcon | table | |
BlueprintEntity | table | The representation of an entity inside of a blueprint. [...] |
The representation of an entity inside of a blueprint. [...] | ||
Tile | table | |
Fluid | table | |
Ingredient | table | |
Product | table | |
Loot | table | |
TechnologyModifier | table | The effect that is applied when a technology is researched. [...] |
The effect that is applied when a technology is researched. [...] | ||
Offer | table | A single offer on a market entity. |
A single offer on a market entity. | ||
AutoplaceSpecification | table | Specifies how probability and richness are calculated when placing something on the map. [...] |
Specifies how probability and richness are calculated when placing something on the map. [...] | ||
NoiseExpression | table | A fragment of a functional program used to generate coherent noise, probably for purposes related to terrain generation. [...] |
A fragment of a functional program used to generate coherent noise, probably for purposes related to terrain generation. [...] | ||
AutoplaceSpecificationPeak | table | |
AutoplaceSpecificationRestriction | table | |
Resistance | table | |
MapGenSize | union | A floating point number specifying an amount. [...] |
A floating point number specifying an amount. [...] | ||
AutoplaceControl | table | |
CliffPlacementSettings | table | |
MapGenSettings | table | The 'map type' dropdown in the map generation GUI is actually a selector for elevation generator. [...] |
The 'map type' dropdown in the map generation GUI is actually a selector for elevation generator. [...] | ||
PropertyExpressionNames | dictionary[string → string] | All other MapGenSettings feed into named noise expressions, and therefore placement can be overridden by including the name of a property in this dictionary. [...] |
All other MapGenSettings feed into named noise expressions, and therefore placement can be overridden by including the name of a property in this dictionary. [...] | ||
AdvancedMapGenSettings | table | |
MapGenPreset | table | |
SignalID | table | |
Signal | table | An actual signal transmitted by the network. |
An actual signal transmitted by the network. | ||
UpgradeFilter | table | |
InfinityInventoryFilter | table | A single filter used by an infinity-filters instance. |
A single filter used by an infinity-filters instance. | ||
InfinityPipeFilter | table | A single filter used by an infinity-pipe type entity. |
A single filter used by an infinity-pipe type entity. | ||
FluidBoxFilter | table | |
FluidBoxFilterSpec | table | |
HeatSetting | table | The settings used by a heat-interface type entity. |
The settings used by a heat-interface type entity. | ||
HeatConnection | table | |
FluidBoxConnection | table | A definition of a fluidbox connection point. |
A definition of a fluidbox connection point. | ||
PipeConnection | table | A single pipe connection for a given fluidbox. |
A single pipe connection for a given fluidbox. | ||
ArithmeticCombinatorParameters | table | |
ConstantCombinatorParameters | table | |
ComparatorString | union | A string that specifies how the inputs should be compared. [...] |
A string that specifies how the inputs should be compared. [...] | ||
DeciderCombinatorParameters | table | |
InserterCircuitConditions | table | |
CircuitCondition | table | |
CircuitConditionDefinition | table | |
CircuitConnectionDefinition | table | |
CopperConnectionDefinition | table | |
WireConnectionDefinition | table | |
DragTarget | table | |
InventoryFilter | table | |
PlaceAsTileResult | table | |
Command | table | Commands can be given to enemies and unit groups. |
Commands can be given to enemies and unit groups. | ||
PathfinderFlags | table | |
UnitSpawnDefinition | table | |
SpawnPointDefinition | table | |
ItemStackDefinition | table | |
SimpleItemStack | union | An item stack may be specified in one of two ways. |
An item stack may be specified in one of two ways. | ||
FluidIdentification | union | A fluid may be specified in one of three ways. |
A fluid may be specified in one of three ways. | ||
ForceIdentification | union | A force may be specified in one of three ways. |
A force may be specified in one of three ways. | ||
TechnologyIdentification | union | A technology may be specified in one of three ways. |
A technology may be specified in one of three ways. | ||
SurfaceIdentification | union | A surface may be specified in one of three ways. |
A surface may be specified in one of three ways. | ||
PlayerIdentification | union | A player may be specified in one of three ways. |
A player may be specified in one of three ways. | ||
ItemStackIdentification | union | An item may be specified in one of two ways. |
An item may be specified in one of two ways. | ||
EntityPrototypeIdentification | union | An entity prototype may be specified in one of three ways. |
An entity prototype may be specified in one of three ways. | ||
ItemPrototypeIdentification | union | An item prototype may be specified in one of three ways. |
An item prototype may be specified in one of three ways. | ||
WaitConditionType | union | Type of a WaitCondition. |
Type of a WaitCondition. | ||
WaitCondition | table | |
TrainScheduleRecord | table | |
TrainSchedule | table | |
TargetType | union | Target type of an AmmoType. |
Target type of an AmmoType. | ||
AmmoType | table | |
BeamTarget | table | |
RidingState | table | |
SpritePath | string | It can be either the name of a SpritePrototype defined in the data stage, or a path in form "type/name" or "type.name". [...] |
It can be either the name of a SpritePrototype defined in the data stage, or a path in form "type/name" or "type.name". [...] | ||
SoundPath | string | It can be either the name of a SoundPrototype defined in the data stage, or a path in the form |
It can be either the name of a SoundPrototype defined in the data stage, or a path in the form | ||
ModuleEffectValue | table | |
ModuleEffects | table | |
EntityPrototypeFlags | dictionary[EntityPrototypeFlag → true ] | A set of flags. [...] |
A set of flags. [...] | ||
EntityPrototypeFlag | union | A string specifying an entity prototype flag. |
A string specifying an entity prototype flag. | ||
ItemPrototypeFlags | dictionary[ItemPrototypeFlag → true ] | A set of flags. [...] |
A set of flags. [...] | ||
ItemPrototypeFlag | union | A string specifying an item prototype flag. |
A string specifying an item prototype flag. | ||
CollisionMaskLayer | union | A string specifying a collision mask layer. [...] |
A string specifying a collision mask layer. [...] | ||
CollisionMask | dictionary[CollisionMaskLayer → true ] | A set of flags. [...] |
A set of flags. [...] | ||
CollisionMaskWithFlags | dictionary[union → true ] | A CollisionMask which also includes any flags this mask has. |
A CollisionMask which also includes any flags this mask has. | ||
CircularParticleCreationSpecification | table | |
CircularProjectileCreationSpecification | {RealOrientation, Vector} | |
AttackParameterFluid | table | |
AttackParameters | table | |
GunShift4Way | table | |
CapsuleAction | table | |
SelectionModeFlags | dictionary[union → true ] | A set of flags on a selection tool that define how entities and tiles are selected. [...] |
A set of flags on a selection tool that define how entities and tiles are selected. [...] | ||
LogisticFilter | table | |
LogisticsNetworkSupplyCounts | table | |
LogisticsNetworkSupplyPoints | table | |
ModSetting | table | |
AnyBasic | string or boolean or number or table | Any basic type (string, number, boolean) or table. |
Any basic type (string, number, boolean) or table. | ||
Any | string or boolean or number or table or LuaObject | Any basic type (string, number, boolean), table, or LuaObject. |
Any basic type (string, number, boolean), table, or LuaObject. | ||
ProgrammableSpeakerParameters | table | |
ProgrammableSpeakerAlertParameters | table | |
ProgrammableSpeakerCircuitParameters | table | |
ProgrammableSpeakerInstrument | table | |
Alignment | union | A string that specifies where a GUI element should be. |
A string that specifies where a GUI element should be. | ||
EventData | table | Information about the event that has been raised. [...] |
Information about the event that has been raised. [...] | ||
NthTickEventData | table | |
ModChangeData | table | |
ConfigurationChangedData | table | |
CustomCommandData | table | |
SelectedPrototypeData | table | |
ScriptRenderTarget | table | |
MouseButtonFlags | dictionary[union → true ] | A set of flags. [...] |
A set of flags. [...] | ||
ForceCondition | union | |
RenderLayer | union | A number between 0 and 255 inclusive, represented by one of the following named strings or the string version of the number. [...] |
A number between 0 and 255 inclusive, represented by one of the following named strings or the string version of the number. [...] | ||
ItemStackLocation | table | |
VehicleAutomaticTargetingParameters | table | |
SoundType | union | Defines which slider in the game's sound settings affects the volume of this sound. [...] |
Defines which slider in the game's sound settings affects the volume of this sound. [...] | ||
GuiElementType | union | |
GuiArrowType | union | Used by GuiArrowSpecification. |
Used by GuiArrowSpecification. | ||
RollingStockDrawData | table | |
GuiDirection | union | Direction of a LuaGuiElement's layout. |
Direction of a LuaGuiElement's layout. | ||
ScrollPolicy | union | Scroll policy of a scroll pane. |
Scroll policy of a scroll pane. | ||
float | builtin | A floating-point number. [...] |
A floating-point number. [...] | ||
double | builtin | A double-precision floating-point number. [...] |
A double-precision floating-point number. [...] | ||
int | builtin | 32-bit signed integer. [...] |
32-bit signed integer. [...] | ||
int8 | builtin | 8-bit signed integer. [...] |
8-bit signed integer. [...] | ||
uint | builtin | 32-bit unsigned integer. [...] |
32-bit unsigned integer. [...] | ||
uint8 | builtin | 8-bit unsigned integer. [...] |
8-bit unsigned integer. [...] | ||
uint16 | builtin | 16-bit unsigned integer. [...] |
16-bit unsigned integer. [...] | ||
uint64 | builtin | 64-bit unsigned integer. [...] |
64-bit unsigned integer. [...] | ||
number | builtin | Any kind of integer or floating point number. |
Any kind of integer or floating point number. | ||
string | builtin | Strings are enclosed in double-quotes, like this |
Strings are enclosed in double-quotes, like this | ||
boolean | builtin | Either |
Either | ||
nil | builtin | Nil is the type of the value |
Nil is the type of the value | ||
table | builtin | Tables are enclosed in curly brackets, like this |
Tables are enclosed in curly brackets, like this | ||
LuaObject | builtin | Any LuaObject listed on the Classes page. |
Any LuaObject listed on the Classes page. | ||
FluidPrototypeFilter | table | |
AchievementPrototypeFilter | table | |
DecorativePrototypeFilter | table | |
EntityPrototypeFilter | table | |
EquipmentPrototypeFilter | table | |
ItemPrototypeFilter | table | |
ModSettingPrototypeFilter | table | |
RecipePrototypeFilter | table | |
TechnologyPrototypeFilter | table | |
TilePrototypeFilter | table | |
LuaEntityClonedEventFilter | table | |
LuaEntityDamagedEventFilter | table | |
LuaEntityDeconstructionCancelledEventFilter | table | |
LuaEntityDiedEventFilter | table | |
LuaEntityMarkedForDeconstructionEventFilter | table | |
LuaEntityMarkedForUpgradeEventFilter | table | |
LuaPlayerBuiltEntityEventFilter | table | |
LuaPlayerMinedEntityEventFilter | table | |
LuaPlayerRepairedEntityEventFilter | table | |
LuaPostEntityDiedEventFilter | table | |
LuaPreGhostDeconstructedEventFilter | table | |
LuaPreGhostUpgradedEventFilter | table | |
LuaPrePlayerMinedEntityEventFilter | table | |
LuaPreRobotMinedEntityEventFilter | table | |
LuaRobotBuiltEntityEventFilter | table | |
LuaRobotMinedEntityEventFilter | table | |
LuaScriptRaisedBuiltEventFilter | table | |
LuaScriptRaisedDestroyEventFilter | table | |
LuaScriptRaisedReviveEventFilter | table | |
LuaScriptRaisedTeleportedEventFilter | table | |
LuaSectorScannedEventFilter | table | |
LuaUpgradeCancelledEventFilter | table |
"achievement" | |
"decorative" | |
"entity" | |
"equipment" | |
"fluid" | |
"item" | |
"item-group" | |
"recipe" | |
"signal" | |
"technology" | |
"tile" |
"west-to-east" | |
"north-to-south" | |
"east-to-west" | |
"south-to-north" | |
"west-to-north" | |
"north-to-east" | |
"east-to-south" | |
"south-to-west" | |
"west-to-south" | |
"north-to-west" | |
"east-to-north" | |
"south-to-east" | |
"west-to-none" | |
"none-to-east" | |
"east-to-none" | |
"none-to-west" | |
"north-to-none" | |
"none-to-south" | |
"south-to-none" | |
"none-to-north" |
"entity" | The normal entity selection box. Yellow by default. |
"electricity" | The selection box used to specify electric poles an entity is connected to. Light blue by default. |
"copy" | The selection box used when doing entity copy-paste. Green by default. |
"not-allowed" | The selection box used when specifying colliding entities. Red by default. |
"pair" | Light blue by default. |
"logistics" | Light blue by default. |
"train-visualization" | White by default. |
"blueprint-snap-rectangle" | Green by default. |
show-logistic-network | :: boolean? | |
show-electric-network | :: boolean? | |
show-turret-range | :: boolean? | |
show-pollution | :: boolean? | |
show-networkless-logistic-members | :: boolean? | |
show-train-station-names | :: boolean? | |
show-player-names | :: boolean? | |
show-tags | :: boolean? | |
show-worker-robots | :: boolean? | |
show-rail-signal-states | :: boolean? | |
show-recipe-icons | :: boolean? | |
show-non-standard-map-info | :: boolean? |
treat_missing_as_default | :: boolean? | Whether missing autoplace names for this type should be default enabled. Always defined when reading autoplace settings. |
Whether missing autoplace names for this type should be default enabled. Always defined when reading autoplace settings. | ||
settings | :: dictionary[string → AutoplaceControl]? | Always defined when reading autoplace settings. |
Always defined when reading autoplace settings. |
train_stop | :: LuaEntity | Train stop target. Must be connected to rail (LuaEntity::connected_rail returns valid LuaEntity). |
Train stop target. Must be connected to rail (LuaEntity::connected_rail returns valid LuaEntity). |
"path" | The method will return TrainPathFinderPathResult. |
"any-goal-accessible" | The method will return TrainPathAnyGoalResult. |
"all-goals-accessible" | The method will return TrainPathAllGoalsResult. |
"all-goals-penalties" | The method will return TrainPathAllGoalsResult with |
found_path | :: boolean | True if found path. |
True if found path. | ||
path | :: array[LuaEntity]? | Only returned if |
Only returned if | ||
goal_index | :: uint? | If path was found, provides index of the specific goal to which the path goes to. |
If path was found, provides index of the specific goal to which the path goes to. | ||
penalty | :: double? | Penalty of the path to goal if path was found. |
Penalty of the path to goal if path was found. | ||
total_length | :: double? | If path was found, provides total length of all rails of the path. |
If path was found, provides total length of all rails of the path. | ||
is_front | :: boolean? | If path was found, tells if the path was reached from the |
If path was found, tells if the path was reached from the | ||
steps_count | :: uint | Amount of steps pathfinder performed. This is a measure of how expensive this search was. |
Amount of steps pathfinder performed. This is a measure of how expensive this search was. |
found_path | :: boolean | True if any goal was accessible. |
True if any goal was accessible. | ||
goal_index | :: uint? | If any goal was accessible, this gives index of the particular goal that was found. |
If any goal was accessible, this gives index of the particular goal that was found. | ||
penalty | :: double? | Penalty of the path to goal if a goal was accessible. |
Penalty of the path to goal if a goal was accessible. | ||
steps_count | :: uint | Amount of steps pathfinder performed. This is a measure of how expensive this search was. |
Amount of steps pathfinder performed. This is a measure of how expensive this search was. |
amount_accessible | :: uint | Amount of goals that are accessible. |
Amount of goals that are accessible. | ||
accessible | :: array[boolean] | Array of the same length as requested goals: each field will tell if related goal is accessible for the train. |
Array of the same length as requested goals: each field will tell if related goal is accessible for the train. | ||
penalties | :: array[double]? | Array of the same length as requested goals. Only present if request type was |
Array of the same length as requested goals. Only present if request type was | ||
steps_count | :: uint | Amount of steps pathfinder performed. This is a measure of how expensive this search was. |
Amount of steps pathfinder performed. This is a measure of how expensive this search was. |
"inserter-stack-size-bonus" | |
"stack-inserter-capacity-bonus" | |
"laboratory-speed" | |
"character-logistic-trash-slots" | |
"maximum-following-robots-count" | |
"worker-robot-speed" | |
"worker-robot-storage" | |
"ghost-time-to-live" | |
"turret-attack" | |
"ammo-damage" | |
"give-item" | |
"gun-speed" | |
"unlock-recipe" | |
"character-crafting-speed" | |
"character-mining-speed" | |
"character-running-speed" | |
"character-build-distance" | |
"character-item-drop-distance" | |
"character-reach-distance" | |
"character-resource-reach-distance" | |
"character-item-pickup-distance" | |
"character-loot-pickup-distance" | |
"character-inventory-slots-bonus" | |
"deconstruction-time-to-live" | |
"max-failed-attempts-per-tick-per-construction-queue" | |
"max-successful-attempts-per-tick-per-construction-queue" | |
"character-health-bonus" | |
"mining-drill-productivity-bonus" | |
"train-braking-force-bonus" | |
"zoom-to-world-enabled" | |
"zoom-to-world-ghost-building-enabled" | |
"zoom-to-world-blueprint-enabled" | |
"zoom-to-world-deconstruction-planner-enabled" | |
"zoom-to-world-upgrade-planner-enabled" | |
"zoom-to-world-selection-tool-enabled" | |
"worker-robot-battery" | |
"laboratory-productivity" | |
"follower-robot-lifetime" | |
"artillery-range" | |
"nothing" | |
"character-logistic-requests" |
whitelist | :: boolean | Whether this is a whitelist or a blacklist of damage types. |
Whether this is a whitelist or a blacklist of damage types. | ||
types | :: dictionary[string → true ] | The damage types to filter for. The value in the dictionary is meaningless and exists just to allow for easy lookup. |
The damage types to filter for. The value in the dictionary is meaningless and exists just to allow for easy lookup. |
type | :: "instant" or "projectile" or "flame-thrower" or "beam" or "stream" or "artillery" | |
source_effects | :: array[TriggerEffectItem] | |
target_effects | :: array[TriggerEffectItem] |
"damage" | |
"create-entity" | |
"create-explosion" | |
"create-fire" | |
"create-smoke" | |
"create-trivial-smoke" | |
"create-particle" | |
"create-sticker" | |
"create-decorative" | |
"nested-result" | |
"play-sound" | |
"push-back" | |
"destroy-cliffs" | |
"show-explosion-on-chart" | |
"insert-item" | |
"script" | |
"set-tile" | |
"invoke-tile-trigger" | |
"destroy-decoratives" | |
"camera-effect" |
type | :: TriggerEffectItemType | |
repeat_count | :: uint16 | |
repeat_count_deviation | :: uint16 | |
probability | :: float | |
affects_target | :: boolean | |
show_in_tooltip | :: boolean | |
damage_type_filters | :: DamageTypeFilters? |
type | :: "direct" or "area" or "line" or "cluster" | |
action_delivery | :: array[TriggerDelivery]? | |
entity_flags | :: EntityPrototypeFlags? | The trigger will only affect entities that contain any of these flags. |
The trigger will only affect entities that contain any of these flags. | ||
ignore_collision_condition | :: boolean | |
collision_mask | :: CollisionMask | The trigger will only affect entities that would collide with given collision mask. |
The trigger will only affect entities that would collide with given collision mask. | ||
trigger_target_mask | :: TriggerTargetMask | |
force | :: ForceCondition | If |
If | ||
repeat_count | :: uint | |
probability | :: float |
margin | :: uint | |
type | :: GuiArrowType | This determines which of the following fields will be required. |
This determines which of the following fields will be required. |
Other attributes may be specified depending on type
:
entity
entity | :: LuaEntity |
position
position | :: MapPosition |
crafting_queue
crafting_queueindex | :: uint | Index in the crafting queue to point to. |
Index in the crafting queue to point to. |
item_stack
inventory_index | :: defines.inventory | Which inventory the stack is in. |
Which inventory the stack is in. | ||
item_stack_index | :: uint | Which stack to point to. |
Which stack to point to. | ||
source | :: "player" or "target" or "player-quickbar" or "player-equipment-bar" |
color | :: Color? | Color of the message to print. Defaults to white. |
Color of the message to print. Defaults to white. | ||
sound | :: defines.print_sound? | If a sound should be emitted for this message. Defaults to |
If a sound should be emitted for this message. Defaults to | ||
skip | :: defines.print_skip? | Condition when to skip adding message. Defaults to |
Condition when to skip adding message. Defaults to | ||
sound_path | :: SoundPath? | The sound to play. If not given, UtilitySounds::console_message will be used instead. |
The sound to play. If not given, UtilitySounds::console_message will be used instead. | ||
volume_modifier | :: double? | The volume of the sound to play. Must be between 0 and 1 inclusive. Defaults to 1. |
The volume of the sound to play. Must be between 0 and 1 inclusive. Defaults to 1. | ||
game_state | :: boolean? | If set to false, message will not be part of game state and will disappear from output console after save-load. Defaults to |
If set to false, message will not be part of game state and will disappear from output console after save-load. Defaults to |
-- In the English translation, this will print "No ammo"; in the Czech translation, it will print "Bez munice":
game.player.print({"description.no-ammo"})
-- The 'description.no-ammo' template contains no placeholders, so no further parameters are necessary.
-- In the English translation, this will print "Durability: 5/9"; in the Japanese one, it will print "耐久度: 5/9":
game.player.print({"description.durability", 5, 9})
-- This will print "hello" in all translations:
game.player.print({"", "hello"})
-- This will print "Iron plate: 60" in the English translation and "Eisenplatte: 60" in the German translation.
game.print({"", {"item-name.iron-plate"}, ": ", 60})
-- As an example of a localised string with fallback, consider this:
{"?", {"", {"entity-description.furnace"}, "\n"}, {"item-description.furnace"}, "optional fallback"}
-- If 'entity-description.furnace' exists, it is concatenated with "\n" and returned. Otherwise, if 'item-description.furnace'
-- exists, it is returned as-is. Otherwise, "optional fallback" is returned. If this value wasn't specified, the
-- translation result would be "Unknown key: 'item-description.furnace'".
gui | :: defines.relative_gui_type | |
position | :: defines.relative_gui_position | |
type | :: string? | If provided, only anchors the GUI element when the opened things type matches the type. |
If provided, only anchors the GUI element when the opened things type matches the type. | ||
name | :: string? | If provided, only anchors the GUI element when the opened thing matches the name. |
If provided, only anchors the GUI element when the opened thing matches the name. | ||
names | :: array[string]? | If provided, only anchors the GUI element when the opened thing matches one of the names. When reading an anchor, |
If provided, only anchors the GUI element when the opened thing matches one of the names. When reading an anchor, |
name | :: string | |
frequency | :: double | |
offset | :: double | |
position | :: Vector? | |
north_position | :: Vector? | |
east_position | :: Vector? | |
south_position | :: Vector? | |
west_position | :: Vector? | |
deviation | :: MapPosition? | |
starting_frame_speed | :: uint16 | |
starting_frame_speed_deviation | :: double | |
starting_frame | :: uint16 | |
starting_frame_deviation | :: double | |
slow_down_factor | :: uint8 | |
height | :: float | |
height_deviation | :: float | |
starting_vertical_speed | :: float | |
starting_vertical_speed_deviation | :: float | |
vertical_speed_slowdown | :: float |
left_top | :: MapPosition | |
right_bottom | :: MapPosition | |
orientation | :: RealOrientation? |
-- Explicit definition
{left_top = {x = -2, y = -3}, right_bottom = {x = 5, y = 8}}
-- Shorthand
{{-2, -3}, {5, 8}}
index | :: uint | The index of the item in the crafting queue. |
The index of the item in the crafting queue. | ||
recipe | :: string | The recipe being crafted. |
The recipe being crafted. | ||
count | :: uint | The amount of items being crafted. |
The amount of items being crafted. | ||
prerequisite | :: boolean | The item is a prerequisite for another item in the queue. |
The item is a prerequisite for another item in the queue. |
tick | :: uint | The tick this alert was created. |
The tick this alert was created. | ||
target | :: LuaEntity? | |
prototype | :: LuaEntityPrototype? | |
position | :: MapPosition? | |
icon | :: SignalID? | The SignalID used for a custom alert. Only present for custom alerts. |
The SignalID used for a custom alert. Only present for custom alerts. | ||
message | :: LocalisedString? | The message for a custom alert. Only present for custom alerts. |
The message for a custom alert. Only present for custom alerts. |
target | :: MapPosition or LuaEntity | |
target_offset | :: Vector? | Only used if |
Only used if |
position | :: MapPosition | The position of the waypoint on its surface. |
The position of the waypoint on its surface. | ||
needs_destroy_to_reach | :: boolean |
|
|
position | :: MapPosition? | Position to pan the camera to. |
Position to pan the camera to. | ||
target | :: LuaEntity or LuaUnitGroup? | Entity or unit group to pan the camera to. |
Entity or unit group to pan the camera to. | ||
transition_time | :: uint | How many ticks it will take to reach this waypoint from the previous one. |
How many ticks it will take to reach this waypoint from the previous one. | ||
time_to_wait | :: uint | Time in ticks to wait before moving to the next waypoint. |
Time in ticks to wait before moving to the next waypoint. | ||
zoom | :: double? | Zoom level to be set when the waypoint is reached. When not specified, the previous waypoint's zoom is used. |
Zoom level to be set when the waypoint is reached. When not specified, the previous waypoint's zoom is used. |
name | :: string | The name of the decorative prototype. |
The name of the decorative prototype. | ||
position | :: TilePosition | |
amount | :: uint8 |
position | :: MapPosition | |
icon | :: SignalID? | |
text | :: string? | |
last_user | :: PlayerIdentification? |
enabled | :: boolean | Whether pollution is enabled at all. |
Whether pollution is enabled at all. | ||
diffusion_ratio | :: double | The amount that is diffused to a neighboring chunk (possibly repeated for other directions as well). Defaults to |
The amount that is diffused to a neighboring chunk (possibly repeated for other directions as well). Defaults to | ||
min_to_diffuse | :: double | The amount of PUs that need to be in a chunk for it to start diffusing. Defaults to |
The amount of PUs that need to be in a chunk for it to start diffusing. Defaults to | ||
ageing | :: double | The amount of pollution eaten by a chunk's tiles as a percentage of 1. Also known as absorption modifier. Defaults to |
The amount of pollution eaten by a chunk's tiles as a percentage of 1. Also known as absorption modifier. Defaults to | ||
expected_max_per_chunk | :: double | Any amount of pollution larger than this value is visualized as this value instead. Defaults to |
Any amount of pollution larger than this value is visualized as this value instead. Defaults to | ||
min_to_show_per_chunk | :: double | Any amount of pollution smaller than this value (but bigger than zero) is visualized as this value instead. Defaults to |
Any amount of pollution smaller than this value (but bigger than zero) is visualized as this value instead. Defaults to | ||
min_pollution_to_damage_trees | :: double | Defaults to |
Defaults to | ||
pollution_with_max_forest_damage | :: double | Defaults to |
Defaults to | ||
pollution_per_tree_damage | :: double | Defaults to |
Defaults to | ||
pollution_restored_per_tree_damage | :: double | Defaults to |
Defaults to | ||
max_pollution_to_restore_trees | :: double | Defaults to |
Defaults to | ||
enemy_attack_pollution_consumption_modifier | :: double | Defaults to |
Defaults to |
enabled | :: boolean | Whether enemy evolution is enabled at all. |
Whether enemy evolution is enabled at all. | ||
time_factor | :: double | The amount evolution naturally progresses by every second. Defaults to |
The amount evolution naturally progresses by every second. Defaults to | ||
destroy_factor | :: double | The amount evolution progresses for every destroyed spawner. Defaults to |
The amount evolution progresses for every destroyed spawner. Defaults to | ||
pollution_factor | :: double | The amount evolution progresses for every unit of pollution. Defaults to |
The amount evolution progresses for every unit of pollution. Defaults to |
enabled | :: boolean | Whether enemy expansion is enabled at all. |
Whether enemy expansion is enabled at all. | ||
max_expansion_distance | :: uint | Distance in chunks from the furthest base around to prevent expansions from reaching too far into the player's territory. Defaults to |
Distance in chunks from the furthest base around to prevent expansions from reaching too far into the player's territory. Defaults to | ||
friendly_base_influence_radius | :: uint | Defaults to |
Defaults to | ||
enemy_building_influence_radius | :: uint | Defaults to |
Defaults to | ||
building_coefficient | :: double | Defaults to |
Defaults to | ||
other_base_coefficient | :: double | Defaults to |
Defaults to | ||
neighbouring_chunk_coefficient | :: double | Defaults to |
Defaults to | ||
neighbouring_base_chunk_coefficient | :: double | Defaults to |
Defaults to | ||
max_colliding_tiles_coefficient | :: double | A chunk has to have at most this high of a percentage of unbuildable tiles for it to be considered a candidate to avoid chunks full of water as candidates. Defaults to |
A chunk has to have at most this high of a percentage of unbuildable tiles for it to be considered a candidate to avoid chunks full of water as candidates. Defaults to | ||
settler_group_min_size | :: uint | The minimum size of a biter group that goes to build a new base. This is multiplied by the evolution factor. Defaults to |
The minimum size of a biter group that goes to build a new base. This is multiplied by the evolution factor. Defaults to | ||
settler_group_max_size | :: uint | The maximum size of a biter group that goes to build a new base. This is multiplied by the evolution factor. Defaults to |
The maximum size of a biter group that goes to build a new base. This is multiplied by the evolution factor. Defaults to | ||
min_expansion_cooldown | :: uint | The minimum time between expansions in ticks. The actual cooldown is adjusted to the current evolution levels. Defaults to |
The minimum time between expansions in ticks. The actual cooldown is adjusted to the current evolution levels. Defaults to | ||
max_expansion_cooldown | :: uint | The maximum time between expansions in ticks. The actual cooldown is adjusted to the current evolution levels. Defaults to |
The maximum time between expansions in ticks. The actual cooldown is adjusted to the current evolution levels. Defaults to |
min_group_gathering_time | :: uint | The minimum amount of time in ticks a group will spend gathering before setting off. The actual time is a random time between the minimum and maximum times. Defaults to |
The minimum amount of time in ticks a group will spend gathering before setting off. The actual time is a random time between the minimum and maximum times. Defaults to | ||
max_group_gathering_time | :: uint | The maximum amount of time in ticks a group will spend gathering before setting off. The actual time is a random time between the minimum and maximum times. Defaults to |
The maximum amount of time in ticks a group will spend gathering before setting off. The actual time is a random time between the minimum and maximum times. Defaults to | ||
max_wait_time_for_late_members | :: uint | After gathering has finished, the group is allowed to wait this long in ticks for delayed members. New members are not accepted anymore however. Defaults to |
After gathering has finished, the group is allowed to wait this long in ticks for delayed members. New members are not accepted anymore however. Defaults to | ||
min_group_radius | :: double | The minimum group radius in tiles. The actual radius is adjusted based on the number of members. Defaults to |
The minimum group radius in tiles. The actual radius is adjusted based on the number of members. Defaults to | ||
max_group_radius | :: double | The maximum group radius in tiles. The actual radius is adjusted based on the number of members. Defaults to |
The maximum group radius in tiles. The actual radius is adjusted based on the number of members. Defaults to | ||
max_member_speedup_when_behind | :: double | The maximum speed a percentage of its regular speed that a group member can speed up to when catching up with the group. Defaults to |
The maximum speed a percentage of its regular speed that a group member can speed up to when catching up with the group. Defaults to | ||
max_member_slowdown_when_ahead | :: double | The minimum speed a percentage of its regular speed that a group member can slow down to when ahead of the group. Defaults to |
The minimum speed a percentage of its regular speed that a group member can slow down to when ahead of the group. Defaults to | ||
max_group_slowdown_factor | :: double | The minimum speed as a percentage of its maximum speed that a group will slow down to so members that fell behind can catch up. Defaults to |
The minimum speed as a percentage of its maximum speed that a group will slow down to so members that fell behind can catch up. Defaults to | ||
max_group_member_fallback_factor | :: double | When a member of a group falls back more than this factor times the group radius, the group will slow down to its |
When a member of a group falls back more than this factor times the group radius, the group will slow down to its | ||
member_disown_distance | :: double | When a member of a group falls back more than this factor times the group radius, it will be dropped from the group. Defaults to |
When a member of a group falls back more than this factor times the group radius, it will be dropped from the group. Defaults to | ||
tick_tolerance_when_member_arrives | :: uint | |
max_gathering_unit_groups | :: uint | The maximum number of automatically created unit groups gathering for attack at any time. Defaults to |
The maximum number of automatically created unit groups gathering for attack at any time. Defaults to | ||
max_unit_group_size | :: uint | The maximum number of members for an attack unit group. This only affects automatically created unit groups, manual groups created through the API are unaffected. Defaults to |
The maximum number of members for an attack unit group. This only affects automatically created unit groups, manual groups created through the API are unaffected. Defaults to |
radius | :: double | Does not include the radius of the unit. |
Does not include the radius of the unit. | ||
separation_factor | :: double | |
separation_force | :: double | |
force_unit_fuzzy_goto_behavior | :: boolean | Used to make steering look better for aesthetic purposes. |
Used to make steering look better for aesthetic purposes. |
fwd2bwd_ratio | :: uint | The pathfinder performs a step of the backward search every |
The pathfinder performs a step of the backward search every | ||
goal_pressure_ratio | :: double | When looking at which node to check next, their heuristic value is multiplied by this ratio. The higher it is, the more the search is directed straight at the goal. Defaults to |
When looking at which node to check next, their heuristic value is multiplied by this ratio. The higher it is, the more the search is directed straight at the goal. Defaults to | ||
max_steps_worked_per_tick | :: double | The maximum number of nodes that are expanded per tick. Defaults to |
The maximum number of nodes that are expanded per tick. Defaults to | ||
max_work_done_per_tick | :: uint | The maximum amount of work each pathfinding job is allowed to do per tick. Defaults to |
The maximum amount of work each pathfinding job is allowed to do per tick. Defaults to | ||
use_path_cache | :: boolean | Whether to cache paths at all. Defaults to |
Whether to cache paths at all. Defaults to | ||
short_cache_size | :: uint | Number of elements in the short cache. Defaults to |
Number of elements in the short cache. Defaults to | ||
long_cache_size | :: uint | Number of elements in the long cache. Defaults to |
Number of elements in the long cache. Defaults to | ||
short_cache_min_cacheable_distance | :: double | The minimal distance to the goal in tiles required to be searched in the short path cache. Defaults to |
The minimal distance to the goal in tiles required to be searched in the short path cache. Defaults to | ||
short_cache_min_algo_steps_to_cache | :: uint | The minimal number of nodes required to be searched in the short path cache. Defaults to |
The minimal number of nodes required to be searched in the short path cache. Defaults to | ||
long_cache_min_cacheable_distance | :: double | The minimal distance to the goal in tiles required to be searched in the long path cache. Defaults to |
The minimal distance to the goal in tiles required to be searched in the long path cache. Defaults to | ||
cache_max_connect_to_cache_steps_multiplier | :: uint | When looking for a connection to a cached path, search at most for this number of steps times the original estimate. Defaults to |
When looking for a connection to a cached path, search at most for this number of steps times the original estimate. Defaults to | ||
cache_accept_path_start_distance_ratio | :: double | When looking for a path from cache, make sure it doesn't start too far from the requested start in relative terms. Defaults to |
When looking for a path from cache, make sure it doesn't start too far from the requested start in relative terms. Defaults to | ||
cache_accept_path_end_distance_ratio | :: double | When looking for a path from cache, make sure it doesn't end too far from the requested end in relative terms. This is typically more lenient than the start ratio since the end target could be moving. Defaults to |
When looking for a path from cache, make sure it doesn't end too far from the requested end in relative terms. This is typically more lenient than the start ratio since the end target could be moving. Defaults to | ||
negative_cache_accept_path_start_distance_ratio | :: double | Same principle as |
Same principle as | ||
negative_cache_accept_path_end_distance_ratio | :: double | Same principle as |
Same principle as | ||
cache_path_start_distance_rating_multiplier | :: double | When assigning a rating to the best path, this multiplier times start distances is considered. Defaults to |
When assigning a rating to the best path, this multiplier times start distances is considered. Defaults to | ||
cache_path_end_distance_rating_multiplier | :: double | When assigning a rating to the best path, this multiplier times end distances is considered. This value is typically higher than the start multiplier as this results in better end path quality. Defaults to |
When assigning a rating to the best path, this multiplier times end distances is considered. This value is typically higher than the start multiplier as this results in better end path quality. Defaults to | ||
stale_enemy_with_same_destination_collision_penalty | :: double | A penalty that is applied for another unit that is on the way to the goal. This is mainly relevant for situations where a group of units has arrived at the target they are supposed to attack, making units further back circle around to reach the target. Defaults to |
A penalty that is applied for another unit that is on the way to the goal. This is mainly relevant for situations where a group of units has arrived at the target they are supposed to attack, making units further back circle around to reach the target. Defaults to | ||
ignore_moving_enemy_collision_distance | :: double | The distance in tiles after which other moving units are not considered for pathfinding. Defaults to |
The distance in tiles after which other moving units are not considered for pathfinding. Defaults to | ||
enemy_with_different_destination_collision_penalty | :: double | A penalty that is applied for another unit that is too close and either not moving or has a different goal. Defaults to |
A penalty that is applied for another unit that is too close and either not moving or has a different goal. Defaults to | ||
general_entity_collision_penalty | :: double | The general collision penalty with other units. Defaults to |
The general collision penalty with other units. Defaults to | ||
general_entity_subsequent_collision_penalty | :: double | The collision penalty for positions that require the destruction of an entity to get to. Defaults to |
The collision penalty for positions that require the destruction of an entity to get to. Defaults to | ||
extended_collision_penalty | :: double | The collision penalty for collisions in the extended bounding box but outside the entity's actual bounding box. Defaults to |
The collision penalty for collisions in the extended bounding box but outside the entity's actual bounding box. Defaults to | ||
max_clients_to_accept_any_new_request | :: uint | The amount of path finder requests accepted per tick regardless of the requested path's length. Defaults to |
The amount of path finder requests accepted per tick regardless of the requested path's length. Defaults to | ||
max_clients_to_accept_short_new_request | :: uint | When the |
When the | ||
direct_distance_to_consider_short_request | :: uint | The maximum direct distance in tiles before a request is no longer considered short. Defaults to |
The maximum direct distance in tiles before a request is no longer considered short. Defaults to | ||
short_request_max_steps | :: uint | The maximum amount of nodes a short request will traverse before being rescheduled as a long request. Defaults to |
The maximum amount of nodes a short request will traverse before being rescheduled as a long request. Defaults to | ||
short_request_ratio | :: double | The amount of steps that are allocated to short requests each tick, as a percentage of all available steps. Defaults to |
The amount of steps that are allocated to short requests each tick, as a percentage of all available steps. Defaults to | ||
min_steps_to_check_path_find_termination | :: uint | The minimum amount of steps that are guaranteed to be performed for every request. Defaults to |
The minimum amount of steps that are guaranteed to be performed for every request. Defaults to | ||
start_to_goal_cost_multiplier_to_terminate_path_find | :: double | If the actual amount of steps is higher than the initial estimate by this factor, pathfinding is terminated. Defaults to |
If the actual amount of steps is higher than the initial estimate by this factor, pathfinding is terminated. Defaults to | ||
overload_levels | :: array[uint] | The thresholds of waiting clients after each of which the per-tick work limit will be increased by the corresponding value in |
The thresholds of waiting clients after each of which the per-tick work limit will be increased by the corresponding value in | ||
overload_multipliers | :: array[double] | The multipliers to the amount of per-tick work applied after the corresponding thresholds in |
The multipliers to the amount of per-tick work applied after the corresponding thresholds in | ||
negative_path_cache_delay_interval | :: uint | The delay in ticks between decrementing the score of all paths in the negative cache by one. Defaults to |
The delay in ticks between decrementing the score of all paths in the negative cache by one. Defaults to |
-- Increase the number of short paths the pathfinder can cache
game.map_settings.path_finder.short_cache_size = 15
pollution | :: PollutionMapSettings | |
enemy_evolution | :: EnemyEvolutionMapSettings | |
enemy_expansion | :: EnemyExpansionMapSettings | |
unit_group | :: UnitGroupMapSettings | |
steering | :: SteeringMapSettings | |
path_finder | :: PathFinderMapSettings | |
max_failed_behavior_count | :: uint | If a behavior fails this many times, the enemy (or enemy group) is destroyed. This solves biters getting stuck within their own base. |
If a behavior fails this many times, the enemy (or enemy group) is destroyed. This solves biters getting stuck within their own base. | ||
difficulty_settings | :: MapDifficultySettings |
recipe_difficulty | :: defines.difficulty_settings.recipe_difficulty | |
technology_difficulty | :: defines.difficulty_settings.technology_difficulty | |
technology_price_multiplier | :: double | A value in range [0.001, 1000]. |
A value in range [0.001, 1000]. | ||
research_queue_setting | :: "after-victory" or "always" or "never" | Changing this to |
Changing this to |
signal | :: SignalID | The icon to use. It can be any item icon as well as any virtual signal icon. |
The icon to use. It can be any item icon as well as any virtual signal icon. | ||
index | :: uint | Index of the icon in the blueprint icons slots. Has to be an integer in the range [1, 4]. |
Index of the icon in the blueprint icons slots. Has to be an integer in the range [1, 4]. |
entity_number | :: uint | The entity's unique identifier in the blueprint. |
The entity's unique identifier in the blueprint. | ||
name | :: string | The prototype name of the entity. |
The prototype name of the entity. | ||
position | :: MapPosition | The position of the entity. |
The position of the entity. | ||
direction | :: defines.direction? | The direction the entity is facing. Only present for entities that can face in different directions and when the entity is not facing north. |
The direction the entity is facing. Only present for entities that can face in different directions and when the entity is not facing north. | ||
tags | :: Tags? | The entity tags of the entity, if there are any. Only relevant for entity ghosts. |
The entity tags of the entity, if there are any. Only relevant for entity ghosts. | ||
items | :: dictionary[string → uint]? | The items that the entity will request when revived, if there are any. It's a mapping of prototype names to amounts. Only relevant for entity ghosts. |
The items that the entity will request when revived, if there are any. It's a mapping of prototype names to amounts. Only relevant for entity ghosts. | ||
connections | :: BlueprintCircuitConnection? | The circuit network connections of the entity, if there are any. Only relevant for entities that support circuit connections. |
The circuit network connections of the entity, if there are any. Only relevant for entities that support circuit connections. | ||
control_behavior | :: BlueprintControlBehavior? | The control behavior of the entity, if it has one. The format of the control behavior depends on the entity's type. Only relevant for entities that support control behaviors. |
The control behavior of the entity, if it has one. The format of the control behavior depends on the entity's type. Only relevant for entities that support control behaviors. | ||
schedule | :: array[TrainScheduleRecord]? | The schedule of the entity, if it has one. Only relevant for locomotives. |
The schedule of the entity, if it has one. Only relevant for locomotives. |
position | :: TilePosition | The position of the tile. |
The position of the tile. | ||
name | :: string | The prototype name of the tile. |
The prototype name of the tile. |
name | :: string | Fluid prototype name of the fluid. |
Fluid prototype name of the fluid. | ||
amount | :: double | Amount of the fluid. |
Amount of the fluid. | ||
temperature | :: double? | The temperature. When reading from LuaFluidBox, this field will always be present. It is not necessary to specify it when writing, however. When not specified, the fluid will be set to the fluid's default temperature as specified in the fluid's prototype. |
The temperature. When reading from LuaFluidBox, this field will always be present. It is not necessary to specify it when writing, however. When not specified, the fluid will be set to the fluid's default temperature as specified in the fluid's prototype. |
type | :: "item" or "fluid" | |
name | :: string | Prototype name of the required item or fluid. |
Prototype name of the required item or fluid. | ||
amount | :: double | Amount of the item or fluid. |
Amount of the item or fluid. | ||
catalyst_amount | :: uint or double? | How much of this ingredient is a catalyst. |
How much of this ingredient is a catalyst. |
Other attributes may be specified depending on type
:
type | :: "item" or "fluid" | |
name | :: string | Prototype name of the result. |
Prototype name of the result. | ||
amount | :: double? | Amount of the item or fluid to give. If not specified, |
Amount of the item or fluid to give. If not specified, | ||
amount_min | :: uint or double? | Minimal amount of the item or fluid to give. Has no effect when |
Minimal amount of the item or fluid to give. Has no effect when | ||
amount_max | :: uint or double? | Maximum amount of the item or fluid to give. Has no effect when |
Maximum amount of the item or fluid to give. Has no effect when | ||
probability | :: double? | A value in range [0, 1]. Item or fluid is only given with this probability; otherwise no product is produced. |
A value in range [0, 1]. Item or fluid is only given with this probability; otherwise no product is produced. | ||
catalyst_amount | :: uint or double? | How much of this product is a catalyst. |
How much of this product is a catalyst. |
Other attributes may be specified depending on type
:
fluid
temperature | :: double? | The fluid temperature of this product. |
The fluid temperature of this product. |
-- Products of the "steel-chest" recipe (an array of Product)
{{type="item", name="steel-chest", amount=1}}
-- Products of the "advanced-oil-processing" recipe
{{type="fluid", name="heavy-oil", amount=1},
{type="fluid", name="light-oil", amount=4.5},
{type="fluid", name="petroleum-gas", amount=5.5}}
-- What a custom recipe would look like that had a probability of 0.5 to return a
-- minimum amount of 1 and amaximum amount of 5
{{type="item", name="custom-item", probability=0.5, amount_min=1, amount_max=5}}
item | :: string | Item prototype name of the result. |
Item prototype name of the result. | ||
probability | :: double | Probability that any loot at all will drop, as a number in range [0, 1]. |
Probability that any loot at all will drop, as a number in range [0, 1]. | ||
count_min | :: double | Minimum amount of loot to drop. |
Minimum amount of loot to drop. | ||
count_max | :: double | Maximum amount of loot to drop. |
Maximum amount of loot to drop. |
type | :: ModifierType | Modifier type. Specifies which of the other fields will be available. |
Modifier type. Specifies which of the other fields will be available. |
Other attributes may be specified depending on type
:
gun-speed
ammo_category | :: string | Prototype name of the ammunition category that is affected |
Prototype name of the ammunition category that is affected | ||
modifier | :: double | Modification value. This will be added to the current gun speed modifier upon researching. |
Modification value. This will be added to the current gun speed modifier upon researching. |
ammo-damage
ammo_category | :: string | Prototype name of the ammunition category that is affected |
Prototype name of the ammunition category that is affected | ||
modifier | :: double | Modification value. This will be added to the current ammo damage modifier upon researching. |
Modification value. This will be added to the current ammo damage modifier upon researching. |
give-item
item | :: string | Item prototype name to give. |
Item prototype name to give. | ||
count | :: uint? | Number of items to give. Defaults to |
Number of items to give. Defaults to |
turret-attack
turret_id | :: string | Turret prototype name this modifier will affect. |
Turret prototype name this modifier will affect. | ||
modifier | :: double | Modification value. This will be added to the current turret damage modifier upon researching. |
Modification value. This will be added to the current turret damage modifier upon researching. |
unlock-recipe
recipe | :: string | Recipe prototype name to unlock. |
Recipe prototype name to unlock. |
nothing
effect_description | :: LocalisedString | Description of this nothing modifier. |
Description of this nothing modifier. |
OtherTypes
modifier | :: double | Modification value. This value will be added to the variable it modifies. |
Modification value. This value will be added to the variable it modifies. |
price | :: array[Ingredient] | List of prices. |
List of prices. | ||
offer | :: TechnologyModifier | The action that will take place when a player accepts the offer. Usually a |
The action that will take place when a player accepts the offer. Usually a |
probability_expression | :: NoiseExpression | |
richness_expression | :: NoiseExpression | |
coverage | :: double | |
sharpness | :: double | |
max_probability | :: double | |
placement_density | :: uint | |
richness_base | :: double | |
richness_multiplier | :: double | |
richness_multiplier_distance_bonus | :: double | |
starting_area_size | :: uint | |
order | :: string | |
default_enabled | :: boolean | |
peaks | :: array[AutoplaceSpecificationPeak]? | |
control | :: string? | Control prototype name. |
Control prototype name. | ||
tile_restriction | :: array[AutoplaceSpecificationRestriction]? | |
force | :: string | |
random_probability_penalty | :: double |
type | :: string | Names the type of the expression and determines what other fields are required. |
Names the type of the expression and determines what other fields are required. |
influence | :: double | |
max_influence | :: double | |
min_influence | :: double | |
richness_influence | :: double | |
noisePersistence | :: double | |
noise_layer | :: string? | Prototype name of the noise layer. |
Prototype name of the noise layer. | ||
noise_octaves_difference | :: double | |
water_optimal | :: double | |
water_range | :: double | |
water_max_range | :: double | |
water_top_property_limit | :: double | |
elevation_optimal | :: double | |
elevation_range | :: double | |
elevation_max_range | :: double | |
elevation_top_property_limit | :: double | |
temperature_optimal | :: double | |
temperature_range | :: double | |
temperature_max_range | :: double | |
temperature_top_property_limit | :: double | |
starting_area_weight_optimal | :: double | |
starting_area_weight_range | :: double | |
starting_area_weight_max_range | :: double | |
starting_area_weight_top_property_limit | :: double | |
tier_from_start_optimal | :: double | |
tier_from_start_range | :: double | |
tier_from_start_max_range | :: double | |
tier_from_start_top_property_limit | :: double | |
distance_optimal | :: double | |
distance_range | :: double | |
distance_max_range | :: double | |
distance_top_property_limit | :: double | |
aux_optimal | :: double | |
aux_range | :: double | |
aux_max_range | :: double | |
aux_top_property_limit | :: double |
float | Specifying a map gen dimension. |
"none" | equivalent to |
"very-low" | equivalent to |
"very-small" | equivalent to |
"very-poor" | equivalent to |
"low" | equivalent to |
"small" | equivalent to |
"poor" | equivalent to |
"normal" | equivalent to |
"medium" | equivalent to |
"regular" | equivalent to |
"high" | equivalent to |
"big" | equivalent to |
"good" | equivalent to |
"very-high" | equivalent to |
"very-big" | equivalent to |
"very-good" | equivalent to |
frequency | :: MapGenSize | For things that are placed as spots such as ores and enemy bases, frequency is generally proportional to number of spots placed per unit area. For continuous features such as forests, frequency is how compressed the probability function is over distance, i.e. the inverse of 'scale' (similar to terrain_segmentation). When the LuaAutoplaceControlPrototype is of the category |
For things that are placed as spots such as ores and enemy bases, frequency is generally proportional to number of spots placed per unit area. For continuous features such as forests, frequency is how compressed the probability function is over distance, i.e. the inverse of 'scale' (similar to terrain_segmentation). When the LuaAutoplaceControlPrototype is of the category | ||
size | :: MapGenSize | For things that are placed as spots, size is proportional to the area of each spot. For continuous features, size affects how much of the map is covered with the thing, and is called 'coverage' in the GUI. |
For things that are placed as spots, size is proportional to the area of each spot. For continuous features, size affects how much of the map is covered with the thing, and is called 'coverage' in the GUI. | ||
richness | :: MapGenSize | Has different effects for different things, but generally affects the 'health' or density of a thing that is placed without affecting where it is placed. For trees, richness affects tree health. For ores, richness multiplies the amount of ore at any given tile in a patch. Metadata about autoplace controls (such as whether or not 'richness' does anything for them) can be found in the LuaAutoplaceControlPrototype by looking up |
Has different effects for different things, but generally affects the 'health' or density of a thing that is placed without affecting where it is placed. For trees, richness affects tree health. For ores, richness multiplies the amount of ore at any given tile in a patch. Metadata about autoplace controls (such as whether or not 'richness' does anything for them) can be found in the LuaAutoplaceControlPrototype by looking up |
name | :: string | Name of the cliff prototype. |
Name of the cliff prototype. | ||
cliff_elevation_0 | :: float | Elevation at which the first row of cliffs is placed. The default is |
Elevation at which the first row of cliffs is placed. The default is | ||
cliff_elevation_interval | :: float | Elevation difference between successive rows of cliffs. This is inversely proportional to 'frequency' in the map generation GUI. Specifically, when set from the GUI the value is |
Elevation difference between successive rows of cliffs. This is inversely proportional to 'frequency' in the map generation GUI. Specifically, when set from the GUI the value is | ||
richness | :: MapGenSize | Corresponds to 'continuity' in the GUI. This value is not used directly, but is used by the 'cliffiness' noise expression, which in combination with elevation and the two cliff elevation properties drives cliff placement (cliffs are placed when elevation crosses the elevation contours defined by |
Corresponds to 'continuity' in the GUI. This value is not used directly, but is used by the 'cliffiness' noise expression, which in combination with elevation and the two cliff elevation properties drives cliff placement (cliffs are placed when elevation crosses the elevation contours defined by |
terrain_segmentation | :: MapGenSize | The inverse of 'water scale' in the map generator GUI. Lower |
The inverse of 'water scale' in the map generator GUI. Lower | ||
water | :: MapGenSize | The equivalent to 'water coverage' in the map generator GUI. Specifically, when this value is non-zero, |
The equivalent to 'water coverage' in the map generator GUI. Specifically, when this value is non-zero, | ||
autoplace_controls | :: dictionary[string → AutoplaceControl] | Indexed by autoplace control prototype name. |
Indexed by autoplace control prototype name. | ||
default_enable_all_autoplace_controls | :: boolean | Whether undefined |
Whether undefined | ||
autoplace_settings | :: dictionary["entity" or "tile" or "decorative" → AutoplaceSettings] | Each setting in this dictionary maps the string type to the settings for that type. |
Each setting in this dictionary maps the string type to the settings for that type. | ||
cliff_settings | :: CliffPlacementSettings | Map generation settings for entities of the type "cliff". |
Map generation settings for entities of the type "cliff". | ||
seed | :: uint | The random seed used to generated this map. |
The random seed used to generated this map. | ||
width | :: uint | Width in tiles. If |
Width in tiles. If | ||
height | :: uint | Height in tiles. If |
Height in tiles. If | ||
starting_area | :: MapGenSize | Size of the starting area. |
Size of the starting area. | ||
starting_points | :: array[MapPosition] | Positions of the starting areas. |
Positions of the starting areas. | ||
peaceful_mode | :: boolean | Whether peaceful mode is enabled for this map. |
Whether peaceful mode is enabled for this map. | ||
property_expression_names | :: PropertyExpressionNames | Overrides for tile property value generators. |
Overrides for tile property value generators. |
-- Assuming a NamedNoiseExpression with the name "my-alternate-grass1-probability" is defined...
local surface = game.player.surface
local mgs = surface.map_gen_settings
mgs.property_expression_names["tile:grass1:probability"] = "my-alternate-grass1-probability"
surface.map_gen_settings = mgs
-- ...would override the probability of grass1 being placed at any given point on the current surface.
-- To make there be no deep water on (newly generated chunks) a surface
local surface = game.player.surface
local mgs = surface.map_gen_settings
mgs.property_expression_names["tile:deepwater:probability"] = -1000
surface.map_gen_settings = mgs
-- This does not require a NamedNoiseExpression to be defined, since literal numbers (and strings naming literal
-- numbers, e.g. `"123"`) are understood to stand for constant value expressions.
pollution | :: PollutionMapSettings | |
enemy_evolution | :: EnemyEvolutionMapSettings | |
enemy_expansion | :: EnemyExpansionMapSettings | |
difficulty_settings | :: DifficultySettings |
order | :: string | The string used to alphabetically sort the presets. It is a simple string that has no additional semantic meaning. |
The string used to alphabetically sort the presets. It is a simple string that has no additional semantic meaning. | ||
default | :: boolean? | Whether this is the preset that is selected by default. |
Whether this is the preset that is selected by default. | ||
basic_settings | :: MapGenSettings? | |
advanced_settings | :: AdvancedMapGenSettings? |
type | :: "item" or "fluid" or "virtual" | |
name | :: string? | Name of the item, fluid or virtual signal. |
Name of the item, fluid or virtual signal. |
type | :: "item" or "entity" | |
name | :: string? | Name of the item, or entity. |
Name of the item, or entity. |
name | :: string | Name of the item. |
Name of the item. | ||
count | :: uint? | The count of the filter. |
The count of the filter. | ||
mode | :: "at-least" or "at-most" or "exactly" ? | Defaults to |
Defaults to | ||
index | :: uint | The index of this filter in the filters list. Not required when writing a filter. |
The index of this filter in the filters list. Not required when writing a filter. |
name | :: string | Name of the fluid. |
Name of the fluid. | ||
percentage | :: double? | The fill percentage the pipe (for example |
The fill percentage the pipe (for example | ||
temperature | :: double? | The temperature of the fluid. Defaults to the default/minimum temperature of the fluid. |
The temperature of the fluid. Defaults to the default/minimum temperature of the fluid. | ||
mode | :: "at-least" or "at-most" or "exactly" or "add" or "remove" ? | Defaults to |
Defaults to |
name | :: string | Fluid prototype name of the filtered fluid. |
Fluid prototype name of the filtered fluid. | ||
minimum_temperature | :: double | The minimum temperature allowed into the fluidbox. |
The minimum temperature allowed into the fluidbox. | ||
maximum_temperature | :: double | The maximum temperature allowed into the fluidbox. |
The maximum temperature allowed into the fluidbox. |
name | :: string | Fluid prototype name of the filtered fluid. |
Fluid prototype name of the filtered fluid. | ||
minimum_temperature | :: double? | The minimum temperature allowed into the fluidbox. |
The minimum temperature allowed into the fluidbox. | ||
maximum_temperature | :: double? | The maximum temperature allowed into the fluidbox. |
The maximum temperature allowed into the fluidbox. | ||
force | :: boolean? | Force the filter to be set, regardless of current fluid content. |
Force the filter to be set, regardless of current fluid content. |
temperature | :: double? | The target temperature. Defaults to the minimum temperature of the heat buffer. |
The target temperature. Defaults to the minimum temperature of the heat buffer. | ||
mode | :: "at-least" or "at-most" or "exactly" or "add" or "remove" ? | Defaults to |
Defaults to |
type | :: "input" or "output" or "input-output" | |
positions | :: array[Vector] | The 4 cardinal direction connection points for this pipe. This vector is a table with |
The 4 cardinal direction connection points for this pipe. This vector is a table with | ||
max_underground_distance | :: uint? | The maximum tile distance this underground connection can connect at if this is an underground pipe. |
The maximum tile distance this underground connection can connect at if this is an underground pipe. |
flow_direction | :: "input" or "output" or "input-output" | |
connection_type | :: "normal" or "underground" | |
position | :: MapPosition | The absolute position of this connection within the entity. |
The absolute position of this connection within the entity. | ||
target_position | :: MapPosition | The absolute position of the connection's intended target. |
The absolute position of the connection's intended target. | ||
target | :: LuaFluidBox? | The connected fluidbox, if any. |
The connected fluidbox, if any. | ||
target_fluidbox_index | :: uint? | The index of the target fluidbox, if any. |
The index of the target fluidbox, if any. | ||
target_pipe_connection_index | :: uint? | The index of the target fluidbox pipe connection, if any. |
The index of the target fluidbox pipe connection, if any. |
first_signal | :: SignalID? | First signal to use in an operation. If not specified, the second argument will be the value of |
First signal to use in an operation. If not specified, the second argument will be the value of | ||
second_signal | :: SignalID? | Second signal to use in an operation. If not specified, the second argument will be the value of |
Second signal to use in an operation. If not specified, the second argument will be the value of | ||
first_constant | :: int? | Constant to use as the first argument of the operation. Has no effect when |
Constant to use as the first argument of the operation. Has no effect when | ||
second_constant | :: int? | Constant to use as the second argument of the operation. Has no effect when |
Constant to use as the second argument of the operation. Has no effect when | ||
operation | :: "*" or "/" or "+" or "-" or "%" or "^" or "<<" or ">>" or "AND" or "OR" or "XOR" ? | When not specified, defaults to |
When not specified, defaults to | ||
output_signal | :: SignalID? | Specifies the signal to output. |
Specifies the signal to output. |
"=" | "equal to" |
">" | "greater than" |
"<" | "lesser than" |
"≥" | "greater than or equal to" |
">=" | "greater than or equal to" |
"≤" | "lesser than or equal to" |
"<=" | "lesser than or equal to" |
"≠" | "not equal to" |
"!=" | "not equal to" |
first_signal | :: SignalID? | Defaults to blank. |
Defaults to blank. | ||
second_signal | :: SignalID? | Second signal to use in an operation, if any. If this is not specified, the second argument to a decider combinator's operation is assumed to be the value of |
Second signal to use in an operation, if any. If this is not specified, the second argument to a decider combinator's operation is assumed to be the value of | ||
constant | :: uint? | Constant to use as the second argument of operation. Defaults to |
Constant to use as the second argument of operation. Defaults to | ||
comparator | :: ComparatorString? | Specifies how the inputs should be compared. If not specified, defaults to |
Specifies how the inputs should be compared. If not specified, defaults to | ||
output_signal | :: SignalID? | Defaults to blank. |
Defaults to blank. | ||
copy_count_from_input | :: boolean? | Defaults to |
Defaults to |
comparator | :: ComparatorString? | Specifies how the inputs should be compared. If not specified, defaults to |
Specifies how the inputs should be compared. If not specified, defaults to | ||
first_signal | :: SignalID? | Defaults to blank |
Defaults to blank | ||
second_signal | :: SignalID? | What to compare |
What to compare | ||
constant | :: int? | Constant to compare |
Constant to compare |
condition | :: CircuitCondition | |
fulfilled | :: boolean? | Whether the condition is currently fulfilled |
Whether the condition is currently fulfilled |
wire | :: defines.wire_type | Wire color, either defines.wire_type.red or defines.wire_type.green. |
Wire color, either defines.wire_type.red or defines.wire_type.green. | ||
target_entity | :: LuaEntity | |
source_circuit_id | :: defines.circuit_connector_id | |
target_circuit_id | :: defines.circuit_connector_id |
source_wire_connector | :: defines.wire_connection_id | |
target_entity | :: LuaEntity | |
target_wire_connector | :: defines.wire_connection_id |
wire | :: defines.wire_type | The type of wire used. |
The type of wire used. | ||
target_entity | :: LuaEntity | The entity to (dis)connect the source entity with. |
The entity to (dis)connect the source entity with. | ||
source_circuit_id | :: defines.circuit_connector_id? | Mandatory if the source entity has more than one circuit connection using circuit wire. |
Mandatory if the source entity has more than one circuit connection using circuit wire. | ||
target_circuit_id | :: defines.circuit_connector_id? | Mandatory if the target entity has more than one circuit connection using circuit wire. |
Mandatory if the target entity has more than one circuit connection using circuit wire. | ||
source_wire_id | :: defines.wire_connection_id? | Mandatory if the source entity has more than one wire connection using copper wire. |
Mandatory if the source entity has more than one wire connection using copper wire. | ||
target_wire_id | :: defines.wire_connection_id? | Mandatory if the target entity has more than one wire connection using copper wire. |
Mandatory if the target entity has more than one wire connection using copper wire. |
target_entity | :: LuaEntity | |
target_circuit_id | :: defines.circuit_connector_id? | If the wire being dragged is a circuit wire this is the connector id. |
If the wire being dragged is a circuit wire this is the connector id. | ||
target_wire_id | :: defines.wire_connection_id? | If the wire being dragged is copper wire this is the wire id. |
If the wire being dragged is copper wire this is the wire id. |
result | :: LuaTilePrototype | The tile prototype. |
The tile prototype. | ||
condition_size | :: uint | |
condition | :: CollisionMask |
type | :: defines.command | Type of command. The remaining fields depend on the value of this field. |
Type of command. The remaining fields depend on the value of this field. |
Other attributes may be specified depending on type
:
defines.command.attack
target | :: LuaEntity | |
distraction | :: defines.distraction? | Defaults to |
Defaults to |
defines.command.go_to_location
destination | :: MapPosition? | The position to path to. Either this or |
The position to path to. Either this or | ||
destination_entity | :: LuaEntity? | The entity to path to. Either this or |
The entity to path to. Either this or | ||
distraction | :: defines.distraction? | Defaults to |
Defaults to | ||
pathfind_flags | :: PathfinderFlags? | Flags that affect pathfinder behavior. |
Flags that affect pathfinder behavior. | ||
radius | :: double? | How close the pathfinder needs to get to its destination (in tiles). Defaults to |
How close the pathfinder needs to get to its destination (in tiles). Defaults to |
defines.command.compound
structure_type | :: defines.compound_command | How the commands should be chained together. |
How the commands should be chained together. | ||
commands | :: array[Command] | The sub-commands. |
The sub-commands. |
defines.command.group
group | :: LuaUnitGroup | The group whose command to follow. |
The group whose command to follow. | ||
distraction | :: defines.distraction? | Defaults to |
Defaults to | ||
use_group_distraction | :: boolean? | Whether the unit will use the group distraction or the commands distraction. Defaults to true. |
Whether the unit will use the group distraction or the commands distraction. Defaults to true. |
defines.command.attack_area
destination | :: MapPosition | Center of the attack area. |
Center of the attack area. | ||
radius | :: double | Radius of the attack area. |
Radius of the attack area. | ||
distraction | :: defines.distraction? | Defaults to |
Defaults to |
defines.command.wander
distraction | :: defines.distraction? | Defaults to |
Defaults to | ||
radius | :: double? | Defaults to 10. Does not apply when |
Defaults to 10. Does not apply when | ||
wander_in_group | :: boolean? | When commanding a group, defines how the group will wander. When |
When commanding a group, defines how the group will wander. When | ||
ticks_to_wait | :: uint? | Ticks to wander before successfully completing the command. Default is max uint, which means wander forever. |
Ticks to wander before successfully completing the command. Default is max uint, which means wander forever. |
defines.command.stop
distraction | :: defines.distraction? | Defaults to |
Defaults to | ||
ticks_to_wait | :: uint? | Ticks to wander before successfully completing the command. Default is max uint, which means stop forever. |
Ticks to wander before successfully completing the command. Default is max uint, which means stop forever. |
defines.command.flee
from | :: LuaEntity | The entity to flee from |
The entity to flee from | ||
distraction | :: defines.distraction? | Defaults to |
Defaults to |
defines.command.build_base
destination | :: MapPosition | Where to build the base. |
Where to build the base. | ||
distraction | :: defines.distraction? | Defaults to |
Defaults to | ||
ignore_planner | :: boolean? | Whether the units should ignore expansion candidate chunks. When |
Whether the units should ignore expansion candidate chunks. When |
allow_destroy_friendly_entities | :: boolean? | Allows pathing through friendly entities. Defaults to |
Allows pathing through friendly entities. Defaults to | ||
allow_paths_through_own_entities | :: boolean? | Allows the pathfinder to path through entities of the same force. Defaults to |
Allows the pathfinder to path through entities of the same force. Defaults to | ||
cache | :: boolean? | Enables path caching. This can be more efficient, but might fail to respond to changes in the environment. Defaults to |
Enables path caching. This can be more efficient, but might fail to respond to changes in the environment. Defaults to | ||
prefer_straight_paths | :: boolean? | Makes the pathfinder try to path in straight lines. Defaults to |
Makes the pathfinder try to path in straight lines. Defaults to | ||
low_priority | :: boolean? | Sets lower priority on the path request, meaning it might take longer to find a path at the expense of speeding up others. Defaults to |
Sets lower priority on the path request, meaning it might take longer to find a path at the expense of speeding up others. Defaults to | ||
no_break | :: boolean? | Makes the pathfinder not break in the middle of processing this pathfind, no matter how much work is needed. Defaults to |
Makes the pathfinder not break in the middle of processing this pathfind, no matter how much work is needed. Defaults to |
unit | :: string | Prototype name of the unit that would be spawned. |
Prototype name of the unit that would be spawned. | ||
spawn_points | :: array[SpawnPointDefinition] | The points at which to spawn the unit. |
The points at which to spawn the unit. |
name | :: string | Prototype name of the item the stack holds. |
Prototype name of the item the stack holds. | ||
count | :: uint? | Number of items the stack holds. If not specified, defaults to |
Number of items the stack holds. If not specified, defaults to | ||
health | :: float? | Health of the items in the stack. Defaults to |
Health of the items in the stack. Defaults to | ||
durability | :: double? | Durability of the tool items in the stack. |
Durability of the tool items in the stack. | ||
ammo | :: double? | Amount of ammo in the ammo items in the stack. |
Amount of ammo in the ammo items in the stack. | ||
tags | :: array[string]? | Tags of the items with tags in the stack. |
Tags of the items with tags in the stack. |
string | The name of the item, which represents a full stack of that item. |
ItemStackDefinition | The detailed definition of an item stack. |
-- Both of these lines specify an item stack of one iron plate
{name="iron-plate"}
{name="iron-plate", count=1}
-- This is a stack of 47 copper plates
{name="copper-plate", count=47}
These are both full stacks of iron plates (for iron-plate, a full stack is 100 plates)
"iron-plate"
{name="iron-plate", count=100}
string | The technology name. |
LuaTechnology | A reference to LuaTechnology may be passed directly. |
LuaTechnologyPrototype | A reference to LuaTechnologyPrototype may be passed directly. |
uint | It will be the index of the surface. |
string | It will be the surface name. E.g. |
LuaSurface | A reference to LuaSurface may be passed directly. |
"time" | |
"full" | |
"empty" | |
"item_count" | |
"circuit" | |
"inactivity" | |
"robots_inactive" | |
"fluid_count" | |
"passenger_present" | |
"passenger_not_present" |
type | :: WaitConditionType | |
compare_type | :: "and" or "or" | Specifies how this condition is to be compared with the preceding conditions in the corresponding |
Specifies how this condition is to be compared with the preceding conditions in the corresponding | ||
ticks | :: uint? | Number of ticks to wait when |
Number of ticks to wait when | ||
condition | :: CircuitCondition? | Only present when |
Only present when |
station | :: string? | Name of the station. |
Name of the station. | ||
rail | :: LuaEntity? | Rail to path to. Ignored if |
Rail to path to. Ignored if | ||
rail_direction | :: defines.rail_direction? | When a train is allowed to reach rail target from any direction it will be |
When a train is allowed to reach rail target from any direction it will be | ||
wait_conditions | :: array[WaitCondition]? | |
temporary | :: boolean? | Only present when the station is temporary, the value is then always |
Only present when the station is temporary, the value is then always |
current | :: uint | Index of the currently active record |
Index of the currently active record | ||
records | :: array[TrainScheduleRecord] |
"entity" | Fires at an entity. |
"position" | Fires directly at a position. |
"direction" | Fires in a direction. |
action | :: array[TriggerItem]? | |
target_type | :: TargetType | |
clamp_position | :: boolean? | When |
When | ||
category | :: string | Ammo category of this ammo. |
Ammo category of this ammo. | ||
energy_consumption | :: double? | Energy consumption of a single shot, if applicable. Defaults to |
Energy consumption of a single shot, if applicable. Defaults to | ||
range_modifier | :: double? | |
cooldown_modifier | :: double? | |
consumption_modifier | :: double? |
entity | :: LuaEntity? | The target entity. |
The target entity. | ||
position | :: MapPosition? | The target position. |
The target position. |
bonus | :: float | The percentual increase of the attribute. A value of |
The percentual increase of the attribute. A value of |
consumption | :: ModuleEffectValue? | |
speed | :: ModuleEffectValue? | |
productivity | :: ModuleEffectValue? | |
pollution | :: ModuleEffectValue? |
-- These are the effects of the vanilla Productivity Module 3 (up to floating point imprecisions)
{consumption={bonus=0.6},
speed={bonus=-0.15},
productivity={bonus=0.06},
pollution={bonus=0.075}}
true
] "not-rotatable" | Prevents the entity from being rotated before or after placement. |
"placeable-neutral" | Determines the default force when placing entities in the map editor and using the "AUTO" option for the force. |
"placeable-player" | Determines the default force when placing entities in the map editor and using the "AUTO" option for the force. |
"placeable-enemy" | Determines the default force when placing entities in the map editor and using the "AUTO" option for the force. |
"placeable-off-grid" | Determines whether the entity needs to be aligned with the invisible grid within the world. Most entities are confined in this way, with a few exceptions such as trees and land mines. |
"player-creation" | Makes it possible to blueprint, deconstruct, and repair the entity (which can be turned off again using the specific flags). Makes it possible for the biter AI to target the entity as a distraction. Enables dust to automatically be created when building the entity. If the entity does not have a |
"building-direction-8-way" | Uses 45 degree angle increments when selecting direction. |
"filter-directions" | Used to automatically detect the proper direction of the entity if possible. Used by the pump, train stop, and train signal by default. |
"fast-replaceable-no-build-while-moving" | Fast replace will not apply when building while moving. |
"breaths-air" | Used to specify that the entity breathes air, and is thus affected by poison. |
"not-repairable" | Used to specify that the entity can not be 'healed' by repair packs. |
"not-on-map" | Prevents the entity from being drawn on the map. |
"not-deconstructable" | Prevents the entity from being deconstructed. |
"not-blueprintable" | Prevents the entity from being part of a blueprint. |
"hidden" | Hides the entity from the bonus GUI and from the "made in"-property of recipe tooltips. |
"hide-alt-info" | Hides the alt-info of this entity when in alt-mode. |
"fast-replaceable-no-cross-type-while-moving" | Does not fast replace this entity over other entity types when building while moving. |
"no-gap-fill-while-building" | |
"not-flammable" | Does not apply fire stickers to the entity. |
"no-automated-item-removal" | Prevents inserters and loaders from taking items from this entity. |
"no-automated-item-insertion" | Prevents inserters and loaders from inserting items into this entity. |
"no-copy-paste" | Prevents the entity from being copy-pasted. |
"not-selectable-in-game" | Disallows selection of the entity even when a selection box is specified for other reasons. For example, selection boxes are used to determine the size of outlines to be shown when highlighting entities inside electric pole ranges. |
"not-upgradable" | Prevents the entity from being selected by the upgrade planner. |
"not-in-kill-statistics" | Prevents the entity from being shown in the kill statistics. |
"not-in-made-in" | Prevents the entity from being shown in the "made in" list in recipe tooltips. |
true
] "draw-logistic-overlay" | Determines whether the logistics areas of roboports should be drawn when holding this item. Used by the deconstruction planner by default. |
"hidden" | Hides the item in the logistic requests and filters GUIs (among others). |
"always-show" | Always shows the item in the logistic requests and filters GUIs (among others) even when the recipe for that item is locked. |
"hide-from-bonus-gui" | Hides the item from the bonus GUI. |
"hide-from-fuel-tooltip" | Hides the item from the tooltip that's shown when hovering over a burner inventory. |
"not-stackable" | Prevents the item from being stacked. It also prevents the item from stacking in assembling machine input slots, which can otherwise exceed the item stack size if required by the recipe. Additionally, the item does not show an item count when in the cursor. |
"can-extend-inventory" | Makes the item act as an extension to the inventory that it is placed in. Only has an effect for items with inventory. |
"primary-place-result" | Makes construction bots prefer this item when building the entity specified by its |
"mod-openable" | Allows the item to be opened by the player, firing the |
"only-in-cursor" | Makes it so the item is deleted when clearing the cursor, instead of being put into the player's inventory. The copy-paste tools use this by default, for example. |
"spawnable" | Allows the item to be spawned by a quickbar shortcut or custom input. |
"ground-tile" | |
"water-tile" | |
"resource-layer" | |
"doodad-layer" | |
"floor-layer" | |
"item-layer" | |
"ghost-layer" | |
"object-layer" | |
"player-layer" | |
"train-layer" | |
"rail-layer" | |
"transport-belt-layer" | |
"not-setup" |
true
] true
] CollisionMaskLayer | |
"not-colliding-with-itself" | Any two entities that both have this option enabled on their prototype and have an identical collision mask layers list will not collide. Other collision mask options are not included in the identical layer list check. This does mean that two different prototypes with the same collision mask layers and this option enabled will not collide. |
"consider-tile-transitions" | Uses the prototypes position rather than its collision box when doing collision checks with tile prototypes. Allows the prototype to overlap colliding tiles up until its center point. This is only respected for character movement and cars driven by players. |
"colliding-with-tiles-only" | Any prototype with this collision option will only be checked for collision with other prototype's collision masks if they are a tile. |
name | :: string | Name of the LuaEntityPrototype. |
Name of the LuaEntityPrototype. | ||
direction | :: float | |
direction_deviation | :: float | |
speed | :: float | |
speed_deviation | :: float | |
starting_frame_speed | :: float | |
starting_frame_speed_deviation | :: float | |
height | :: float | |
height_deviation | :: float | |
vertical_speed | :: float | |
vertical_speed_deviation | :: float | |
center | :: Vector | This vector is a table with |
This vector is a table with | ||
creation_distance | :: double | |
creation_distance_orientation | :: double | |
use_source_position | :: boolean |
type | :: string | Name of the LuaFluidPrototype. |
Name of the LuaFluidPrototype. | ||
damage_modifier | :: double | Multiplier applied to the damage of an attack. |
Multiplier applied to the damage of an attack. |
type | :: "projectile" or "stream" or "beam" | The type of AttackParameter. |
The type of AttackParameter. | ||
range | :: float | Maximum range of attack. |
Maximum range of attack. | ||
min_range | :: float | Minimum range of attack. Used with flamethrower turrets to prevent self-immolation. |
Minimum range of attack. Used with flamethrower turrets to prevent self-immolation. | ||
range_mode | :: "center-to-center" or "bounding-box-to-bounding-box" | Defines how the range is determined. |
Defines how the range is determined. | ||
fire_penalty | :: float | When searching for the nearest enemy to attack, |
When searching for the nearest enemy to attack, | ||
rotate_penalty | :: float | When searching for an enemy to attack, a higher |
When searching for an enemy to attack, a higher | ||
health_penalty | :: float | When searching for an enemy to attack, a higher |
When searching for an enemy to attack, a higher | ||
min_attack_distance | :: float | If less than |
If less than | ||
turn_range | :: float | The arc that the entity can attack in as a fraction of a circle. A value of |
The arc that the entity can attack in as a fraction of a circle. A value of | ||
damage_modifier | :: float | Multiplier applied to the damage of an attack. |
Multiplier applied to the damage of an attack. | ||
ammo_consumption_modifier | :: float | Multiplier applied to the ammo consumption of an attack. |
Multiplier applied to the ammo consumption of an attack. | ||
cooldown | :: float | Minimum amount of ticks between shots. If this is less than |
Minimum amount of ticks between shots. If this is less than | ||
warmup | :: uint | Number of ticks it takes for the weapon to actually shoot after it has been ordered to do so. |
Number of ticks it takes for the weapon to actually shoot after it has been ordered to do so. | ||
movement_slow_down_factor | :: double | |
movement_slow_down_cooldown | :: float | |
ammo_type | :: AmmoType? | |
ammo_categories | :: array[string]? | List of the names of compatible LuaAmmoCategoryPrototypes. |
List of the names of compatible LuaAmmoCategoryPrototypes. |
Other attributes may be specified depending on type
:
projectile
projectile_center | :: Vector | |
projectile_creation_distance | :: float | |
projectile_orientation_offset | :: float | |
shell_particle | :: CircularParticleCreationSpecification? | |
projectile_creation_parameters | :: array[CircularProjectileCreationSpecification]? |
stream
gun_barrel_length | :: float | |
gun_center_shift | :: GunShift4Way | |
fluid_consumption | :: float | |
fluids | :: array[AttackParameterFluid]? | |
projectile_creation_parameters | :: array[CircularProjectileCreationSpecification]? |
type | :: "throw" or "equipment-remote" or "use-on-self" or "artillery-remote" or "destroy-cliffs" |
Other attributes may be specified depending on type
:
throw
attack_parameters | :: AttackParameters | |
uses_stack | :: boolean | Whether using the capsule consumes an item from the stack. |
Whether using the capsule consumes an item from the stack. |
equipment-remote
equipment | :: string | Name of the LuaEquipmentPrototype. |
Name of the LuaEquipmentPrototype. |
use-on-self
attack_parameters | :: AttackParameters |
artillery-remote
flare | :: string | Name of the flare prototype. |
Name of the flare prototype. |
destroy-cliffs
attack_parameters | :: AttackParameters | |
radius | :: float | |
timeout | :: uint |
true
] "blueprint" | Selects entities and tiles as if selecting them for a blueprint. |
"deconstruct" | Selects entities and tiles as if selecting them for deconstruction. |
"cancel-deconstruct" | Selects entities and tiles as if selecting them for deconstruction cancellation. |
"items" | Selects items on the ground. |
"trees" | Selects trees. |
"buildable-type" | Selects entities which are considered a building, plus landmines. |
"nothing" | Selects no entities or tiles, but is useful to select an area. |
"items-to-place" | Selects entities and tiles that can be built by an item. |
"any-entity" | Selects all entities. |
"any-tile" | Selects all tiles. |
"same-force" | Selects entities with the same force as the selecting player. |
"not-same-force" | Selects entities with a different force as the selecting player. |
"friend" | Selects entities from a friendly force. |
"enemy" | Selects entities from an enemy force. |
"upgrade" | Selects entities as if selecting them for upgrading. |
"cancel-upgrade" | Selects entities as if selecting them for upgrade cancellation. |
"downgrade" | Selects entities as if selecting them for downgrading. |
"entity-with-health" | Selects entities that are entities with health. |
"entity-with-force" | Deprecated. Replaced by |
"is-military-target" | Selects entities that are military targets. |
"entity-with-owner" | Selects entities that are entities with owner. |
"avoid-rolling-stock" | Selects entities that are not |
"entity-ghost" | Selects entities that are |
"tile-ghost" | Selects entities that are |
storage | :: uint | Number of available items in the storage members. |
Number of available items in the storage members. | ||
passive-provider | :: uint | Number of available items in the passive provider members. |
Number of available items in the passive provider members. | ||
buffer | :: uint | Number of available items in the buffer members. |
Number of available items in the buffer members. | ||
active-provider | :: uint | Number of available items in the active provider members. |
Number of available items in the active provider members. |
storage | :: array[LuaLogisticPoint] | |
passive-provider | :: array[LuaLogisticPoint] | |
buffer | :: array[LuaLogisticPoint] | |
active-provider | :: array[LuaLogisticPoint] |
"top-left" | |
"middle-left" | |
"left" | The same as |
"bottom-left" | |
"top-center" | |
"middle-center" | |
"center" | The same as |
"bottom-center" | |
"top-right" | |
"right" | The same as |
"bottom-right" |
name | :: defines.events | The identifier of the event this handler was registered to. |
The identifier of the event this handler was registered to. | ||
tick | :: uint | The tick during which the event happened. |
The tick during which the event happened. | ||
mod_name | :: string? | The name of the mod that raised the event if it was raised using LuaBootstrap::raise_event. |
The name of the mod that raised the event if it was raised using LuaBootstrap::raise_event. |
old_version | :: string | Old version of the mod. May be |
Old version of the mod. May be | ||
new_version | :: string | New version of the mod. May be |
New version of the mod. May be |
old_version | :: string? | Old version of the map. Present only when loading map version other than the current version. |
Old version of the map. Present only when loading map version other than the current version. | ||
new_version | :: string? | New version of the map. Present only when loading map version other than the current version. |
New version of the map. Present only when loading map version other than the current version. | ||
mod_changes | :: dictionary[string → ModChangeData] | Dictionary of mod changes. It is indexed by mod name. |
Dictionary of mod changes. It is indexed by mod name. | ||
mod_startup_settings_changed | :: boolean |
|
| ||
migration_applied | :: boolean |
|
|
name | :: string | The name of the command. |
The name of the command. | ||
tick | :: uint | The tick the command was used in. |
The tick the command was used in. | ||
player_index | :: uint? | The player who issued the command, or |
The player who issued the command, or | ||
parameter | :: string? | The parameter passed after the command, if there is one. |
The parameter passed after the command, if there is one. |
true
] "left" | |
"right" | |
"middle" | |
"button-4" | |
"button-5" | |
"button-6" | |
"button-7" | |
"button-8" | |
"button-9" |
"all" | All forces pass. |
"enemy" | Forces which will attack pass. |
"ally" | Forces which won't attack pass. |
"friend" | Forces which are friends pass. |
"not-friend" | Forces which are not friends pass. |
"same" | The same force pass. |
"not-same" | The non-same forces pass. |
string | A string of a number |
"water-tile" | 15 |
"ground-tile" | 25 |
"tile-transition" | 26 |
"decals" | 27 |
"lower-radius-visualization" | 29 |
"radius-visualization" | 30 |
"transport-belt-integration" | 65 |
"resource" | 66 |
"building-smoke" | 67 |
"decorative" | 92 |
"ground-patch" | 93 |
"ground-patch-higher" | 94 |
"ground-patch-higher2" | 95 |
"remnants" | 112 |
"floor" | 113 |
"transport-belt" | 114 |
"transport-belt-endings" | 115 |
"floor-mechanics-under-corpse" | 120 |
"corpse" | 121 |
"floor-mechanics" | 122 |
"item" | 123 |
"lower-object" | 124 |
"transport-belt-circuit-connector" | 126 |
"lower-object-above-shadow" | 127 |
"object" | 129 |
"higher-object-under" | 131 |
"higher-object-above" | 132 |
"item-in-inserter-hand" | 134 |
"wires" | 135 |
"wires-above" | 136 |
"entity-info-icon" | 138 |
"entity-info-icon-above" | 139 |
"explosion" | 142 |
"projectile" | 143 |
"smoke" | 144 |
"air-object" | 145 |
"air-entity-info-icon" | 147 |
"light-effect" | 148 |
"selection-box" | 187 |
"higher-selection-box" | 188 |
"collision-selection-box" | 189 |
"arrow" | 190 |
"cursor" | 210 |
"game-effect" | |
"gui-effect" | |
"ambient" | |
"environment" | |
"walking" | |
"alert" | |
"wind" |
"button" | A clickable element. Relevant event: on_gui_click |
"sprite-button" | A |
"checkbox" | A clickable element with a check mark that can be turned off or on. Relevant event: on_gui_checked_state_changed |
"flow" | An invisible container that lays out its children either horizontally or vertically. |
"frame" | A non-transparent box that contains other elements. It can have a title (set via the |
"label" | A piece of text. |
"line" | A horizontal or vertical separation line. |
"progressbar" | A partially filled bar that can be used to indicate progress. |
"table" | An invisible container that lays out its children in a specific number of columns. The width of each column is determined by the widest element it contains. |
"textfield" | A single-line box the user can type into. Relevant events: on_gui_text_changed, on_gui_confirmed |
"radiobutton" | An element that is similar to a |
"sprite" | An element that shows an image. |
"scroll-pane" | An invisible element that is similar to a |
"drop-down" | A drop-down containing strings of text. Relevant event: on_gui_selection_state_changed |
"list-box" | A list of strings, only one of which can be selected at a time. Shows a scroll bar if necessary. Relevant event: on_gui_selection_state_changed |
"camera" | A camera that shows the game at the given position on the given surface. It can visually track an entity that is set after the element has been created. |
"choose-elem-button" | A button that lets the player pick from a certain kind of prototype, with optional filtering. Relevant event: on_gui_elem_changed |
"text-box" | A multi-line |
"slider" | A horizontal number line which can be used to choose a number. Relevant event: on_gui_value_changed |
"minimap" | A minimap preview, similar to the normal player minimap. It can visually track an entity that is set after the element has been created. |
"entity-preview" | A preview of an entity. The entity has to be set after the element has been created. |
"empty-widget" | An empty element that just exists. The root GUI elements |
"tabbed-pane" | A collection of |
"tab" | A tab for use in a |
"switch" | A switch with three possible states. Can have labels attached to either side. Relevant event: on_gui_switch_state_changed |
"nowhere" | Will remove the arrow entirely. |
"goal" | Will point to the current goal. |
"entity_info" | |
"active_window" | |
"entity" | |
"position" | |
"crafting_queue" | |
"item_stack" | Will point to a given item stack in an inventory. |
"never" | |
"dont-show-but-allow-scrolling" | |
"always" | |
"auto" | |
"auto-and-reserve-space" |
filter | :: "hidden" or "name" or "subgroup" or "default-temperature" or "max-temperature" or "heat-capacity" or "fuel-value" or "emissions-multiplier" or "gas-temperature" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
name
For use within nested filters such as the has-product-fluid
filter of array[RecipePrototypeFilter].
To get a specific prototype by name, see LuaGameScript::fluid_prototypes.
name | :: string or array[string] | The prototype name, or list of acceptable names. |
The prototype name, or list of acceptable names. |
subgroup
default-temperature
comparison | :: ComparatorString | |
value | :: double | The value to compare against. |
The value to compare against. |
max-temperature
comparison | :: ComparatorString | |
value | :: double | The value to compare against. |
The value to compare against. |
heat-capacity
comparison | :: ComparatorString | |
value | :: double | The value to compare against. |
The value to compare against. |
fuel-value
comparison | :: ComparatorString | |
value | :: double | The value to compare against. |
The value to compare against. |
emissions-multiplier
comparison | :: ComparatorString | |
value | :: double | The value to compare against. |
The value to compare against. |
gas-temperature
comparison | :: ComparatorString | |
value | :: double | The value to compare against. |
The value to compare against. |
filter | :: "allowed-without-fight" or "type" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
filter | :: "decal" or "autoplace" or "collision-mask" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
collision-mask
mask | :: CollisionMask or CollisionMaskWithFlags | |
mask_mode | :: "collides" or "layers-equals" or "contains-any" or "contains-all" | How to filter. |
How to filter. |
filter | :: "flying-robot" or "robot-with-logistics-interface" or "rail" or "ghost" or "explosion" or "vehicle" or "crafting-machine" or "rolling-stock" or "turret" or "transport-belt-connectable" or "wall-connectable" or "buildable" or "placable-in-editor" or "clonable" or "selectable" or "hidden" or "entity-with-health" or "building" or "fast-replaceable" or "uses-direction" or "minable" or "circuit-connectable" or "autoplace" or "blueprintable" or "item-to-place" or "name" or "type" or "collision-mask" or "flag" or "build-base-evolution-requirement" or "selection-priority" or "emissions" or "crafting-category" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
name
For use within nested filters such as the place-result
filter of array[ItemPrototypeFilter].
To get a specific prototype by name, see LuaGameScript::entity_prototypes.
name | :: string or array[string] | The prototype name, or list of acceptable names. |
The prototype name, or list of acceptable names. |
type
Usage example:
game.get_filtered_entity_prototypes({{filter = "type", type = "unit"}})
type | :: string or array[string] | The prototype type, or a list of acceptable types. |
The prototype type, or a list of acceptable types. |
collision-mask
Usage example:
game.get_filtered_entity_prototypes({{filter = "collision-mask", mask = "player-layer", mask_mode = "collides"}})
mask | :: CollisionMask or CollisionMaskWithFlags | |
mask_mode | :: "collides" or "layers-equals" or "contains-any" or "contains-all" |
flag
Usage example:
game.get_filtered_entity_prototypes({{filter = "flag", flag = "placeable-player"}, {filter = "flag", flag = "placeable-enemy", mode = "and"}})
flag | :: EntityPrototypeFlag |
build-base-evolution-requirement
comparison | :: ComparatorString | |
value | :: double | The value to compare against. |
The value to compare against. |
selection-priority
comparison | :: ComparatorString | |
value | :: uint8 | The value to compare against. |
The value to compare against. |
emissions
comparison | :: ComparatorString | |
value | :: double | The value to compare against. |
The value to compare against. |
crafting-category
crafting_category | :: string | Matches if the prototype is for a crafting machine with this crafting category. |
Matches if the prototype is for a crafting machine with this crafting category. |
filter | :: "item-to-place" or "type" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
filter | :: "tool" or "mergeable" or "item-with-inventory" or "selection-tool" or "item-with-label" or "has-rocket-launch-products" or "fuel" or "place-result" or "burnt-result" or "place-as-tile" or "placed-as-equipment-result" or "name" or "type" or "flag" or "subgroup" or "fuel-category" or "stack-size" or "default-request-amount" or "wire-count" or "fuel-value" or "fuel-acceleration-multiplier" or "fuel-top-speed-multiplier" or "fuel-emissions-multiplier" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
place-result
elem_filters | :: array[EntityPrototypeFilter]? | Filters for the place result. |
Filters for the place result. |
burnt-result
elem_filters | :: array[ItemPrototypeFilter]? | Filters for the burnt result. |
Filters for the burnt result. |
place-as-tile
elem_filters | :: array[TilePrototypeFilter]? | Filters for the placed tile. |
Filters for the placed tile. |
placed-as-equipment-result
elem_filters | :: array[EquipmentPrototypeFilter]? | Filters for the placed equipment. |
Filters for the placed equipment. |
name
For use within nested filters such as the has-product-item
filter of array[RecipePrototypeFilter].
To get a specific prototype by name, see LuaGameScript::item_prototypes.
name | :: string or array[string] | The prototype name, or list of acceptable names. |
The prototype name, or list of acceptable names. |
type
Usage example:
game.get_filtered_item_prototypes({{filter = "type", type = "armor"}})
type | :: string or array[string] | The prototype type, or a list of acceptable types. |
The prototype type, or a list of acceptable types. |
flag
flag | :: ItemPrototypeFlag |
subgroup
fuel-category
fuel-category | :: string | A LuaFuelCategoryPrototype name |
A LuaFuelCategoryPrototype name |
stack-size
Usage example:
game.get_filtered_item_prototypes({{filter = "stack-size", comparison = ">", value = 20}, {filter = "stack-size", comparison = "<", value = 100, mode = "and"}})
comparison | :: ComparatorString | |
value | :: uint | The value to compare against. |
The value to compare against. |
default-request-amount
comparison | :: ComparatorString | |
value | :: uint | The value to compare against. |
The value to compare against. |
wire-count
comparison | :: ComparatorString | |
value | :: uint | The value to compare against. |
The value to compare against. |
fuel-value
comparison | :: ComparatorString | |
value | :: double | The value to compare against. |
The value to compare against. |
fuel-acceleration-multiplier
comparison | :: ComparatorString | |
value | :: double | The value to compare against. |
The value to compare against. |
fuel-top-speed-multiplier
comparison | :: ComparatorString | |
value | :: double | The value to compare against. |
The value to compare against. |
fuel-emissions-multiplier
comparison | :: ComparatorString | |
value | :: double | The value to compare against. |
The value to compare against. |
filter | :: "type" or "mod" or "setting-type" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
filter | :: "enabled" or "hidden" or "hidden-from-flow-stats" or "hidden-from-player-crafting" or "allow-as-intermediate" or "allow-intermediates" or "allow-decomposition" or "always-show-made-in" or "always-show-products" or "show-amount-in-title" or "has-ingredients" or "has-products" or "has-ingredient-item" or "has-ingredient-fluid" or "has-product-item" or "has-product-fluid" or "subgroup" or "category" or "energy" or "emissions-multiplier" or "request-paste-multiplier" or "overload-multiplier" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
has-ingredient-item
elem_filters | :: array[ItemPrototypeFilter]? | Matches if at least 1 ingredient is an item that matches these filters. |
Matches if at least 1 ingredient is an item that matches these filters. |
has-ingredient-fluid
-- selects recipes that consume sulfuric acid
{{filter = "has-ingredient-fluid", elem_filters = {{filter = "name", name = "sulfuric-acid"}}}}
elem_filters | :: array[FluidPrototypeFilter]? | Matches if at least 1 ingredient is a fluid that matches these filters. |
Matches if at least 1 ingredient is a fluid that matches these filters. |
has-product-item
Usage example:
-- selects recipes that produce an item
{{filter = "has-product-item"}}
-- selects recipes that produce iron plates
{{filter = "has-product-item", elem_filters = {{filter = "name", name = "iron-plate"}}}}
-- selects recipes that produce items that place furnaces
{{filter = "has-product-item", elem_filters = {{filter = "place-result", elem_filters = {{filter = "type", type = "furnace"}}}}}}
elem_filters | :: array[ItemPrototypeFilter]? | Matches if at least 1 product is an item that matches these filters. |
Matches if at least 1 product is an item that matches these filters. |
has-product-fluid
elem_filters | :: array[FluidPrototypeFilter]? | Matches if at least 1 product is a fluid that matches these filters. |
Matches if at least 1 product is a fluid that matches these filters. |
subgroup
category
category | :: string | A LuaRecipeCategoryPrototype name |
A LuaRecipeCategoryPrototype name |
energy
comparison | :: ComparatorString | |
value | :: double | The value to compare against. |
The value to compare against. |
emissions-multiplier
comparison | :: ComparatorString | |
value | :: double | The value to compare against. |
The value to compare against. |
request-paste-multiplier
comparison | :: ComparatorString | |
value | :: uint | The value to compare against. |
The value to compare against. |
overload-multiplier
comparison | :: ComparatorString | |
value | :: uint | The value to compare against. |
The value to compare against. |
filter | :: "enabled" or "hidden" or "upgrade" or "visible-when-disabled" or "has-effects" or "has-prerequisites" or "research-unit-ingredient" or "unlocks-recipe" or "level" or "max-level" or "time" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
research-unit-ingredient
ingredient | :: string | The research ingredient to check. |
The research ingredient to check. |
unlocks-recipe
recipe | :: string | The recipe to check. |
The recipe to check. |
level
comparison | :: ComparatorString | |
value | :: uint | The value to compare against. |
The value to compare against. |
max-level
comparison | :: ComparatorString | |
value | :: uint | The value to compare against. |
The value to compare against. |
time
comparison | :: ComparatorString | |
value | :: uint | The value to compare against. |
The value to compare against. |
filter | :: "minable" or "autoplace" or "blueprintable" or "item-to-place" or "collision-mask" or "walking-speed-modifier" or "vehicle-friction-modifier" or "decorative-removal-probability" or "emissions" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
collision-mask
mask | :: CollisionMask or CollisionMaskWithFlags | |
mask_mode | :: "collides" or "layers-equals" or "contains-any" or "contains-all" | How to filter. |
How to filter. |
walking-speed-modifier
comparison | :: ComparatorString | |
value | :: double | The value to compare against. |
The value to compare against. |
vehicle-friction-modifier
comparison | :: ComparatorString | |
value | :: double | The value to compare against. |
The value to compare against. |
decorative-removal-probability
comparison | :: ComparatorString | |
value | :: float | The value to compare against. |
The value to compare against. |
emissions
comparison | :: ComparatorString | |
value | :: double | The value to compare against. |
The value to compare against. |
filter | :: "type" or "name" or "ghost_type" or "ghost_name" or "ghost" or "rail" or "rail-signal" or "rolling-stock" or "robot-with-logistics-interface" or "vehicle" or "turret" or "crafting-machine" or "wall-connectable" or "transport-belt-connectable" or "circuit-network-connectable" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
filter | :: "type" or "name" or "ghost_type" or "ghost_name" or "ghost" or "rail" or "rail-signal" or "rolling-stock" or "robot-with-logistics-interface" or "vehicle" or "turret" or "crafting-machine" or "wall-connectable" or "transport-belt-connectable" or "circuit-network-connectable" or "original-damage-amount" or "final-damage-amount" or "damage-type" or "final-health" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
type
type | :: string | The prototype type. |
The prototype type. |
name
name | :: string | The prototype name. |
The prototype name. |
ghost_type
type | :: string | The ghost prototype type. |
The ghost prototype type. |
ghost_name
name | :: string | The ghost prototype name. |
The ghost prototype name. |
original-damage-amount
comparison | :: ComparatorString | |
value | :: float | The value to compare against. |
The value to compare against. |
final-damage-amount
comparison | :: ComparatorString | |
value | :: float | The value to compare against. |
The value to compare against. |
damage-type
type | :: string | A LuaDamagePrototype name. |
A LuaDamagePrototype name. |
final-health
comparison | :: ComparatorString | |
value | :: float | The value to compare against. |
The value to compare against. |
filter | :: "type" or "name" or "ghost_type" or "ghost_name" or "ghost" or "rail" or "rail-signal" or "rolling-stock" or "robot-with-logistics-interface" or "vehicle" or "turret" or "crafting-machine" or "wall-connectable" or "transport-belt-connectable" or "circuit-network-connectable" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
filter | :: "type" or "name" or "ghost_type" or "ghost_name" or "ghost" or "rail" or "rail-signal" or "rolling-stock" or "robot-with-logistics-interface" or "vehicle" or "turret" or "crafting-machine" or "wall-connectable" or "transport-belt-connectable" or "circuit-network-connectable" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
filter | :: "type" or "name" or "ghost_type" or "ghost_name" or "ghost" or "rail" or "rail-signal" or "rolling-stock" or "robot-with-logistics-interface" or "vehicle" or "turret" or "crafting-machine" or "wall-connectable" or "transport-belt-connectable" or "circuit-network-connectable" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
filter | :: "type" or "name" or "ghost_type" or "ghost_name" or "ghost" or "rail" or "rail-signal" or "rolling-stock" or "robot-with-logistics-interface" or "vehicle" or "turret" or "crafting-machine" or "wall-connectable" or "transport-belt-connectable" or "circuit-network-connectable" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
filter | :: "type" or "name" or "ghost_type" or "ghost_name" or "ghost" or "rail" or "rail-signal" or "rolling-stock" or "robot-with-logistics-interface" or "vehicle" or "turret" or "crafting-machine" or "wall-connectable" or "transport-belt-connectable" or "circuit-network-connectable" or "force" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
type
type | :: string | The prototype type. |
The prototype type. |
name
name | :: string | The prototype name. |
The prototype name. |
ghost_type
type | :: string | The ghost prototype type. |
The ghost prototype type. |
ghost_name
name | :: string | The ghost prototype name. |
The ghost prototype name. |
force
force | :: string | The entity force |
The entity force |
filter | :: "type" or "name" or "ghost_type" or "ghost_name" or "ghost" or "rail" or "rail-signal" or "rolling-stock" or "robot-with-logistics-interface" or "vehicle" or "turret" or "crafting-machine" or "wall-connectable" or "transport-belt-connectable" or "circuit-network-connectable" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
filter | :: "type" or "name" or "ghost_type" or "ghost_name" or "ghost" or "rail" or "rail-signal" or "rolling-stock" or "robot-with-logistics-interface" or "vehicle" or "turret" or "crafting-machine" or "wall-connectable" or "transport-belt-connectable" or "circuit-network-connectable" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
filter | :: "type" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
type
type | :: string | The prototype type. |
The prototype type. |
filter | :: "type" or "name" or "ghost_type" or "ghost_name" or "ghost" or "rail" or "rail-signal" or "rolling-stock" or "robot-with-logistics-interface" or "vehicle" or "turret" or "crafting-machine" or "wall-connectable" or "transport-belt-connectable" or "circuit-network-connectable" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
filter | :: "type" or "name" or "ghost_type" or "ghost_name" or "ghost" or "rail" or "rail-signal" or "rolling-stock" or "robot-with-logistics-interface" or "vehicle" or "turret" or "crafting-machine" or "wall-connectable" or "transport-belt-connectable" or "circuit-network-connectable" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
filter | :: "type" or "name" or "ghost_type" or "ghost_name" or "ghost" or "rail" or "rail-signal" or "rolling-stock" or "robot-with-logistics-interface" or "vehicle" or "turret" or "crafting-machine" or "wall-connectable" or "transport-belt-connectable" or "circuit-network-connectable" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
filter | :: "type" or "name" or "ghost_type" or "ghost_name" or "ghost" or "rail" or "rail-signal" or "rolling-stock" or "robot-with-logistics-interface" or "vehicle" or "turret" or "crafting-machine" or "wall-connectable" or "transport-belt-connectable" or "circuit-network-connectable" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
filter | :: "type" or "name" or "ghost_type" or "ghost_name" or "ghost" or "rail" or "rail-signal" or "rolling-stock" or "robot-with-logistics-interface" or "vehicle" or "turret" or "crafting-machine" or "wall-connectable" or "transport-belt-connectable" or "circuit-network-connectable" or "force" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
type
type | :: string | The prototype type. |
The prototype type. |
name
name | :: string | The prototype name. |
The prototype name. |
ghost_type
type | :: string | The ghost prototype type. |
The ghost prototype type. |
ghost_name
name | :: string | The ghost prototype name. |
The ghost prototype name. |
force
force | :: string | The entity force |
The entity force |
filter | :: "type" or "name" or "ghost_type" or "ghost_name" or "ghost" or "rail" or "rail-signal" or "rolling-stock" or "robot-with-logistics-interface" or "vehicle" or "turret" or "crafting-machine" or "wall-connectable" or "transport-belt-connectable" or "circuit-network-connectable" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
filter | :: "type" or "name" or "ghost_type" or "ghost_name" or "ghost" or "rail" or "rail-signal" or "rolling-stock" or "robot-with-logistics-interface" or "vehicle" or "turret" or "crafting-machine" or "wall-connectable" or "transport-belt-connectable" or "circuit-network-connectable" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
filter | :: "type" or "name" or "ghost_type" or "ghost_name" or "ghost" or "rail" or "rail-signal" or "rolling-stock" or "robot-with-logistics-interface" or "vehicle" or "turret" or "crafting-machine" or "wall-connectable" or "transport-belt-connectable" or "circuit-network-connectable" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
filter | :: "type" or "name" or "ghost_type" or "ghost_name" or "ghost" or "rail" or "rail-signal" or "rolling-stock" or "robot-with-logistics-interface" or "vehicle" or "turret" or "crafting-machine" or "wall-connectable" or "transport-belt-connectable" or "circuit-network-connectable" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
filter | :: "type" or "name" or "ghost_type" or "ghost_name" or "ghost" or "rail" or "rail-signal" or "rolling-stock" or "robot-with-logistics-interface" or "vehicle" or "turret" or "crafting-machine" or "wall-connectable" or "transport-belt-connectable" or "circuit-network-connectable" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
filter | :: "type" or "name" or "ghost_type" or "ghost_name" or "ghost" or "rail" or "rail-signal" or "rolling-stock" or "robot-with-logistics-interface" or "vehicle" or "turret" or "crafting-machine" or "wall-connectable" or "transport-belt-connectable" or "circuit-network-connectable" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
:
filter | :: "type" or "name" or "ghost_type" or "ghost_name" or "ghost" or "rail" or "rail-signal" or "rolling-stock" or "robot-with-logistics-interface" or "vehicle" or "turret" or "crafting-machine" or "wall-connectable" or "transport-belt-connectable" or "circuit-network-connectable" | The condition to filter on. |
The condition to filter on. | ||
mode | :: "or" or "and" ? | How to combine this with the previous filter. Defaults to |
How to combine this with the previous filter. Defaults to | ||
invert | :: boolean? | Inverts the condition. Default is |
Inverts the condition. Default is |
Other attributes may be specified depending on filter
: