typed-factorio 3.3.1 → 3.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -12,12 +12,12 @@ import type { VersionString } from "factorio:common"
12
12
  declare module "factorio:runtime" {
13
13
  /**
14
14
  * `math.huge` represents the maximum possible tick.
15
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/MapTick.html Online documentation}
15
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/MapTick.html Online documentation}
16
16
  */
17
17
  export type MapTick = uint64
18
18
  /**
19
19
  * The percentual increase of the attribute. A value of `0.6` means a 60% increase.
20
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ModuleEffectValue.html Online documentation}
20
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ModuleEffectValue.html Online documentation}
21
21
  */
22
22
  export type ModuleEffectValue = float
23
23
  /**
@@ -27,7 +27,7 @@ declare module "factorio:runtime" {
27
27
  * speed=-0.15,
28
28
  * productivity=0.06,
29
29
  * pollution=0.075}
30
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ModuleEffects.html Online documentation}
30
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ModuleEffects.html Online documentation}
31
31
  */
32
32
  export interface ModuleEffects {
33
33
  readonly consumption?: ModuleEffectValue
@@ -51,10 +51,9 @@ declare module "factorio:runtime" {
51
51
  * - `"<="`: "lesser than or equal to"
52
52
  * - `"≠"`: "not equal to"
53
53
  * - `"!="`: "not equal to"
54
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ComparatorString.html Online documentation}
54
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ComparatorString.html Online documentation}
55
55
  */
56
56
  export type ComparatorString = "=" | ">" | "<" | "≥" | ">=" | "≤" | "<=" | "≠" | "!="
57
- /** @see ComparatorString */
58
57
  export type ComparatorStringRead = "=" | ">" | "<" | "≥" | "≤" | "≠"
59
58
  export type SpriteType =
60
59
  | "item"
@@ -83,19 +82,15 @@ declare module "factorio:runtime" {
83
82
  *
84
83
  * The validity of a SpritePath can be verified at runtime using {@link LuaHelpers#is_valid_sprite_path LuaHelpers::is_valid_sprite_path}.
85
84
  *
86
- * {@link https://lua-api.factorio.com/2.0.17/concepts/SpritePath.html > The supported types are:}
87
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/SpritePath.html Online documentation}
85
+ * {@link https://lua-api.factorio.com/2.0.21/concepts/SpritePath.html > The supported types are:}
86
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/SpritePath.html Online documentation}
88
87
  */
89
- export type SpritePath =
90
- | (string & {
91
- _?: never
92
- })
93
- | `${SpriteType}${"/" | "."}${string}`
88
+ export type SpritePath = (string & { _?: never }) | `${SpriteType}${"/" | "."}${string}`
94
89
  /**
95
90
  * @example
96
91
  * -- Most common collision mask of buildings:
97
92
  * collision_mask = {layers = {item = true, meltable = true, object = true, player = true, water_tile = true, is_object = true, is_lower_object = true}}
98
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/CollisionMask.html Online documentation}
93
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/CollisionMask.html Online documentation}
99
94
  */
100
95
  export interface CollisionMask {
101
96
  /**
@@ -223,7 +218,7 @@ declare module "factorio:runtime" {
223
218
  * - `"check-box"`
224
219
  * - `"switch"`
225
220
  * - `"label"`
226
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/SimulationWidgetType.html Online documentation}
221
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/SimulationWidgetType.html Online documentation}
227
222
  */
228
223
  export type SimulationWidgetType =
229
224
  | "signal-id"
@@ -345,7 +340,7 @@ declare module "factorio:runtime" {
345
340
  * - `"any-goal-accessible"`: The method will return {@link TrainPathFinderOneGoalResult}.
346
341
  * - `"all-goals-accessible"`: The method will return {@link TrainPathAllGoalsResult}.
347
342
  * - `"all-goals-penalties"`: The method will return {@link TrainPathAllGoalsResult} with `penalties`.
348
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/TrainPathRequestType.html Online documentation}
343
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/TrainPathRequestType.html Online documentation}
349
344
  */
350
345
  export type TrainPathRequestType = "path" | "any-goal-accessible" | "all-goals-accessible" | "all-goals-penalties"
351
346
  /**
@@ -354,7 +349,7 @@ declare module "factorio:runtime" {
354
349
  * - {@link RailEndGoal}
355
350
  * - {@link LuaRailEnd}
356
351
  * - {@link LuaEntity}: Only if it points at train-stop that is connected to a rail.
357
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/TrainPathFinderGoal.html Online documentation}
352
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/TrainPathFinderGoal.html Online documentation}
358
353
  */
359
354
  export type TrainPathFinderGoal = TrainStopGoal | RailEndGoal | LuaRailEnd | LuaEntity
360
355
  export interface TrainStopGoal {
@@ -459,7 +454,7 @@ declare module "factorio:runtime" {
459
454
  }
460
455
  /**
461
456
  * A single pipe connection for a given fluidbox.
462
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/PipeConnection.html Online documentation}
457
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/PipeConnection.html Online documentation}
463
458
  */
464
459
  export interface PipeConnection {
465
460
  readonly flow_direction: "input" | "output" | "input-output"
@@ -517,12 +512,12 @@ declare module "factorio:runtime" {
517
512
  * - {@link LuaPostEntityDiedEventFilter}
518
513
  * - {@link LuaEntityMarkedForDeconstructionEventFilter}
519
514
  * - {@link LuaPlayerMinedEntityEventFilter}
520
- * - LuaEntityDamagedEventFilter
515
+ * - {@link LuaEntityDamagedEventFilter}
521
516
  * - {@link LuaScriptRaisedReviveEventFilter}
522
517
  * - {@link LuaEntityDiedEventFilter}
523
518
  * - {@link LuaPreRobotMinedEntityEventFilter}
524
519
  * @see EventFilterWrite
525
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/EventFilter.html Online documentation}
520
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/EventFilter.html Online documentation}
526
521
  */
527
522
  export type EventFilter =
528
523
  | LuaPrePlatformMinedEntityEventFilter[]
@@ -551,8 +546,8 @@ declare module "factorio:runtime" {
551
546
  | LuaEntityDiedEventFilter[]
552
547
  | LuaPreRobotMinedEntityEventFilter[]
553
548
  /**
554
- * Write form of {@link EventFilter}, where table-or-array concepts are allowed to take an array form.
555
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/EventFilter.html Online documentation}
549
+ * Write form of {@link EventFilter}, where some properties allow additional values as input compared to the read form.
550
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/EventFilter.html Online documentation}
556
551
  */
557
552
  export type EventFilterWrite =
558
553
  | readonly LuaPrePlatformMinedEntityEventFilter[]
@@ -602,7 +597,7 @@ declare module "factorio:runtime" {
602
597
  * - {@link LuaCommandable}: Target type {@link defines.target_type.commandable commandable}; `useful_id` {@link LuaCommandable#unique_id LuaCommandable::unique_id}
603
598
  * - {@link LuaCustomChartTag}: Target type {@link defines.target_type.custom_chart_tag custom_chart_tag}; `useful_id` {@link LuaCustomChartTag#tag_number LuaCustomChartTag::tag_number}
604
599
  * - {@link LuaGuiElement}: Target type {@link defines.target_type.gui_element gui_element}; `useful_id` {@link LuaGuiElement#index LuaGuiElement::index}
605
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/RegistrationTarget.html Online documentation}
600
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/RegistrationTarget.html Online documentation}
606
601
  */
607
602
  export type RegistrationTarget =
608
603
  | LuaEntity
@@ -803,7 +798,7 @@ declare module "factorio:runtime" {
803
798
  * - `"wire-removed"`: {@link WireRemovedUndoRedoAction}
804
799
  * - `"rotated-entity"`: {@link RotatedEntityUndoRedoAction}
805
800
  * - `"copy-entity-settings"`: {@link CopyEntitySettingsUndoRedoAction}
806
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/UndoRedoAction.html Online documentation}
801
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/UndoRedoAction.html Online documentation}
807
802
  */
808
803
  export type UndoRedoAction =
809
804
  | BuiltEntityUndoRedoAction
@@ -835,7 +830,7 @@ declare module "factorio:runtime" {
835
830
  * - `"weapon"`
836
831
  * - `"explosion"`
837
832
  * - `"enemy"`
838
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/SoundType.html Online documentation}
833
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/SoundType.html Online documentation}
839
834
  */
840
835
  export type SoundType =
841
836
  | "game-effect"
@@ -918,7 +913,7 @@ declare module "factorio:runtime" {
918
913
  * - `"controllable-remove"`
919
914
  * - `"entity-ghost"`: Selects entities that are `entity-ghost`s.
920
915
  * - `"tile-ghost"`: Selects entities that are `tile-ghost`s.
921
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/SelectionModeFlags.html Online documentation}
916
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/SelectionModeFlags.html Online documentation}
922
917
  */
923
918
  export interface SelectionModeFlags {
924
919
  /**
@@ -1037,7 +1032,7 @@ declare module "factorio:runtime" {
1037
1032
  * A set of flags. Active flags are in the dictionary as `true`, while inactive flags aren't present at all.
1038
1033
  *
1039
1034
  * By default, none of these flags are set.
1040
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ItemPrototypeFlags.html Online documentation}
1035
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ItemPrototypeFlags.html Online documentation}
1041
1036
  */
1042
1037
  export type ItemPrototypeFlags = {
1043
1038
  readonly [T in ItemPrototypeFlag]?: true
@@ -1058,7 +1053,7 @@ declare module "factorio:runtime" {
1058
1053
  * - `"spawnable"`: Allows the item to be spawned by a quickbar shortcut or custom input.
1059
1054
  * - `"spoil-result"`
1060
1055
  * - `"ignore-spoil-time-modifier"`: Controls whether the spoil time ignores the spoil time modifier in the {@link DifficultySettings}.
1061
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ItemPrototypeFlag.html Online documentation}
1056
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ItemPrototypeFlag.html Online documentation}
1062
1057
  */
1063
1058
  export type ItemPrototypeFlag =
1064
1059
  | "draw-logistic-overlay"
@@ -1078,7 +1073,7 @@ declare module "factorio:runtime" {
1078
1073
  * - `"none"`
1079
1074
  * - `"whitelist"`
1080
1075
  * - `"blacklist"`
1081
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/PrototypeFilterMode.html Online documentation}
1076
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/PrototypeFilterMode.html Online documentation}
1082
1077
  */
1083
1078
  export type PrototypeFilterMode = "none" | "whitelist" | "blacklist"
1084
1079
  export interface PipeConnectionDefinition {
@@ -1102,7 +1097,7 @@ declare module "factorio:runtime" {
1102
1097
  * The name of a {@link LuaCollisionLayerPrototype}.
1103
1098
  * @example
1104
1099
  * "is_lower_object"
1105
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/CollisionLayerID.html Online documentation}
1100
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/CollisionLayerID.html Online documentation}
1106
1101
  */
1107
1102
  export type CollisionLayerID = string
1108
1103
  export interface ItemIDFilter {
@@ -1140,19 +1135,19 @@ declare module "factorio:runtime" {
1140
1135
  *
1141
1136
  * ## Union members
1142
1137
  * - {@link ModSettingPrototypeFilter}
1143
- * - TilePrototypeFilter
1138
+ * - {@link TilePrototypeFilter}
1144
1139
  * - {@link DecorativePrototypeFilter}
1145
- * - RecipePrototypeFilter
1140
+ * - {@link RecipePrototypeFilter}
1146
1141
  * - {@link AchievementPrototypeFilter}
1147
- * - TechnologyPrototypeFilter
1142
+ * - {@link TechnologyPrototypeFilter}
1148
1143
  * - {@link AsteroidChunkPrototypeFilter}
1149
- * - ItemPrototypeFilter
1144
+ * - {@link ItemPrototypeFilter}
1150
1145
  * - {@link EquipmentPrototypeFilter}
1151
- * - EntityPrototypeFilter
1152
- * - SpaceLocationPrototypeFilter
1153
- * - FluidPrototypeFilter
1146
+ * - {@link EntityPrototypeFilter}
1147
+ * - {@link SpaceLocationPrototypeFilter}
1148
+ * - {@link FluidPrototypeFilter}
1154
1149
  * @see PrototypeFilterWrite
1155
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/PrototypeFilter.html Online documentation}
1150
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/PrototypeFilter.html Online documentation}
1156
1151
  */
1157
1152
  export type PrototypeFilter =
1158
1153
  | ModSettingPrototypeFilter[]
@@ -1168,8 +1163,8 @@ declare module "factorio:runtime" {
1168
1163
  | SpaceLocationPrototypeFilter[]
1169
1164
  | FluidPrototypeFilter[]
1170
1165
  /**
1171
- * Write form of {@link PrototypeFilter}, where table-or-array concepts are allowed to take an array form.
1172
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/PrototypeFilter.html Online documentation}
1166
+ * Write form of {@link PrototypeFilter}, where some properties allow additional values as input compared to the read form.
1167
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/PrototypeFilter.html Online documentation}
1173
1168
  */
1174
1169
  export type PrototypeFilterWrite =
1175
1170
  | readonly ModSettingPrototypeFilter[]
@@ -1186,7 +1181,7 @@ declare module "factorio:runtime" {
1186
1181
  | readonly FluidPrototypeFilterWrite[]
1187
1182
  /**
1188
1183
  * @see DisplayPanelMessageDefinitionWrite
1189
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/DisplayPanelMessageDefinition.html Online documentation}
1184
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/DisplayPanelMessageDefinition.html Online documentation}
1190
1185
  */
1191
1186
  export interface DisplayPanelMessageDefinition {
1192
1187
  /**
@@ -1203,8 +1198,8 @@ declare module "factorio:runtime" {
1203
1198
  readonly condition: CircuitConditionDefinition
1204
1199
  }
1205
1200
  /**
1206
- * Write form of {@link DisplayPanelMessageDefinition}, where table-or-array concepts are allowed to take an array form.
1207
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/DisplayPanelMessageDefinition.html Online documentation}
1201
+ * Write form of {@link DisplayPanelMessageDefinition}, where some properties allow additional values as input compared to the read form.
1202
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/DisplayPanelMessageDefinition.html Online documentation}
1208
1203
  */
1209
1204
  export interface DisplayPanelMessageDefinitionWrite {
1210
1205
  /**
@@ -1230,7 +1225,7 @@ declare module "factorio:runtime" {
1230
1225
  * - `"space-location"`
1231
1226
  * - `"asteroid-chunk"`
1232
1227
  * - `"quality"`
1233
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/SignalIDType.html Online documentation}
1228
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/SignalIDType.html Online documentation}
1234
1229
  */
1235
1230
  export type SignalIDType =
1236
1231
  | "item"
@@ -1431,7 +1426,7 @@ declare module "factorio:runtime" {
1431
1426
  * - `"play-next-track"`
1432
1427
  * - `"play-previous-track"`
1433
1428
  * - `"pause-resume-music"`
1434
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LinkedGameControl.html Online documentation}
1429
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LinkedGameControl.html Online documentation}
1435
1430
  */
1436
1431
  export type LinkedGameControl =
1437
1432
  | "move-up"
@@ -1682,7 +1677,7 @@ declare module "factorio:runtime" {
1682
1677
  * - `"create-ghost-on-entity-death"`
1683
1678
  * - `"belt-stack-size-bonus"`
1684
1679
  * - `"vehicle-logistics"`
1685
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ModifierType.html Online documentation}
1680
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ModifierType.html Online documentation}
1686
1681
  */
1687
1682
  export type ModifierType =
1688
1683
  | "inserter-stack-size-bonus"
@@ -1801,7 +1796,7 @@ declare module "factorio:runtime" {
1801
1796
  * - `"capture-spawner"`: {@link CaptureSpawnerResearchTrigger}
1802
1797
  * - `"build-entity"`: {@link BuildEntityResearchTrigger}
1803
1798
  * - `"send-item-to-orbit"`: {@link SendItemToOrbitResearchTrigger}
1804
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ResearchTrigger.html Online documentation}
1799
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ResearchTrigger.html Online documentation}
1805
1800
  */
1806
1801
  export type ResearchTrigger =
1807
1802
  | CraftItemResearchTrigger
@@ -1815,7 +1810,7 @@ declare module "factorio:runtime" {
1815
1810
  * A set of flags. Active flags are in the dictionary as `true`, while inactive flags aren't present at all.
1816
1811
  *
1817
1812
  * By default, none of these flags are set.
1818
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/EntityPrototypeFlags.html Online documentation}
1813
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/EntityPrototypeFlags.html Online documentation}
1819
1814
  */
1820
1815
  export type EntityPrototypeFlags = {
1821
1816
  readonly [T in EntityPrototypeFlag]?: true
@@ -1850,7 +1845,7 @@ declare module "factorio:runtime" {
1850
1845
  * - `"building-direction-16-way"`
1851
1846
  * - `"snap-to-rail-support-spot"`
1852
1847
  * - `"not-in-made-in"`: Prevents the entity from being shown in the "made in" list in recipe tooltips.
1853
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/EntityPrototypeFlag.html Online documentation}
1848
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/EntityPrototypeFlag.html Online documentation}
1854
1849
  */
1855
1850
  export type EntityPrototypeFlag =
1856
1851
  | "not-rotatable"
@@ -1920,7 +1915,7 @@ declare module "factorio:runtime" {
1920
1915
  * - `"local"`: The sound can be heard within the audible range around the speaker.
1921
1916
  * - `"surface"`: The sound can be heard anywhere on the speaker's surface.
1922
1917
  * - `"global"`: The sound can be heard everywhere.
1923
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ProgrammableSpeakerPlaybackMode.html Online documentation}
1918
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ProgrammableSpeakerPlaybackMode.html Online documentation}
1924
1919
  */
1925
1920
  export type ProgrammableSpeakerPlaybackMode = "local" | "surface" | "global"
1926
1921
  /**
@@ -1945,7 +1940,7 @@ declare module "factorio:runtime" {
1945
1940
  * - `"none-to-south"`
1946
1941
  * - `"south-to-none"`
1947
1942
  * - `"none-to-north"`
1948
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/CliffOrientation.html Online documentation}
1943
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/CliffOrientation.html Online documentation}
1949
1944
  */
1950
1945
  export type CliffOrientation =
1951
1946
  | "west-to-east"
@@ -1970,7 +1965,8 @@ declare module "factorio:runtime" {
1970
1965
  | "none-to-north"
1971
1966
  /**
1972
1967
  * Defines an item type that a blueprint entity will request.
1973
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/BlueprintInsertPlan.html Online documentation}
1968
+ * @see BlueprintInsertPlanWrite
1969
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/BlueprintInsertPlan.html Online documentation}
1974
1970
  */
1975
1971
  export interface BlueprintInsertPlan {
1976
1972
  /**
@@ -1982,6 +1978,20 @@ declare module "factorio:runtime" {
1982
1978
  */
1983
1979
  readonly items: ItemInventoryPositions
1984
1980
  }
1981
+ /**
1982
+ * Write form of {@link BlueprintInsertPlan}, where some properties allow additional values as input compared to the read form.
1983
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/BlueprintInsertPlan.html Online documentation}
1984
+ */
1985
+ export interface BlueprintInsertPlanWrite {
1986
+ /**
1987
+ * The prototype name and quality of the item to request.
1988
+ */
1989
+ readonly id: ItemIDAndQualityIDPairWrite
1990
+ /**
1991
+ * Describes the inventories to insert these items into.
1992
+ */
1993
+ readonly items: ItemInventoryPositions
1994
+ }
1985
1995
  export interface MarketIngredient {
1986
1996
  /**
1987
1997
  * Prototype name of the required item.
@@ -1998,7 +2008,7 @@ declare module "factorio:runtime" {
1998
2008
  }
1999
2009
  /**
2000
2010
  * A single offer on a market entity.
2001
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/Offer.html Online documentation}
2011
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/Offer.html Online documentation}
2002
2012
  */
2003
2013
  export interface Offer {
2004
2014
  /**
@@ -2013,18 +2023,18 @@ declare module "factorio:runtime" {
2013
2023
  /**
2014
2024
  * An item filter may be specified in two ways, either as a string which is an item prototype name or as a table.
2015
2025
  * @see ItemFilterWrite
2016
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ItemFilter.html Online documentation}
2026
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ItemFilter.html Online documentation}
2017
2027
  */
2018
2028
  export type ItemFilter =
2019
2029
  | {
2020
2030
  /**
2021
2031
  * The item.
2022
2032
  */
2023
- readonly name?: ItemID
2033
+ readonly name?: LuaItemPrototype
2024
2034
  /**
2025
2035
  * The quality.
2026
2036
  */
2027
- readonly quality?: QualityID
2037
+ readonly quality?: LuaQualityPrototype
2028
2038
  /**
2029
2039
  * The quality comparison type.
2030
2040
  */
@@ -2032,8 +2042,8 @@ declare module "factorio:runtime" {
2032
2042
  }
2033
2043
  | string
2034
2044
  /**
2035
- * Write form of {@link ItemFilter}, where table-or-array concepts are allowed to take an array form.
2036
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ItemFilter.html Online documentation}
2045
+ * Write form of {@link ItemFilter}, where some properties allow additional values as input compared to the read form.
2046
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ItemFilter.html Online documentation}
2037
2047
  */
2038
2048
  export type ItemFilterWrite =
2039
2049
  | {
@@ -2053,7 +2063,7 @@ declare module "factorio:runtime" {
2053
2063
  | string
2054
2064
  /**
2055
2065
  * @see ScheduleRecordWrite
2056
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ScheduleRecord.html Online documentation}
2066
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ScheduleRecord.html Online documentation}
2057
2067
  */
2058
2068
  export interface ScheduleRecord {
2059
2069
  /**
@@ -2075,8 +2085,8 @@ declare module "factorio:runtime" {
2075
2085
  readonly temporary?: boolean
2076
2086
  }
2077
2087
  /**
2078
- * Write form of {@link ScheduleRecord}, where table-or-array concepts are allowed to take an array form.
2079
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ScheduleRecord.html Online documentation}
2088
+ * Write form of {@link ScheduleRecord}, where some properties allow additional values as input compared to the read form.
2089
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ScheduleRecord.html Online documentation}
2080
2090
  */
2081
2091
  export interface ScheduleRecordWrite {
2082
2092
  /**
@@ -2162,7 +2172,7 @@ declare module "factorio:runtime" {
2162
2172
  * - `"position"`: {@link PositionGuiArrowSpecification}
2163
2173
  * - `"crafting_queue"`: {@link CraftingQueueGuiArrowSpecification}
2164
2174
  * - `"item_stack"`: {@link ItemStackGuiArrowSpecification}
2165
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/GuiArrowSpecification.html Online documentation}
2175
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/GuiArrowSpecification.html Online documentation}
2166
2176
  */
2167
2177
  export type GuiArrowSpecification =
2168
2178
  | EntityGuiArrowSpecification
@@ -2175,7 +2185,7 @@ declare module "factorio:runtime" {
2175
2185
  *
2176
2186
  * If this is specified as a three-element array then the array items are x, y and z, in that order.
2177
2187
  * @see Vector3DArray
2178
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/Vector3D.html Online documentation}
2188
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/Vector3D.html Online documentation}
2179
2189
  */
2180
2190
  export interface Vector3D {
2181
2191
  readonly x: float
@@ -2185,12 +2195,12 @@ declare module "factorio:runtime" {
2185
2195
  /**
2186
2196
  * Array form of {@link Vector3D}.
2187
2197
  * @see Vector3D
2188
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/Vector3D.html Online documentation}
2198
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/Vector3D.html Online documentation}
2189
2199
  */
2190
2200
  export type Vector3DArray = readonly [float, float, float]
2191
2201
  /**
2192
2202
  * @see TrainScheduleWrite
2193
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/TrainSchedule.html Online documentation}
2203
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/TrainSchedule.html Online documentation}
2194
2204
  */
2195
2205
  export interface TrainSchedule {
2196
2206
  /**
@@ -2200,8 +2210,8 @@ declare module "factorio:runtime" {
2200
2210
  readonly records: ScheduleRecord[]
2201
2211
  }
2202
2212
  /**
2203
- * Write form of {@link TrainSchedule}, where table-or-array concepts are allowed to take an array form.
2204
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/TrainSchedule.html Online documentation}
2213
+ * Write form of {@link TrainSchedule}, where some properties allow additional values as input compared to the read form.
2214
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/TrainSchedule.html Online documentation}
2205
2215
  */
2206
2216
  export interface TrainScheduleWrite {
2207
2217
  /**
@@ -2212,7 +2222,7 @@ declare module "factorio:runtime" {
2212
2222
  }
2213
2223
  /**
2214
2224
  * @see PlatformScheduleWrite
2215
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/PlatformSchedule.html Online documentation}
2225
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/PlatformSchedule.html Online documentation}
2216
2226
  */
2217
2227
  export interface PlatformSchedule {
2218
2228
  /**
@@ -2222,8 +2232,8 @@ declare module "factorio:runtime" {
2222
2232
  readonly records: ScheduleRecord[]
2223
2233
  }
2224
2234
  /**
2225
- * Write form of {@link PlatformSchedule}, where table-or-array concepts are allowed to take an array form.
2226
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/PlatformSchedule.html Online documentation}
2235
+ * Write form of {@link PlatformSchedule}, where some properties allow additional values as input compared to the read form.
2236
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/PlatformSchedule.html Online documentation}
2227
2237
  */
2228
2238
  export interface PlatformScheduleWrite {
2229
2239
  /**
@@ -2240,17 +2250,17 @@ declare module "factorio:runtime" {
2240
2250
  }
2241
2251
  /**
2242
2252
  * A recipe prototype with optional quality specification.
2243
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/RecipeIDAndQualityIDPair.html Online documentation}
2253
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/RecipeIDAndQualityIDPair.html Online documentation}
2244
2254
  */
2245
2255
  export interface RecipeIDAndQualityIDPair {
2246
2256
  /**
2247
2257
  * Recipe prototype.
2248
2258
  */
2249
- readonly name: RecipeID
2259
+ readonly name: LuaRecipePrototype
2250
2260
  /**
2251
2261
  * Quality prototype.
2252
2262
  */
2253
- readonly quality: QualityID
2263
+ readonly quality: LuaQualityPrototype
2254
2264
  }
2255
2265
  export interface WorkerRobotOrder {
2256
2266
  /**
@@ -2289,7 +2299,7 @@ declare module "factorio:runtime" {
2289
2299
  * - `string`: Name of the force, same as {@link LuaForce#name LuaForce::name}.
2290
2300
  * - {@link uint8}: Index of the force, same as {@link LuaForce#index LuaForce::index}.
2291
2301
  * - {@link LuaForce}: A reference to {@link LuaForce} may be passed directly.
2292
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ForceID.html Online documentation}
2302
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ForceID.html Online documentation}
2293
2303
  */
2294
2304
  export type ForceID = string | uint8 | LuaForce
2295
2305
  /**
@@ -2299,7 +2309,7 @@ declare module "factorio:runtime" {
2299
2309
  * - `string`: The fluid name.
2300
2310
  * - {@link LuaFluidPrototype}: The fluid prototype.
2301
2311
  * - {@link Fluid}: The fluid.
2302
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/FluidID.html Online documentation}
2312
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/FluidID.html Online documentation}
2303
2313
  */
2304
2314
  export type FluidID = string | LuaFluidPrototype | Fluid
2305
2315
  /**
@@ -2310,12 +2320,12 @@ declare module "factorio:runtime" {
2310
2320
  * - {@link LuaEntityPrototype}: The entity prototype. Normal quality will be used.
2311
2321
  * - `string`: The prototype name. Normal quality will be used.
2312
2322
  * - {@link EntityIDAndQualityIDPair}: A table of entity prototype and quality.
2313
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/EntityWithQualityID.html Online documentation}
2323
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/EntityWithQualityID.html Online documentation}
2314
2324
  */
2315
2325
  export type EntityWithQualityID = LuaEntity | LuaEntityPrototype | string | EntityIDAndQualityIDPair
2316
2326
  /**
2317
2327
  * An entity prototype with optional quality specification.
2318
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/EntityIDAndQualityIDPair.html Online documentation}
2328
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/EntityIDAndQualityIDPair.html Online documentation}
2319
2329
  */
2320
2330
  export interface EntityIDAndQualityIDPair {
2321
2331
  /**
@@ -2334,15 +2344,30 @@ declare module "factorio:runtime" {
2334
2344
  * - {@link LuaItemStack}: The item stack. Both prototype and quality of the item stack will be used.
2335
2345
  * - {@link LuaItemPrototype}: The item prototype. Normal quality will be used.
2336
2346
  * - `string`: The prototype name. Normal quality will be used.
2337
- * - {@link ItemIDAndQualityIDPair}: A table of entity prototype and quality.
2338
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ItemWithQualityID.html Online documentation}
2347
+ * - `ItemIDAndQualityIDPairWrite`: A table of entity prototype and quality.
2348
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ItemWithQualityID.html Online documentation}
2339
2349
  */
2340
- export type ItemWithQualityID = LuaItemStack | LuaItemPrototype | string | ItemIDAndQualityIDPair
2350
+ export type ItemWithQualityID = LuaItemStack | LuaItemPrototype | string | ItemIDAndQualityIDPairWrite
2341
2351
  /**
2342
2352
  * An item prototype with optional quality specification.
2343
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ItemIDAndQualityIDPair.html Online documentation}
2353
+ * @see ItemIDAndQualityIDPairWrite
2354
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ItemIDAndQualityIDPair.html Online documentation}
2344
2355
  */
2345
2356
  export interface ItemIDAndQualityIDPair {
2357
+ /**
2358
+ * Item prototype. Returns `LuaItemPrototype` when read.
2359
+ */
2360
+ readonly name: LuaItemPrototype
2361
+ /**
2362
+ * Quality prototype. Normal quality will be used if not specified. Returns `LuaQualityPrototype` when read.
2363
+ */
2364
+ readonly quality?: LuaQualityPrototype
2365
+ }
2366
+ /**
2367
+ * Write form of {@link ItemIDAndQualityIDPair}, where some properties allow additional values as input compared to the read form.
2368
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ItemIDAndQualityIDPair.html Online documentation}
2369
+ */
2370
+ export interface ItemIDAndQualityIDPairWrite {
2346
2371
  /**
2347
2372
  * Item prototype. Returns `LuaItemPrototype` when read.
2348
2373
  */
@@ -2360,7 +2385,7 @@ declare module "factorio:runtime" {
2360
2385
  * - {@link LuaItemStack}: Non empty item stack.
2361
2386
  * - {@link LuaItem}: The item.
2362
2387
  * - `string`: The prototype name.
2363
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ItemID.html Online documentation}
2388
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ItemID.html Online documentation}
2364
2389
  */
2365
2390
  export type ItemID = LuaItemPrototype | LuaItemStack | LuaItem | string
2366
2391
  /**
@@ -2370,7 +2395,7 @@ declare module "factorio:runtime" {
2370
2395
  * - {@link LuaEntityPrototype}: The entity prototype.
2371
2396
  * - {@link LuaEntity}: The entity.
2372
2397
  * - `string`: The prototype name.
2373
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/EntityID.html Online documentation}
2398
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/EntityID.html Online documentation}
2374
2399
  */
2375
2400
  export type EntityID = LuaEntityPrototype | LuaEntity | string
2376
2401
  /**
@@ -2380,7 +2405,7 @@ declare module "factorio:runtime" {
2380
2405
  * - {@link LuaTechnologyPrototype}: The technology prototype.
2381
2406
  * - {@link LuaTechnology}: Instance of the technology.
2382
2407
  * - `string`: The prototype name.
2383
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/TechnologyID.html Online documentation}
2408
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/TechnologyID.html Online documentation}
2384
2409
  */
2385
2410
  export type TechnologyID = LuaTechnologyPrototype | LuaTechnology | string
2386
2411
  /**
@@ -2389,7 +2414,7 @@ declare module "factorio:runtime" {
2389
2414
  * ## Union members
2390
2415
  * - {@link LuaParticlePrototype}: The particle prototype.
2391
2416
  * - `string`: The prototype name.
2392
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ParticleID.html Online documentation}
2417
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ParticleID.html Online documentation}
2393
2418
  */
2394
2419
  export type ParticleID = LuaParticlePrototype | string
2395
2420
  /**
@@ -2398,7 +2423,7 @@ declare module "factorio:runtime" {
2398
2423
  * ## Union members
2399
2424
  * - {@link LuaDamagePrototype}: The damage type prototype.
2400
2425
  * - `string`: The prototype name.
2401
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/DamageTypeID.html Online documentation}
2426
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/DamageTypeID.html Online documentation}
2402
2427
  */
2403
2428
  export type DamageTypeID = LuaDamagePrototype | string
2404
2429
  /**
@@ -2407,7 +2432,7 @@ declare module "factorio:runtime" {
2407
2432
  * ## Union members
2408
2433
  * - {@link LuaTrivialSmokePrototype}: The trivial smoke prototype.
2409
2434
  * - `string`: The prototype name.
2410
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/TrivialSmokeID.html Online documentation}
2435
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/TrivialSmokeID.html Online documentation}
2411
2436
  */
2412
2437
  export type TrivialSmokeID = LuaTrivialSmokePrototype | string
2413
2438
  /**
@@ -2419,7 +2444,7 @@ declare module "factorio:runtime" {
2419
2444
  * - `"left"`
2420
2445
  * - `"right"`
2421
2446
  * - `"center"`
2422
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/TextAlign.html Online documentation}
2447
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/TextAlign.html Online documentation}
2423
2448
  */
2424
2449
  export type TextAlign = "left" | "right" | "center"
2425
2450
  /**
@@ -2432,7 +2457,7 @@ declare module "factorio:runtime" {
2432
2457
  * - `"middle"`
2433
2458
  * - `"baseline"`
2434
2459
  * - `"bottom"`
2435
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/VerticalTextAlign.html Online documentation}
2460
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/VerticalTextAlign.html Online documentation}
2436
2461
  */
2437
2462
  export type VerticalTextAlign = "top" | "middle" | "baseline" | "bottom"
2438
2463
  /**
@@ -2441,7 +2466,7 @@ declare module "factorio:runtime" {
2441
2466
  * ## Union members
2442
2467
  * - {@link LuaQualityPrototype}: The quality prototype.
2443
2468
  * - `string`: The prototype name.
2444
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/QualityID.html Online documentation}
2469
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/QualityID.html Online documentation}
2445
2470
  */
2446
2471
  export type QualityID = LuaQualityPrototype | string
2447
2472
  /**
@@ -2451,7 +2476,7 @@ declare module "factorio:runtime" {
2451
2476
  * - {@link LuaRecipePrototype}: By recipe prototype.
2452
2477
  * - {@link LuaRecipe}: By instance of recipe.
2453
2478
  * - `string`: By name of the recipe prototype.
2454
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/RecipeID.html Online documentation}
2479
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/RecipeID.html Online documentation}
2455
2480
  */
2456
2481
  export type RecipeID = LuaRecipePrototype | LuaRecipe | string
2457
2482
  /**
@@ -2461,7 +2486,7 @@ declare module "factorio:runtime" {
2461
2486
  * - {@link LuaTilePrototype}: By tile prototype.
2462
2487
  * - {@link LuaTile}: By instance of tile.
2463
2488
  * - `string`: By name of the tile prototype.
2464
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/TileID.html Online documentation}
2489
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/TileID.html Online documentation}
2465
2490
  */
2466
2491
  export type TileID = LuaTilePrototype | LuaTile | string
2467
2492
  export interface Fluid {
@@ -2485,7 +2510,7 @@ declare module "factorio:runtime" {
2485
2510
  * - {@link LuaEquipmentPrototype}: The equipment prototype.
2486
2511
  * - {@link LuaEquipment}: The equipment.
2487
2512
  * - `string`: The prototype name.
2488
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/EquipmentID.html Online documentation}
2513
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/EquipmentID.html Online documentation}
2489
2514
  */
2490
2515
  export type EquipmentID = LuaEquipmentPrototype | LuaEquipment | string
2491
2516
  /**
@@ -2496,12 +2521,12 @@ declare module "factorio:runtime" {
2496
2521
  * - {@link LuaEquipment}: The equipment. Both prototype and quality of the provided equipment will be used.
2497
2522
  * - `string`: The prototype name. Normal quality will be used.
2498
2523
  * - {@link EquipmentIDAndQualityIDPair}: A table of equipment prototype and quality.
2499
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/EquipmentWithQualityID.html Online documentation}
2524
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/EquipmentWithQualityID.html Online documentation}
2500
2525
  */
2501
2526
  export type EquipmentWithQualityID = LuaEquipmentPrototype | LuaEquipment | string | EquipmentIDAndQualityIDPair
2502
2527
  /**
2503
2528
  * An equipment prototype with optional quality specification.
2504
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/EquipmentIDAndQualityIDPair.html Online documentation}
2529
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/EquipmentIDAndQualityIDPair.html Online documentation}
2505
2530
  */
2506
2531
  export interface EquipmentIDAndQualityIDPair {
2507
2532
  /**
@@ -2522,48 +2547,45 @@ declare module "factorio:runtime" {
2522
2547
  * @example
2523
2548
  * -- Shorthand
2524
2549
  * {{-2, -3}, {5, 8}}
2525
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/BoundingBox.html Online documentation}
2550
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/BoundingBox.html Online documentation}
2526
2551
  */
2527
2552
  export interface BoundingBox {
2528
2553
  readonly left_top: MapPosition
2529
2554
  readonly right_bottom: MapPosition
2530
2555
  readonly orientation?: RealOrientation
2531
2556
  }
2532
- /**
2533
- * Write form of {@link BoundingBox}, as a table, where positions are allowed to take an array form.
2534
- */
2535
- export interface BoundingBoxWrite {
2536
- readonly left_top: MapPosition | MapPositionArray
2537
- readonly right_bottom: MapPosition | MapPositionArray
2538
- readonly orientation?: RealOrientation
2539
- }
2540
2557
  /**
2541
2558
  * Array form of {@link BoundingBox}.
2542
2559
  * @see BoundingBox
2543
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/BoundingBox.html Online documentation}
2560
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/BoundingBox.html Online documentation}
2544
2561
  */
2545
2562
  export type BoundingBoxArray = readonly [MapPosition | MapPositionArray, MapPosition | MapPositionArray]
2563
+ export interface BoundingBoxWrite {
2564
+ readonly left_top: (MapPosition | MapPositionArray) | MapPositionArray
2565
+ readonly right_bottom: (MapPosition | MapPositionArray) | MapPositionArray
2566
+ readonly orientation?: RealOrientation
2567
+ }
2546
2568
  /**
2547
2569
  * Space platform may be specified in one of one ways.
2548
2570
  *
2549
2571
  * ## Union members
2550
2572
  * - {@link LuaSpacePlatform}
2551
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/SpacePlatformIdentification.html Online documentation}
2573
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/SpacePlatformIdentification.html Online documentation}
2552
2574
  */
2553
2575
  export type SpacePlatformIdentification = LuaSpacePlatform
2554
2576
  /**
2555
2577
  * Set of forces. Can be specified in one of two ways.
2556
2578
  *
2557
2579
  * ## Union members
2558
- * - LuaForce[]: Array of many forces.
2559
- * - LuaForce: A single force.
2580
+ * - {@link LuaForce}[]: Array of many forces.
2581
+ * - {@link LuaForce}: A single force.
2560
2582
  * @see ForceSetWrite
2561
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ForceSet.html Online documentation}
2583
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ForceSet.html Online documentation}
2562
2584
  */
2563
2585
  export type ForceSet = LuaForce[] | LuaForce
2564
2586
  /**
2565
- * Write form of {@link ForceSet}, where table-or-array concepts are allowed to take an array form.
2566
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ForceSet.html Online documentation}
2587
+ * Write form of {@link ForceSet}, where some properties allow additional values as input compared to the read form.
2588
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ForceSet.html Online documentation}
2567
2589
  */
2568
2590
  export type ForceSetWrite = readonly ForceID[] | ForceID
2569
2591
  /**
@@ -2572,7 +2594,7 @@ declare module "factorio:runtime" {
2572
2594
  * ## Union members
2573
2595
  * - {@link LuaDecorativePrototype}: The decorative prototype.
2574
2596
  * - `string`: The prototype name.
2575
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/DecorativeID.html Online documentation}
2597
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/DecorativeID.html Online documentation}
2576
2598
  */
2577
2599
  export type DecorativeID = LuaDecorativePrototype | string
2578
2600
  /**
@@ -2581,7 +2603,7 @@ declare module "factorio:runtime" {
2581
2603
  * ## Union members
2582
2604
  * - {@link LuaAsteroidChunkPrototype}: The asteroid chunk prototype.
2583
2605
  * - `string`: The prototype name.
2584
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/AsteroidChunkID.html Online documentation}
2606
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/AsteroidChunkID.html Online documentation}
2585
2607
  */
2586
2608
  export type AsteroidChunkID = LuaAsteroidChunkPrototype | string
2587
2609
  /**
@@ -2590,13 +2612,13 @@ declare module "factorio:runtime" {
2590
2612
  * ## Union members
2591
2613
  * - {@link LuaSpaceLocationPrototype}: The space location prototype.
2592
2614
  * - `string`: The prototype name.
2593
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/SpaceLocationID.html Online documentation}
2615
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/SpaceLocationID.html Online documentation}
2594
2616
  */
2595
2617
  export type SpaceLocationID = LuaSpaceLocationPrototype | string
2596
2618
  /**
2597
2619
  * A signal filter may be specified in two ways, either as a string which is a virtual signal name or item prototype name or as a table.
2598
2620
  * @see SignalFilterWrite
2599
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/SignalFilter.html Online documentation}
2621
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/SignalFilter.html Online documentation}
2600
2622
  */
2601
2623
  export type SignalFilter =
2602
2624
  | {
@@ -2611,7 +2633,7 @@ declare module "factorio:runtime" {
2611
2633
  /**
2612
2634
  * The prototype name of the signal's quality. `nil` for any quality.
2613
2635
  */
2614
- readonly quality?: QualityID
2636
+ readonly quality?: LuaQualityPrototype
2615
2637
  /**
2616
2638
  * The comparator for quality. `nil` if any quality.
2617
2639
  */
@@ -2619,8 +2641,8 @@ declare module "factorio:runtime" {
2619
2641
  }
2620
2642
  | string
2621
2643
  /**
2622
- * Write form of {@link SignalFilter}, where table-or-array concepts are allowed to take an array form.
2623
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/SignalFilter.html Online documentation}
2644
+ * Write form of {@link SignalFilter}, where some properties allow additional values as input compared to the read form.
2645
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/SignalFilter.html Online documentation}
2624
2646
  */
2625
2647
  export type SignalFilterWrite =
2626
2648
  | {
@@ -2644,7 +2666,7 @@ declare module "factorio:runtime" {
2644
2666
  | string
2645
2667
  /**
2646
2668
  * @see LogisticFilterWrite
2647
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LogisticFilter.html Online documentation}
2669
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LogisticFilter.html Online documentation}
2648
2670
  */
2649
2671
  export interface LogisticFilter {
2650
2672
  /**
@@ -2666,11 +2688,11 @@ declare module "factorio:runtime" {
2666
2688
  /**
2667
2689
  * The space location to import from.
2668
2690
  */
2669
- readonly import_from?: SpaceLocationID
2691
+ readonly import_from?: LuaSpaceLocationPrototype
2670
2692
  }
2671
2693
  /**
2672
- * Write form of {@link LogisticFilter}, where table-or-array concepts are allowed to take an array form.
2673
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LogisticFilter.html Online documentation}
2694
+ * Write form of {@link LogisticFilter}, where some properties allow additional values as input compared to the read form.
2695
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LogisticFilter.html Online documentation}
2674
2696
  */
2675
2697
  export interface LogisticFilterWrite {
2676
2698
  /**
@@ -2726,23 +2748,23 @@ declare module "factorio:runtime" {
2726
2748
  * ## Union members
2727
2749
  * - {@link LuaSurfacePropertyPrototype}: The surface property prototype.
2728
2750
  * - `string`: The prototype name.
2729
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/SurfacePropertyID.html Online documentation}
2751
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/SurfacePropertyID.html Online documentation}
2730
2752
  */
2731
2753
  export type SurfacePropertyID = LuaSurfacePropertyPrototype | string
2732
2754
  /**
2733
2755
  * When writing it is possible to give LuaEntity or MapPosition directly. However, reading always returns the full ScriptRenderTargetTable.
2734
2756
  * @see ScriptRenderTargetWrite
2735
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ScriptRenderTarget.html Online documentation}
2757
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ScriptRenderTarget.html Online documentation}
2736
2758
  */
2737
2759
  export type ScriptRenderTarget = LuaEntity | MapPosition | ScriptRenderTargetTable
2738
2760
  /**
2739
- * Write form of {@link ScriptRenderTarget}, where table-or-array concepts are allowed to take an array form.
2740
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ScriptRenderTarget.html Online documentation}
2761
+ * Write form of {@link ScriptRenderTarget}, where some properties allow additional values as input compared to the read form.
2762
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ScriptRenderTarget.html Online documentation}
2741
2763
  */
2742
2764
  export type ScriptRenderTargetWrite = LuaEntity | (MapPosition | MapPositionArray) | ScriptRenderTargetTableWrite
2743
2765
  /**
2744
2766
  * @see ScriptRenderTargetTableWrite
2745
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ScriptRenderTargetTable.html Online documentation}
2767
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ScriptRenderTargetTable.html Online documentation}
2746
2768
  */
2747
2769
  export interface ScriptRenderTargetTable {
2748
2770
  readonly entity?: LuaEntity
@@ -2756,8 +2778,8 @@ declare module "factorio:runtime" {
2756
2778
  readonly position?: MapPosition
2757
2779
  }
2758
2780
  /**
2759
- * Write form of {@link ScriptRenderTargetTable}, where table-or-array concepts are allowed to take an array form.
2760
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ScriptRenderTargetTable.html Online documentation}
2781
+ * Write form of {@link ScriptRenderTargetTable}, where some properties allow additional values as input compared to the read form.
2782
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ScriptRenderTargetTable.html Online documentation}
2761
2783
  */
2762
2784
  export interface ScriptRenderTargetTableWrite {
2763
2785
  readonly entity?: LuaEntity
@@ -2772,7 +2794,7 @@ declare module "factorio:runtime" {
2772
2794
  }
2773
2795
  /**
2774
2796
  * An item filter may be specified in two ways, either as a string which is a quality prototype name or as a table.
2775
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/QualityCondition.html Online documentation}
2797
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/QualityCondition.html Online documentation}
2776
2798
  */
2777
2799
  export type QualityCondition =
2778
2800
  | {
@@ -2791,291 +2813,986 @@ declare module "factorio:runtime" {
2791
2813
  * - `"center-to-center"`
2792
2814
  * - `"bounding-box-to-bounding-box"`
2793
2815
  * - `"center-to-bounding-box"`
2794
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/RangeMode.html Online documentation}
2816
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/RangeMode.html Online documentation}
2795
2817
  */
2796
2818
  export type RangeMode = "center-to-center" | "bounding-box-to-bounding-box" | "center-to-bounding-box"
2797
2819
  /**
2798
2820
  * The representation of an entity inside of a blueprint. It has at least these fields, but can contain additional ones depending on the kind of entity.
2799
2821
  * @see BlueprintEntityWrite
2800
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/BlueprintEntity.html Online documentation}
2822
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/BlueprintEntity.html Online documentation}
2801
2823
  */
2802
2824
  export interface BlueprintEntity {
2803
2825
  /**
2804
- * The entity's unique identifier in the blueprint.
2826
+ * The entity's unique identifier in the blueprint.
2827
+ */
2828
+ readonly entity_number: uint
2829
+ /**
2830
+ * The prototype name of the entity.
2831
+ */
2832
+ readonly name: string
2833
+ /**
2834
+ * The position of the entity.
2835
+ */
2836
+ readonly position: MapPosition
2837
+ /**
2838
+ * The direction the entity is facing. Only present for entities that can face in different directions and when the entity is not facing north.
2839
+ */
2840
+ readonly direction?: defines.direction
2841
+ /**
2842
+ * Whether this entity is mirrored.
2843
+ */
2844
+ readonly mirror?: boolean
2845
+ /**
2846
+ * The prototype name of the entity's quality.
2847
+ */
2848
+ readonly quality?: string
2849
+ /**
2850
+ * 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.
2851
+ */
2852
+ readonly control_behavior?: BlueprintControlBehavior
2853
+ /**
2854
+ * The items that the entity will request when revived, if any.
2855
+ */
2856
+ readonly items?: BlueprintInsertPlan[]
2857
+ /**
2858
+ * The entity tags of the entity, if there are any.
2859
+ */
2860
+ readonly tags?: Tags
2861
+ /**
2862
+ * The schedule of the entity, if it has one. Only relevant for locomotives.
2863
+ */
2864
+ readonly schedule?: BlueprintSchedule
2865
+ /**
2866
+ * Wires connected to this entity in the blueprint.
2867
+ */
2868
+ readonly wires?: BlueprintWire[]
2869
+ /**
2870
+ * Used by assembling machines. Name of the recipe prototype
2871
+ */
2872
+ readonly recipe?: string
2873
+ /**
2874
+ * Used by assembling machines; quality of the recipe.
2875
+ */
2876
+ readonly recipe_quality?: LuaQualityPrototype
2877
+ /**
2878
+ * Used by containers (chests). The index of the first inaccessible item slot due to limiting with the red "bar". 0-based.
2879
+ */
2880
+ readonly bar?: uint16
2881
+ /**
2882
+ * Cargo wagon or filtered container inventory configuration, for item filters and bar.
2883
+ */
2884
+ readonly inventory?: BlueprintInventory
2885
+ /**
2886
+ * Used by Infinity containers and infinity pipes.
2887
+ */
2888
+ readonly infinity_settings?: InfinityContainerFilter | InfinityPipeFilter
2889
+ /**
2890
+ * Used by heat interfaces.
2891
+ */
2892
+ readonly mode?: "at-least" | "at-most" | "exactly" | "add" | "remove"
2893
+ /**
2894
+ * Used by heat interfaces.
2895
+ */
2896
+ readonly temperature?: uint
2897
+ /**
2898
+ * Type of the underground belt or loader. Either "input" or "output".
2899
+ */
2900
+ readonly type?: "input" | "output"
2901
+ /**
2902
+ * Input priority of the splitter. Either "right" or "left", "none" is omitted.
2903
+ */
2904
+ readonly input_priority?: "right" | "left"
2905
+ /**
2906
+ * Output priority of the splitter. Either "right" or "left", "none" is omitted.
2907
+ */
2908
+ readonly output_priority?: "right" | "left"
2909
+ /**
2910
+ * Filter of the splitter.
2911
+ */
2912
+ readonly filter?: BlueprintLogisticFilter
2913
+ /**
2914
+ * Filters of the filter inserter or loader.
2915
+ */
2916
+ readonly filters?: BlueprintLogisticFilter[]
2917
+ /**
2918
+ * Filter mode of the filter inserter.
2919
+ */
2920
+ readonly filter_mode?: "whitelist" | "blacklist"
2921
+ /**
2922
+ * The stack size the inserter is set to.
2923
+ */
2924
+ readonly override_stack_size?: uint8
2925
+ /**
2926
+ * The drop position the inserter is set to.
2927
+ */
2928
+ readonly drop_position?: MapPosition
2929
+ /**
2930
+ * The pickup position the inserter is set to.
2931
+ */
2932
+ readonly pickup_position?: MapPosition
2933
+ /**
2934
+ * Spoiled priority of an inserter. "spoiled-first" or "fresh-first", "none" is omitted.
2935
+ */
2936
+ readonly spoil_priority?: "spoiled-first" | "fresh-first"
2937
+ /**
2938
+ * Used by all entities with logistics sections, except for combinators.
2939
+ */
2940
+ readonly request_filters?: BlueprintRequestFilters
2941
+ /**
2942
+ * Used by programmable speakers.
2943
+ */
2944
+ readonly parameters?: ProgrammableSpeakerParameters
2945
+ /**
2946
+ * Used by programmable speakers.
2947
+ */
2948
+ readonly alert_parameters?: ProgrammableSpeakerAlertParameters
2949
+ /**
2950
+ * Used by rocket silos. I have no idea what this is.
2951
+ */
2952
+ readonly transitional_request_index?: uint
2953
+ /**
2954
+ * Used by {@link https://wiki.factorio.com/Prototype/SimpleEntityWithForce Prototype/SimpleEntityWithForce} or {@link https://wiki.factorio.com/Prototype/SimpleEntityWithOwner Prototype/SimpleEntityWithOwner}.
2955
+ */
2956
+ readonly variation?: uint8
2957
+ /**
2958
+ * Color of the entity. Used by SimpleEntityWithForce, SimpleEntityWithOwner, train stations, locomotives, and vehicles.
2959
+ */
2960
+ readonly color?: Color
2961
+ /**
2962
+ * The name of the train station.
2963
+ */
2964
+ readonly station?: string
2965
+ /**
2966
+ * The train limit of a train stop.
2967
+ */
2968
+ readonly manual_trains_limit?: uint
2969
+ /**
2970
+ * The priority of the train station.
2971
+ */
2972
+ readonly priority?: uint8
2973
+ /**
2974
+ * Orientation of the cargo wagon or locomotive, value from 0 to 1
2975
+ */
2976
+ readonly orientation?: RealOrientation
2977
+ /**
2978
+ * If this locomotive copies its color from the train stop. Default true.
2979
+ */
2980
+ readonly copy_color_from_train_stop?: boolean
2981
+ /**
2982
+ * Used by spidertons.
2983
+ */
2984
+ readonly vehicle_automatic_targeting_parameters: VehicleAutomaticTargetingParameters
2985
+ /**
2986
+ * Used by vehicles.
2987
+ */
2988
+ readonly driver_is_main_gunner?: boolean
2989
+ /**
2990
+ * Used by vehicles.
2991
+ */
2992
+ readonly selected_gun_index?: uint
2993
+ /**
2994
+ * Used to vehicles and rolling stock.
2995
+ */
2996
+ readonly enable_logistics_while_moving?: boolean
2997
+ /**
2998
+ * Equipment grid. Note that [items] requests also needs to be set for bots to insert into the grid.
2999
+ */
3000
+ readonly grid?: BlueprintEquipment[]
3001
+ readonly artillery_auto_targeting?: boolean
3002
+ /**
3003
+ * Combinator description.
3004
+ */
3005
+ readonly player_description?: string
3006
+ /**
3007
+ * Used by display panels.
3008
+ */
3009
+ readonly always_show?: boolean
3010
+ /**
3011
+ * Used by display panels.
3012
+ */
3013
+ readonly show_in_chart?: boolean
3014
+ /**
3015
+ * Display panel icon.
3016
+ */
3017
+ readonly icon?: SignalID
3018
+ /**
3019
+ * Display panel text.
3020
+ */
3021
+ readonly text?: string
3022
+ /**
3023
+ * Turret configuration.
3024
+ */
3025
+ readonly "ignore-unprioritised"?: boolean
3026
+ /**
3027
+ * Turret configuration.
3028
+ */
3029
+ readonly "priority-list"?: {
3030
+ readonly index: uint
3031
+ readonly entity_id: LuaEntityPrototype
3032
+ }[]
3033
+ }
3034
+ /**
3035
+ * Write form of {@link BlueprintEntity}, where some properties allow additional values as input compared to the read form.
3036
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/BlueprintEntity.html Online documentation}
3037
+ */
3038
+ export interface BlueprintEntityWrite {
3039
+ /**
3040
+ * The entity's unique identifier in the blueprint.
3041
+ */
3042
+ readonly entity_number: uint
3043
+ /**
3044
+ * The prototype name of the entity.
3045
+ */
3046
+ readonly name: string
3047
+ /**
3048
+ * The position of the entity.
3049
+ */
3050
+ readonly position: MapPosition | MapPositionArray
3051
+ /**
3052
+ * The direction the entity is facing. Only present for entities that can face in different directions and when the entity is not facing north.
3053
+ */
3054
+ readonly direction?: defines.direction
3055
+ /**
3056
+ * Whether this entity is mirrored.
3057
+ */
3058
+ readonly mirror?: boolean
3059
+ /**
3060
+ * The prototype name of the entity's quality.
3061
+ */
3062
+ readonly quality?: string
3063
+ /**
3064
+ * 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.
3065
+ */
3066
+ readonly control_behavior?: BlueprintControlBehaviorWrite
3067
+ /**
3068
+ * The items that the entity will request when revived, if any.
3069
+ */
3070
+ readonly items?: readonly BlueprintInsertPlanWrite[]
3071
+ /**
3072
+ * The entity tags of the entity, if there are any.
3073
+ */
3074
+ readonly tags?: Tags
3075
+ /**
3076
+ * The schedule of the entity, if it has one. Only relevant for locomotives.
3077
+ */
3078
+ readonly schedule?: BlueprintScheduleWrite
3079
+ /**
3080
+ * Wires connected to this entity in the blueprint.
3081
+ */
3082
+ readonly wires?: BlueprintWire[]
3083
+ /**
3084
+ * Used by assembling machines. Name of the recipe prototype
3085
+ */
3086
+ readonly recipe?: string
3087
+ /**
3088
+ * Used by assembling machines; quality of the recipe.
3089
+ */
3090
+ readonly recipe_quality?: QualityID
3091
+ /**
3092
+ * Used by containers (chests). The index of the first inaccessible item slot due to limiting with the red "bar". 0-based.
3093
+ */
3094
+ readonly bar?: uint16
3095
+ /**
3096
+ * Cargo wagon or filtered container inventory configuration, for item filters and bar.
3097
+ */
3098
+ readonly inventory?: BlueprintInventoryWrite
3099
+ /**
3100
+ * Used by Infinity containers and infinity pipes.
3101
+ */
3102
+ readonly infinity_settings?: InfinityContainerFilter | InfinityPipeFilter
3103
+ /**
3104
+ * Used by heat interfaces.
3105
+ */
3106
+ readonly mode?: "at-least" | "at-most" | "exactly" | "add" | "remove"
3107
+ /**
3108
+ * Used by heat interfaces.
3109
+ */
3110
+ readonly temperature?: uint
3111
+ /**
3112
+ * Type of the underground belt or loader. Either "input" or "output".
3113
+ */
3114
+ readonly type?: "input" | "output"
3115
+ /**
3116
+ * Input priority of the splitter. Either "right" or "left", "none" is omitted.
3117
+ */
3118
+ readonly input_priority?: "right" | "left"
3119
+ /**
3120
+ * Output priority of the splitter. Either "right" or "left", "none" is omitted.
3121
+ */
3122
+ readonly output_priority?: "right" | "left"
3123
+ /**
3124
+ * Filter of the splitter.
3125
+ */
3126
+ readonly filter?: BlueprintLogisticFilterWrite
3127
+ /**
3128
+ * Filters of the filter inserter or loader.
3129
+ */
3130
+ readonly filters?: readonly BlueprintLogisticFilterWrite[]
3131
+ /**
3132
+ * Filter mode of the filter inserter.
3133
+ */
3134
+ readonly filter_mode?: "whitelist" | "blacklist"
3135
+ /**
3136
+ * The stack size the inserter is set to.
3137
+ */
3138
+ readonly override_stack_size?: uint8
3139
+ /**
3140
+ * The drop position the inserter is set to.
3141
+ */
3142
+ readonly drop_position?: MapPosition | MapPositionArray
3143
+ /**
3144
+ * The pickup position the inserter is set to.
3145
+ */
3146
+ readonly pickup_position?: MapPosition | MapPositionArray
3147
+ /**
3148
+ * Spoiled priority of an inserter. "spoiled-first" or "fresh-first", "none" is omitted.
3149
+ */
3150
+ readonly spoil_priority?: "spoiled-first" | "fresh-first"
3151
+ /**
3152
+ * Used by all entities with logistics sections, except for combinators.
3153
+ */
3154
+ readonly request_filters?: BlueprintRequestFilters
3155
+ /**
3156
+ * Used by programmable speakers.
3157
+ */
3158
+ readonly parameters?: ProgrammableSpeakerParameters
3159
+ /**
3160
+ * Used by programmable speakers.
3161
+ */
3162
+ readonly alert_parameters?: ProgrammableSpeakerAlertParameters
3163
+ /**
3164
+ * Used by rocket silos. I have no idea what this is.
3165
+ */
3166
+ readonly transitional_request_index?: uint
3167
+ /**
3168
+ * Used by {@link https://wiki.factorio.com/Prototype/SimpleEntityWithForce Prototype/SimpleEntityWithForce} or {@link https://wiki.factorio.com/Prototype/SimpleEntityWithOwner Prototype/SimpleEntityWithOwner}.
3169
+ */
3170
+ readonly variation?: uint8
3171
+ /**
3172
+ * Color of the entity. Used by SimpleEntityWithForce, SimpleEntityWithOwner, train stations, locomotives, and vehicles.
3173
+ */
3174
+ readonly color?: Color | ColorArray
3175
+ /**
3176
+ * The name of the train station.
3177
+ */
3178
+ readonly station?: string
3179
+ /**
3180
+ * The train limit of a train stop.
3181
+ */
3182
+ readonly manual_trains_limit?: uint
3183
+ /**
3184
+ * The priority of the train station.
3185
+ */
3186
+ readonly priority?: uint8
3187
+ /**
3188
+ * Orientation of the cargo wagon or locomotive, value from 0 to 1
3189
+ */
3190
+ readonly orientation?: RealOrientation
3191
+ /**
3192
+ * If this locomotive copies its color from the train stop. Default true.
3193
+ */
3194
+ readonly copy_color_from_train_stop?: boolean
3195
+ /**
3196
+ * Used by spidertons.
3197
+ */
3198
+ readonly vehicle_automatic_targeting_parameters: VehicleAutomaticTargetingParameters
3199
+ /**
3200
+ * Used by vehicles.
3201
+ */
3202
+ readonly driver_is_main_gunner?: boolean
3203
+ /**
3204
+ * Used by vehicles.
3205
+ */
3206
+ readonly selected_gun_index?: uint
3207
+ /**
3208
+ * Used to vehicles and rolling stock.
3209
+ */
3210
+ readonly enable_logistics_while_moving?: boolean
3211
+ /**
3212
+ * Equipment grid. Note that [items] requests also needs to be set for bots to insert into the grid.
3213
+ */
3214
+ readonly grid?: readonly BlueprintEquipmentWrite[]
3215
+ readonly artillery_auto_targeting?: boolean
3216
+ /**
3217
+ * Combinator description.
3218
+ */
3219
+ readonly player_description?: string
3220
+ /**
3221
+ * Used by display panels.
3222
+ */
3223
+ readonly always_show?: boolean
3224
+ /**
3225
+ * Used by display panels.
3226
+ */
3227
+ readonly show_in_chart?: boolean
3228
+ /**
3229
+ * Display panel icon.
3230
+ */
3231
+ readonly icon?: SignalID
3232
+ /**
3233
+ * Display panel text.
3234
+ */
3235
+ readonly text?: string
3236
+ /**
3237
+ * Turret configuration.
3238
+ */
3239
+ readonly "ignore-unprioritised"?: boolean
3240
+ /**
3241
+ * Turret configuration.
3242
+ */
3243
+ readonly "priority-list"?: readonly {
3244
+ readonly index: uint
3245
+ readonly entity_id: EntityID
3246
+ }[]
3247
+ }
3248
+ export interface BlueprintRequestFilters {
3249
+ /**
3250
+ * False if disabled in a vehicle.
3251
+ */
3252
+ readonly enabled?: boolean
3253
+ readonly request_from_buffers?: boolean
3254
+ }
3255
+ /**
3256
+ * @see BlueprintEquipmentWrite
3257
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/BlueprintEquipment.html Online documentation}
3258
+ */
3259
+ export interface BlueprintEquipment {
3260
+ readonly equipment: ItemIDAndQualityIDPair
3261
+ readonly position: EquipmentPosition
3262
+ }
3263
+ /**
3264
+ * Write form of {@link BlueprintEquipment}, where some properties allow additional values as input compared to the read form.
3265
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/BlueprintEquipment.html Online documentation}
3266
+ */
3267
+ export interface BlueprintEquipmentWrite {
3268
+ readonly equipment: ItemIDAndQualityIDPairWrite
3269
+ readonly position: EquipmentPosition | EquipmentPositionArray
3270
+ }
3271
+ /**
3272
+ * @see BlueprintInventoryWrite
3273
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/BlueprintInventory.html Online documentation}
3274
+ */
3275
+ export interface BlueprintInventory {
3276
+ readonly filters?: BlueprintLogisticFilter[]
3277
+ /**
3278
+ * The index of the first inaccessible item slot due to limiting with the red "bar". 0-based.
3279
+ */
3280
+ readonly bar?: uint16
3281
+ }
3282
+ /**
3283
+ * Write form of {@link BlueprintInventory}, where some properties allow additional values as input compared to the read form.
3284
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/BlueprintInventory.html Online documentation}
3285
+ */
3286
+ export interface BlueprintInventoryWrite {
3287
+ readonly filters?: readonly BlueprintLogisticFilterWrite[]
3288
+ /**
3289
+ * The index of the first inaccessible item slot due to limiting with the red "bar". 0-based.
3290
+ */
3291
+ readonly bar?: uint16
3292
+ }
3293
+ export interface InfinityContainerFilter {
3294
+ /**
3295
+ * Whether the "remove unfiltered items" checkbox is checked.
3296
+ */
3297
+ readonly remove_unfiltered_items: boolean
3298
+ /**
3299
+ * Filters of the infinity container.
3300
+ */
3301
+ readonly filters?: InfinityInventoryFilter[]
3302
+ }
3303
+ /**
3304
+ * @see BlueprintControlBehaviorWrite
3305
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/BlueprintControlBehavior.html Online documentation}
3306
+ */
3307
+ export interface BlueprintControlBehavior {
3308
+ /**
3309
+ * If this entity is enabled/disabled by the circuit network.
3310
+ *
3311
+ * Does **not** apply to logistic containers, see instead {@link circuit_condition_enabled }.
3312
+ *
3313
+ * Corresponds to {@link LuaGenericOnOffControlBehavior.circuit_enable_disable }
3314
+ */
3315
+ readonly circuit_enabled?: boolean
3316
+ /**
3317
+ * Applies to any entity that can be enabled/disabled by the circuit network.
3318
+ */
3319
+ readonly circuit_condition?: CircuitCondition
3320
+ /**
3321
+ * Corresponds to {@link LuaGenericOnOffControlBehavior.connect_to_logistic_network }.
3322
+ */
3323
+ readonly connect_to_logistic_network?: boolean
3324
+ /**
3325
+ * Corresponds to {@link LuaGenericOnOffControlBehavior.logistic_condition }.
3326
+ */
3327
+ readonly logistic_condition?: CircuitCondition
3328
+ /**
3329
+ * If this entity with inventory reads its contents to the circuit network. Default true.
3330
+ *
3331
+ * Does not apply to asteroid collectors, see {@link circuit_read_contents }.
3332
+ */
3333
+ readonly read_contents?: boolean
3334
+ /**
3335
+ * If an **asteroid collector** reads its contents to the circuit network. Default false.
3336
+ */
3337
+ readonly circuit_read_contents?: boolean
3338
+ /**
3339
+ * On a turret, if the ammo is read by the circuit network. Default true.
3340
+ */
3341
+ readonly read_ammo?: boolean
3342
+ /**
3343
+ * Used by turrets.
3344
+ */
3345
+ readonly set_priority_list?: boolean
3346
+ /**
3347
+ * Used by turrets.
3348
+ */
3349
+ readonly set_ignore_unlisted_targets?: boolean
3350
+ /**
3351
+ * Used by turrets.
3352
+ */
3353
+ readonly ignore_unlisted_targets_condition?: CircuitCondition
3354
+ readonly circuit_mode_of_operation?:
3355
+ | defines.control_behavior.logistic_container.exclusive_mode
3356
+ | defines.control_behavior.cargo_landing_pad.exclusive_mode
3357
+ /**
3358
+ * If this **logistics container** is enabled/disabled by the circuit network.
3359
+ *
3360
+ * For other machines, see {@link circuit_enabled }.
3361
+ */
3362
+ readonly circuit_condition_enabled?: boolean
3363
+ /**
3364
+ * Accumulator or gate output signal.
3365
+ */
3366
+ readonly output_signal?: SignalID
3367
+ /**
3368
+ * If the accumulator sends its charge to the circuit network. Default true.
3369
+ */
3370
+ readonly read_charge?: boolean
3371
+ /**
3372
+ * Used by walls connected to gates.
3373
+ */
3374
+ readonly circuit_open_gate?: boolean
3375
+ /**
3376
+ * Used by walls connected to gates. The signal is defined by {@link output_signal }.
3377
+ */
3378
+ readonly circuit_read_sensor?: boolean
3379
+ /**
3380
+ * If this inserter or belt is read by the circuit network.
3381
+ */
3382
+ readonly circuit_read_hand_contents?: boolean
3383
+ /**
3384
+ * For reading contents of an inserter.
3385
+ */
3386
+ readonly circuit_hand_read_mode?: defines.control_behavior.inserter.hand_read_mode
3387
+ /**
3388
+ * For reading contents of a belt.
3389
+ */
3390
+ readonly circuit_contents_read_mode?: defines.control_behavior.transport_belt.content_read_mode
3391
+ /**
3392
+ * If this inserter, loader, or asteroid collector has its filters set by the circuit network.
3393
+ */
3394
+ readonly circuit_set_filters?: boolean
3395
+ /**
3396
+ * If this pump should set its only filter from the circuit network
3397
+ */
3398
+ readonly set_filter?: boolean
3399
+ /**
3400
+ * If this loader pulses its transfers to the circuit network.
3401
+ */
3402
+ readonly circuit_read_transfers?: boolean
3403
+ /**
3404
+ * If this inserter has its stack size set by the circuit network.
3405
+ */
3406
+ readonly circuit_set_stack_size?: boolean
3407
+ readonly stack_control_input_signal?: SignalID
3408
+ /**
3409
+ * Used by assembling machines.
3410
+ */
3411
+ readonly set_recipe?: boolean
3412
+ readonly read_ingredients?: boolean
3413
+ readonly read_recipe_finished?: boolean
3414
+ readonly read_recipe_finished_signal?: SignalID
3415
+ readonly read_working?: boolean
3416
+ readonly read_working_signal?: SignalID
3417
+ /**
3418
+ * If this mining drill reads its resources to the circuit network.
3419
+ */
3420
+ readonly circuit_read_resources?: boolean
3421
+ readonly circuit_resource_read_mode?: defines.control_behavior.mining_drill.resource_read_mode
3422
+ /**
3423
+ * Used by constant combinators.
3424
+ */
3425
+ readonly is_on?: boolean
3426
+ /**
3427
+ * Used by constant combinators.
3428
+ */
3429
+ readonly sections?: LogisticSections
3430
+ readonly arithmetic_conditions?: ArithmeticCombinatorParameters
3431
+ readonly decider_conditions?: DeciderCombinatorParameters
3432
+ /**
3433
+ * Used by selector combinators.
3434
+ */
3435
+ readonly index_signal?: SignalID
3436
+ /**
3437
+ * Used by selector combinators.
3438
+ */
3439
+ readonly index_constant?: uint
3440
+ /**
3441
+ * Used by selector combinators.
3442
+ */
3443
+ readonly count_signal?: SignalID
3444
+ /**
3445
+ * Used by selector combinators. When not specified, defaults to "select".
3446
+ */
3447
+ readonly operation?: "select" | "count" | "random"
3448
+ /**
3449
+ * Used by selector combinators.
3450
+ */
3451
+ readonly select_max?: boolean
3452
+ /**
3453
+ * Applies to train stop. Default true.
3454
+ */
3455
+ readonly send_to_train?: boolean
3456
+ readonly read_from_train?: boolean
3457
+ readonly set_trains_limit?: boolean
3458
+ readonly trains_limit_signal?: SignalID
3459
+ readonly read_stopped_train?: boolean
3460
+ readonly train_stopped_signal?: SignalID
3461
+ readonly read_trains_count?: boolean
3462
+ readonly trains_count_signal?: SignalID
3463
+ readonly set_priority?: boolean
3464
+ readonly priority_signal?: SignalID
3465
+ /**
3466
+ * Used by lamps.
3467
+ */
3468
+ readonly use_colors?: boolean
3469
+ readonly color_mode?: defines.control_behavior.lamp.color_mode
3470
+ /**
3471
+ * Used by **lamps**. For rail signals, see {@link red_output_signal }.
3472
+ */
3473
+ readonly red_signal?: SignalID
3474
+ /**
3475
+ * Used by **lamps**. For rail signals, see {@link green_output_signal }.
3476
+ */
3477
+ readonly green_signal?: SignalID
3478
+ /**
3479
+ * Used by **lamps**. For rail signals, see {@link orange_output_signal }.
3480
+ */
3481
+ readonly blue_signal?: SignalID
3482
+ /**
3483
+ * Used by lamps.
3484
+ */
3485
+ readonly rgb_signal?: SignalID
3486
+ /**
3487
+ * Used by roboports.
3488
+ */
3489
+ readonly read_items_mode?:
3490
+ | defines.control_behavior.roboport.read_items_mode
3491
+ | defines.control_behavior.rocket_silo.read_mode
3492
+ readonly read_robot_stats?: boolean
3493
+ readonly available_logistic_output_signal?: SignalID
3494
+ readonly total_logistic_output_signal?: SignalID
3495
+ readonly available_construction_output_signal?: SignalID
3496
+ readonly total_construction_output_signal?: SignalID
3497
+ readonly roboport_count_output_signal?: SignalID
3498
+ /**
3499
+ * Used by train signals.
3500
+ */
3501
+ readonly circuit_close_signal?: boolean
3502
+ /**
3503
+ * Used by train signals.
3504
+ */
3505
+ readonly circuit_read_signal?: boolean
3506
+ /**
3507
+ * Used by **train signals**. For lamps, seed {@link red_signal }.
3508
+ */
3509
+ readonly red_output_signal?: SignalID
3510
+ /**
3511
+ * used by train signals.
3512
+ */
3513
+ readonly orange_output_signal?: SignalID
3514
+ /**
3515
+ * Used by **train signals**. For lamps, seed {@link green_signal }.
3516
+ */
3517
+ readonly green_output_signal?: SignalID
3518
+ /**
3519
+ * Used by **train signals**. For lamps, seed {@link blue_signal }.
3520
+ */
3521
+ readonly blue_output_signal?: SignalID
3522
+ /**
3523
+ * Used by programmable speakers.
3524
+ */
3525
+ readonly circuit_parameters?: ProgrammableSpeakerCircuitParameters
3526
+ /**
3527
+ * Display panel configuration.
3528
+ */
3529
+ readonly parameters?: DisplayPanelMessageDefinition
3530
+ /**
3531
+ * If this reads the fuel contents of this reactor.
3532
+ */
3533
+ readonly read_burner_fuel?: boolean
3534
+ /**
3535
+ * If this reads the temperature of this reactor.
3536
+ */
3537
+ readonly read_temperature?: boolean
3538
+ readonly temperature_signal?: SignalID
3539
+ /**
3540
+ * Used by space platform hub.
3541
+ */
3542
+ readonly send_to_platform?: boolean
3543
+ readonly read_moving_from?: boolean
3544
+ readonly read_moving_to?: boolean
3545
+ readonly read_speed?: boolean
3546
+ readonly speed_signal?: SignalID
3547
+ readonly read_damage_taken?: boolean
3548
+ readonly damage_taken_signal?: SignalID
3549
+ }
3550
+ /**
3551
+ * Write form of {@link BlueprintControlBehavior}, where some properties allow additional values as input compared to the read form.
3552
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/BlueprintControlBehavior.html Online documentation}
3553
+ */
3554
+ export interface BlueprintControlBehaviorWrite {
3555
+ /**
3556
+ * If this entity is enabled/disabled by the circuit network.
3557
+ *
3558
+ * Does **not** apply to logistic containers, see instead {@link circuit_condition_enabled }.
3559
+ *
3560
+ * Corresponds to {@link LuaGenericOnOffControlBehavior.circuit_enable_disable }
3561
+ */
3562
+ readonly circuit_enabled?: boolean
3563
+ /**
3564
+ * Applies to any entity that can be enabled/disabled by the circuit network.
3565
+ */
3566
+ readonly circuit_condition?: CircuitConditionWrite
3567
+ /**
3568
+ * Corresponds to {@link LuaGenericOnOffControlBehavior.connect_to_logistic_network }.
3569
+ */
3570
+ readonly connect_to_logistic_network?: boolean
3571
+ /**
3572
+ * Corresponds to {@link LuaGenericOnOffControlBehavior.logistic_condition }.
3573
+ */
3574
+ readonly logistic_condition?: CircuitConditionWrite
3575
+ /**
3576
+ * If this entity with inventory reads its contents to the circuit network. Default true.
3577
+ *
3578
+ * Does not apply to asteroid collectors, see {@link circuit_read_contents }.
3579
+ */
3580
+ readonly read_contents?: boolean
3581
+ /**
3582
+ * If an **asteroid collector** reads its contents to the circuit network. Default false.
3583
+ */
3584
+ readonly circuit_read_contents?: boolean
3585
+ /**
3586
+ * On a turret, if the ammo is read by the circuit network. Default true.
3587
+ */
3588
+ readonly read_ammo?: boolean
3589
+ /**
3590
+ * Used by turrets.
3591
+ */
3592
+ readonly set_priority_list?: boolean
3593
+ /**
3594
+ * Used by turrets.
3595
+ */
3596
+ readonly set_ignore_unlisted_targets?: boolean
3597
+ /**
3598
+ * Used by turrets.
3599
+ */
3600
+ readonly ignore_unlisted_targets_condition?: CircuitConditionWrite
3601
+ readonly circuit_mode_of_operation?:
3602
+ | defines.control_behavior.logistic_container.exclusive_mode
3603
+ | defines.control_behavior.cargo_landing_pad.exclusive_mode
3604
+ /**
3605
+ * If this **logistics container** is enabled/disabled by the circuit network.
3606
+ *
3607
+ * For other machines, see {@link circuit_enabled }.
3608
+ */
3609
+ readonly circuit_condition_enabled?: boolean
3610
+ /**
3611
+ * Accumulator or gate output signal.
3612
+ */
3613
+ readonly output_signal?: SignalID
3614
+ /**
3615
+ * If the accumulator sends its charge to the circuit network. Default true.
3616
+ */
3617
+ readonly read_charge?: boolean
3618
+ /**
3619
+ * Used by walls connected to gates.
3620
+ */
3621
+ readonly circuit_open_gate?: boolean
3622
+ /**
3623
+ * Used by walls connected to gates. The signal is defined by {@link output_signal }.
3624
+ */
3625
+ readonly circuit_read_sensor?: boolean
3626
+ /**
3627
+ * If this inserter or belt is read by the circuit network.
3628
+ */
3629
+ readonly circuit_read_hand_contents?: boolean
3630
+ /**
3631
+ * For reading contents of an inserter.
3632
+ */
3633
+ readonly circuit_hand_read_mode?: defines.control_behavior.inserter.hand_read_mode
3634
+ /**
3635
+ * For reading contents of a belt.
3636
+ */
3637
+ readonly circuit_contents_read_mode?: defines.control_behavior.transport_belt.content_read_mode
3638
+ /**
3639
+ * If this inserter, loader, or asteroid collector has its filters set by the circuit network.
3640
+ */
3641
+ readonly circuit_set_filters?: boolean
3642
+ /**
3643
+ * If this pump should set its only filter from the circuit network
3644
+ */
3645
+ readonly set_filter?: boolean
3646
+ /**
3647
+ * If this loader pulses its transfers to the circuit network.
3648
+ */
3649
+ readonly circuit_read_transfers?: boolean
3650
+ /**
3651
+ * If this inserter has its stack size set by the circuit network.
3652
+ */
3653
+ readonly circuit_set_stack_size?: boolean
3654
+ readonly stack_control_input_signal?: SignalID
3655
+ /**
3656
+ * Used by assembling machines.
3657
+ */
3658
+ readonly set_recipe?: boolean
3659
+ readonly read_ingredients?: boolean
3660
+ readonly read_recipe_finished?: boolean
3661
+ readonly read_recipe_finished_signal?: SignalID
3662
+ readonly read_working?: boolean
3663
+ readonly read_working_signal?: SignalID
3664
+ /**
3665
+ * If this mining drill reads its resources to the circuit network.
3666
+ */
3667
+ readonly circuit_read_resources?: boolean
3668
+ readonly circuit_resource_read_mode?: defines.control_behavior.mining_drill.resource_read_mode
3669
+ /**
3670
+ * Used by constant combinators.
3671
+ */
3672
+ readonly is_on?: boolean
3673
+ /**
3674
+ * Used by constant combinators.
2805
3675
  */
2806
- readonly entity_number: uint
3676
+ readonly sections?: LogisticSectionsWrite
3677
+ readonly arithmetic_conditions?: ArithmeticCombinatorParameters
3678
+ readonly decider_conditions?: DeciderCombinatorParameters
2807
3679
  /**
2808
- * The prototype name of the entity.
3680
+ * Used by selector combinators.
2809
3681
  */
2810
- readonly name: string
3682
+ readonly index_signal?: SignalID
2811
3683
  /**
2812
- * The position of the entity.
3684
+ * Used by selector combinators.
2813
3685
  */
2814
- readonly position: MapPosition
3686
+ readonly index_constant?: uint
2815
3687
  /**
2816
- * The direction the entity is facing. Only present for entities that can face in different directions and when the entity is not facing north.
3688
+ * Used by selector combinators.
2817
3689
  */
2818
- readonly direction?: defines.direction
3690
+ readonly count_signal?: SignalID
2819
3691
  /**
2820
- * Whether this entity is mirrored.
3692
+ * Used by selector combinators. When not specified, defaults to "select".
2821
3693
  */
2822
- readonly mirror?: boolean
3694
+ readonly operation?: "select" | "count" | "random"
2823
3695
  /**
2824
- * The prototype name of the entity's quality.
3696
+ * Used by selector combinators.
2825
3697
  */
2826
- readonly quality?: string
3698
+ readonly select_max?: boolean
2827
3699
  /**
2828
- * 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.
3700
+ * Applies to train stop. Default true.
2829
3701
  */
2830
- readonly control_behavior?: BlueprintControlBehavior
3702
+ readonly send_to_train?: boolean
3703
+ readonly read_from_train?: boolean
3704
+ readonly set_trains_limit?: boolean
3705
+ readonly trains_limit_signal?: SignalID
3706
+ readonly read_stopped_train?: boolean
3707
+ readonly train_stopped_signal?: SignalID
3708
+ readonly read_trains_count?: boolean
3709
+ readonly trains_count_signal?: SignalID
3710
+ readonly set_priority?: boolean
3711
+ readonly priority_signal?: SignalID
2831
3712
  /**
2832
- * The items that the entity will request when revived, if any.
3713
+ * Used by lamps.
2833
3714
  */
2834
- readonly items?: BlueprintInsertPlan[]
3715
+ readonly use_colors?: boolean
3716
+ readonly color_mode?: defines.control_behavior.lamp.color_mode
2835
3717
  /**
2836
- * The entity tags of the entity, if there are any.
3718
+ * Used by **lamps**. For rail signals, see {@link red_output_signal }.
2837
3719
  */
2838
- readonly tags?: Tags
3720
+ readonly red_signal?: SignalID
2839
3721
  /**
2840
- * The schedule of the entity, if it has one. Only relevant for locomotives.
3722
+ * Used by **lamps**. For rail signals, see {@link green_output_signal }.
2841
3723
  */
2842
- readonly schedule?: BlueprintSchedule
3724
+ readonly green_signal?: SignalID
2843
3725
  /**
2844
- * Wires connected to this entity in the blueprint.
3726
+ * Used by **lamps**. For rail signals, see {@link orange_output_signal }.
2845
3727
  */
2846
- readonly wires?: BlueprintWire[]
2847
- /** Orientation of the cargo wagon or locomotive, value 0 to 1 */
2848
- readonly orientation?: RealOrientation
2849
- /** Copper wire connections, array of entity_numbers */
2850
- readonly neighbours?: uint[]
2851
- /** Name of the recipe prototype this assembling machine is set to. */
2852
- readonly recipe?: string
2853
- /** Used by {@link https://wiki.factorio.com/Prototype/Container Prototype/Container}. The index of the first inaccessible item slot due to limiting with the red "bar". 0-based. */
2854
- readonly bar?: uint16
2855
- /** Cargo wagon inventory configuration */
2856
- readonly inventory?: BlueprintInventory
2857
- /** Used by {@link https://wiki.factorio.com/Prototype/InfinityContainer Prototype/InfinityContainer}. */
2858
- readonly infinity_settings?: BlueprintInfinitySettings | InfinityPipeFilter
2859
- /** Type of the underground belt or loader. Either "input" or "output". */
2860
- readonly type?: "input" | "output"
2861
- /** Input priority of the splitter. Either "right" or "left", "none" is omitted. */
2862
- readonly input_priority?: "right" | "left"
2863
- /** Output priority of the splitter. Either "right" or "left", "none" is omitted. */
2864
- readonly output_priority?: "right" | "left"
2865
- /** Filter of the splitter. Name of the item prototype the filter is set to. */
2866
- readonly filter?: string
2867
- /** Filters of the filter inserter or loader. Array of {@link InventoryFilter} objects. */
2868
- readonly filters?: InventoryFilter[]
2869
- /** Filter mode of the filter inserter. Either "whitelist" or "blacklist". */
2870
- readonly filter_mode?: "whitelist" | "blacklist"
2871
- /** The stack size the inserter is set to. */
2872
- readonly override_stack_size?: uint8
2873
- /** The drop position the inserter is set to. */
2874
- readonly drop_position?: MapPosition
2875
- /** The pickup position the inserter is set to. */
2876
- readonly pickup_position?: MapPosition
2877
- /** Used by {@link https://wiki.factorio.com/Prototype/LogisticContainer Prototype/LogisticContainer}. */
2878
- readonly request_filters?: LogisticFilter[]
2879
- /** Whether this requester chest can request from buffer chests. */
2880
- readonly request_from_buffers?: boolean
2881
- /** Used by {@link https://wiki.factorio.com/Programmable_speaker Programmable speaker}. */
2882
- readonly parameters?: ProgrammableSpeakerParameters
2883
- /** Used by {@link https://wiki.factorio.com/Programmable_speaker Programmable speaker}. */
2884
- readonly alert_parameters?: ProgrammableSpeakerAlertParameters
2885
- /** Used by the rocket silo, whether auto launch is enabled. */
2886
- readonly auto_launch?: boolean
2887
- /** Used by {@link https://wiki.factorio.com/Prototype/SimpleEntityWithForce Prototype/SimpleEntityWithForce} or {@link https://wiki.factorio.com/Prototype/SimpleEntityWithOwner Prototype/SimpleEntityWithOwner}. */
2888
- readonly variation?: uint8
2889
- /** Color of the {@link https://wiki.factorio.com/Prototype/SimpleEntityWithForce Prototype/SimpleEntityWithForce}, {@link https://wiki.factorio.com/Prototype/SimpleEntityWithOwner Prototype/SimpleEntityWithOwner}, or train station. */
2890
- readonly color?: Color
2891
- /** The name of the train station. */
2892
- readonly station?: string
2893
- }
2894
- /**
2895
- * Information about a single connection between two connection points.
2896
- *
2897
- * {@link https://wiki.factorio.com/Blueprint_string_format#Connection_data_object View Documentation}
2898
- */
2899
- export interface BlueprintConnectionData {
2900
- /** ID of the entity this connection is connected with. */
2901
- entity_id: uint
2902
- /** The circuit connector id of the entity this connection is connected to. */
2903
- circuit_id?: defines.wire_connector_id
2904
- }
2905
- /**
2906
- * The actual point where a wire is connected to. Contains information about where it is connected to.
2907
- *
2908
- * {@link https://wiki.factorio.com/Blueprint_string_format#Connection_point_object View Documentation}
2909
- */
2910
- export interface BlueprintConnectionPoint {
3728
+ readonly blue_signal?: SignalID
2911
3729
  /**
2912
- * An array of {@link BlueprintConnectionData Connection data object} containing all the connections from this point
2913
- * created by red wire.
3730
+ * Used by lamps.
2914
3731
  */
2915
- red?: BlueprintConnectionData[]
3732
+ readonly rgb_signal?: SignalID
2916
3733
  /**
2917
- * An array of {@link BlueprintConnectionData Connection data object} containing all the connections from this point
2918
- * created by green wire.
3734
+ * Used by roboports.
2919
3735
  */
2920
- green?: BlueprintConnectionData[]
2921
- }
2922
- /**
2923
- * Object containing information about the connections to other entities formed by red or green wires.
2924
- *
2925
- * {@link https://wiki.factorio.com/Blueprint_string_format#Connection_object View Documentation}
2926
- */
2927
- export interface BlueprintCircuitConnection {
2928
- /** First connection point. The default for everything that doesn't have multiple connection points. */
2929
- "1"?: BlueprintConnectionPoint
2930
- /** Second connection point. For example, the "output" part of an arithmetic combinator. */
2931
- "2"?: BlueprintConnectionPoint
2932
- }
2933
- export interface BlueprintInventory {
2934
- readonly filters?: InventoryFilter[]
2935
- /** The index of the first inaccessible item slot due to limiting with the red "bar". 0-based. */
2936
- readonly bar?: uint16
2937
- }
2938
- export interface BlueprintInfinitySettings {
2939
- /** Whether the "remove unfiltered items" checkbox is checked. */
2940
- readonly remove_unfiltered_items: boolean
2941
- /** Filters of the infinity container. */
2942
- readonly filters?: InfinityInventoryFilter[]
2943
- }
2944
- /**
2945
- * WARNING: this type has not yet been updated for factorio 2.0.
2946
- */
2947
- export interface BlueprintControlBehavior {
2948
- readonly condition?: CircuitCondition
2949
- readonly circuit_condition?: CircuitCondition
2950
- readonly is_on?: boolean
2951
- readonly arithmetic_conditions?: ArithmeticCombinatorParameters
2952
- readonly decider_conditions?: DeciderCombinatorParameters
2953
- readonly circuit_enable_disable?: boolean
2954
- readonly circuit_read_resources?: boolean
2955
- readonly circuit_resource_read_mode?: defines.control_behavior.mining_drill.resource_read_mode
2956
- readonly read_stopped_train?: boolean
2957
- readonly train_stopped_signal?: SignalID
2958
- readonly read_from_train?: boolean
2959
- readonly send_to_train?: boolean
2960
- readonly circuit_mode_of_operation?: number
2961
- readonly circuit_read_hand_contents?: boolean
2962
- readonly circuit_hand_read_mode?: defines.control_behavior.inserter.hand_read_mode
2963
- readonly circuit_set_stack_size?: boolean
2964
- readonly stack_control_input_signal?: SignalID
2965
- readonly use_colors?: boolean
3736
+ readonly read_items_mode?:
3737
+ | defines.control_behavior.roboport.read_items_mode
3738
+ | defines.control_behavior.rocket_silo.read_mode
2966
3739
  readonly read_robot_stats?: boolean
2967
- readonly read_logistics?: boolean
2968
- readonly available_logistic_output_signal?: boolean
2969
- readonly total_logistic_output_signal?: boolean
2970
- readonly available_construction_output_signal?: boolean
2971
- readonly total_construction_output_signal?: boolean
2972
- readonly circuit_contents_read_mode?: defines.control_behavior.transport_belt.content_read_mode
2973
- readonly output_signal?: SignalID
2974
- readonly circuit_close_signal?: boolean
2975
- readonly circuit_read_signal?: boolean
2976
- readonly red_output_signal?: SignalID
2977
- readonly orange_output_signal?: SignalID
2978
- readonly green_output_signal?: SignalID
2979
- readonly blue_output_signal?: SignalID
2980
- readonly circuit_open_gate?: boolean
2981
- readonly circuit_read_sensor?: boolean
2982
- readonly circuit_parameters?: ProgrammableSpeakerCircuitParameters
2983
- }
2984
- /**
2985
- * Write form of {@link BlueprintEntity}, where table-or-array concepts are allowed to take an array form.
2986
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/BlueprintEntity.html Online documentation}
2987
- */
2988
- export interface BlueprintEntityWrite {
3740
+ readonly available_logistic_output_signal?: SignalID
3741
+ readonly total_logistic_output_signal?: SignalID
3742
+ readonly available_construction_output_signal?: SignalID
3743
+ readonly total_construction_output_signal?: SignalID
3744
+ readonly roboport_count_output_signal?: SignalID
2989
3745
  /**
2990
- * The entity's unique identifier in the blueprint.
3746
+ * Used by train signals.
2991
3747
  */
2992
- readonly entity_number: uint
3748
+ readonly circuit_close_signal?: boolean
2993
3749
  /**
2994
- * The prototype name of the entity.
3750
+ * Used by train signals.
2995
3751
  */
2996
- readonly name: string
3752
+ readonly circuit_read_signal?: boolean
2997
3753
  /**
2998
- * The position of the entity.
3754
+ * Used by **train signals**. For lamps, seed {@link red_signal }.
2999
3755
  */
3000
- readonly position: MapPosition | MapPositionArray
3756
+ readonly red_output_signal?: SignalID
3001
3757
  /**
3002
- * The direction the entity is facing. Only present for entities that can face in different directions and when the entity is not facing north.
3758
+ * used by train signals.
3003
3759
  */
3004
- readonly direction?: defines.direction
3760
+ readonly orange_output_signal?: SignalID
3005
3761
  /**
3006
- * Whether this entity is mirrored.
3762
+ * Used by **train signals**. For lamps, seed {@link green_signal }.
3007
3763
  */
3008
- readonly mirror?: boolean
3764
+ readonly green_output_signal?: SignalID
3009
3765
  /**
3010
- * The prototype name of the entity's quality.
3766
+ * Used by **train signals**. For lamps, seed {@link blue_signal }.
3011
3767
  */
3012
- readonly quality?: string
3768
+ readonly blue_output_signal?: SignalID
3013
3769
  /**
3014
- * 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.
3770
+ * Used by programmable speakers.
3015
3771
  */
3016
- readonly control_behavior?: BlueprintControlBehavior
3772
+ readonly circuit_parameters?: ProgrammableSpeakerCircuitParameters
3017
3773
  /**
3018
- * The items that the entity will request when revived, if any.
3774
+ * Display panel configuration.
3019
3775
  */
3020
- readonly items?: BlueprintInsertPlan[]
3776
+ readonly parameters?: DisplayPanelMessageDefinitionWrite
3021
3777
  /**
3022
- * The entity tags of the entity, if there are any.
3778
+ * If this reads the fuel contents of this reactor.
3023
3779
  */
3024
- readonly tags?: Tags
3780
+ readonly read_burner_fuel?: boolean
3025
3781
  /**
3026
- * The schedule of the entity, if it has one. Only relevant for locomotives.
3782
+ * If this reads the temperature of this reactor.
3027
3783
  */
3028
- readonly schedule?: BlueprintScheduleWrite
3784
+ readonly read_temperature?: boolean
3785
+ readonly temperature_signal?: SignalID
3029
3786
  /**
3030
- * Wires connected to this entity in the blueprint.
3787
+ * Used by space platform hub.
3031
3788
  */
3032
- readonly wires?: BlueprintWire[]
3033
- /** Orientation of the cargo wagon or locomotive, value 0 to 1 */
3034
- readonly orientation?: RealOrientation
3035
- /** Copper wire connections, array of entity_numbers */
3036
- readonly neighbours?: uint[]
3037
- /** Name of the recipe prototype this assembling machine is set to. */
3038
- readonly recipe?: string
3039
- /** Used by {@link https://wiki.factorio.com/Prototype/Container Prototype/Container}. The index of the first inaccessible item slot due to limiting with the red "bar". 0-based. */
3040
- readonly bar?: uint16
3041
- /** Cargo wagon inventory configuration */
3042
- readonly inventory?: BlueprintInventory
3043
- /** Used by {@link https://wiki.factorio.com/Prototype/InfinityContainer Prototype/InfinityContainer}. */
3044
- readonly infinity_settings?: BlueprintInfinitySettings | InfinityPipeFilter
3045
- /** Type of the underground belt or loader. Either "input" or "output". */
3046
- readonly type?: "input" | "output"
3047
- /** Input priority of the splitter. Either "right" or "left", "none" is omitted. */
3048
- readonly input_priority?: "right" | "left"
3049
- /** Output priority of the splitter. Either "right" or "left", "none" is omitted. */
3050
- readonly output_priority?: "right" | "left"
3051
- /** Filter of the splitter. Name of the item prototype the filter is set to. */
3052
- readonly filter?: string
3053
- /** Filters of the filter inserter or loader. Array of {@link InventoryFilter} objects. */
3054
- readonly filters?: InventoryFilter[]
3055
- /** Filter mode of the filter inserter. Either "whitelist" or "blacklist". */
3056
- readonly filter_mode?: "whitelist" | "blacklist"
3057
- /** The stack size the inserter is set to. */
3058
- readonly override_stack_size?: uint8
3059
- /** The drop position the inserter is set to. */
3060
- readonly drop_position?: MapPosition
3061
- /** The pickup position the inserter is set to. */
3062
- readonly pickup_position?: MapPosition
3063
- /** Used by {@link https://wiki.factorio.com/Prototype/LogisticContainer Prototype/LogisticContainer}. */
3064
- readonly request_filters?: LogisticFilter[]
3065
- /** Whether this requester chest can request from buffer chests. */
3066
- readonly request_from_buffers?: boolean
3067
- /** Used by {@link https://wiki.factorio.com/Programmable_speaker Programmable speaker}. */
3068
- readonly parameters?: ProgrammableSpeakerParameters
3069
- /** Used by {@link https://wiki.factorio.com/Programmable_speaker Programmable speaker}. */
3070
- readonly alert_parameters?: ProgrammableSpeakerAlertParameters
3071
- /** Used by the rocket silo, whether auto launch is enabled. */
3072
- readonly auto_launch?: boolean
3073
- /** Used by {@link https://wiki.factorio.com/Prototype/SimpleEntityWithForce Prototype/SimpleEntityWithForce} or {@link https://wiki.factorio.com/Prototype/SimpleEntityWithOwner Prototype/SimpleEntityWithOwner}. */
3074
- readonly variation?: uint8
3075
- /** Color of the {@link https://wiki.factorio.com/Prototype/SimpleEntityWithForce Prototype/SimpleEntityWithForce}, {@link https://wiki.factorio.com/Prototype/SimpleEntityWithOwner Prototype/SimpleEntityWithOwner}, or train station. */
3076
- readonly color?: Color
3077
- /** The name of the train station. */
3078
- readonly station?: string
3789
+ readonly send_to_platform?: boolean
3790
+ readonly read_moving_from?: boolean
3791
+ readonly read_moving_to?: boolean
3792
+ readonly read_speed?: boolean
3793
+ readonly speed_signal?: SignalID
3794
+ readonly read_damage_taken?: boolean
3795
+ readonly damage_taken_signal?: SignalID
3079
3796
  }
3080
3797
  /**
3081
3798
  * A string that represents a math expression. The expression parser recognizes four basic token types (with their regex):
@@ -3107,7 +3824,7 @@ declare module "factorio:runtime" {
3107
3824
  * "2500 * (L - 3)"
3108
3825
  * @example
3109
3826
  * "(4e5 * (abs(speed) + 10.5)) / weight"
3110
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/MathExpression.html Online documentation}
3827
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/MathExpression.html Online documentation}
3111
3828
  */
3112
3829
  export type MathExpression = string
3113
3830
  /**
@@ -3129,7 +3846,7 @@ declare module "factorio:runtime" {
3129
3846
  * -- What a custom recipe would look like that had a probability of 0.5 to return a
3130
3847
  * -- minimum amount of 1 and a maximum amount of 5
3131
3848
  * {{type="item", name="custom-item", probability=0.5, amount_min=1, amount_max=5}}
3132
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/Product.html Online documentation}
3849
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/Product.html Online documentation}
3133
3850
  */
3134
3851
  export type Product = ItemProduct | FluidProduct | ResearchProgressProduct
3135
3852
  /**
@@ -3140,7 +3857,7 @@ declare module "factorio:runtime" {
3140
3857
  * -- What a custom recipe would look like that had a probability of 0.5 to return a
3141
3858
  * -- minimum amount of 1 and a maximum amount of 5
3142
3859
  * {{type="item", name="custom-item", probability=0.5, amount_min=1, amount_max=5}}
3143
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ItemProduct.html Online documentation}
3860
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ItemProduct.html Online documentation}
3144
3861
  */
3145
3862
  export interface ItemProduct {
3146
3863
  readonly type: "item"
@@ -3184,7 +3901,7 @@ declare module "factorio:runtime" {
3184
3901
  * {{type="fluid", name="heavy-oil", amount=1},
3185
3902
  * {type="fluid", name="light-oil", amount=4.5},
3186
3903
  * {type="fluid", name="petroleum-gas", amount=5.5}}
3187
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/FluidProduct.html Online documentation}
3904
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/FluidProduct.html Online documentation}
3188
3905
  */
3189
3906
  export interface FluidProduct {
3190
3907
  readonly type: "fluid"
@@ -3230,6 +3947,28 @@ declare module "factorio:runtime" {
3230
3947
  readonly research_item: string
3231
3948
  readonly amount: double
3232
3949
  }
3950
+ /**
3951
+ * @see LogisticSectionsWrite
3952
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LogisticSections.html Online documentation}
3953
+ */
3954
+ export interface LogisticSections {
3955
+ readonly sections?: LogisticSection[]
3956
+ /**
3957
+ * Defaults to false.
3958
+ */
3959
+ readonly trash_not_requested?: boolean
3960
+ }
3961
+ /**
3962
+ * Write form of {@link LogisticSections}, where some properties allow additional values as input compared to the read form.
3963
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LogisticSections.html Online documentation}
3964
+ */
3965
+ export interface LogisticSectionsWrite {
3966
+ readonly sections?: readonly LogisticSectionWrite[]
3967
+ /**
3968
+ * Defaults to false.
3969
+ */
3970
+ readonly trash_not_requested?: boolean
3971
+ }
3233
3972
  export interface CompiledLogisticFilter {
3234
3973
  readonly index: LogisticFilterIndex
3235
3974
  /**
@@ -3255,9 +3994,103 @@ declare module "factorio:runtime" {
3255
3994
  */
3256
3995
  readonly minimum_delivery_count?: ItemCountType
3257
3996
  }
3997
+ /**
3998
+ * @see LogisticSectionWrite
3999
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LogisticSection.html Online documentation}
4000
+ */
4001
+ export interface LogisticSection {
4002
+ readonly index: uint8
4003
+ readonly filters?: BlueprintLogisticFilter[]
4004
+ readonly group?: string
4005
+ /**
4006
+ * Defaults to 1.
4007
+ */
4008
+ readonly multiplier?: float
4009
+ /**
4010
+ * Defaults to true.
4011
+ */
4012
+ readonly active?: float
4013
+ }
4014
+ /**
4015
+ * Write form of {@link LogisticSection}, where some properties allow additional values as input compared to the read form.
4016
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LogisticSection.html Online documentation}
4017
+ */
4018
+ export interface LogisticSectionWrite {
4019
+ readonly index: uint8
4020
+ readonly filters?: readonly BlueprintLogisticFilterWrite[]
4021
+ readonly group?: string
4022
+ /**
4023
+ * Defaults to 1.
4024
+ */
4025
+ readonly multiplier?: float
4026
+ /**
4027
+ * Defaults to true.
4028
+ */
4029
+ readonly active?: float
4030
+ }
4031
+ /**
4032
+ * @see BlueprintLogisticFilterWrite
4033
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/BlueprintLogisticFilter.html Online documentation}
4034
+ */
4035
+ export interface BlueprintLogisticFilter {
4036
+ readonly index: LogisticFilterIndex
4037
+ /**
4038
+ * The type of the logistic filter.
4039
+ */
4040
+ readonly type?: SignalIDType
4041
+ /**
4042
+ * Name of the logistic filter.
4043
+ */
4044
+ readonly name?: string
4045
+ /**
4046
+ * The prototype name of the quality. `nil` for any quality.
4047
+ */
4048
+ readonly quality?: string
4049
+ /**
4050
+ * The comparator for quality. `nil` if any quality.
4051
+ */
4052
+ readonly comparator?: ComparatorStringRead
4053
+ readonly count: int
4054
+ readonly max_count?: ItemCountType
4055
+ /**
4056
+ * Defaults to 0.
4057
+ */
4058
+ readonly minimum_delivery_count?: ItemCountType
4059
+ readonly import_from?: string
4060
+ }
4061
+ /**
4062
+ * Write form of {@link BlueprintLogisticFilter}, where some properties allow additional values as input compared to the read form.
4063
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/BlueprintLogisticFilter.html Online documentation}
4064
+ */
4065
+ export interface BlueprintLogisticFilterWrite {
4066
+ readonly index: LogisticFilterIndex
4067
+ /**
4068
+ * The type of the logistic filter.
4069
+ */
4070
+ readonly type?: SignalIDType
4071
+ /**
4072
+ * Name of the logistic filter.
4073
+ */
4074
+ readonly name?: string
4075
+ /**
4076
+ * The prototype name of the quality. `nil` for any quality.
4077
+ */
4078
+ readonly quality?: string
4079
+ /**
4080
+ * The comparator for quality. `nil` if any quality.
4081
+ */
4082
+ readonly comparator?: ComparatorString
4083
+ readonly count: int
4084
+ readonly max_count?: ItemCountType
4085
+ /**
4086
+ * Defaults to 0.
4087
+ */
4088
+ readonly minimum_delivery_count?: ItemCountType
4089
+ readonly import_from?: string
4090
+ }
3258
4091
  /**
3259
4092
  * Specifies how probability and richness are calculated when placing something on the map.
3260
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/AutoplaceSpecification.html Online documentation}
4093
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/AutoplaceSpecification.html Online documentation}
3261
4094
  */
3262
4095
  export interface AutoplaceSpecification {
3263
4096
  /**
@@ -3274,7 +4107,7 @@ declare module "factorio:runtime" {
3274
4107
  }
3275
4108
  /**
3276
4109
  * @see CliffPlacementSettingsWrite
3277
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/CliffPlacementSettings.html Online documentation}
4110
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/CliffPlacementSettings.html Online documentation}
3278
4111
  */
3279
4112
  export interface CliffPlacementSettings {
3280
4113
  /**
@@ -3303,8 +4136,8 @@ declare module "factorio:runtime" {
3303
4136
  readonly richness: float
3304
4137
  }
3305
4138
  /**
3306
- * Write form of {@link CliffPlacementSettings}, where table-or-array concepts are allowed to take an array form.
3307
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/CliffPlacementSettings.html Online documentation}
4139
+ * Write form of {@link CliffPlacementSettings}, where some properties allow additional values as input compared to the read form.
4140
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/CliffPlacementSettings.html Online documentation}
3308
4141
  */
3309
4142
  export interface CliffPlacementSettingsWrite {
3310
4143
  /**
@@ -3334,7 +4167,7 @@ declare module "factorio:runtime" {
3334
4167
  }
3335
4168
  /**
3336
4169
  * @see AutoplaceSettingsWrite
3337
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/AutoplaceSettings.html Online documentation}
4170
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/AutoplaceSettings.html Online documentation}
3338
4171
  */
3339
4172
  export interface AutoplaceSettings {
3340
4173
  /**
@@ -3347,8 +4180,8 @@ declare module "factorio:runtime" {
3347
4180
  readonly settings?: Record<string, AutoplaceControl>
3348
4181
  }
3349
4182
  /**
3350
- * Write form of {@link AutoplaceSettings}, where table-or-array concepts are allowed to take an array form.
3351
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/AutoplaceSettings.html Online documentation}
4183
+ * Write form of {@link AutoplaceSettings}, where some properties allow additional values as input compared to the read form.
4184
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/AutoplaceSettings.html Online documentation}
3352
4185
  */
3353
4186
  export interface AutoplaceSettingsWrite {
3354
4187
  /**
@@ -3383,7 +4216,7 @@ declare module "factorio:runtime" {
3383
4216
  * surface.map_gen_settings = mgs
3384
4217
  * -- This does not require a NamedNoiseExpression to be defined, since literal numbers (and strings naming literal
3385
4218
  * -- numbers, e.g. `"123"`) are understood to stand for constant value expressions.
3386
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/MapGenSettings.html Online documentation}
4219
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/MapGenSettings.html Online documentation}
3387
4220
  */
3388
4221
  export interface MapGenSettings {
3389
4222
  /**
@@ -3437,8 +4270,8 @@ declare module "factorio:runtime" {
3437
4270
  readonly territory_settings: TerritorySettings
3438
4271
  }
3439
4272
  /**
3440
- * Write form of {@link MapGenSettings}, where table-or-array concepts are allowed to take an array form.
3441
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/MapGenSettings.html Online documentation}
4273
+ * Write form of {@link MapGenSettings}, where some properties allow additional values as input compared to the read form.
4274
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/MapGenSettings.html Online documentation}
3442
4275
  */
3443
4276
  export interface MapGenSettingsWrite {
3444
4277
  /**
@@ -3497,7 +4330,7 @@ declare module "factorio:runtime" {
3497
4330
  }
3498
4331
  /**
3499
4332
  * These values are for the time frame of one second (60 ticks).
3500
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/PollutionMapSettings.html Online documentation}
4333
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/PollutionMapSettings.html Online documentation}
3501
4334
  */
3502
4335
  export interface PollutionMapSettings {
3503
4336
  /**
@@ -3551,7 +4384,7 @@ declare module "factorio:runtime" {
3551
4384
  }
3552
4385
  /**
3553
4386
  * These values represent a percentual increase in evolution. This means a value of `0.1` would increase evolution by 10%.
3554
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/EnemyEvolutionMapSettings.html Online documentation}
4387
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/EnemyEvolutionMapSettings.html Online documentation}
3555
4388
  */
3556
4389
  export interface EnemyEvolutionMapSettings {
3557
4390
  /**
@@ -3589,7 +4422,7 @@ declare module "factorio:runtime" {
3589
4422
  * * neighbouring_base_chunk_coefficient^distance(chunk, neighbour)
3590
4423
  * score(chunk) = 1 / (1 + player + base)
3591
4424
  * ```
3592
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/EnemyExpansionMapSettings.html Online documentation}
4425
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/EnemyExpansionMapSettings.html Online documentation}
3593
4426
  */
3594
4427
  export interface EnemyExpansionMapSettings {
3595
4428
  /**
@@ -3848,17 +4681,17 @@ declare module "factorio:runtime" {
3848
4681
  }
3849
4682
  /**
3850
4683
  * Technology difficulty settings. Updating any of the attributes will immediately take effect in the game engine.
3851
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/DifficultySettings.html Online documentation}
4684
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/DifficultySettings.html Online documentation}
3852
4685
  */
3853
4686
  export interface DifficultySettings {
3854
4687
  /**
3855
4688
  * A value in range [0.001, 1000].
3856
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/DifficultySettings.technology_price_multiplier.html Online documentation}
4689
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/DifficultySettings.technology_price_multiplier.html Online documentation}
3857
4690
  */
3858
4691
  technology_price_multiplier: double
3859
4692
  /**
3860
4693
  * A value in range [0.01, 100].
3861
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/DifficultySettings.spoil_time_modifier.html Online documentation}
4694
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/DifficultySettings.spoil_time_modifier.html Online documentation}
3862
4695
  */
3863
4696
  spoil_time_modifier: double
3864
4697
  }
@@ -3874,7 +4707,7 @@ declare module "factorio:runtime" {
3874
4707
  }
3875
4708
  /**
3876
4709
  * A standard table containing all {@link MapSettings} attributes plus an additional table that contains all {@link DifficultySettings} properties.
3877
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/MapAndDifficultySettings.html Online documentation}
4710
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/MapAndDifficultySettings.html Online documentation}
3878
4711
  */
3879
4712
  export interface MapAndDifficultySettings {
3880
4713
  readonly pollution: PollutionMapSettings
@@ -3895,7 +4728,7 @@ declare module "factorio:runtime" {
3895
4728
  * @example
3896
4729
  * -- Increase the number of short paths the pathfinder can cache.
3897
4730
  * game.map_settings.path_finder.short_cache_size = 15
3898
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/MapSettings.html Online documentation}
4731
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/MapSettings.html Online documentation}
3899
4732
  */
3900
4733
  export interface MapSettings {
3901
4734
  pollution: PollutionMapSettings
@@ -3907,13 +4740,13 @@ declare module "factorio:runtime" {
3907
4740
  asteroids: AsteroidMapSettings
3908
4741
  /**
3909
4742
  * If a behavior fails this many times, the enemy (or enemy group) is destroyed. This solves biters getting stuck within their own base.
3910
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/MapSettings.max_failed_behavior_count.html Online documentation}
4743
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/MapSettings.max_failed_behavior_count.html Online documentation}
3911
4744
  */
3912
4745
  max_failed_behavior_count: uint
3913
4746
  }
3914
4747
  /**
3915
4748
  * @see BlueprintScheduleRecordWrite
3916
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/BlueprintScheduleRecord.html Online documentation}
4749
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/BlueprintScheduleRecord.html Online documentation}
3917
4750
  */
3918
4751
  export interface BlueprintScheduleRecord {
3919
4752
  /**
@@ -3929,8 +4762,8 @@ declare module "factorio:runtime" {
3929
4762
  readonly allows_unloading?: boolean
3930
4763
  }
3931
4764
  /**
3932
- * Write form of {@link BlueprintScheduleRecord}, where table-or-array concepts are allowed to take an array form.
3933
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/BlueprintScheduleRecord.html Online documentation}
4765
+ * Write form of {@link BlueprintScheduleRecord}, where some properties allow additional values as input compared to the read form.
4766
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/BlueprintScheduleRecord.html Online documentation}
3934
4767
  */
3935
4768
  export interface BlueprintScheduleRecordWrite {
3936
4769
  /**
@@ -3947,7 +4780,7 @@ declare module "factorio:runtime" {
3947
4780
  }
3948
4781
  /**
3949
4782
  * @see BlueprintScheduleInterruptWrite
3950
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/BlueprintScheduleInterrupt.html Online documentation}
4783
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/BlueprintScheduleInterrupt.html Online documentation}
3951
4784
  */
3952
4785
  export interface BlueprintScheduleInterrupt {
3953
4786
  readonly name?: string
@@ -3956,8 +4789,8 @@ declare module "factorio:runtime" {
3956
4789
  readonly inside_interrupt: boolean
3957
4790
  }
3958
4791
  /**
3959
- * Write form of {@link BlueprintScheduleInterrupt}, where table-or-array concepts are allowed to take an array form.
3960
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/BlueprintScheduleInterrupt.html Online documentation}
4792
+ * Write form of {@link BlueprintScheduleInterrupt}, where some properties allow additional values as input compared to the read form.
4793
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/BlueprintScheduleInterrupt.html Online documentation}
3961
4794
  */
3962
4795
  export interface BlueprintScheduleInterruptWrite {
3963
4796
  readonly name?: string
@@ -3967,7 +4800,7 @@ declare module "factorio:runtime" {
3967
4800
  }
3968
4801
  /**
3969
4802
  * @see BlueprintScheduleWrite
3970
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/BlueprintSchedule.html Online documentation}
4803
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/BlueprintSchedule.html Online documentation}
3971
4804
  */
3972
4805
  export interface BlueprintSchedule {
3973
4806
  readonly records?: BlueprintScheduleRecord[]
@@ -3975,8 +4808,8 @@ declare module "factorio:runtime" {
3975
4808
  readonly interrupts?: BlueprintScheduleInterrupt[]
3976
4809
  }
3977
4810
  /**
3978
- * Write form of {@link BlueprintSchedule}, where table-or-array concepts are allowed to take an array form.
3979
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/BlueprintSchedule.html Online documentation}
4811
+ * Write form of {@link BlueprintSchedule}, where some properties allow additional values as input compared to the read form.
4812
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/BlueprintSchedule.html Online documentation}
3980
4813
  */
3981
4814
  export interface BlueprintScheduleWrite {
3982
4815
  readonly records?: readonly BlueprintScheduleRecordWrite[]
@@ -3985,7 +4818,7 @@ declare module "factorio:runtime" {
3985
4818
  }
3986
4819
  /**
3987
4820
  * @see WaitConditionWrite
3988
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/WaitCondition.html Online documentation}
4821
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/WaitCondition.html Online documentation}
3989
4822
  */
3990
4823
  export interface WaitCondition {
3991
4824
  readonly type: WaitConditionType
@@ -4015,8 +4848,8 @@ declare module "factorio:runtime" {
4015
4848
  readonly damage?: uint
4016
4849
  }
4017
4850
  /**
4018
- * Write form of {@link WaitCondition}, where table-or-array concepts are allowed to take an array form.
4019
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/WaitCondition.html Online documentation}
4851
+ * Write form of {@link WaitCondition}, where some properties allow additional values as input compared to the read form.
4852
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/WaitCondition.html Online documentation}
4020
4853
  */
4021
4854
  export interface WaitConditionWrite {
4022
4855
  readonly type: WaitConditionType
@@ -4031,7 +4864,7 @@ declare module "factorio:runtime" {
4031
4864
  /**
4032
4865
  * This is a CircuitCondition and only present when `type` is `"item_count"`, `"circuit"`, `"fluid_count"`, `"fuel_item_count_all"`, or `"fuel_item_count_any"`, and a circuit condition is configured. This is a ItemIDAndQualityIDPair and only present when `type` is `"request_satisfied"` or `"request_not_satisfied"`
4033
4866
  */
4034
- readonly condition?: CircuitConditionWrite | ItemIDAndQualityIDPair
4867
+ readonly condition?: CircuitConditionWrite | ItemIDAndQualityIDPairWrite
4035
4868
  /**
4036
4869
  * Name of the space location. Only present when `type` is "`any_planet_import_zero`" and a planet is configured.
4037
4870
  */
@@ -4075,7 +4908,7 @@ declare module "factorio:runtime" {
4075
4908
  * - `"at_station"`
4076
4909
  * - `"not_at_station"`
4077
4910
  * - `"damage_taken"`
4078
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/WaitConditionType.html Online documentation}
4911
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/WaitConditionType.html Online documentation}
4079
4912
  */
4080
4913
  export type WaitConditionType =
4081
4914
  | "time"
@@ -4117,7 +4950,7 @@ declare module "factorio:runtime" {
4117
4950
  * - `"blueprint-snap-rectangle"`: Green by default.
4118
4951
  * - `"spidertron-remote-selected"`
4119
4952
  * - `"spidertron-remote-to-be-selected"`
4120
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/CursorBoxRenderType.html Online documentation}
4953
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/CursorBoxRenderType.html Online documentation}
4121
4954
  */
4122
4955
  export type CursorBoxRenderType =
4123
4956
  | "entity"
@@ -4133,7 +4966,7 @@ declare module "factorio:runtime" {
4133
4966
  | "spidertron-remote-to-be-selected"
4134
4967
  /**
4135
4968
  * What is shown in the map view. If a field is not given, that setting will not be changed.
4136
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/MapViewSettings.html Online documentation}
4969
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/MapViewSettings.html Online documentation}
4137
4970
  */
4138
4971
  export interface MapViewSettings {
4139
4972
  readonly "show-logistic-network"?: boolean
@@ -4226,7 +5059,7 @@ declare module "factorio:runtime" {
4226
5059
  * - `"collision-selection-box"`: 189
4227
5060
  * - `"arrow"`: 190
4228
5061
  * - `"cursor"`: 226
4229
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/RenderLayer.html Online documentation}
5062
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/RenderLayer.html Online documentation}
4230
5063
  */
4231
5064
  export type RenderLayer =
4232
5065
  | `${bigint}`
@@ -4322,7 +5155,7 @@ declare module "factorio:runtime" {
4322
5155
  * - `"entity-with-quality"`
4323
5156
  * - `"recipe-with-quality"`
4324
5157
  * - `"equipment-with-quality"`
4325
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ElemType.html Online documentation}
5158
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ElemType.html Online documentation}
4326
5159
  */
4327
5160
  export type ElemType =
4328
5161
  | "achievement"
@@ -4349,7 +5182,7 @@ declare module "factorio:runtime" {
4349
5182
  * - `"left"`
4350
5183
  * - `"right"`
4351
5184
  * - `"none"`
4352
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/SwitchState.html Online documentation}
5185
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/SwitchState.html Online documentation}
4353
5186
  */
4354
5187
  export type SwitchState = "left" | "right" | "none"
4355
5188
  export interface ElemID {
@@ -4389,7 +5222,7 @@ declare module "factorio:runtime" {
4389
5222
  * - `"destroy-decoratives"`
4390
5223
  * - `"camera-effect"`
4391
5224
  * - `"activate-impact"`
4392
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/TriggerEffectItemType.html Online documentation}
5225
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/TriggerEffectItemType.html Online documentation}
4393
5226
  */
4394
5227
  export type TriggerEffectItemType =
4395
5228
  | "damage"
@@ -4425,7 +5258,7 @@ declare module "factorio:runtime" {
4425
5258
  }
4426
5259
  /**
4427
5260
  * A set of trigger target masks.
4428
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/TriggerTargetMask.html Online documentation}
5261
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/TriggerTargetMask.html Online documentation}
4429
5262
  */
4430
5263
  export type TriggerTargetMask = Record<string, true>
4431
5264
  export interface TriggerItem {
@@ -4492,7 +5325,7 @@ declare module "factorio:runtime" {
4492
5325
  * -- If 'entity-description.furnace' exists, it is concatenated with "\n" and returned. Otherwise, if 'item-description.furnace'
4493
5326
  * -- exists, it is returned as-is. Otherwise, "optional fallback" is returned. If this value wasn't specified, the
4494
5327
  * -- translation result would be "Unknown key: 'item-description.furnace'".
4495
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LocalisedString.html Online documentation}
5328
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LocalisedString.html Online documentation}
4496
5329
  */
4497
5330
  export type LocalisedString = string | number | boolean | LuaObject | nil | [string, ...LocalisedString[]]
4498
5331
  export interface DisplayResolution {
@@ -4503,7 +5336,7 @@ declare module "factorio:runtime" {
4503
5336
  * The smooth orientation. It is a {@link float} in the range `[0, 1)` that covers a full circle, starting at the top and going clockwise. This means a value of `0` indicates "north", a value of `0.5` indicates "south".
4504
5337
  *
4505
5338
  * For example then, a value of `0.625` would indicate "south-west", and a value of `0.875` would indicate "north-west".
4506
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/RealOrientation.html Online documentation}
5339
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/RealOrientation.html Online documentation}
4507
5340
  */
4508
5341
  export type RealOrientation = float
4509
5342
  /**
@@ -4518,7 +5351,7 @@ declare module "factorio:runtime" {
4518
5351
  * @example
4519
5352
  * -- Shorthand
4520
5353
  * {1.625, 2.375}
4521
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/MapPosition.html Online documentation}
5354
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/MapPosition.html Online documentation}
4522
5355
  */
4523
5356
  export interface MapPosition {
4524
5357
  readonly x: double
@@ -4527,13 +5360,13 @@ declare module "factorio:runtime" {
4527
5360
  /**
4528
5361
  * Array form of {@link MapPosition}.
4529
5362
  * @see MapPosition
4530
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/MapPosition.html Online documentation}
5363
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/MapPosition.html Online documentation}
4531
5364
  */
4532
5365
  export type MapPositionArray = readonly [double, double]
4533
5366
  /**
4534
5367
  * Coordinates of a chunk in a {@link LuaSurface} where each integer `x`/`y` represents a different chunk. This uses the same format as {@link MapPosition}, meaning it can be specified either with or without explicit keys. A {@link MapPosition} can be translated to a ChunkPosition by dividing the `x`/`y` values by 32.
4535
5368
  * @see ChunkPositionArray
4536
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ChunkPosition.html Online documentation}
5369
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ChunkPosition.html Online documentation}
4537
5370
  */
4538
5371
  export interface ChunkPosition {
4539
5372
  readonly x: int
@@ -4542,13 +5375,13 @@ declare module "factorio:runtime" {
4542
5375
  /**
4543
5376
  * Array form of {@link ChunkPosition}.
4544
5377
  * @see ChunkPosition
4545
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ChunkPosition.html Online documentation}
5378
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ChunkPosition.html Online documentation}
4546
5379
  */
4547
5380
  export type ChunkPositionArray = readonly [int, int]
4548
5381
  /**
4549
5382
  * Coordinates of a tile on a {@link LuaSurface} where each integer `x`/`y` represents a different tile. This uses the same format as {@link MapPosition}, except it rounds any non-integer `x`/`y` down to whole numbers. It can be specified either with or without explicit keys.
4550
5383
  * @see TilePositionArray
4551
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/TilePosition.html Online documentation}
5384
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/TilePosition.html Online documentation}
4552
5385
  */
4553
5386
  export interface TilePosition {
4554
5387
  readonly x: int
@@ -4557,7 +5390,7 @@ declare module "factorio:runtime" {
4557
5390
  /**
4558
5391
  * Array form of {@link TilePosition}.
4559
5392
  * @see TilePosition
4560
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/TilePosition.html Online documentation}
5393
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/TilePosition.html Online documentation}
4561
5394
  */
4562
5395
  export type TilePositionArray = readonly [int, int]
4563
5396
  /**
@@ -4570,7 +5403,7 @@ declare module "factorio:runtime" {
4570
5403
  * @example
4571
5404
  * -- Shorthand
4572
5405
  * {1, 2}
4573
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/EquipmentPosition.html Online documentation}
5406
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/EquipmentPosition.html Online documentation}
4574
5407
  */
4575
5408
  export interface EquipmentPosition {
4576
5409
  readonly x: int
@@ -4579,13 +5412,13 @@ declare module "factorio:runtime" {
4579
5412
  /**
4580
5413
  * Array form of {@link EquipmentPosition}.
4581
5414
  * @see EquipmentPosition
4582
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/EquipmentPosition.html Online documentation}
5415
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/EquipmentPosition.html Online documentation}
4583
5416
  */
4584
5417
  export type EquipmentPositionArray = readonly [int, int]
4585
5418
  /**
4586
5419
  * Screen coordinates of a GUI element in a {@link LuaGui}. This uses the same format as {@link TilePosition}, meaning it can be specified either with or without explicit keys.
4587
5420
  * @see GuiLocationArray
4588
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/GuiLocation.html Online documentation}
5421
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/GuiLocation.html Online documentation}
4589
5422
  */
4590
5423
  export interface GuiLocation {
4591
5424
  readonly x: int
@@ -4594,12 +5427,12 @@ declare module "factorio:runtime" {
4594
5427
  /**
4595
5428
  * Array form of {@link GuiLocation}.
4596
5429
  * @see GuiLocation
4597
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/GuiLocation.html Online documentation}
5430
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/GuiLocation.html Online documentation}
4598
5431
  */
4599
5432
  export type GuiLocationArray = readonly [int, int]
4600
5433
  /**
4601
5434
  * A {@link ChunkPosition} with an added bounding box for the area of the chunk.
4602
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ChunkPositionAndArea.html Online documentation}
5435
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ChunkPositionAndArea.html Online documentation}
4603
5436
  */
4604
5437
  export interface ChunkPositionAndArea {
4605
5438
  readonly x: int
@@ -4608,7 +5441,7 @@ declare module "factorio:runtime" {
4608
5441
  }
4609
5442
  /**
4610
5443
  * A table used to define a manual shape for a piece of equipment.
4611
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/EquipmentPoint.html Online documentation}
5444
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/EquipmentPoint.html Online documentation}
4612
5445
  */
4613
5446
  export interface EquipmentPoint {
4614
5447
  readonly x: uint
@@ -4644,7 +5477,7 @@ declare module "factorio:runtime" {
4644
5477
  * Note that the API returns tags as a simple table, meaning any modifications to it will not propagate back to the game. Thus, to modify a set of tags, the whole table needs to be written back to the respective property.
4645
5478
  * @example
4646
5479
  * {a = 1, b = true, c = "three", d = {e = "f"}}
4647
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/Tags.html Online documentation}
5480
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/Tags.html Online documentation}
4648
5481
  */
4649
5482
  export type Tags = Record<string, AnyBasic>
4650
5483
  export interface SurfaceCondition {
@@ -4678,13 +5511,13 @@ declare module "factorio:runtime" {
4678
5511
  * A vector is a two-element array or dictionary containing the `x` and `y` components. The game will always provide the array format. Positive x goes east, positive y goes south.
4679
5512
  * @example
4680
5513
  * right = {1.0, 0.0}
4681
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/Vector.html Online documentation}
5514
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/Vector.html Online documentation}
4682
5515
  */
4683
5516
  export type Vector = MapPositionArray
4684
5517
  /**
4685
5518
  * An area defined using the map editor.
4686
5519
  * @see ScriptAreaWrite
4687
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ScriptArea.html Online documentation}
5520
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ScriptArea.html Online documentation}
4688
5521
  */
4689
5522
  export interface ScriptArea {
4690
5523
  readonly area: BoundingBox
@@ -4693,8 +5526,8 @@ declare module "factorio:runtime" {
4693
5526
  readonly id: uint
4694
5527
  }
4695
5528
  /**
4696
- * Write form of {@link ScriptArea}, where table-or-array concepts are allowed to take an array form.
4697
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ScriptArea.html Online documentation}
5529
+ * Write form of {@link ScriptArea}, where some properties allow additional values as input compared to the read form.
5530
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ScriptArea.html Online documentation}
4698
5531
  */
4699
5532
  export interface ScriptAreaWrite {
4700
5533
  readonly area: BoundingBoxWrite | BoundingBoxArray
@@ -4705,7 +5538,7 @@ declare module "factorio:runtime" {
4705
5538
  /**
4706
5539
  * A position defined using the map editor.
4707
5540
  * @see ScriptPositionWrite
4708
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ScriptPosition.html Online documentation}
5541
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ScriptPosition.html Online documentation}
4709
5542
  */
4710
5543
  export interface ScriptPosition {
4711
5544
  readonly position: MapPosition
@@ -4714,8 +5547,8 @@ declare module "factorio:runtime" {
4714
5547
  readonly id: uint
4715
5548
  }
4716
5549
  /**
4717
- * Write form of {@link ScriptPosition}, where table-or-array concepts are allowed to take an array form.
4718
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ScriptPosition.html Online documentation}
5550
+ * Write form of {@link ScriptPosition}, where some properties allow additional values as input compared to the read form.
5551
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ScriptPosition.html Online documentation}
4719
5552
  */
4720
5553
  export interface ScriptPositionWrite {
4721
5554
  readonly position: MapPosition | MapPositionArray
@@ -4733,7 +5566,7 @@ declare module "factorio:runtime" {
4733
5566
  * red2 = {r = 0.5, a = 0.5} -- Same color as red1
4734
5567
  * black = {} -- All channels omitted: black
4735
5568
  * red1_short = {0.5, 0, 0, 0.5} -- Same color as red1 in short-hand notation
4736
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/Color.html Online documentation}
5569
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/Color.html Online documentation}
4737
5570
  */
4738
5571
  export interface Color {
4739
5572
  readonly r?: float
@@ -4744,13 +5577,13 @@ declare module "factorio:runtime" {
4744
5577
  /**
4745
5578
  * Array form of {@link Color}.
4746
5579
  * @see Color
4747
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/Color.html Online documentation}
5580
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/Color.html Online documentation}
4748
5581
  */
4749
5582
  export type ColorArray = readonly [r: double, g: double, b: double, a?: double]
4750
5583
  /**
4751
5584
  * Same as {@link Color}, but red, green, blue and alpha values can be any floating point number, without any special handling of the range [1, 255].
4752
5585
  * @see ColorModifierArray
4753
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ColorModifier.html Online documentation}
5586
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ColorModifier.html Online documentation}
4754
5587
  */
4755
5588
  export interface ColorModifier {
4756
5589
  readonly r?: float
@@ -4761,7 +5594,7 @@ declare module "factorio:runtime" {
4761
5594
  /**
4762
5595
  * Array form of {@link ColorModifier}.
4763
5596
  * @see ColorModifier
4764
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ColorModifier.html Online documentation}
5597
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ColorModifier.html Online documentation}
4765
5598
  */
4766
5599
  export type ColorModifierArray = readonly [r: double, g: double, b: double, a?: double]
4767
5600
  export interface CraftingQueueItem {
@@ -4904,7 +5737,7 @@ declare module "factorio:runtime" {
4904
5737
  }
4905
5738
  /**
4906
5739
  * @see AsteroidChunkWrite
4907
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/AsteroidChunk.html Online documentation}
5740
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/AsteroidChunk.html Online documentation}
4908
5741
  */
4909
5742
  export interface AsteroidChunk {
4910
5743
  /**
@@ -4915,8 +5748,8 @@ declare module "factorio:runtime" {
4915
5748
  readonly movement: Vector
4916
5749
  }
4917
5750
  /**
4918
- * Write form of {@link AsteroidChunk}, where table-or-array concepts are allowed to take an array form.
4919
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/AsteroidChunk.html Online documentation}
5751
+ * Write form of {@link AsteroidChunk}, where some properties allow additional values as input compared to the read form.
5752
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/AsteroidChunk.html Online documentation}
4920
5753
  */
4921
5754
  export interface AsteroidChunkWrite {
4922
5755
  /**
@@ -4938,7 +5771,7 @@ declare module "factorio:runtime" {
4938
5771
  }
4939
5772
  /**
4940
5773
  * Either `icon`, `text`, or both must be provided.
4941
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ChartTagSpec.html Online documentation}
5774
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ChartTagSpec.html Online documentation}
4942
5775
  */
4943
5776
  export interface ChartTagSpec {
4944
5777
  readonly position: MapPosition | MapPositionArray
@@ -4948,88 +5781,88 @@ declare module "factorio:runtime" {
4948
5781
  }
4949
5782
  /**
4950
5783
  * Parameters that affect the look and control of the game. Updating any of the member attributes here will immediately take effect in the game engine.
4951
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/GameViewSettings.html Online documentation}
5784
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/GameViewSettings.html Online documentation}
4952
5785
  */
4953
5786
  export interface GameViewSettings {
4954
5787
  /**
4955
5788
  * Show the controller GUI elements. This includes the toolbar, the selected tool slot, the armour slot, and the gun and ammunition slots.
4956
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/GameViewSettings.show_controller_gui.html Online documentation}
5789
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/GameViewSettings.show_controller_gui.html Online documentation}
4957
5790
  */
4958
5791
  show_controller_gui: boolean
4959
5792
  /**
4960
5793
  * Show the chart in the upper right-hand corner of the screen.
4961
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/GameViewSettings.show_minimap.html Online documentation}
5794
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/GameViewSettings.show_minimap.html Online documentation}
4962
5795
  */
4963
5796
  show_minimap: boolean
4964
5797
  /**
4965
5798
  * Show research progress and name in the upper right-hand corner of the screen.
4966
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/GameViewSettings.show_research_info.html Online documentation}
5799
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/GameViewSettings.show_research_info.html Online documentation}
4967
5800
  */
4968
5801
  show_research_info: boolean
4969
5802
  /**
4970
5803
  * Show overlay icons on entities. Also known as "alt-mode".
4971
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/GameViewSettings.show_entity_info.html Online documentation}
5804
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/GameViewSettings.show_entity_info.html Online documentation}
4972
5805
  */
4973
5806
  show_entity_info: boolean
4974
5807
  /**
4975
5808
  * Show the flashing alert icons next to the player's toolbar.
4976
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/GameViewSettings.show_alert_gui.html Online documentation}
5809
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/GameViewSettings.show_alert_gui.html Online documentation}
4977
5810
  */
4978
5811
  show_alert_gui: boolean
4979
5812
  /**
4980
5813
  * When `true` (the default), mousing over an entity will select it. Otherwise, moving the mouse won't update entity selection.
4981
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/GameViewSettings.update_entity_selection.html Online documentation}
5814
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/GameViewSettings.update_entity_selection.html Online documentation}
4982
5815
  */
4983
5816
  update_entity_selection: boolean
4984
5817
  /**
4985
5818
  * When `true` (`false` is default), the rails will always show the rail block visualisation.
4986
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/GameViewSettings.show_rail_block_visualisation.html Online documentation}
5819
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/GameViewSettings.show_rail_block_visualisation.html Online documentation}
4987
5820
  */
4988
5821
  show_rail_block_visualisation: boolean
4989
5822
  /**
4990
5823
  * Shows or hides the buttons row.
4991
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/GameViewSettings.show_side_menu.html Online documentation}
5824
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/GameViewSettings.show_side_menu.html Online documentation}
4992
5825
  */
4993
5826
  show_side_menu: boolean
4994
5827
  /**
4995
5828
  * Shows or hides the view options when map is opened.
4996
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/GameViewSettings.show_map_view_options.html Online documentation}
5829
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/GameViewSettings.show_map_view_options.html Online documentation}
4997
5830
  */
4998
5831
  show_map_view_options: boolean
4999
5832
  /**
5000
5833
  * Shows or hides the tooltip that is displayed when selecting an entity.
5001
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/GameViewSettings.show_entity_tooltip.html Online documentation}
5834
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/GameViewSettings.show_entity_tooltip.html Online documentation}
5002
5835
  */
5003
5836
  show_entity_tooltip: boolean
5004
5837
  /**
5005
5838
  * Shows or hides quickbar of shortcuts.
5006
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/GameViewSettings.show_quickbar.html Online documentation}
5839
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/GameViewSettings.show_quickbar.html Online documentation}
5007
5840
  */
5008
5841
  show_quickbar: boolean
5009
5842
  /**
5010
5843
  * Shows or hides the shortcut bar.
5011
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/GameViewSettings.show_shortcut_bar.html Online documentation}
5844
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/GameViewSettings.show_shortcut_bar.html Online documentation}
5012
5845
  */
5013
5846
  show_shortcut_bar: boolean
5014
5847
  /**
5015
5848
  * Shows or hides the crafting queue.
5016
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/GameViewSettings.show_crafting_queue.html Online documentation}
5849
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/GameViewSettings.show_crafting_queue.html Online documentation}
5017
5850
  */
5018
5851
  show_crafting_queue: boolean
5019
5852
  /**
5020
5853
  * Shows or hides the tool window with the weapons and armor.
5021
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/GameViewSettings.show_tool_bar.html Online documentation}
5854
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/GameViewSettings.show_tool_bar.html Online documentation}
5022
5855
  */
5023
5856
  show_tool_bar: boolean
5024
5857
  /**
5025
5858
  * hows or hides the mouse and keyboard/controller button hints in the bottom left corner if they are enabled in the interface settings.
5026
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/GameViewSettings.show_hotkey_suggestions.html Online documentation}
5859
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/GameViewSettings.show_hotkey_suggestions.html Online documentation}
5027
5860
  */
5028
5861
  show_hotkey_suggestions: boolean
5029
5862
  }
5030
5863
  /**
5031
5864
  * The data that can be extracted from a map exchange string, as a plain table.
5032
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/MapExchangeStringData.html Online documentation}
5865
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/MapExchangeStringData.html Online documentation}
5033
5866
  */
5034
5867
  export interface MapExchangeStringData {
5035
5868
  readonly map_settings: MapAndDifficultySettings
@@ -5062,12 +5895,12 @@ declare module "factorio:runtime" {
5062
5895
  * - `target_entity_number`
5063
5896
  *
5064
5897
  * - `target_wire_connector_id`
5065
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/BlueprintWire.html Online documentation}
5898
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/BlueprintWire.html Online documentation}
5066
5899
  */
5067
5900
  export type BlueprintWire = readonly [uint, defines.wire_connector_id, uint, defines.wire_connector_id]
5068
5901
  /**
5069
5902
  * @see TileWrite
5070
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/Tile.html Online documentation}
5903
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/Tile.html Online documentation}
5071
5904
  */
5072
5905
  export interface Tile {
5073
5906
  /**
@@ -5080,8 +5913,8 @@ declare module "factorio:runtime" {
5080
5913
  readonly name: string
5081
5914
  }
5082
5915
  /**
5083
- * Write form of {@link Tile}, where table-or-array concepts are allowed to take an array form.
5084
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/Tile.html Online documentation}
5916
+ * Write form of {@link Tile}, where some properties allow additional values as input compared to the read form.
5917
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/Tile.html Online documentation}
5085
5918
  */
5086
5919
  export interface TileWrite {
5087
5920
  /**
@@ -5136,7 +5969,7 @@ declare module "factorio:runtime" {
5136
5969
  *
5137
5970
  * Other attributes may be specified depending on `type`:
5138
5971
  * - `"fluid"`: {@link FluidIngredient}
5139
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/Ingredient.html Online documentation}
5972
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/Ingredient.html Online documentation}
5140
5973
  */
5141
5974
  export type Ingredient = FluidIngredient | OtherIngredient
5142
5975
  export interface Loot {
@@ -5302,7 +6135,7 @@ declare module "factorio:runtime" {
5302
6135
  * - `"unlock-recipe"`: {@link UnlockRecipeTechnologyModifier}
5303
6136
  * - `"nothing"`: {@link NothingTechnologyModifier}
5304
6137
  * - Other types: {@link OtherTechnologyModifier}
5305
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/TechnologyModifier.html Online documentation}
6138
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/TechnologyModifier.html Online documentation}
5306
6139
  */
5307
6140
  export type TechnologyModifier =
5308
6141
  | GunSpeedTechnologyModifier
@@ -5314,7 +6147,7 @@ declare module "factorio:runtime" {
5314
6147
  | OtherTechnologyModifier
5315
6148
  /**
5316
6149
  * A fragment of a functional program used to generate coherent noise, probably for purposes related to terrain generation. These can only be meaningfully written/modified during the data load phase. More detailed information is found on the {@link import("factorio:prototype").NamedNoiseExpression prototype docs}.
5317
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/NoiseExpression.html Online documentation}
6150
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/NoiseExpression.html Online documentation}
5318
6151
  */
5319
6152
  export interface NoiseExpression {
5320
6153
  /**
@@ -5367,7 +6200,7 @@ declare module "factorio:runtime" {
5367
6200
  * - `"very-high"`: equivalent to `2`.
5368
6201
  * - `"very-big"`: equivalent to `2`.
5369
6202
  * - `"very-good"`: equivalent to `2`.
5370
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/MapGenSize.html Online documentation}
6203
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/MapGenSize.html Online documentation}
5371
6204
  */
5372
6205
  export type MapGenSize =
5373
6206
  | float
@@ -5389,7 +6222,7 @@ declare module "factorio:runtime" {
5389
6222
  | "very-good"
5390
6223
  /**
5391
6224
  * @see AutoplaceControlWrite
5392
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/AutoplaceControl.html Online documentation}
6225
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/AutoplaceControl.html Online documentation}
5393
6226
  */
5394
6227
  export interface AutoplaceControl {
5395
6228
  /**
@@ -5406,8 +6239,8 @@ declare module "factorio:runtime" {
5406
6239
  readonly richness: float
5407
6240
  }
5408
6241
  /**
5409
- * Write form of {@link AutoplaceControl}, where table-or-array concepts are allowed to take an array form.
5410
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/AutoplaceControl.html Online documentation}
6242
+ * Write form of {@link AutoplaceControl}, where some properties allow additional values as input compared to the read form.
6243
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/AutoplaceControl.html Online documentation}
5411
6244
  */
5412
6245
  export interface AutoplaceControlWrite {
5413
6246
  /**
@@ -5426,10 +6259,10 @@ declare module "factorio:runtime" {
5426
6259
  /**
5427
6260
  * All other MapGenSettings feed into named noise expressions, and therefore placement can be overridden by including the name of a property in this dictionary. The probability and richness functions for placing specific tiles, entities, and decoratives can be overridden by including an entry named `{tile|entity|decorative}:(prototype name):{probability|richness}`.
5428
6261
  *
5429
- * {@link https://lua-api.factorio.com/2.0.17/concepts/PropertyExpressionNames.html > Values either name a NamedNoiseExpression or can be literal numbers, stored as strings (e.g. `5`). All other controls can be overridden by a property expression names. Notable properties:}
6262
+ * {@link https://lua-api.factorio.com/2.0.21/concepts/PropertyExpressionNames.html > Values either name a NamedNoiseExpression or can be literal numbers, stored as strings (e.g. `5`). All other controls can be overridden by a property expression names. Notable properties:}
5430
6263
  *
5431
- * {@link https://lua-api.factorio.com/2.0.17/concepts/PropertyExpressionNames.html > Climate controls ('Moisture' and 'Terrain type' at the bottom of the Terrain tab in the map generator GUI) don't have their own dedicated structures in MapGenSettings. Instead, their values are stored as property expression overrides with long names:}
5432
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/PropertyExpressionNames.html Online documentation}
6264
+ * {@link https://lua-api.factorio.com/2.0.21/concepts/PropertyExpressionNames.html > Climate controls ('Moisture' and 'Terrain type' at the bottom of the Terrain tab in the map generator GUI) don't have their own dedicated structures in MapGenSettings. Instead, their values are stored as property expression overrides with long names:}
6265
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/PropertyExpressionNames.html Online documentation}
5433
6266
  */
5434
6267
  export type PropertyExpressionNames = Record<string, string>
5435
6268
  export interface AdvancedMapGenSettings {
@@ -5462,7 +6295,7 @@ declare module "factorio:runtime" {
5462
6295
  }
5463
6296
  /**
5464
6297
  * An actual signal transmitted by the network.
5465
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/Signal.html Online documentation}
6298
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/Signal.html Online documentation}
5466
6299
  */
5467
6300
  export interface Signal {
5468
6301
  /**
@@ -5476,7 +6309,7 @@ declare module "factorio:runtime" {
5476
6309
  }
5477
6310
  /**
5478
6311
  * @see UpgradeMapperSourceWrite
5479
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/UpgradeMapperSource.html Online documentation}
6312
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/UpgradeMapperSource.html Online documentation}
5480
6313
  */
5481
6314
  export interface UpgradeMapperSource {
5482
6315
  readonly type: "item" | "entity"
@@ -5494,8 +6327,8 @@ declare module "factorio:runtime" {
5494
6327
  readonly comparator?: ComparatorStringRead
5495
6328
  }
5496
6329
  /**
5497
- * Write form of {@link UpgradeMapperSource}, where table-or-array concepts are allowed to take an array form.
5498
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/UpgradeMapperSource.html Online documentation}
6330
+ * Write form of {@link UpgradeMapperSource}, where some properties allow additional values as input compared to the read form.
6331
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/UpgradeMapperSource.html Online documentation}
5499
6332
  */
5500
6333
  export interface UpgradeMapperSourceWrite {
5501
6334
  readonly type: "item" | "entity"
@@ -5532,7 +6365,7 @@ declare module "factorio:runtime" {
5532
6365
  }
5533
6366
  /**
5534
6367
  * A single filter used by an infinity-filters instance.
5535
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/InfinityInventoryFilter.html Online documentation}
6368
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/InfinityInventoryFilter.html Online documentation}
5536
6369
  */
5537
6370
  export interface InfinityInventoryFilter {
5538
6371
  /**
@@ -5554,7 +6387,7 @@ declare module "factorio:runtime" {
5554
6387
  }
5555
6388
  /**
5556
6389
  * A single filter used by an infinity-pipe type entity.
5557
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/InfinityPipeFilter.html Online documentation}
6390
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/InfinityPipeFilter.html Online documentation}
5558
6391
  */
5559
6392
  export interface InfinityPipeFilter {
5560
6393
  /**
@@ -5608,7 +6441,7 @@ declare module "factorio:runtime" {
5608
6441
  }
5609
6442
  /**
5610
6443
  * The settings used by a heat-interface type entity.
5611
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/HeatSetting.html Online documentation}
6444
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/HeatSetting.html Online documentation}
5612
6445
  */
5613
6446
  export interface HeatSetting {
5614
6447
  /**
@@ -5690,7 +6523,7 @@ declare module "factorio:runtime" {
5690
6523
  }
5691
6524
  /**
5692
6525
  * @see CircuitConditionWrite
5693
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/CircuitCondition.html Online documentation}
6526
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/CircuitCondition.html Online documentation}
5694
6527
  */
5695
6528
  export interface CircuitCondition {
5696
6529
  /**
@@ -5711,8 +6544,8 @@ declare module "factorio:runtime" {
5711
6544
  readonly constant?: int
5712
6545
  }
5713
6546
  /**
5714
- * Write form of {@link CircuitCondition}, where table-or-array concepts are allowed to take an array form.
5715
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/CircuitCondition.html Online documentation}
6547
+ * Write form of {@link CircuitCondition}, where some properties allow additional values as input compared to the read form.
6548
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/CircuitCondition.html Online documentation}
5716
6549
  */
5717
6550
  export interface CircuitConditionWrite {
5718
6551
  /**
@@ -5734,7 +6567,7 @@ declare module "factorio:runtime" {
5734
6567
  }
5735
6568
  /**
5736
6569
  * @see CircuitConditionDefinitionWrite
5737
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/CircuitConditionDefinition.html Online documentation}
6570
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/CircuitConditionDefinition.html Online documentation}
5738
6571
  */
5739
6572
  export interface CircuitConditionDefinition {
5740
6573
  /**
@@ -5747,8 +6580,8 @@ declare module "factorio:runtime" {
5747
6580
  readonly fulfilled?: boolean
5748
6581
  }
5749
6582
  /**
5750
- * Write form of {@link CircuitConditionDefinition}, where table-or-array concepts are allowed to take an array form.
5751
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/CircuitConditionDefinition.html Online documentation}
6583
+ * Write form of {@link CircuitConditionDefinition}, where some properties allow additional values as input compared to the read form.
6584
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/CircuitConditionDefinition.html Online documentation}
5752
6585
  */
5753
6586
  export interface CircuitConditionDefinitionWrite {
5754
6587
  /**
@@ -5797,7 +6630,7 @@ declare module "factorio:runtime" {
5797
6630
  /**
5798
6631
  * The quality level of the items.
5799
6632
  */
5800
- readonly quality: QualityID
6633
+ readonly quality: LuaQualityPrototype
5801
6634
  }
5802
6635
  export interface BaseCommand {
5803
6636
  /**
@@ -6037,7 +6870,7 @@ declare module "factorio:runtime" {
6037
6870
  * - {@link defines.command.stop}: {@link StopCommand}
6038
6871
  * - {@link defines.command.flee}: {@link FleeCommand}
6039
6872
  * - {@link defines.command.build_base}: {@link BuildBaseCommand}
6040
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/Command.html Online documentation}
6873
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/Command.html Online documentation}
6041
6874
  */
6042
6875
  export type Command =
6043
6876
  | AttackCommand
@@ -6050,8 +6883,8 @@ declare module "factorio:runtime" {
6050
6883
  | FleeCommand
6051
6884
  | BuildBaseCommand
6052
6885
  /**
6053
- * Write form of {@link Command}, where table-or-array concepts are allowed to take an array form.
6054
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/Command.html Online documentation}
6886
+ * Write form of {@link Command}, where some properties allow additional values as input compared to the read form.
6887
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/Command.html Online documentation}
6055
6888
  */
6056
6889
  export type CommandWrite =
6057
6890
  | AttackCommand
@@ -6136,7 +6969,7 @@ declare module "factorio:runtime" {
6136
6969
  * These are both full stacks of iron plates (for iron-plate, a full stack is 100 plates)
6137
6970
  * "iron-plate"
6138
6971
  * {name="iron-plate", count=100}
6139
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/SimpleItemStack.html Online documentation}
6972
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/SimpleItemStack.html Online documentation}
6140
6973
  */
6141
6974
  export type SimpleItemStack = string | ItemStackDefinition
6142
6975
  /**
@@ -6146,7 +6979,7 @@ declare module "factorio:runtime" {
6146
6979
  * - SurfaceIndex: It will be the index of the surface. `nauvis` has index `1`, the first surface-created surface will have index `2` and so on.
6147
6980
  * - `string`: It will be the surface name. E.g. `"nauvis"`.
6148
6981
  * - {@link LuaSurface}: A reference to {@link LuaSurface} may be passed directly.
6149
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/SurfaceIdentification.html Online documentation}
6982
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/SurfaceIdentification.html Online documentation}
6150
6983
  */
6151
6984
  export type SurfaceIdentification = SurfaceIndex | string | LuaSurface
6152
6985
  /**
@@ -6156,7 +6989,7 @@ declare module "factorio:runtime" {
6156
6989
  * - PlayerIndex: The player index.
6157
6990
  * - `string`: The player name.
6158
6991
  * - {@link LuaPlayer}: A reference to {@link LuaPlayer} may be passed directly.
6159
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/PlayerIdentification.html Online documentation}
6992
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/PlayerIdentification.html Online documentation}
6160
6993
  */
6161
6994
  export type PlayerIdentification = PlayerIndex | string | LuaPlayer
6162
6995
  /**
@@ -6165,7 +6998,7 @@ declare module "factorio:runtime" {
6165
6998
  * ## Union members
6166
6999
  * - {@link SimpleItemStack}
6167
7000
  * - {@link LuaItemStack}
6168
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ItemStackIdentification.html Online documentation}
7001
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ItemStackIdentification.html Online documentation}
6169
7002
  */
6170
7003
  export type ItemStackIdentification = SimpleItemStack | LuaItemStack
6171
7004
  /**
@@ -6175,7 +7008,7 @@ declare module "factorio:runtime" {
6175
7008
  * - `"entity"`: Fires at an entity.
6176
7009
  * - `"position"`: Fires directly at a position.
6177
7010
  * - `"direction"`: Fires in a direction.
6178
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/TargetType.html Online documentation}
7011
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/TargetType.html Online documentation}
6179
7012
  */
6180
7013
  export type TargetType = "entity" | "position" | "direction"
6181
7014
  export interface BeamTarget {
@@ -6212,14 +7045,10 @@ declare module "factorio:runtime" {
6212
7045
  *
6213
7046
  * The validity of a SoundPath can be verified at runtime using {@link LuaHelpers#is_valid_sound_path LuaHelpers::is_valid_sound_path}.
6214
7047
  *
6215
- * {@link https://lua-api.factorio.com/2.0.17/concepts/SoundPath.html > The utility and ambient types each contain general use sound prototypes defined by the game itself.}
6216
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/SoundPath.html Online documentation}
7048
+ * {@link https://lua-api.factorio.com/2.0.21/concepts/SoundPath.html > The utility and ambient types each contain general use sound prototypes defined by the game itself.}
7049
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/SoundPath.html Online documentation}
6217
7050
  */
6218
- export type SoundPath =
6219
- | (string & {
6220
- _?: never
6221
- })
6222
- | `${SoundCategory}/${string}`
7051
+ export type SoundPath = (string & { _?: never }) | `${SoundCategory}/${string}`
6223
7052
  export interface CircularParticleCreationSpecification {
6224
7053
  /**
6225
7054
  * Name of the {@link LuaEntityPrototype}.
@@ -6349,7 +7178,7 @@ declare module "factorio:runtime" {
6349
7178
  * Other attributes may be specified depending on `type`:
6350
7179
  * - `"projectile"`: {@link ProjectileAttackParameters}
6351
7180
  * - `"stream"`: {@link StreamAttackParameters}
6352
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/AttackParameters.html Online documentation}
7181
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/AttackParameters.html Online documentation}
6353
7182
  */
6354
7183
  export type AttackParameters = ProjectileAttackParameters | StreamAttackParameters | OtherAttackParameters
6355
7184
  export interface GunShift4Way {
@@ -6415,7 +7244,7 @@ declare module "factorio:runtime" {
6415
7244
  * - `"use-on-self"`: {@link UseOnSelfCapsuleAction}
6416
7245
  * - `"artillery-remote"`: {@link ArtilleryRemoteCapsuleAction}
6417
7246
  * - `"destroy-cliffs"`: {@link DestroyCliffsCapsuleAction}
6418
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/CapsuleAction.html Online documentation}
7247
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/CapsuleAction.html Online documentation}
6419
7248
  */
6420
7249
  export type CapsuleAction =
6421
7250
  | ThrowCapsuleAction
@@ -6455,12 +7284,12 @@ declare module "factorio:runtime" {
6455
7284
  }
6456
7285
  /**
6457
7286
  * Any basic type (string, number, boolean) or table.
6458
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/AnyBasic.html Online documentation}
7287
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/AnyBasic.html Online documentation}
6459
7288
  */
6460
7289
  export type AnyBasic = string | boolean | number | table
6461
7290
  /**
6462
7291
  * Any basic type (string, number, boolean), table, or LuaObject.
6463
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/Any.html Online documentation}
7292
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/Any.html Online documentation}
6464
7293
  */
6465
7294
  export type Any = string | boolean | number | table | LuaObject
6466
7295
  export interface ProgrammableSpeakerParameters {
@@ -6498,7 +7327,7 @@ declare module "factorio:runtime" {
6498
7327
  * - `"top-right"`
6499
7328
  * - `"right"`: The same as `"middle-right"`
6500
7329
  * - `"bottom-right"`
6501
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/Alignment.html Online documentation}
7330
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/Alignment.html Online documentation}
6502
7331
  */
6503
7332
  export type Alignment =
6504
7333
  | "top-left"
@@ -6512,9 +7341,27 @@ declare module "factorio:runtime" {
6512
7341
  | "top-right"
6513
7342
  | "right"
6514
7343
  | "bottom-right"
7344
+ export type RaiseableEvents =
7345
+ | typeof defines.events.on_console_chat
7346
+ | typeof defines.events.on_player_crafted_item
7347
+ | typeof defines.events.on_player_fast_transferred
7348
+ | typeof defines.events.on_biter_base_built
7349
+ | typeof defines.events.on_market_item_purchased
7350
+ | typeof defines.events.script_raised_built
7351
+ | typeof defines.events.script_raised_destroy
7352
+ | typeof defines.events.script_raised_revive
7353
+ | typeof defines.events.script_raised_teleported
7354
+ | typeof defines.events.script_raised_set_tiles
7355
+ export type EventId<T extends object, F = unknown> = uint & {
7356
+ readonly _eventData: T
7357
+ readonly _filter: F
7358
+ }
7359
+ export type CustomEventId<T extends table> = EventId<T> & {
7360
+ _customEventIdBrand: any
7361
+ }
6515
7362
  /**
6516
- * Information about the event that has been raised. The table can also contain other fields depending on the type of event. See {@linkplain https://lua-api.factorio.com/2.0.17/events.html the list of Factorio events} for more information on these.
6517
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/EventData.html Online documentation}
7363
+ * Information about the event that has been raised. The table can also contain other fields depending on the type of event. See {@linkplain https://lua-api.factorio.com/2.0.21/events.html the list of Factorio events} for more information on these.
7364
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/EventData.html Online documentation}
6518
7365
  */
6519
7366
  export interface EventData {
6520
7367
  /**
@@ -6619,7 +7466,7 @@ declare module "factorio:runtime" {
6619
7466
  * - `"button-7"`
6620
7467
  * - `"button-8"`
6621
7468
  * - `"button-9"`
6622
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/MouseButtonFlags.html Online documentation}
7469
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/MouseButtonFlags.html Online documentation}
6623
7470
  */
6624
7471
  export interface MouseButtonFlags {
6625
7472
  readonly left?: true
@@ -6632,7 +7479,6 @@ declare module "factorio:runtime" {
6632
7479
  readonly "button-8"?: true
6633
7480
  readonly "button-9"?: true
6634
7481
  }
6635
- /** @see MouseButtonFlags */
6636
7482
  export type MouseButtonFlagsWrite = MouseButtonFlags | ReadonlyArray<keyof MouseButtonFlags | "left-and-right">
6637
7483
  /**
6638
7484
  * ## Union members
@@ -6643,7 +7489,7 @@ declare module "factorio:runtime" {
6643
7489
  * - `"not-friend"`: Forces which are not friends pass.
6644
7490
  * - `"same"`: The same force pass.
6645
7491
  * - `"not-same"`: The non-same forces pass.
6646
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ForceCondition.html Online documentation}
7492
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ForceCondition.html Online documentation}
6647
7493
  */
6648
7494
  export type ForceCondition = "all" | "enemy" | "ally" | "friend" | "not-friend" | "same" | "not-same"
6649
7495
  export interface ItemStackLocation {
@@ -6681,7 +7527,7 @@ declare module "factorio:runtime" {
6681
7527
  * - `"tabbed-pane"`: A collection of `tab`s and their contents. Relevant event: {@link OnGuiSelectedTabChangedEvent on_gui_selected_tab_changed}
6682
7528
  * - `"tab"`: A tab for use in a `tabbed-pane`.
6683
7529
  * - `"switch"`: A switch with three possible states. Can have labels attached to either side. Relevant event: {@link OnGuiSwitchStateChangedEvent on_gui_switch_state_changed}
6684
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/GuiElementType.html Online documentation}
7530
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/GuiElementType.html Online documentation}
6685
7531
  */
6686
7532
  export type GuiElementType =
6687
7533
  | "button"
@@ -6721,7 +7567,7 @@ declare module "factorio:runtime" {
6721
7567
  * - `"position"`
6722
7568
  * - `"crafting_queue"`
6723
7569
  * - `"item_stack"`: Will point to a given item stack in an inventory.
6724
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/GuiArrowType.html Online documentation}
7570
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/GuiArrowType.html Online documentation}
6725
7571
  */
6726
7572
  export type GuiArrowType =
6727
7573
  | "nowhere"
@@ -6738,7 +7584,7 @@ declare module "factorio:runtime" {
6738
7584
  * ## Union members
6739
7585
  * - `"horizontal"`
6740
7586
  * - `"vertical"`
6741
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/GuiDirection.html Online documentation}
7587
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/GuiDirection.html Online documentation}
6742
7588
  */
6743
7589
  export type GuiDirection = "horizontal" | "vertical"
6744
7590
  /**
@@ -6750,7 +7596,7 @@ declare module "factorio:runtime" {
6750
7596
  * - `"always"`
6751
7597
  * - `"auto"`
6752
7598
  * - `"auto-and-reserve-space"`
6753
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ScrollPolicy.html Online documentation}
7599
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ScrollPolicy.html Online documentation}
6754
7600
  */
6755
7601
  export type ScrollPolicy = "never" | "dont-show-but-allow-scrolling" | "always" | "auto" | "auto-and-reserve-space"
6756
7602
  export interface RailLocation {
@@ -6767,71 +7613,71 @@ declare module "factorio:runtime" {
6767
7613
  }
6768
7614
  /**
6769
7615
  * A floating-point number. This is a single-precision floating point number. Whilst Lua only uses double-precision numbers, when a function takes a float, the game engine will immediately convert the double-precision number to single-precision.
6770
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/float.html Online documentation}
7616
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/float.html Online documentation}
6771
7617
  */
6772
7618
  export type float = number
6773
7619
  /**
6774
7620
  * A double-precision floating-point number. This is the same data type as all Lua numbers use.
6775
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/double.html Online documentation}
7621
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/double.html Online documentation}
6776
7622
  */
6777
7623
  export type double = number
6778
7624
  /**
6779
7625
  * 32-bit signed integer. Possible values are `-2 147 483 648` to `2 147 483 647`.
6780
7626
  *
6781
7627
  * Since Lua 5.2 only uses doubles, any API that asks for `int` will floor the given double.
6782
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/int.html Online documentation}
7628
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/int.html Online documentation}
6783
7629
  */
6784
7630
  export type int = number
6785
7631
  /**
6786
7632
  * 8-bit signed integer. Possible values are `-128` to `127`.
6787
7633
  *
6788
7634
  * Since Lua 5.2 only uses doubles, any API that asks for `int8` will floor the given double.
6789
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/int8.html Online documentation}
7635
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/int8.html Online documentation}
6790
7636
  */
6791
7637
  export type int8 = number
6792
7638
  /**
6793
7639
  * 32-bit unsigned integer. Possible values are `0` to `4 294 967 295`.
6794
7640
  *
6795
7641
  * Since Lua 5.2 only uses doubles, any API that asks for `uint` will floor the given double.
6796
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/uint.html Online documentation}
7642
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/uint.html Online documentation}
6797
7643
  */
6798
7644
  export type uint = number
6799
7645
  /**
6800
7646
  * 8-bit unsigned integer. Possible values are `0` to `255`.
6801
7647
  *
6802
7648
  * Since Lua 5.2 only uses doubles, any API that asks for `uint8` will floor the given double.
6803
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/uint8.html Online documentation}
7649
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/uint8.html Online documentation}
6804
7650
  */
6805
7651
  export type uint8 = number
6806
7652
  /**
6807
7653
  * 16-bit unsigned integer. Possible values are `0` to `65 535`.
6808
7654
  *
6809
7655
  * Since Lua 5.2 only uses doubles, any API that asks for `uint16` will floor the given double.
6810
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/uint16.html Online documentation}
7656
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/uint16.html Online documentation}
6811
7657
  */
6812
7658
  export type uint16 = number
6813
7659
  /**
6814
7660
  * 64-bit unsigned integer. Possible values are `0` to `18 446 744 073 709 551 615`.
6815
7661
  *
6816
7662
  * Since Lua 5.2 only uses doubles, any API that asks for `uint64` will floor the given double.
6817
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/uint64.html Online documentation}
7663
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/uint64.html Online documentation}
6818
7664
  */
6819
7665
  export type uint64 = number
6820
7666
  /**
6821
7667
  * Nil is the type of the value `nil`, whose main property is to be different from any other value. It usually represents the absence of a useful value.
6822
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/nil.html Online documentation}
7668
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/nil.html Online documentation}
6823
7669
  */
6824
7670
  export type nil = undefined
6825
7671
  /**
6826
7672
  * Tables are enclosed in curly brackets, like this `{}`.
6827
7673
  *
6828
7674
  * Throughout the API docs, the terms "array" and "dictionary" are used. These are fundamentally just {@linkplain http://www.lua.org/pil/2.5.html Lua tables}, but have a limitation on which kind of table keys can be used. An array is a table that uses continuous integer keys starting at `1`, while a dictionary can use numeric or string keys in any order or combination.
6829
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/table.html Online documentation}
7675
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/table.html Online documentation}
6830
7676
  */
6831
7677
  export type table = object
6832
7678
  /**
6833
- * Any LuaObject listed on the {@linkplain https://lua-api.factorio.com/2.0.17/classes.html Classes} page.
6834
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LuaObject.html Online documentation}
7679
+ * Any LuaObject listed on the {@linkplain https://lua-api.factorio.com/2.0.21/classes.html Classes} page.
7680
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LuaObject.html Online documentation}
6835
7681
  */
6836
7682
  export interface LuaObject {
6837
7683
  readonly object_name: string
@@ -6890,7 +7736,7 @@ declare module "factorio:runtime" {
6890
7736
  * - `"type"`: {@link TypeModSettingPrototypeFilter}
6891
7737
  * - `"mod"`: {@link ModModSettingPrototypeFilter}
6892
7738
  * - `"setting-type"`: {@link SettingTypeModSettingPrototypeFilter}
6893
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ModSettingPrototypeFilter.html Online documentation}
7739
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ModSettingPrototypeFilter.html Online documentation}
6894
7740
  */
6895
7741
  export type ModSettingPrototypeFilter =
6896
7742
  | TypeModSettingPrototypeFilter
@@ -7035,7 +7881,7 @@ declare module "factorio:runtime" {
7035
7881
  * - `"vehicle-friction-modifier"`: {@link VehicleFrictionModifierTilePrototypeFilter}
7036
7882
  * - `"decorative-removal-probability"`: {@link DecorativeRemovalProbabilityTilePrototypeFilter}
7037
7883
  * - `"absorptions-per-second"`: {@link AbsorptionsPerSecondTilePrototypeFilter}
7038
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/TilePrototypeFilter.html Online documentation}
7884
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/TilePrototypeFilter.html Online documentation}
7039
7885
  */
7040
7886
  export type TilePrototypeFilter =
7041
7887
  | CollisionMaskTilePrototypeFilter
@@ -7045,8 +7891,8 @@ declare module "factorio:runtime" {
7045
7891
  | AbsorptionsPerSecondTilePrototypeFilter
7046
7892
  | OtherTilePrototypeFilter
7047
7893
  /**
7048
- * Write form of {@link TilePrototypeFilter}, where table-or-array concepts are allowed to take an array form.
7049
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/TilePrototypeFilter.html Online documentation}
7894
+ * Write form of {@link TilePrototypeFilter}, where some properties allow additional values as input compared to the read form.
7895
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/TilePrototypeFilter.html Online documentation}
7050
7896
  */
7051
7897
  export type TilePrototypeFilterWrite =
7052
7898
  | CollisionMaskTilePrototypeFilter
@@ -7097,7 +7943,7 @@ declare module "factorio:runtime" {
7097
7943
  *
7098
7944
  * Other attributes may be specified depending on `filter`:
7099
7945
  * - `"collision-mask"`: {@link CollisionMaskDecorativePrototypeFilter}
7100
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/DecorativePrototypeFilter.html Online documentation}
7946
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/DecorativePrototypeFilter.html Online documentation}
7101
7947
  */
7102
7948
  export type DecorativePrototypeFilter = CollisionMaskDecorativePrototypeFilter | OtherDecorativePrototypeFilter
7103
7949
  /**
@@ -7351,7 +8197,7 @@ declare module "factorio:runtime" {
7351
8197
  * - `"emissions-multiplier"`: {@link EmissionsMultiplierRecipePrototypeFilter}
7352
8198
  * - `"request-paste-multiplier"`: {@link RequestPasteMultiplierRecipePrototypeFilter}
7353
8199
  * - `"overload-multiplier"`: {@link OverloadMultiplierRecipePrototypeFilter}
7354
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/RecipePrototypeFilter.html Online documentation}
8200
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/RecipePrototypeFilter.html Online documentation}
7355
8201
  */
7356
8202
  export type RecipePrototypeFilter =
7357
8203
  | HasIngredientItemRecipePrototypeFilter
@@ -7366,8 +8212,8 @@ declare module "factorio:runtime" {
7366
8212
  | OverloadMultiplierRecipePrototypeFilter
7367
8213
  | OtherRecipePrototypeFilter
7368
8214
  /**
7369
- * Write form of {@link RecipePrototypeFilter}, where table-or-array concepts are allowed to take an array form.
7370
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/RecipePrototypeFilter.html Online documentation}
8215
+ * Write form of {@link RecipePrototypeFilter}, where some properties allow additional values as input compared to the read form.
8216
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/RecipePrototypeFilter.html Online documentation}
7371
8217
  */
7372
8218
  export type RecipePrototypeFilterWrite =
7373
8219
  | HasIngredientItemRecipePrototypeFilterWrite
@@ -7419,7 +8265,7 @@ declare module "factorio:runtime" {
7419
8265
  *
7420
8266
  * Other attributes may be specified depending on `filter`:
7421
8267
  * - `"type"`: {@link TypeAchievementPrototypeFilter}
7422
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/AchievementPrototypeFilter.html Online documentation}
8268
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/AchievementPrototypeFilter.html Online documentation}
7423
8269
  */
7424
8270
  export type AchievementPrototypeFilter = TypeAchievementPrototypeFilter | OtherAchievementPrototypeFilter
7425
8271
  /**
@@ -7542,7 +8388,7 @@ declare module "factorio:runtime" {
7542
8388
  * - `"level"`: {@link LevelTechnologyPrototypeFilter}
7543
8389
  * - `"max-level"`: {@link MaxLevelTechnologyPrototypeFilter}
7544
8390
  * - `"time"`: {@link TimeTechnologyPrototypeFilter}
7545
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/TechnologyPrototypeFilter.html Online documentation}
8391
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/TechnologyPrototypeFilter.html Online documentation}
7546
8392
  */
7547
8393
  export type TechnologyPrototypeFilter =
7548
8394
  | ResearchUnitIngredientTechnologyPrototypeFilter
@@ -7552,8 +8398,8 @@ declare module "factorio:runtime" {
7552
8398
  | TimeTechnologyPrototypeFilter
7553
8399
  | OtherTechnologyPrototypeFilter
7554
8400
  /**
7555
- * Write form of {@link TechnologyPrototypeFilter}, where table-or-array concepts are allowed to take an array form.
7556
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/TechnologyPrototypeFilter.html Online documentation}
8401
+ * Write form of {@link TechnologyPrototypeFilter}, where some properties allow additional values as input compared to the read form.
8402
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/TechnologyPrototypeFilter.html Online documentation}
7557
8403
  */
7558
8404
  export type TechnologyPrototypeFilterWrite =
7559
8405
  | ResearchUnitIngredientTechnologyPrototypeFilter
@@ -7870,7 +8716,7 @@ declare module "factorio:runtime" {
7870
8716
  * - `"fuel-acceleration-multiplier"`: {@link FuelAccelerationMultiplierItemPrototypeFilter}
7871
8717
  * - `"fuel-top-speed-multiplier"`: {@link FuelTopSpeedMultiplierItemPrototypeFilter}
7872
8718
  * - `"fuel-emissions-multiplier"`: {@link FuelEmissionsMultiplierItemPrototypeFilter}
7873
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ItemPrototypeFilter.html Online documentation}
8719
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ItemPrototypeFilter.html Online documentation}
7874
8720
  */
7875
8721
  export type ItemPrototypeFilter =
7876
8722
  | PlaceResultItemPrototypeFilter
@@ -7889,8 +8735,8 @@ declare module "factorio:runtime" {
7889
8735
  | FuelEmissionsMultiplierItemPrototypeFilter
7890
8736
  | OtherItemPrototypeFilter
7891
8737
  /**
7892
- * Write form of {@link ItemPrototypeFilter}, where table-or-array concepts are allowed to take an array form.
7893
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/ItemPrototypeFilter.html Online documentation}
8738
+ * Write form of {@link ItemPrototypeFilter}, where some properties allow additional values as input compared to the read form.
8739
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/ItemPrototypeFilter.html Online documentation}
7894
8740
  */
7895
8741
  export type ItemPrototypeFilterWrite =
7896
8742
  | PlaceResultItemPrototypeFilterWrite
@@ -7946,7 +8792,7 @@ declare module "factorio:runtime" {
7946
8792
  *
7947
8793
  * Other attributes may be specified depending on `filter`:
7948
8794
  * - `"type"`: {@link TypeEquipmentPrototypeFilter}
7949
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/EquipmentPrototypeFilter.html Online documentation}
8795
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/EquipmentPrototypeFilter.html Online documentation}
7950
8796
  */
7951
8797
  export type EquipmentPrototypeFilter = TypeEquipmentPrototypeFilter | OtherEquipmentPrototypeFilter
7952
8798
  /**
@@ -8177,7 +9023,7 @@ declare module "factorio:runtime" {
8177
9023
  * - `"selection-priority"`: {@link SelectionPriorityEntityPrototypeFilter}
8178
9024
  * - `"emissions-per-second"`: {@link EmissionsPerSecondEntityPrototypeFilter}
8179
9025
  * - `"crafting-category"`: {@link CraftingCategoryEntityPrototypeFilter}
8180
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/EntityPrototypeFilter.html Online documentation}
9026
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/EntityPrototypeFilter.html Online documentation}
8181
9027
  */
8182
9028
  export type EntityPrototypeFilter =
8183
9029
  | NameEntityPrototypeFilter
@@ -8190,8 +9036,8 @@ declare module "factorio:runtime" {
8190
9036
  | CraftingCategoryEntityPrototypeFilter
8191
9037
  | OtherEntityPrototypeFilter
8192
9038
  /**
8193
- * Write form of {@link EntityPrototypeFilter}, where table-or-array concepts are allowed to take an array form.
8194
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/EntityPrototypeFilter.html Online documentation}
9039
+ * Write form of {@link EntityPrototypeFilter}, where some properties allow additional values as input compared to the read form.
9040
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/EntityPrototypeFilter.html Online documentation}
8195
9041
  */
8196
9042
  export type EntityPrototypeFilterWrite =
8197
9043
  | NameEntityPrototypeFilter
@@ -8261,15 +9107,15 @@ declare module "factorio:runtime" {
8261
9107
  * Other attributes may be specified depending on `filter`:
8262
9108
  * - `"type"`: {@link TypeSpaceLocationPrototypeFilter}
8263
9109
  * - `"solar-power-in-space"`: {@link SolarPowerInSpaceSpaceLocationPrototypeFilter}
8264
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/SpaceLocationPrototypeFilter.html Online documentation}
9110
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/SpaceLocationPrototypeFilter.html Online documentation}
8265
9111
  */
8266
9112
  export type SpaceLocationPrototypeFilter =
8267
9113
  | TypeSpaceLocationPrototypeFilter
8268
9114
  | SolarPowerInSpaceSpaceLocationPrototypeFilter
8269
9115
  | OtherSpaceLocationPrototypeFilter
8270
9116
  /**
8271
- * Write form of {@link SpaceLocationPrototypeFilter}, where table-or-array concepts are allowed to take an array form.
8272
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/SpaceLocationPrototypeFilter.html Online documentation}
9117
+ * Write form of {@link SpaceLocationPrototypeFilter}, where some properties allow additional values as input compared to the read form.
9118
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/SpaceLocationPrototypeFilter.html Online documentation}
8273
9119
  */
8274
9120
  export type SpaceLocationPrototypeFilterWrite =
8275
9121
  | TypeSpaceLocationPrototypeFilter
@@ -8457,7 +9303,7 @@ declare module "factorio:runtime" {
8457
9303
  * - `"fuel-value"`: {@link FuelValueFluidPrototypeFilter}
8458
9304
  * - `"emissions-multiplier"`: {@link EmissionsMultiplierFluidPrototypeFilter}
8459
9305
  * - `"gas-temperature"`: {@link GasTemperatureFluidPrototypeFilter}
8460
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/FluidPrototypeFilter.html Online documentation}
9306
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/FluidPrototypeFilter.html Online documentation}
8461
9307
  */
8462
9308
  export type FluidPrototypeFilter =
8463
9309
  | NameFluidPrototypeFilter
@@ -8470,8 +9316,8 @@ declare module "factorio:runtime" {
8470
9316
  | GasTemperatureFluidPrototypeFilter
8471
9317
  | OtherFluidPrototypeFilter
8472
9318
  /**
8473
- * Write form of {@link FluidPrototypeFilter}, where table-or-array concepts are allowed to take an array form.
8474
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/FluidPrototypeFilter.html Online documentation}
9319
+ * Write form of {@link FluidPrototypeFilter}, where some properties allow additional values as input compared to the read form.
9320
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/FluidPrototypeFilter.html Online documentation}
8475
9321
  */
8476
9322
  export type FluidPrototypeFilterWrite =
8477
9323
  | NameFluidPrototypeFilter
@@ -8580,7 +9426,7 @@ declare module "factorio:runtime" {
8580
9426
  * - `"name"`: {@link NamePrePlatformMinedEntityEventFilter}
8581
9427
  * - `"ghost_type"`: {@link GhostTypePrePlatformMinedEntityEventFilter}
8582
9428
  * - `"ghost_name"`: {@link GhostNamePrePlatformMinedEntityEventFilter}
8583
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LuaPrePlatformMinedEntityEventFilter.html Online documentation}
9429
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LuaPrePlatformMinedEntityEventFilter.html Online documentation}
8584
9430
  */
8585
9431
  export type LuaPrePlatformMinedEntityEventFilter =
8586
9432
  | TypePrePlatformMinedEntityEventFilter
@@ -8685,7 +9531,7 @@ declare module "factorio:runtime" {
8685
9531
  * - `"name"`: {@link NameRobotMinedEntityEventFilter}
8686
9532
  * - `"ghost_type"`: {@link GhostTypeRobotMinedEntityEventFilter}
8687
9533
  * - `"ghost_name"`: {@link GhostNameRobotMinedEntityEventFilter}
8688
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LuaRobotMinedEntityEventFilter.html Online documentation}
9534
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LuaRobotMinedEntityEventFilter.html Online documentation}
8689
9535
  */
8690
9536
  export type LuaRobotMinedEntityEventFilter =
8691
9537
  | TypeRobotMinedEntityEventFilter
@@ -8790,7 +9636,7 @@ declare module "factorio:runtime" {
8790
9636
  * - `"name"`: {@link NameEntityMarkedForUpgradeEventFilter}
8791
9637
  * - `"ghost_type"`: {@link GhostTypeEntityMarkedForUpgradeEventFilter}
8792
9638
  * - `"ghost_name"`: {@link GhostNameEntityMarkedForUpgradeEventFilter}
8793
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LuaEntityMarkedForUpgradeEventFilter.html Online documentation}
9639
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LuaEntityMarkedForUpgradeEventFilter.html Online documentation}
8794
9640
  */
8795
9641
  export type LuaEntityMarkedForUpgradeEventFilter =
8796
9642
  | TypeEntityMarkedForUpgradeEventFilter
@@ -8895,7 +9741,7 @@ declare module "factorio:runtime" {
8895
9741
  * - `"name"`: {@link NamePreGhostUpgradedEventFilter}
8896
9742
  * - `"ghost_type"`: {@link GhostTypePreGhostUpgradedEventFilter}
8897
9743
  * - `"ghost_name"`: {@link GhostNamePreGhostUpgradedEventFilter}
8898
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LuaPreGhostUpgradedEventFilter.html Online documentation}
9744
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LuaPreGhostUpgradedEventFilter.html Online documentation}
8899
9745
  */
8900
9746
  export type LuaPreGhostUpgradedEventFilter =
8901
9747
  | TypePreGhostUpgradedEventFilter
@@ -9000,7 +9846,7 @@ declare module "factorio:runtime" {
9000
9846
  * - `"name"`: {@link NamePlatformMinedEntityEventFilter}
9001
9847
  * - `"ghost_type"`: {@link GhostTypePlatformMinedEntityEventFilter}
9002
9848
  * - `"ghost_name"`: {@link GhostNamePlatformMinedEntityEventFilter}
9003
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LuaPlatformMinedEntityEventFilter.html Online documentation}
9849
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LuaPlatformMinedEntityEventFilter.html Online documentation}
9004
9850
  */
9005
9851
  export type LuaPlatformMinedEntityEventFilter =
9006
9852
  | TypePlatformMinedEntityEventFilter
@@ -9105,7 +9951,7 @@ declare module "factorio:runtime" {
9105
9951
  * - `"name"`: {@link NameScriptRaisedDestroyEventFilter}
9106
9952
  * - `"ghost_type"`: {@link GhostTypeScriptRaisedDestroyEventFilter}
9107
9953
  * - `"ghost_name"`: {@link GhostNameScriptRaisedDestroyEventFilter}
9108
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LuaScriptRaisedDestroyEventFilter.html Online documentation}
9954
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LuaScriptRaisedDestroyEventFilter.html Online documentation}
9109
9955
  */
9110
9956
  export type LuaScriptRaisedDestroyEventFilter =
9111
9957
  | TypeScriptRaisedDestroyEventFilter
@@ -9222,7 +10068,7 @@ declare module "factorio:runtime" {
9222
10068
  * - `"ghost_type"`: {@link GhostTypePlayerBuiltEntityEventFilter}
9223
10069
  * - `"ghost_name"`: {@link GhostNamePlayerBuiltEntityEventFilter}
9224
10070
  * - `"force"`: {@link ForcePlayerBuiltEntityEventFilter}
9225
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LuaPlayerBuiltEntityEventFilter.html Online documentation}
10071
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LuaPlayerBuiltEntityEventFilter.html Online documentation}
9226
10072
  */
9227
10073
  export type LuaPlayerBuiltEntityEventFilter =
9228
10074
  | TypePlayerBuiltEntityEventFilter
@@ -9340,7 +10186,7 @@ declare module "factorio:runtime" {
9340
10186
  * - `"ghost_type"`: {@link GhostTypePlatformBuiltEntityEventFilter}
9341
10187
  * - `"ghost_name"`: {@link GhostNamePlatformBuiltEntityEventFilter}
9342
10188
  * - `"force"`: {@link ForcePlatformBuiltEntityEventFilter}
9343
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LuaPlatformBuiltEntityEventFilter.html Online documentation}
10189
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LuaPlatformBuiltEntityEventFilter.html Online documentation}
9344
10190
  */
9345
10191
  export type LuaPlatformBuiltEntityEventFilter =
9346
10192
  | TypePlatformBuiltEntityEventFilter
@@ -9446,7 +10292,7 @@ declare module "factorio:runtime" {
9446
10292
  * - `"name"`: {@link NamePreGhostDeconstructedEventFilter}
9447
10293
  * - `"ghost_type"`: {@link GhostTypePreGhostDeconstructedEventFilter}
9448
10294
  * - `"ghost_name"`: {@link GhostNamePreGhostDeconstructedEventFilter}
9449
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LuaPreGhostDeconstructedEventFilter.html Online documentation}
10295
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LuaPreGhostDeconstructedEventFilter.html Online documentation}
9450
10296
  */
9451
10297
  export type LuaPreGhostDeconstructedEventFilter =
9452
10298
  | TypePreGhostDeconstructedEventFilter
@@ -9551,7 +10397,7 @@ declare module "factorio:runtime" {
9551
10397
  * - `"name"`: {@link NameEntityClonedEventFilter}
9552
10398
  * - `"ghost_type"`: {@link GhostTypeEntityClonedEventFilter}
9553
10399
  * - `"ghost_name"`: {@link GhostNameEntityClonedEventFilter}
9554
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LuaEntityClonedEventFilter.html Online documentation}
10400
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LuaEntityClonedEventFilter.html Online documentation}
9555
10401
  */
9556
10402
  export type LuaEntityClonedEventFilter =
9557
10403
  | TypeEntityClonedEventFilter
@@ -9656,7 +10502,7 @@ declare module "factorio:runtime" {
9656
10502
  * - `"name"`: {@link NameScriptRaisedTeleportedEventFilter}
9657
10503
  * - `"ghost_type"`: {@link GhostTypeScriptRaisedTeleportedEventFilter}
9658
10504
  * - `"ghost_name"`: {@link GhostNameScriptRaisedTeleportedEventFilter}
9659
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LuaScriptRaisedTeleportedEventFilter.html Online documentation}
10505
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LuaScriptRaisedTeleportedEventFilter.html Online documentation}
9660
10506
  */
9661
10507
  export type LuaScriptRaisedTeleportedEventFilter =
9662
10508
  | TypeScriptRaisedTeleportedEventFilter
@@ -9763,7 +10609,7 @@ declare module "factorio:runtime" {
9763
10609
  * - `"name"`: {@link NameEntityDeconstructionCancelledEventFilter}
9764
10610
  * - `"ghost_type"`: {@link GhostTypeEntityDeconstructionCancelledEventFilter}
9765
10611
  * - `"ghost_name"`: {@link GhostNameEntityDeconstructionCancelledEventFilter}
9766
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LuaEntityDeconstructionCancelledEventFilter.html Online documentation}
10612
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LuaEntityDeconstructionCancelledEventFilter.html Online documentation}
9767
10613
  */
9768
10614
  export type LuaEntityDeconstructionCancelledEventFilter =
9769
10615
  | TypeEntityDeconstructionCancelledEventFilter
@@ -9880,7 +10726,7 @@ declare module "factorio:runtime" {
9880
10726
  * - `"ghost_type"`: {@link GhostTypeRobotBuiltEntityEventFilter}
9881
10727
  * - `"ghost_name"`: {@link GhostNameRobotBuiltEntityEventFilter}
9882
10728
  * - `"force"`: {@link ForceRobotBuiltEntityEventFilter}
9883
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LuaRobotBuiltEntityEventFilter.html Online documentation}
10729
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LuaRobotBuiltEntityEventFilter.html Online documentation}
9884
10730
  */
9885
10731
  export type LuaRobotBuiltEntityEventFilter =
9886
10732
  | TypeRobotBuiltEntityEventFilter
@@ -9986,7 +10832,7 @@ declare module "factorio:runtime" {
9986
10832
  * - `"name"`: {@link NameScriptRaisedBuiltEventFilter}
9987
10833
  * - `"ghost_type"`: {@link GhostTypeScriptRaisedBuiltEventFilter}
9988
10834
  * - `"ghost_name"`: {@link GhostNameScriptRaisedBuiltEventFilter}
9989
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LuaScriptRaisedBuiltEventFilter.html Online documentation}
10835
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LuaScriptRaisedBuiltEventFilter.html Online documentation}
9990
10836
  */
9991
10837
  export type LuaScriptRaisedBuiltEventFilter =
9992
10838
  | TypeScriptRaisedBuiltEventFilter
@@ -10091,7 +10937,7 @@ declare module "factorio:runtime" {
10091
10937
  * - `"name"`: {@link NamePrePlayerMinedEntityEventFilter}
10092
10938
  * - `"ghost_type"`: {@link GhostTypePrePlayerMinedEntityEventFilter}
10093
10939
  * - `"ghost_name"`: {@link GhostNamePrePlayerMinedEntityEventFilter}
10094
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LuaPrePlayerMinedEntityEventFilter.html Online documentation}
10940
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LuaPrePlayerMinedEntityEventFilter.html Online documentation}
10095
10941
  */
10096
10942
  export type LuaPrePlayerMinedEntityEventFilter =
10097
10943
  | TypePrePlayerMinedEntityEventFilter
@@ -10196,7 +11042,7 @@ declare module "factorio:runtime" {
10196
11042
  * - `"name"`: {@link NamePlayerRepairedEntityEventFilter}
10197
11043
  * - `"ghost_type"`: {@link GhostTypePlayerRepairedEntityEventFilter}
10198
11044
  * - `"ghost_name"`: {@link GhostNamePlayerRepairedEntityEventFilter}
10199
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LuaPlayerRepairedEntityEventFilter.html Online documentation}
11045
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LuaPlayerRepairedEntityEventFilter.html Online documentation}
10200
11046
  */
10201
11047
  export type LuaPlayerRepairedEntityEventFilter =
10202
11048
  | TypePlayerRepairedEntityEventFilter
@@ -10301,7 +11147,7 @@ declare module "factorio:runtime" {
10301
11147
  * - `"name"`: {@link NameUpgradeCancelledEventFilter}
10302
11148
  * - `"ghost_type"`: {@link GhostTypeUpgradeCancelledEventFilter}
10303
11149
  * - `"ghost_name"`: {@link GhostNameUpgradeCancelledEventFilter}
10304
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LuaUpgradeCancelledEventFilter.html Online documentation}
11150
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LuaUpgradeCancelledEventFilter.html Online documentation}
10305
11151
  */
10306
11152
  export type LuaUpgradeCancelledEventFilter =
10307
11153
  | TypeUpgradeCancelledEventFilter
@@ -10406,7 +11252,7 @@ declare module "factorio:runtime" {
10406
11252
  * - `"name"`: {@link NameSectorScannedEventFilter}
10407
11253
  * - `"ghost_type"`: {@link GhostTypeSectorScannedEventFilter}
10408
11254
  * - `"ghost_name"`: {@link GhostNameSectorScannedEventFilter}
10409
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LuaSectorScannedEventFilter.html Online documentation}
11255
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LuaSectorScannedEventFilter.html Online documentation}
10410
11256
  */
10411
11257
  export type LuaSectorScannedEventFilter =
10412
11258
  | TypeSectorScannedEventFilter
@@ -10452,7 +11298,7 @@ declare module "factorio:runtime" {
10452
11298
  *
10453
11299
  * Other attributes may be specified depending on `filter`:
10454
11300
  * - `"type"`: {@link TypePostEntityDiedEventFilter}
10455
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LuaPostEntityDiedEventFilter.html Online documentation}
11301
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LuaPostEntityDiedEventFilter.html Online documentation}
10456
11302
  */
10457
11303
  export type LuaPostEntityDiedEventFilter = TypePostEntityDiedEventFilter | OtherPostEntityDiedEventFilter
10458
11304
  /**
@@ -10554,7 +11400,7 @@ declare module "factorio:runtime" {
10554
11400
  * - `"name"`: {@link NameEntityMarkedForDeconstructionEventFilter}
10555
11401
  * - `"ghost_type"`: {@link GhostTypeEntityMarkedForDeconstructionEventFilter}
10556
11402
  * - `"ghost_name"`: {@link GhostNameEntityMarkedForDeconstructionEventFilter}
10557
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LuaEntityMarkedForDeconstructionEventFilter.html Online documentation}
11403
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LuaEntityMarkedForDeconstructionEventFilter.html Online documentation}
10558
11404
  */
10559
11405
  export type LuaEntityMarkedForDeconstructionEventFilter =
10560
11406
  | TypeEntityMarkedForDeconstructionEventFilter
@@ -10659,7 +11505,7 @@ declare module "factorio:runtime" {
10659
11505
  * - `"name"`: {@link NamePlayerMinedEntityEventFilter}
10660
11506
  * - `"ghost_type"`: {@link GhostTypePlayerMinedEntityEventFilter}
10661
11507
  * - `"ghost_name"`: {@link GhostNamePlayerMinedEntityEventFilter}
10662
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LuaPlayerMinedEntityEventFilter.html Online documentation}
11508
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LuaPlayerMinedEntityEventFilter.html Online documentation}
10663
11509
  */
10664
11510
  export type LuaPlayerMinedEntityEventFilter =
10665
11511
  | TypePlayerMinedEntityEventFilter
@@ -10839,7 +11685,7 @@ declare module "factorio:runtime" {
10839
11685
  * - `"final-damage-amount"`: {@link FinalDamageAmountEntityDamagedEventFilter}
10840
11686
  * - `"damage-type"`: {@link DamageTypeEntityDamagedEventFilter}
10841
11687
  * - `"final-health"`: {@link FinalHealthEntityDamagedEventFilter}
10842
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LuaEntityDamagedEventFilter.html Online documentation}
11688
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LuaEntityDamagedEventFilter.html Online documentation}
10843
11689
  */
10844
11690
  export type LuaEntityDamagedEventFilter =
10845
11691
  | TypeEntityDamagedEventFilter
@@ -10852,8 +11698,8 @@ declare module "factorio:runtime" {
10852
11698
  | FinalHealthEntityDamagedEventFilter
10853
11699
  | OtherEntityDamagedEventFilter
10854
11700
  /**
10855
- * Write form of {@link LuaEntityDamagedEventFilter}, where table-or-array concepts are allowed to take an array form.
10856
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LuaEntityDamagedEventFilter.html Online documentation}
11701
+ * Write form of {@link LuaEntityDamagedEventFilter}, where some properties allow additional values as input compared to the read form.
11702
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LuaEntityDamagedEventFilter.html Online documentation}
10857
11703
  */
10858
11704
  export type LuaEntityDamagedEventFilterWrite =
10859
11705
  | TypeEntityDamagedEventFilter
@@ -10962,7 +11808,7 @@ declare module "factorio:runtime" {
10962
11808
  * - `"name"`: {@link NameScriptRaisedReviveEventFilter}
10963
11809
  * - `"ghost_type"`: {@link GhostTypeScriptRaisedReviveEventFilter}
10964
11810
  * - `"ghost_name"`: {@link GhostNameScriptRaisedReviveEventFilter}
10965
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LuaScriptRaisedReviveEventFilter.html Online documentation}
11811
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LuaScriptRaisedReviveEventFilter.html Online documentation}
10966
11812
  */
10967
11813
  export type LuaScriptRaisedReviveEventFilter =
10968
11814
  | TypeScriptRaisedReviveEventFilter
@@ -11067,7 +11913,7 @@ declare module "factorio:runtime" {
11067
11913
  * - `"name"`: {@link NameEntityDiedEventFilter}
11068
11914
  * - `"ghost_type"`: {@link GhostTypeEntityDiedEventFilter}
11069
11915
  * - `"ghost_name"`: {@link GhostNameEntityDiedEventFilter}
11070
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LuaEntityDiedEventFilter.html Online documentation}
11916
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LuaEntityDiedEventFilter.html Online documentation}
11071
11917
  */
11072
11918
  export type LuaEntityDiedEventFilter =
11073
11919
  | TypeEntityDiedEventFilter
@@ -11172,7 +12018,7 @@ declare module "factorio:runtime" {
11172
12018
  * - `"name"`: {@link NamePreRobotMinedEntityEventFilter}
11173
12019
  * - `"ghost_type"`: {@link GhostTypePreRobotMinedEntityEventFilter}
11174
12020
  * - `"ghost_name"`: {@link GhostNamePreRobotMinedEntityEventFilter}
11175
- * @see {@link https://lua-api.factorio.com/2.0.17/concepts/LuaPreRobotMinedEntityEventFilter.html Online documentation}
12021
+ * @see {@link https://lua-api.factorio.com/2.0.21/concepts/LuaPreRobotMinedEntityEventFilter.html Online documentation}
11176
12022
  */
11177
12023
  export type LuaPreRobotMinedEntityEventFilter =
11178
12024
  | TypePreRobotMinedEntityEventFilter
@@ -11180,24 +12026,6 @@ declare module "factorio:runtime" {
11180
12026
  | GhostTypePreRobotMinedEntityEventFilter
11181
12027
  | GhostNamePreRobotMinedEntityEventFilter
11182
12028
  | OtherPreRobotMinedEntityEventFilter
11183
- export type StyleValuesArray =
11184
- | readonly [topBottom: int, leftRight: int]
11185
- | readonly [top: int, right: int, bottom: int, left: int]
11186
- export type SizeArray = readonly [width: int, height: int]
11187
- export type RaiseableEvents =
11188
- | typeof defines.events.on_console_chat
11189
- | typeof defines.events.on_player_crafted_item
11190
- | typeof defines.events.on_player_fast_transferred
11191
- | typeof defines.events.on_biter_base_built
11192
- | typeof defines.events.on_market_item_purchased
11193
- | typeof defines.events.script_raised_built
11194
- | typeof defines.events.script_raised_destroy
11195
- | typeof defines.events.script_raised_revive
11196
- | typeof defines.events.script_raised_teleported
11197
- | typeof defines.events.script_raised_set_tiles
11198
- /** An event id. */
11199
- export type EventId<T extends object, F = unknown> = uint & {
11200
- readonly _eventData: T
11201
- readonly _filter: F
11202
- }
12029
+ export type StyleValuesArray = [topBottom: int, leftRight: int] | [top: int, right: int, bottom: int, left: int]
12030
+ export type SizeArray = [width: int, height: int]
11203
12031
  }