typed-factorio 1.13.0 → 1.15.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -24,7 +24,7 @@ interface LuaAISettings {
24
24
  */
25
25
  do_separation: boolean
26
26
  /**
27
- * The pathing resolution modifier, must be between -8 and 8.
27
+ * Defines how coarse the pathfinder's grid is, where smaller values mean a coarser grid. Defaults to `0`, which equals a resolution of `1x1` tiles, centered on tile centers. Values range from `-8` to `8` inclusive, where each integer increment doubles/halves the resolution. So, a resolution of `-8` equals a grid of `256x256` tiles, and a resolution of `8` equals `1/256` of a tile.
28
28
  * @see {@link https://lua-api.factorio.com/latest/LuaAISettings.html#LuaAISettings.path_resolution_modifier Online documentation}
29
29
  */
30
30
  path_resolution_modifier: int8
@@ -217,9 +217,11 @@ interface LuaBootstrap {
217
217
  */
218
218
  on_init(handler: (() => void) | nil): void
219
219
  /**
220
- * Register a function to be run on save load. This is only called for mods that have been part of the save previously, or for players connecting to a running multiplayer session. It gives the mod the opportunity to do some very specific actions, should it need to. Doing anything other than these three will lead to desyncs, which breaks multiplayer and replay functionality. Access to {@link LuaGameScript} is not available. The {@linkplain https://lua-api.factorio.com/latest/Global.html global} table can be accessed and is safe to read from, but not write to, as doing so will lead to an error.
220
+ * Register a function to be run on save load. This is only called for mods that have been part of the save previously, or for players connecting to a running multiplayer session.
221
221
  *
222
- * The only legitimate uses of this event are the following:
222
+ * It gives the mod the opportunity to rectify potential differences in local state introduced by the save/load cycle. Doing anything other than the following three will lead to desyncs, breaking multiplayer and replay functionality. Access to {@link LuaGameScript} is not available. The {@linkplain https://lua-api.factorio.com/latest/Global.html global} table can be accessed and is safe to read from, but not write to, as doing so will lead to an error.
223
+ *
224
+ * The only legitimate uses of this event are these:
223
225
  * - Re-setup {@linkplain https://www.lua.org/pil/13.html metatables} as they are not persisted through the save/load cycle.
224
226
  * - Re-setup conditional event handlers, meaning subscribing to an event only when some condition is met to save processing time.
225
227
  * - Create local references to data stored in the {@linkplain https://lua-api.factorio.com/latest/Global.html global} table.
@@ -230,14 +232,6 @@ interface LuaBootstrap {
230
232
  * @see {@link https://lua-api.factorio.com/latest/LuaBootstrap.html#LuaBootstrap.on_load Online documentation}
231
233
  */
232
234
  on_load(handler: (() => void) | nil): void
233
- /**
234
- * Register a metatable to have linkage recorded and restored when saving/loading. The metatable itself will not be saved. Instead, only the linkage to a registered metatable is saved, and the metatable registered under that name will be used when loading the table.
235
- * @param name The name of this metatable. Names must be unique per mod.
236
- * @param metatable The metatable to register.
237
- * @remarks `register_metatable()` can not be used in the console, in event listeners or during a `remote.call()`.
238
- * @see {@link https://lua-api.factorio.com/latest/LuaBootstrap.html#LuaBootstrap.register_metatable Online documentation}
239
- */
240
- register_metatable(name: string, metatable: table): void
241
235
  /**
242
236
  * Register a function to be run when mod configuration changes. This is called when the game version or any mod version changed, when any mod was added or removed, when a startup setting has changed, when any prototypes have been added or removed, or when a migration was applied. It allows the mod to make any changes it deems appropriate to both the data structures in its {@linkplain https://lua-api.factorio.com/latest/Global.html global} table or to the game state through {@link LuaGameScript}.
243
237
  * @param handler The handler for this event. Passing `nil` will unregister it.
@@ -287,6 +281,31 @@ interface LuaBootstrap {
287
281
  * @see {@link https://lua-api.factorio.com/latest/LuaBootstrap.html#LuaBootstrap.register_on_entity_destroyed Online documentation}
288
282
  */
289
283
  register_on_entity_destroyed(entity: LuaEntity): RegistrationNumber
284
+ /**
285
+ * Register a metatable to have linkage recorded and restored when saving/loading. The metatable itself will not be saved. Instead, only the linkage to a registered metatable is saved, and the metatable registered under that name will be used when loading the table.
286
+ * @param name The name of this metatable. Names must be unique per mod.
287
+ * @param metatable The metatable to register.
288
+ * @example The metatable first needs to be defined in the mod's root scope, then registered using this method. From then on, it will be properly restored for tables in {@linkplain https://lua-api.factorio.com/latest/Global.html global}.
289
+ *
290
+ * ```
291
+ * local metatable = {
292
+ * __index = function(key)
293
+ * return "no value for key " .. key
294
+ * end
295
+ * }
296
+ * script.register_metatable("my_metatable", metatable)
297
+ * ```
298
+ *
299
+ * This previously defined `metatable` can then be set on any table as usual:
300
+ *
301
+ * ```
302
+ * local table = {key="value"}
303
+ * setmetatable(table, metatable)
304
+ * ```
305
+ * @remarks `register_metatable()` can not be used in the console, in event listeners or during a `remote.call()`.
306
+ * @see {@link https://lua-api.factorio.com/latest/LuaBootstrap.html#LuaBootstrap.register_metatable Online documentation}
307
+ */
308
+ register_metatable(name: string, metatable: table): void
290
309
  /**
291
310
  * Generate a new, unique event ID that can be used to raise custom events with {@link LuaBootstrap#raise_event LuaBootstrap::raise_event}.
292
311
  * @returns The newly generated event ID.
@@ -351,6 +370,7 @@ interface LuaBootstrap {
351
370
  * - {@link ScriptRaisedBuiltEvent script_raised_built}
352
371
  * - {@link ScriptRaisedDestroyEvent script_raised_destroy}
353
372
  * - {@link ScriptRaisedReviveEvent script_raised_revive}
373
+ * - {@link ScriptRaisedTeleportedEvent script_raised_teleported}
354
374
  * - {@link ScriptRaisedSetTilesEvent script_raised_set_tiles}
355
375
  * @param event ID of the event to raise.
356
376
  * @param data Table with extra data that will be passed to the event handler. Any invalid LuaObjects will silently stop the event from being raised.
@@ -494,6 +514,25 @@ interface LuaBootstrap {
494
514
  */
495
515
  readonly tags?: Tags
496
516
  }): void
517
+ /**
518
+ * **Raised events:**
519
+ * - {@link ScriptRaisedTeleportedEvent script_raised_teleported} _instantly_ Raised with the provided arguments.
520
+ * @see {@link https://lua-api.factorio.com/latest/LuaBootstrap.html#LuaBootstrap.raise_script_teleported Online documentation}
521
+ */
522
+ raise_script_teleported(params: {
523
+ /**
524
+ * The entity that was teleported.
525
+ */
526
+ readonly entity: LuaEntity
527
+ /**
528
+ * The entity's surface before the teleportation.
529
+ */
530
+ readonly old_surface_index: uint8
531
+ /**
532
+ * The entity's position before the teleportation.
533
+ */
534
+ readonly old_position: MapPosition | MapPositionArray
535
+ }): void
497
536
  /**
498
537
  * **Raised events:**
499
538
  * - {@link ScriptRaisedSetTilesEvent script_raised_set_tiles} _instantly_ Raised with the provided arguments.
@@ -596,7 +635,7 @@ interface LuaBurner {
596
635
  */
597
636
  remaining_burning_fuel: double
598
637
  /**
599
- * The currently burning item.
638
+ * The currently burning item. Writing `nil` will void the currently burning item without producing a {@link LuaBurner#burnt_result LuaBurner::burnt_result}.
600
639
  * @remarks Writing to this automatically handles correcting {@link LuaBurner#remaining_burning_fuel LuaBurner::remaining_burning_fuel}.
601
640
  * @see {@link https://lua-api.factorio.com/latest/LuaBurner.html#LuaBurner.currently_burning Online documentation}
602
641
  */
@@ -785,7 +824,7 @@ interface LuaCombinatorControlBehavior extends LuaControlBehavior {
785
824
  }
786
825
 
787
826
  /**
788
- * Allows for the registration of custom console commands. Similarly to {@link LuaBootstrap#on_event event subscriptions}, these don't persist through a save-and-load cycle.
827
+ * Allows for the registration of custom console commands through the global object named `commands`. Similarly to {@link LuaBootstrap#on_event event subscriptions}, these don't persist through a save-and-load cycle.
789
828
  * @see {@link https://lua-api.factorio.com/latest/LuaCommandProcessor.html Online documentation}
790
829
  * @noSelf
791
830
  */
@@ -840,10 +879,11 @@ interface LuaCommandProcessor {
840
879
  */
841
880
  interface LuaConstantCombinatorControlBehavior extends LuaControlBehavior {
842
881
  /**
843
- * Sets the signal at the given index
882
+ * Sets the signal at the given index.
883
+ * @param signal Passing `nil` clears the signal.
844
884
  * @see {@link https://lua-api.factorio.com/latest/LuaConstantCombinatorControlBehavior.html#LuaConstantCombinatorControlBehavior.set_signal Online documentation}
845
885
  */
846
- set_signal(index: uint, signal: Signal): void
886
+ set_signal(index: uint, signal?: Signal): void
847
887
  /**
848
888
  * Gets the signal at the given index. Returned {@link Signal} will not contain signal if none is set for the index.
849
889
  * @see {@link https://lua-api.factorio.com/latest/LuaConstantCombinatorControlBehavior.html#LuaConstantCombinatorControlBehavior.get_signal Online documentation}
@@ -862,7 +902,7 @@ interface LuaConstantCombinatorControlBehavior extends LuaControlBehavior {
862
902
  */
863
903
  enabled: boolean
864
904
  /**
865
- * The number of signals this constant combinator supports
905
+ * The number of signals this constant combinator supports.
866
906
  * @see {@link https://lua-api.factorio.com/latest/LuaConstantCombinatorControlBehavior.html#LuaConstantCombinatorControlBehavior.signals_count Online documentation}
867
907
  */
868
908
  readonly signals_count: uint
@@ -979,6 +1019,16 @@ interface LuaControl {
979
1019
  * @see {@link https://lua-api.factorio.com/latest/LuaControl.html#LuaControl.get_inventory Online documentation}
980
1020
  */
981
1021
  get_inventory(inventory: defines.inventory): LuaInventory | nil
1022
+ /**
1023
+ * The highest index of all inventories this entity can use. Allows iteration over all of them if desired.
1024
+ * @example
1025
+ *
1026
+ * ```
1027
+ * for k = 1, entity.get_max_inventory_index() do [...] end
1028
+ * ```
1029
+ * @see {@link https://lua-api.factorio.com/latest/LuaControl.html#LuaControl.get_max_inventory_index Online documentation}
1030
+ */
1031
+ get_max_inventory_index(): defines.inventory
982
1032
  /**
983
1033
  * Gets the main inventory for this character or player if this is a character or player.
984
1034
  * @returns The inventory or `nil` if this entity is not a character or player.
@@ -1048,10 +1098,12 @@ interface LuaControl {
1048
1098
  *
1049
1099
  * **Raised events:**
1050
1100
  * - {@link OnPlayerChangedPositionEvent on_player_changed_position}? _instantly_ Raised if the teleported entity is a player character.
1101
+ * - {@link ScriptRaisedTeleportedEvent script_raised_teleported}? _instantly_ Raised if the `raise_teleported` flag was set and the entity was successfully teleported.
1051
1102
  * @param position Where to teleport to.
1052
1103
  * @param surface Surface to teleport to. If not given, will teleport to the entity's current surface. Only players, cars, and spidertrons can be teleported cross-surface.
1104
+ * @param raise_teleported If true, {@link defines.events.script_raised_teleported} will be fired on successful entity teleportation.
1053
1105
  * @returns `true` if the entity was successfully teleported.
1054
- * @remarks Some entities may not be teleported. For instance, transport belts won't allow teleportation and this method will always return `false` when used on any such entity.<br>You can also pass 1 or 2 numbers as the parameters and they will be used as relative teleport coordinates `'teleport(0, 1)'` to move the entity 1 tile positive y. `'teleport(4)'` to move the entity 4 tiles to the positive x.
1106
+ * @remarks Some entities may not be teleported. For instance, transport belts won't allow teleportation and this method will always return `false` when used on any such entity.<br>You can also pass 1 or 2 numbers as the parameters and they will be used as relative teleport coordinates `'teleport(0, 1)'` to move the entity 1 tile positive y. `'teleport(4)'` to move the entity 4 tiles to the positive x.<br>`script_raised_teleported` will not be raised if teleporting a player with no character.
1055
1107
  * @see {@link https://lua-api.factorio.com/latest/LuaControl.html#LuaControl.teleport Online documentation}
1056
1108
  */
1057
1109
  teleport(position: MapPosition | MapPositionArray, surface?: SurfaceIdentification): boolean
@@ -1248,7 +1300,7 @@ interface LuaControl {
1248
1300
  */
1249
1301
  readonly surface: LuaSurface
1250
1302
  /**
1251
- * Unique ID associated with the surface this entity is currently on.
1303
+ * Unique {@link LuaSurface#index index} (ID) associated with the surface this entity is currently on.
1252
1304
  * @see {@link https://lua-api.factorio.com/latest/LuaControl.html#LuaControl.surface_index Online documentation}
1253
1305
  */
1254
1306
  readonly surface_index: SurfaceIndex
@@ -1269,10 +1321,10 @@ interface LuaControl {
1269
1321
  get force(): LuaForce
1270
1322
  set force(value: ForceIdentification)
1271
1323
  /**
1272
- * Unique ID associated with the force of this entity.
1324
+ * Unique {@link LuaForce#index index} (ID) associated with the force of this entity.
1273
1325
  * @see {@link https://lua-api.factorio.com/latest/LuaControl.html#LuaControl.force_index Online documentation}
1274
1326
  */
1275
- readonly force_index: uint
1327
+ readonly force_index: ForceIndex
1276
1328
  /**
1277
1329
  * The currently selected entity. Assigning an entity will select it if is selectable, otherwise the selection is cleared.
1278
1330
  *
@@ -1349,26 +1401,26 @@ interface LuaControl {
1349
1401
  riding_state: RidingState
1350
1402
  /**
1351
1403
  * Current mining state.
1352
- * @remarks When the player isn't mining tiles the player will mine what ever entity is currently selected. See {@link LuaControl#selected LuaControl::selected} and {@link LuaControl#update_selected_entity LuaControl::update_selected_entity}.
1404
+ * @remarks When the player isn't mining tiles, the player will mine what ever entity is currently selected. See {@link LuaControl#selected LuaControl::selected} and {@link LuaControl#update_selected_entity LuaControl::update_selected_entity}.
1353
1405
  * @see {@link https://lua-api.factorio.com/latest/LuaControl.html#LuaControl.mining_state Online documentation}
1354
1406
  */
1355
1407
  get mining_state(): {
1356
1408
  /**
1357
- * Whether the player is mining at all
1409
+ * Whether the player is mining at all.
1358
1410
  */
1359
1411
  readonly mining: boolean
1360
1412
  /**
1361
- * What tiles the player is mining; only used when the player is mining tiles (holding a tile in the cursor).
1413
+ * What location the player is mining. Only relevant if `mining` is `true`.
1362
1414
  */
1363
1415
  readonly position?: MapPosition
1364
1416
  }
1365
1417
  set mining_state(value: {
1366
1418
  /**
1367
- * Whether the player is mining at all
1419
+ * Whether the player is mining at all.
1368
1420
  */
1369
1421
  readonly mining: boolean
1370
1422
  /**
1371
- * What tiles the player is mining; only used when the player is mining tiles (holding a tile in the cursor).
1423
+ * What location the player is mining. Only relevant if `mining` is `true`.
1372
1424
  */
1373
1425
  readonly position?: MapPosition | MapPositionArray
1374
1426
  })
@@ -2612,21 +2664,21 @@ interface LuaEntity extends LuaControl {
2612
2664
  */
2613
2665
  update_connections(): void
2614
2666
  /**
2615
- * Current recipe being assembled by this machine or `nil` if no recipe is set.
2667
+ * Current recipe being assembled by this machine, if any.
2616
2668
  *
2617
2669
  * _Can only be used if this is CraftingMachine_
2618
2670
  * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.get_recipe Online documentation}
2619
2671
  */
2620
2672
  get_recipe(): LuaRecipe | nil
2621
2673
  /**
2622
- * Sets the current recipe in this assembly machine.
2674
+ * Sets the given recipe in this assembly machine.
2623
2675
  *
2624
2676
  * _Can only be used if this is AssemblingMachine_
2625
- * @param recipe The new recipe or `nil` to clear the recipe.
2677
+ * @param recipe The new recipe. Writing `nil` clears the recipe, if any.
2626
2678
  * @returns Any items removed from this entity as a result of setting the recipe.
2627
2679
  * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.set_recipe Online documentation}
2628
2680
  */
2629
- set_recipe(recipe: string | LuaRecipe | nil): Record<string, uint>
2681
+ set_recipe(recipe?: string | LuaRecipe): Record<string, uint>
2630
2682
  /**
2631
2683
  * Rotates this entity as if the player rotated it.
2632
2684
  *
@@ -2673,11 +2725,11 @@ interface LuaEntity extends LuaControl {
2673
2725
  * - {@link OnPlayerDrivingChangedStateEvent on_player_driving_changed_state}? _instantly_
2674
2726
  *
2675
2727
  * _Can only be used if this is Vehicle_
2676
- * @param driver The new driver or `nil` to eject the current driver if any.
2677
- * @remarks This differs over {@link LuaEntity#set_passenger LuaEntity::set_passenger} in that the passenger can't drive the vehicle.
2728
+ * @param driver The new driver. Writing `nil` ejects the current driver, if any.
2729
+ * @remarks This differs from {@link LuaEntity#set_passenger LuaEntity::set_passenger} in that the passenger can't drive the vehicle.
2678
2730
  * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.set_driver Online documentation}
2679
2731
  */
2680
- set_driver(driver: LuaEntity | PlayerIdentification | nil): void
2732
+ set_driver(driver?: LuaEntity | PlayerIdentification): void
2681
2733
  /**
2682
2734
  * Gets the passenger of this car or spidertron if any.
2683
2735
  *
@@ -2694,10 +2746,11 @@ interface LuaEntity extends LuaControl {
2694
2746
  * - {@link OnPlayerDrivingChangedStateEvent on_player_driving_changed_state}? _instantly_
2695
2747
  *
2696
2748
  * _Can only be used if this is Car or SpiderVehicle_
2697
- * @remarks This differs over {@link LuaEntity#get_driver LuaEntity::get_driver} in that the passenger can't drive the car.
2749
+ * @param passenger The new passenger. Writing `nil` ejects the current passenger, if any.
2750
+ * @remarks This differs from {@link LuaEntity#get_driver LuaEntity::get_driver} in that the passenger can't drive the car.
2698
2751
  * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.set_passenger Online documentation}
2699
2752
  */
2700
- set_passenger(passenger: LuaEntity | PlayerIdentification): void
2753
+ set_passenger(passenger?: LuaEntity | PlayerIdentification): void
2701
2754
  /**
2702
2755
  * Returns `true` if this entity produces or consumes electricity and is connected to an electric network that has at least one entity that can produce power.
2703
2756
  * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.is_connected_to_electric_network Online documentation}
@@ -2988,6 +3041,18 @@ interface LuaEntity extends LuaControl {
2988
3041
  * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.stop_spider Online documentation}
2989
3042
  */
2990
3043
  stop_spider(): void
3044
+ /**
3045
+ * Returns a table with all beacons affecting this effect receiver. Can only be used when the entity has an effect receiver (AssemblingMachine, Furnace, Lab, MiningDrills)
3046
+ * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.get_beacons Online documentation}
3047
+ */
3048
+ get_beacons(): LuaEntity[] | nil
3049
+ /**
3050
+ * Returns a table with all entities affected by this beacon
3051
+ *
3052
+ * _Can only be used if this is Beacon_
3053
+ * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.get_beacon_effect_receivers Online documentation}
3054
+ */
3055
+ get_beacon_effect_receivers(): LuaEntity[]
2991
3056
  /**
2992
3057
  * Name of the entity prototype. E.g. "inserter" or "filter-inserter".
2993
3058
  * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.name Online documentation}
@@ -3290,7 +3355,7 @@ interface LuaEntity extends LuaControl {
3290
3355
  */
3291
3356
  backer_name?: string
3292
3357
  /**
3293
- * The label on this entity, if any. `nil` if this is not a spider-vehicule.
3358
+ * The label on this spider-vehicle entity, if any. `nil` if this is not a spider-vehicle.
3294
3359
  *
3295
3360
  * **Raised events:**
3296
3361
  * - {@link OnEntityRenamedEvent on_entity_renamed} _instantly_
@@ -3384,14 +3449,14 @@ interface LuaEntity extends LuaControl {
3384
3449
  */
3385
3450
  readonly consumption_bonus: double
3386
3451
  /**
3387
- * `"input"` or `"output"`, depending on whether this underground belt goes down or up.
3452
+ * Whether this underground belt goes into or out of the ground.
3388
3453
  *
3389
3454
  * _Can only be used if this is TransportBeltToGround_
3390
3455
  * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.belt_to_ground_type Online documentation}
3391
3456
  */
3392
3457
  readonly belt_to_ground_type: "input" | "output"
3393
3458
  /**
3394
- * `"input"` or `"output"`, depending on whether this loader puts to or gets from a container.
3459
+ * Whether this loader gets items from or puts item into a container.
3395
3460
  *
3396
3461
  * _Can only be used if this is Loader_
3397
3462
  * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.loader_type Online documentation}
@@ -3484,7 +3549,9 @@ interface LuaEntity extends LuaControl {
3484
3549
  */
3485
3550
  readonly electric_emissions?: double
3486
3551
  /**
3487
- * A universally unique number identifying this entity for the lifetime of the save. Only entities inheriting from {@linkplain https://wiki.factorio.com/Prototype/EntityWithOwner EntityWithOwner}, as well as {@linkplain https://wiki.factorio.com/Prototype/ItemRequestProxy ItemRequestProxy} and {@linkplain https://wiki.factorio.com/Prototype/EntityGhost EntityGhost} are assigned a unit number. `nil` if this entity doesn't have a unit number.
3552
+ * A unique number identifying this entity for the lifetime of the save. These are allocated sequentially, and not re-used (until overflow).
3553
+ *
3554
+ * Only entities inheriting from {@linkplain https://wiki.factorio.com/Prototype/EntityWithOwner EntityWithOwner}, as well as {@linkplain https://wiki.factorio.com/Prototype/ItemRequestProxy ItemRequestProxy} and {@linkplain https://wiki.factorio.com/Prototype/EntityGhost EntityGhost} are assigned a unit number. Returns `nil` otherwise.
3488
3555
  * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.unit_number Online documentation}
3489
3556
  */
3490
3557
  readonly unit_number?: UnitNumber
@@ -3703,6 +3770,11 @@ interface LuaEntity extends LuaControl {
3703
3770
  * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.effects Online documentation}
3704
3771
  */
3705
3772
  readonly effects?: ModuleEffects
3773
+ /**
3774
+ * Number of beacons affecting this effect receiver. Can only be used when the entity has an effect receiver (AssemblingMachine, Furnace, Lab, MiningDrills)
3775
+ * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.beacons_count Online documentation}
3776
+ */
3777
+ readonly beacons_count?: uint
3706
3778
  /**
3707
3779
  * The filters for this infinity container.
3708
3780
  *
@@ -3981,7 +4053,7 @@ interface LuaEntity extends LuaControl {
3981
4053
  */
3982
4054
  time_to_next_effect: uint
3983
4055
  /**
3984
- * Destination of this spidertron's autopilot, if any.
4056
+ * Destination of this spidertron's autopilot, if any. Writing `nil` clears all destinations.
3985
4057
  *
3986
4058
  * _Can only be used if this is SpiderVehicle_
3987
4059
  * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.autopilot_destination Online documentation}
@@ -4646,6 +4718,11 @@ interface BaseEntity extends LuaControl {
4646
4718
  * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.is_registered_for_repair Online documentation}
4647
4719
  */
4648
4720
  is_registered_for_repair(): boolean
4721
+ /**
4722
+ * Returns a table with all beacons affecting this effect receiver. Can only be used when the entity has an effect receiver (AssemblingMachine, Furnace, Lab, MiningDrills)
4723
+ * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.get_beacons Online documentation}
4724
+ */
4725
+ get_beacons(): LuaEntity[] | nil
4649
4726
  /**
4650
4727
  * Name of the entity prototype. E.g. "inserter" or "filter-inserter".
4651
4728
  * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.name Online documentation}
@@ -4790,7 +4867,7 @@ interface BaseEntity extends LuaControl {
4790
4867
  */
4791
4868
  backer_name?: string
4792
4869
  /**
4793
- * The label on this entity, if any. `nil` if this is not a spider-vehicule.
4870
+ * The label on this spider-vehicle entity, if any. `nil` if this is not a spider-vehicle.
4794
4871
  *
4795
4872
  * **Raised events:**
4796
4873
  * - {@link OnEntityRenamedEvent on_entity_renamed} _instantly_
@@ -4876,7 +4953,9 @@ interface BaseEntity extends LuaControl {
4876
4953
  */
4877
4954
  readonly electric_emissions?: double
4878
4955
  /**
4879
- * A universally unique number identifying this entity for the lifetime of the save. Only entities inheriting from {@linkplain https://wiki.factorio.com/Prototype/EntityWithOwner EntityWithOwner}, as well as {@linkplain https://wiki.factorio.com/Prototype/ItemRequestProxy ItemRequestProxy} and {@linkplain https://wiki.factorio.com/Prototype/EntityGhost EntityGhost} are assigned a unit number. `nil` if this entity doesn't have a unit number.
4956
+ * A unique number identifying this entity for the lifetime of the save. These are allocated sequentially, and not re-used (until overflow).
4957
+ *
4958
+ * Only entities inheriting from {@linkplain https://wiki.factorio.com/Prototype/EntityWithOwner EntityWithOwner}, as well as {@linkplain https://wiki.factorio.com/Prototype/ItemRequestProxy ItemRequestProxy} and {@linkplain https://wiki.factorio.com/Prototype/EntityGhost EntityGhost} are assigned a unit number. Returns `nil` otherwise.
4880
4959
  * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.unit_number Online documentation}
4881
4960
  */
4882
4961
  readonly unit_number?: UnitNumber
@@ -5036,6 +5115,11 @@ interface BaseEntity extends LuaControl {
5036
5115
  * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.effects Online documentation}
5037
5116
  */
5038
5117
  readonly effects?: ModuleEffects
5118
+ /**
5119
+ * Number of beacons affecting this effect receiver. Can only be used when the entity has an effect receiver (AssemblingMachine, Furnace, Lab, MiningDrills)
5120
+ * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.beacons_count Online documentation}
5121
+ */
5122
+ readonly beacons_count?: uint
5039
5123
  /**
5040
5124
  * The status of this entity, if any.
5041
5125
  * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.status Online documentation}
@@ -5326,7 +5410,7 @@ interface CraftingMachineEntity extends BaseEntity {
5326
5410
  */
5327
5411
  is_crafting(): boolean
5328
5412
  /**
5329
- * Current recipe being assembled by this machine or `nil` if no recipe is set.
5413
+ * Current recipe being assembled by this machine, if any.
5330
5414
  *
5331
5415
  * _Can only be used if this is CraftingMachine_
5332
5416
  * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.get_recipe Online documentation}
@@ -5737,14 +5821,14 @@ interface ProgrammableSpeakerEntity extends BaseEntity {
5737
5821
  */
5738
5822
  interface AssemblingMachineEntity extends BaseEntity {
5739
5823
  /**
5740
- * Sets the current recipe in this assembly machine.
5824
+ * Sets the given recipe in this assembly machine.
5741
5825
  *
5742
5826
  * _Can only be used if this is AssemblingMachine_
5743
- * @param recipe The new recipe or `nil` to clear the recipe.
5827
+ * @param recipe The new recipe. Writing `nil` clears the recipe, if any.
5744
5828
  * @returns Any items removed from this entity as a result of setting the recipe.
5745
5829
  * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.set_recipe Online documentation}
5746
5830
  */
5747
- set_recipe(recipe: string | LuaRecipe | nil): Record<string, uint>
5831
+ set_recipe(recipe?: string | LuaRecipe): Record<string, uint>
5748
5832
  /**
5749
5833
  * When locked; the recipe in this assembling machine can't be changed by the player.
5750
5834
  *
@@ -5773,11 +5857,11 @@ interface VehicleEntity extends BaseEntity {
5773
5857
  * - {@link OnPlayerDrivingChangedStateEvent on_player_driving_changed_state}? _instantly_
5774
5858
  *
5775
5859
  * _Can only be used if this is Vehicle_
5776
- * @param driver The new driver or `nil` to eject the current driver if any.
5777
- * @remarks This differs over {@link LuaEntity#set_passenger LuaEntity::set_passenger} in that the passenger can't drive the vehicle.
5860
+ * @param driver The new driver. Writing `nil` ejects the current driver, if any.
5861
+ * @remarks This differs from {@link LuaEntity#set_passenger LuaEntity::set_passenger} in that the passenger can't drive the vehicle.
5778
5862
  * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.set_driver Online documentation}
5779
5863
  */
5780
- set_driver(driver: LuaEntity | PlayerIdentification | nil): void
5864
+ set_driver(driver?: LuaEntity | PlayerIdentification): void
5781
5865
  /**
5782
5866
  * Whether equipment grid logistics are enabled while this vehicle is moving.
5783
5867
  *
@@ -5807,10 +5891,11 @@ interface CarEntity extends BaseEntity {
5807
5891
  * - {@link OnPlayerDrivingChangedStateEvent on_player_driving_changed_state}? _instantly_
5808
5892
  *
5809
5893
  * _Can only be used if this is Car or SpiderVehicle_
5810
- * @remarks This differs over {@link LuaEntity#get_driver LuaEntity::get_driver} in that the passenger can't drive the car.
5894
+ * @param passenger The new passenger. Writing `nil` ejects the current passenger, if any.
5895
+ * @remarks This differs from {@link LuaEntity#get_driver LuaEntity::get_driver} in that the passenger can't drive the car.
5811
5896
  * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.set_passenger Online documentation}
5812
5897
  */
5813
- set_passenger(passenger: LuaEntity | PlayerIdentification): void
5898
+ set_passenger(passenger?: LuaEntity | PlayerIdentification): void
5814
5899
  /**
5815
5900
  * Multiplies the acceleration the vehicle can create for one unit of energy. Defaults to `1`.
5816
5901
  *
@@ -5873,10 +5958,11 @@ interface SpiderVehicleEntity extends BaseEntity {
5873
5958
  * - {@link OnPlayerDrivingChangedStateEvent on_player_driving_changed_state}? _instantly_
5874
5959
  *
5875
5960
  * _Can only be used if this is Car or SpiderVehicle_
5876
- * @remarks This differs over {@link LuaEntity#get_driver LuaEntity::get_driver} in that the passenger can't drive the car.
5961
+ * @param passenger The new passenger. Writing `nil` ejects the current passenger, if any.
5962
+ * @remarks This differs from {@link LuaEntity#get_driver LuaEntity::get_driver} in that the passenger can't drive the car.
5877
5963
  * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.set_passenger Online documentation}
5878
5964
  */
5879
- set_passenger(passenger: LuaEntity | PlayerIdentification): void
5965
+ set_passenger(passenger?: LuaEntity | PlayerIdentification): void
5880
5966
  /**
5881
5967
  * Adds the given position to this spidertron's autopilot's queue of destinations.
5882
5968
  *
@@ -5928,7 +6014,7 @@ interface SpiderVehicleEntity extends BaseEntity {
5928
6014
  */
5929
6015
  selected_gun_index?: uint
5930
6016
  /**
5931
- * Destination of this spidertron's autopilot, if any.
6017
+ * Destination of this spidertron's autopilot, if any. Writing `nil` clears all destinations.
5932
6018
  *
5933
6019
  * _Can only be used if this is SpiderVehicle_
5934
6020
  * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.autopilot_destination Online documentation}
@@ -6114,6 +6200,19 @@ interface LinkedBeltEntity extends BaseEntity {
6114
6200
  readonly linked_belt_neighbour?: LuaEntity
6115
6201
  }
6116
6202
 
6203
+ /**
6204
+ * @noSelf
6205
+ */
6206
+ interface BeaconEntity extends BaseEntity {
6207
+ /**
6208
+ * Returns a table with all entities affected by this beacon
6209
+ *
6210
+ * _Can only be used if this is Beacon_
6211
+ * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.get_beacon_effect_receivers Online documentation}
6212
+ */
6213
+ get_beacon_effect_receivers(): LuaEntity[]
6214
+ }
6215
+
6117
6216
  interface GhostEntity extends BaseEntity {
6118
6217
  /**
6119
6218
  * Name of the entity or tile contained in this ghost
@@ -6278,7 +6377,7 @@ interface FlyingTextEntity extends BaseEntity {
6278
6377
 
6279
6378
  interface TransportBeltToGroundEntity extends BaseEntity {
6280
6379
  /**
6281
- * `"input"` or `"output"`, depending on whether this underground belt goes down or up.
6380
+ * Whether this underground belt goes into or out of the ground.
6282
6381
  *
6283
6382
  * _Can only be used if this is TransportBeltToGround_
6284
6383
  * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.belt_to_ground_type Online documentation}
@@ -6288,7 +6387,7 @@ interface TransportBeltToGroundEntity extends BaseEntity {
6288
6387
 
6289
6388
  interface LoaderEntity extends BaseEntity {
6290
6389
  /**
6291
- * `"input"` or `"output"`, depending on whether this loader puts to or gets from a container.
6390
+ * Whether this loader gets items from or puts item into a container.
6292
6391
  *
6293
6392
  * _Can only be used if this is Loader_
6294
6393
  * @see {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.loader_type Online documentation}
@@ -6609,10 +6708,10 @@ interface LuaEntityPrototype {
6609
6708
  readonly mining_trigger?: TriggerItem[]
6610
6709
  }
6611
6710
  /**
6612
- * Items that when placed will produce this entity, if any. Construction bots will always choose the first item in this list to build this entity.
6711
+ * Items that when placed will produce this entity, if any. Construction bots will choose the first item in the list to build this entity.
6613
6712
  * @see {@link https://lua-api.factorio.com/latest/LuaEntityPrototype.html#LuaEntityPrototype.items_to_place_this Online documentation}
6614
6713
  */
6615
- readonly items_to_place_this?: SimpleItemStack[]
6714
+ readonly items_to_place_this?: ItemStackDefinition[]
6616
6715
  /**
6617
6716
  * The bounding box used for collision checking.
6618
6717
  * @see {@link https://lua-api.factorio.com/latest/LuaEntityPrototype.html#LuaEntityPrototype.collision_box Online documentation}
@@ -7028,7 +7127,7 @@ interface LuaEntityPrototype {
7028
7127
  */
7029
7128
  readonly guns?: Record<string, LuaItemPrototype>
7030
7129
  /**
7031
- * A vector of the gun prototypes of this car, spider vehicule, or artillery wagon or turret.
7130
+ * A vector of the gun prototypes of this car, spider vehicle, artillery wagon, or turret.
7032
7131
  *
7033
7132
  * _Can only be used if this is Car, SpiderVehicle, ArtilleryTurret or ArtilleryWagon_
7034
7133
  * @see {@link https://lua-api.factorio.com/latest/LuaEntityPrototype.html#LuaEntityPrototype.indexed_guns Online documentation}
@@ -7170,7 +7269,7 @@ interface LuaEntityPrototype {
7170
7269
  /**
7171
7270
  * The default maximum power output of this generator prototype.
7172
7271
  *
7173
- * _Can only be used if this is Generator_
7272
+ * _Can only be used if this is BurnerGenerator or Generator_
7174
7273
  * @see {@link https://lua-api.factorio.com/latest/LuaEntityPrototype.html#LuaEntityPrototype.max_power_output Online documentation}
7175
7274
  */
7176
7275
  readonly max_power_output?: double
@@ -7190,7 +7289,7 @@ interface LuaEntityPrototype {
7190
7289
  readonly fluid?: LuaFluidPrototype
7191
7290
  /**
7192
7291
  * The fluid capacity of this entity or 0 if this entity doesn't support fluids.
7193
- * @remarks Crafting machines will report 0 due to their fluid capacity being what ever a given recipe needs.
7292
+ * @remarks Crafting machines will report 0 due to their fluid capacity being whatever a given recipe needs.
7194
7293
  * @see {@link https://lua-api.factorio.com/latest/LuaEntityPrototype.html#LuaEntityPrototype.fluid_capacity Online documentation}
7195
7294
  */
7196
7295
  readonly fluid_capacity: double
@@ -8144,10 +8243,10 @@ interface BaseEntityPrototype {
8144
8243
  readonly mining_trigger?: TriggerItem[]
8145
8244
  }
8146
8245
  /**
8147
- * Items that when placed will produce this entity, if any. Construction bots will always choose the first item in this list to build this entity.
8246
+ * Items that when placed will produce this entity, if any. Construction bots will choose the first item in the list to build this entity.
8148
8247
  * @see {@link https://lua-api.factorio.com/latest/LuaEntityPrototype.html#LuaEntityPrototype.items_to_place_this Online documentation}
8149
8248
  */
8150
- readonly items_to_place_this?: SimpleItemStack[]
8249
+ readonly items_to_place_this?: ItemStackDefinition[]
8151
8250
  /**
8152
8251
  * The bounding box used for collision checking.
8153
8252
  * @see {@link https://lua-api.factorio.com/latest/LuaEntityPrototype.html#LuaEntityPrototype.collision_box Online documentation}
@@ -8391,7 +8490,7 @@ interface BaseEntityPrototype {
8391
8490
  readonly building_grid_bit_shift: uint
8392
8491
  /**
8393
8492
  * The fluid capacity of this entity or 0 if this entity doesn't support fluids.
8394
- * @remarks Crafting machines will report 0 due to their fluid capacity being what ever a given recipe needs.
8493
+ * @remarks Crafting machines will report 0 due to their fluid capacity being whatever a given recipe needs.
8395
8494
  * @see {@link https://lua-api.factorio.com/latest/LuaEntityPrototype.html#LuaEntityPrototype.fluid_capacity Online documentation}
8396
8495
  */
8397
8496
  readonly fluid_capacity: double
@@ -9078,7 +9177,7 @@ interface CarEntityPrototype extends BaseEntityPrototype {
9078
9177
  */
9079
9178
  readonly turret_rotation_speed?: double
9080
9179
  /**
9081
- * A vector of the gun prototypes of this car, spider vehicule, or artillery wagon or turret.
9180
+ * A vector of the gun prototypes of this car, spider vehicle, artillery wagon, or turret.
9082
9181
  *
9083
9182
  * _Can only be used if this is Car, SpiderVehicle, ArtilleryTurret or ArtilleryWagon_
9084
9183
  * @see {@link https://lua-api.factorio.com/latest/LuaEntityPrototype.html#LuaEntityPrototype.indexed_guns Online documentation}
@@ -9139,7 +9238,7 @@ interface GeneratorEntityPrototype extends BaseEntityPrototype {
9139
9238
  /**
9140
9239
  * The default maximum power output of this generator prototype.
9141
9240
  *
9142
- * _Can only be used if this is Generator_
9241
+ * _Can only be used if this is BurnerGenerator or Generator_
9143
9242
  * @see {@link https://lua-api.factorio.com/latest/LuaEntityPrototype.html#LuaEntityPrototype.max_power_output Online documentation}
9144
9243
  */
9145
9244
  readonly max_power_output?: double
@@ -9164,7 +9263,7 @@ interface RollingStockEntityPrototype extends BaseEntityPrototype {
9164
9263
 
9165
9264
  interface SpiderVehicleEntityPrototype extends BaseEntityPrototype {
9166
9265
  /**
9167
- * A vector of the gun prototypes of this car, spider vehicule, or artillery wagon or turret.
9266
+ * A vector of the gun prototypes of this car, spider vehicle, artillery wagon, or turret.
9168
9267
  *
9169
9268
  * _Can only be used if this is Car, SpiderVehicle, ArtilleryTurret or ArtilleryWagon_
9170
9269
  * @see {@link https://lua-api.factorio.com/latest/LuaEntityPrototype.html#LuaEntityPrototype.indexed_guns Online documentation}
@@ -9216,7 +9315,7 @@ interface SpiderVehicleEntityPrototype extends BaseEntityPrototype {
9216
9315
 
9217
9316
  interface ArtilleryTurretEntityPrototype extends BaseEntityPrototype {
9218
9317
  /**
9219
- * A vector of the gun prototypes of this car, spider vehicule, or artillery wagon or turret.
9318
+ * A vector of the gun prototypes of this car, spider vehicle, artillery wagon, or turret.
9220
9319
  *
9221
9320
  * _Can only be used if this is Car, SpiderVehicle, ArtilleryTurret or ArtilleryWagon_
9222
9321
  * @see {@link https://lua-api.factorio.com/latest/LuaEntityPrototype.html#LuaEntityPrototype.indexed_guns Online documentation}
@@ -9233,7 +9332,7 @@ interface ArtilleryTurretEntityPrototype extends BaseEntityPrototype {
9233
9332
 
9234
9333
  interface ArtilleryWagonEntityPrototype extends BaseEntityPrototype {
9235
9334
  /**
9236
- * A vector of the gun prototypes of this car, spider vehicule, or artillery wagon or turret.
9335
+ * A vector of the gun prototypes of this car, spider vehicle, artillery wagon, or turret.
9237
9336
  *
9238
9337
  * _Can only be used if this is Car, SpiderVehicle, ArtilleryTurret or ArtilleryWagon_
9239
9338
  * @see {@link https://lua-api.factorio.com/latest/LuaEntityPrototype.html#LuaEntityPrototype.indexed_guns Online documentation}
@@ -9404,6 +9503,16 @@ interface RobotWithLogisticsInterfaceEntityPrototype extends BaseEntityPrototype
9404
9503
  readonly draw_cargo?: boolean
9405
9504
  }
9406
9505
 
9506
+ interface BurnerGeneratorEntityPrototype extends BaseEntityPrototype {
9507
+ /**
9508
+ * The default maximum power output of this generator prototype.
9509
+ *
9510
+ * _Can only be used if this is BurnerGenerator or Generator_
9511
+ * @see {@link https://lua-api.factorio.com/latest/LuaEntityPrototype.html#LuaEntityPrototype.max_power_output Online documentation}
9512
+ */
9513
+ readonly max_power_output?: double
9514
+ }
9515
+
9407
9516
  interface BoilerEntityPrototype extends BaseEntityPrototype {
9408
9517
  /**
9409
9518
  * The target temperature of this boiler prototype.
@@ -10222,7 +10331,7 @@ interface LuaEquipmentGrid {
10222
10331
  */
10223
10332
  readonly max_shield: float
10224
10333
  /**
10225
- * True if this movement bonus equipment is turned off, otherwise false.
10334
+ * Whether this grid's equipment movement bonus is active.
10226
10335
  * @see {@link https://lua-api.factorio.com/latest/LuaEquipmentGrid.html#LuaEquipmentGrid.inhibit_movement_bonus Online documentation}
10227
10336
  */
10228
10337
  inhibit_movement_bonus: boolean
@@ -10692,10 +10801,10 @@ interface LuaFlowStatistics {
10692
10801
  */
10693
10802
  interface LuaFluidBox extends Array<Fluid | nil> {
10694
10803
  /**
10695
- * The prototype of this fluidbox index.
10804
+ * The prototype of this fluidbox index. If this is used on a fluidbox of a crafting machine which due to recipe was created by merging multiple prototypes, a table of prototypes that were merged will be returned instead
10696
10805
  * @see {@link https://lua-api.factorio.com/latest/LuaFluidBox.html#LuaFluidBox.get_prototype Online documentation}
10697
10806
  */
10698
- get_prototype(index: uint): LuaFluidBoxPrototype
10807
+ get_prototype(index: uint): LuaFluidBoxPrototype | LuaFluidBoxPrototype[]
10699
10808
  /**
10700
10809
  * The capacity of the given fluidbox index.
10701
10810
  * @see {@link https://lua-api.factorio.com/latest/LuaFluidBox.html#LuaFluidBox.get_capacity Online documentation}
@@ -11101,9 +11210,10 @@ interface LuaForce {
11101
11210
  clear_chart(surface?: SurfaceIdentification): void
11102
11211
  /**
11103
11212
  * Force a rechart of the whole chart.
11213
+ * @param surface Which surface to rechart or all if not given.
11104
11214
  * @see {@link https://lua-api.factorio.com/latest/LuaForce.html#LuaForce.rechart Online documentation}
11105
11215
  */
11106
- rechart(): void
11216
+ rechart(surface?: SurfaceIdentification): void
11107
11217
  /**
11108
11218
  * Chart all generated chunks.
11109
11219
  * @param surface Which surface to chart or all if not given.
@@ -11585,10 +11695,10 @@ interface LuaForce {
11585
11695
  */
11586
11696
  research_queue_enabled: boolean
11587
11697
  /**
11588
- * Unique ID associated with this force.
11698
+ * This force's index in {@link LuaGameScript#forces LuaGameScript::forces} (unique ID). It is assigned when a force is created, and remains so until it is {@link OnForcesMergedEvent merged} (ie. deleted). Indexes of merged forces can be reused.
11589
11699
  * @see {@link https://lua-api.factorio.com/latest/LuaForce.html#LuaForce.index Online documentation}
11590
11700
  */
11591
- readonly index: uint
11701
+ readonly index: ForceIndex
11592
11702
  /**
11593
11703
  * The research queue of this force. The first technology in the array is the currently active one. Reading this attribute gives an array of {@link LuaTechnology}.
11594
11704
  *
@@ -11890,7 +12000,7 @@ interface LuaGameScript {
11890
12000
  */
11891
12001
  remove_offline_players(players?: readonly (LuaPlayer | string)[]): void
11892
12002
  /**
11893
- * Force a CRC check. Tells all peers to calculate their current map CRC; these CRC are then compared against each other. If a mismatch is detected, the game is desynced and some peers are forced to reconnect.
12003
+ * Force a CRC check. Tells all peers to calculate their current CRC, which are then compared to each other. If a mismatch is detected, the game desyncs and some peers are forced to reconnect.
11894
12004
  * @see {@link https://lua-api.factorio.com/latest/LuaGameScript.html#LuaGameScript.force_crc Online documentation}
11895
12005
  */
11896
12006
  force_crc(): void
@@ -12086,7 +12196,7 @@ interface LuaGameScript {
12086
12196
  */
12087
12197
  count_pipe_groups(): void
12088
12198
  /**
12089
- * Is the map loaded is multiplayer?
12199
+ * Whether the save is loaded as a multiplayer map.
12090
12200
  * @see {@link https://lua-api.factorio.com/latest/LuaGameScript.html#LuaGameScript.is_multiplayer Online documentation}
12091
12201
  */
12092
12202
  is_multiplayer(): boolean
@@ -12875,6 +12985,14 @@ interface ButtonGuiSpec extends BaseGuiSpec {
12875
12985
  * Which mouse buttons the button responds to. Defaults to `"left-and-right"`.
12876
12986
  */
12877
12987
  readonly mouse_button_filter?: MouseButtonFlagsWrite
12988
+ /**
12989
+ * Whether the button will automatically toggle when clicked. Defaults to `false`.
12990
+ */
12991
+ readonly auto_toggle?: boolean
12992
+ /**
12993
+ * The initial toggled state of the button. Defaults to `false`.
12994
+ */
12995
+ readonly toggled?: boolean
12878
12996
  }
12879
12997
 
12880
12998
  /**
@@ -13023,6 +13141,14 @@ interface SpriteButtonGuiSpec extends BaseGuiSpec {
13023
13141
  * The mouse buttons that the button responds to. Defaults to `"left-and-right"`.
13024
13142
  */
13025
13143
  readonly mouse_button_filter?: MouseButtonFlagsWrite
13144
+ /**
13145
+ * Whether the button will automatically toggle when clicked. Defaults to `false`.
13146
+ */
13147
+ readonly auto_toggle?: boolean
13148
+ /**
13149
+ * The initial toggled state of the button. Defaults to `false`.
13150
+ */
13151
+ readonly toggled?: boolean
13026
13152
  }
13027
13153
 
13028
13154
  /**
@@ -13568,6 +13694,11 @@ interface BaseGuiElement {
13568
13694
  * @see {@link https://lua-api.factorio.com/latest/LuaGuiElement.html#LuaGuiElement.tags Online documentation}
13569
13695
  */
13570
13696
  tags: Tags
13697
+ /**
13698
+ * Whether this element will raise {@link OnGuiHoverEvent on_gui_hover} and {@link OnGuiLeaveEvent on_gui_leave}.
13699
+ * @see {@link https://lua-api.factorio.com/latest/LuaGuiElement.html#LuaGuiElement.raise_hover_events Online documentation}
13700
+ */
13701
+ raise_hover_events: boolean
13571
13702
  /**
13572
13703
  * Is this object valid? This Lua object holds a reference to an object within the game engine. It is possible that the game-engine object is removed whilst a mod still holds the corresponding Lua object. If that happens, the object becomes invalid, i.e. this attribute will be `false`. Mods are advised to check for object validity if any change to the game state might have occurred between the creation of the Lua object and its access.
13573
13704
  */
@@ -13935,6 +14066,20 @@ interface SpriteButtonGuiElementMembers extends BaseGuiElement {
13935
14066
  * @see {@link https://lua-api.factorio.com/latest/LuaGuiElement.html#LuaGuiElement.show_percent_for_small_numbers Online documentation}
13936
14067
  */
13937
14068
  show_percent_for_small_numbers: boolean
14069
+ /**
14070
+ * Whether this button will automatically toggle when clicked.
14071
+ *
14072
+ * _Can only be used if this is button or sprite-button_
14073
+ * @see {@link https://lua-api.factorio.com/latest/LuaGuiElement.html#LuaGuiElement.auto_toggle Online documentation}
14074
+ */
14075
+ auto_toggle: boolean
14076
+ /**
14077
+ * Whether this button is currently toggled.
14078
+ *
14079
+ * _Can only be used if this is button or sprite-button_
14080
+ * @see {@link https://lua-api.factorio.com/latest/LuaGuiElement.html#LuaGuiElement.toggled Online documentation}
14081
+ */
14082
+ toggled: boolean
13938
14083
  /**
13939
14084
  * The mouse button filters for this button or sprite-button.
13940
14085
  *
@@ -14100,6 +14245,20 @@ interface ButtonGuiElementMembers extends BaseGuiElement {
14100
14245
  * @see {@link https://lua-api.factorio.com/latest/LuaGuiElement.html#LuaGuiElement.type Online documentation}
14101
14246
  */
14102
14247
  readonly type: "button"
14248
+ /**
14249
+ * Whether this button will automatically toggle when clicked.
14250
+ *
14251
+ * _Can only be used if this is button or sprite-button_
14252
+ * @see {@link https://lua-api.factorio.com/latest/LuaGuiElement.html#LuaGuiElement.auto_toggle Online documentation}
14253
+ */
14254
+ auto_toggle: boolean
14255
+ /**
14256
+ * Whether this button is currently toggled.
14257
+ *
14258
+ * _Can only be used if this is button or sprite-button_
14259
+ * @see {@link https://lua-api.factorio.com/latest/LuaGuiElement.html#LuaGuiElement.toggled Online documentation}
14260
+ */
14261
+ toggled: boolean
14103
14262
  /**
14104
14263
  * The mouse button filters for this button or sprite-button.
14105
14264
  *
@@ -14737,7 +14896,7 @@ type GuiElementMembers =
14737
14896
  * - `"progressbar"`: A partially filled bar that can be used to indicate progress.
14738
14897
  * - `"table"`: An invisible container that lays out its children in a specific number of columns. The width of each column is determined by the widest element it contains.
14739
14898
  * - `"textfield"`: A single-line box the user can type into. Relevant events: {@link OnGuiTextChangedEvent on_gui_text_changed}, {@link OnGuiConfirmedEvent on_gui_confirmed}
14740
- * - `"radiobutton"`: A clickable element that is functionally identical to a `checkbox`, but has a circular appearance. Relevant event: {@link OnGuiCheckedStateChangedEvent on_gui_checked_state_changed}
14899
+ * - `"radiobutton"`: An element that is similar to a `checkbox`, but with a circular appearance. Clicking a selected radio button will not unselect it. Radio buttons are not linked to each other in any way. Relevant event: {@link OnGuiCheckedStateChangedEvent on_gui_checked_state_changed}
14741
14900
  * - `"sprite"`: An element that shows an image.
14742
14901
  * - `"scroll-pane"`: An invisible element that is similar to a `flow`, but has the ability to show and use scroll bars.
14743
14902
  * - `"drop-down"`: A drop-down containing strings of text. Relevant event: {@link OnGuiSelectionStateChangedEvent on_gui_selection_state_changed}
@@ -16378,6 +16537,14 @@ interface LuaItemStack {
16378
16537
  * @see {@link https://lua-api.factorio.com/latest/LuaItemStack.html#LuaItemStack.drain_durability Online documentation}
16379
16538
  */
16380
16539
  drain_durability(amount: double): void
16540
+ /**
16541
+ * Use the capsule item with the entity as the source, targeting the given position.
16542
+ * @param entity The entity to use the capsule item with.
16543
+ * @param target_position The position to use the capsule item with.
16544
+ * @returns Array of the entities that were created by the capsule action.
16545
+ * @see {@link https://lua-api.factorio.com/latest/LuaItemStack.html#LuaItemStack.use_capsule Online documentation}
16546
+ */
16547
+ use_capsule(entity: LuaEntity, target_position: MapPosition | MapPositionArray): LuaEntity[]
16381
16548
  /**
16382
16549
  * Would a call to {@link LuaItemStack#set_stack LuaItemStack::set_stack} succeed?
16383
16550
  * @param stack Stack that would be set, possibly `nil`.
@@ -16847,7 +17014,7 @@ interface LuaItemStack {
16847
17014
  * _Can only be used if this is BlueprintItem_
16848
17015
  * @see {@link https://lua-api.factorio.com/latest/LuaItemStack.html#LuaItemStack.default_icons Online documentation}
16849
17016
  */
16850
- readonly default_icons: BlueprintItemIcon[]
17017
+ readonly default_icons: BlueprintSignalIcon[]
16851
17018
  /**
16852
17019
  * _Can only be used if this is ItemWithTags_
16853
17020
  * @see {@link https://lua-api.factorio.com/latest/LuaItemStack.html#LuaItemStack.tags Online documentation}
@@ -16942,6 +17109,21 @@ interface LuaItemStack {
16942
17109
  * @see {@link https://lua-api.factorio.com/latest/LuaItemStack.html#LuaItemStack.connected_entity Online documentation}
16943
17110
  */
16944
17111
  connected_entity?: LuaEntity
17112
+ /**
17113
+ * If this is an item with entity data, get the stored entity label.
17114
+ *
17115
+ * _Can only be used if this is ItemWithEntityData_
17116
+ * @see {@link https://lua-api.factorio.com/latest/LuaItemStack.html#LuaItemStack.entity_label Online documentation}
17117
+ */
17118
+ entity_label?: string
17119
+ /**
17120
+ * If this is an item with entity data, get the stored entity color.
17121
+ *
17122
+ * _Can only be used if this is ItemWithEntityData_
17123
+ * @see {@link https://lua-api.factorio.com/latest/LuaItemStack.html#LuaItemStack.entity_color Online documentation}
17124
+ */
17125
+ get entity_color(): Color | nil
17126
+ set entity_color(value: Color | ColorArray | nil)
16945
17127
  /**
16946
17128
  * If this is a blueprint item.
16947
17129
  * @see {@link https://lua-api.factorio.com/latest/LuaItemStack.html#LuaItemStack.is_blueprint Online documentation}
@@ -17035,6 +17217,14 @@ interface BaseItemStack {
17035
17217
  * @see {@link https://lua-api.factorio.com/latest/LuaItemStack.html#LuaItemStack.is_blueprint_setup Online documentation}
17036
17218
  */
17037
17219
  is_blueprint_setup(): boolean
17220
+ /**
17221
+ * Use the capsule item with the entity as the source, targeting the given position.
17222
+ * @param entity The entity to use the capsule item with.
17223
+ * @param target_position The position to use the capsule item with.
17224
+ * @returns Array of the entities that were created by the capsule action.
17225
+ * @see {@link https://lua-api.factorio.com/latest/LuaItemStack.html#LuaItemStack.use_capsule Online documentation}
17226
+ */
17227
+ use_capsule(entity: LuaEntity, target_position: MapPosition | MapPositionArray): LuaEntity[]
17038
17228
  /**
17039
17229
  * Would a call to {@link LuaItemStack#set_stack LuaItemStack::set_stack} succeed?
17040
17230
  * @param stack Stack that would be set, possibly `nil`.
@@ -17496,7 +17686,7 @@ interface BlueprintItemStack extends BaseItemStack {
17496
17686
  * _Can only be used if this is BlueprintItem_
17497
17687
  * @see {@link https://lua-api.factorio.com/latest/LuaItemStack.html#LuaItemStack.default_icons Online documentation}
17498
17688
  */
17499
- readonly default_icons: BlueprintItemIcon[]
17689
+ readonly default_icons: BlueprintSignalIcon[]
17500
17690
  }
17501
17691
 
17502
17692
  /**
@@ -17720,6 +17910,21 @@ interface ItemWithEntityDataItemStack extends BaseItemStack {
17720
17910
  * @see {@link https://lua-api.factorio.com/latest/LuaItemStack.html#LuaItemStack.create_grid Online documentation}
17721
17911
  */
17722
17912
  create_grid(): LuaEquipmentGrid
17913
+ /**
17914
+ * If this is an item with entity data, get the stored entity label.
17915
+ *
17916
+ * _Can only be used if this is ItemWithEntityData_
17917
+ * @see {@link https://lua-api.factorio.com/latest/LuaItemStack.html#LuaItemStack.entity_label Online documentation}
17918
+ */
17919
+ entity_label?: string
17920
+ /**
17921
+ * If this is an item with entity data, get the stored entity color.
17922
+ *
17923
+ * _Can only be used if this is ItemWithEntityData_
17924
+ * @see {@link https://lua-api.factorio.com/latest/LuaItemStack.html#LuaItemStack.entity_color Online documentation}
17925
+ */
17926
+ get entity_color(): Color | nil
17927
+ set entity_color(value: Color | ColorArray | nil)
17723
17928
  }
17724
17929
 
17725
17930
  interface ItemWithLabelItemStack extends BaseItemStack {
@@ -18906,7 +19111,7 @@ interface LuaPlayer extends LuaControl {
18906
19111
  readonly skip_fog_of_war?: boolean
18907
19112
  }): boolean
18908
19113
  /**
18909
- * Builds what ever is in the cursor on the surface the player is on. The cursor stack will automatically be reduced as if the player built normally.
19114
+ * Builds whatever is in the cursor on the surface the player is on. The cursor stack will automatically be reduced as if the player built normally.
18910
19115
  *
18911
19116
  * **Raised events:**
18912
19117
  * - {@link OnPreBuildEvent on_pre_build}? _instantly_ Raised if the cursor was successfully built.
@@ -19121,22 +19326,22 @@ interface LuaPlayer extends LuaControl {
19121
19326
  */
19122
19327
  toggle_map_editor(): void
19123
19328
  /**
19124
- * Requests a translation for the given localised string. If the request is successful the {@link OnStringTranslatedEvent on_string_translated} event will be fired at a later time with the results.
19329
+ * Requests a translation for the given localised string. If the request is successful, the {@link OnStringTranslatedEvent on_string_translated} event will be fired with the results.
19125
19330
  *
19126
19331
  * **Raised events:**
19127
19332
  * - {@link OnStringTranslatedEvent on_string_translated}? _future_tick_ Raised if the request was successfully sent.
19128
- * @returns The unique id for the requested translation.
19129
- * @remarks Does nothing if this player is not connected. (see {@link LuaPlayer#connected LuaPlayer::connected}).
19333
+ * @returns The unique ID for the requested translation.
19334
+ * @remarks Does nothing if this player is not connected (see {@link LuaPlayer#connected LuaPlayer::connected}).
19130
19335
  * @see {@link https://lua-api.factorio.com/latest/LuaPlayer.html#LuaPlayer.request_translation Online documentation}
19131
19336
  */
19132
19337
  request_translation(localised_string: LocalisedString): uint | nil
19133
19338
  /**
19134
- * Requests a translation for the given localised strings. If the request is successful the {@link OnStringTranslatedEvent on_string_translated} event will be fired at a later time with the results.
19339
+ * Requests translation for the given set of localised strings. If the request is successful, a {@link OnStringTranslatedEvent on_string_translated} event will be fired for each string with the results.
19135
19340
  *
19136
19341
  * **Raised events:**
19137
19342
  * - {@link OnStringTranslatedEvent on_string_translated}? _future_tick_ Raised if the request was successfully sent.
19138
- * @returns The unique id for the requested translation.
19139
- * @remarks Does nothing if this player is not connected. (see {@link LuaPlayer#connected LuaPlayer::connected}).
19343
+ * @returns The unique IDs for the requested translations.
19344
+ * @remarks Does nothing if this player is not connected (see {@link LuaPlayer#connected LuaPlayer::connected}).
19140
19345
  * @see {@link https://lua-api.factorio.com/latest/LuaPlayer.html#LuaPlayer.request_translations Online documentation}
19141
19346
  */
19142
19347
  request_translations(localised_strings: readonly LocalisedString[]): uint[] | nil
@@ -19198,7 +19403,7 @@ interface LuaPlayer extends LuaControl {
19198
19403
  */
19199
19404
  readonly cutscene_character: LuaEntity | nil
19200
19405
  /**
19201
- * This player's unique index in {@link LuaGameScript#players LuaGameScript::players}. It is given to them when they are {@link OnPlayerCreatedEvent created} and remains assigned to them until they are {@link OnPlayerRemovedEvent removed}.
19406
+ * This player's index in {@link LuaGameScript#players LuaGameScript::players} (unique ID). It is assigned when a player is created, and remains so (even when the player is not {@link LuaPlayer#connected connected}) until the player is irreversably {@link OnPlayerRemovedEvent removed}. Indexes of removed players can be reused.
19202
19407
  * @see {@link https://lua-api.factorio.com/latest/LuaPlayer.html#LuaPlayer.index Online documentation}
19203
19408
  */
19204
19409
  readonly index: PlayerIndex
@@ -19284,8 +19489,15 @@ interface LuaPlayer extends LuaControl {
19284
19489
  */
19285
19490
  permission_group?: LuaPermissionGroup
19286
19491
  /**
19287
- * The current per-player settings for the this player, indexed by prototype name. Returns the same structure as {@link LuaSettings#get_player_settings LuaSettings::get_player_settings}.
19288
- * @remarks This table will become invalid if its associated player does.
19492
+ * The current per-player settings for the this player, indexed by prototype name. Returns the same structure as {@link LuaSettings#get_player_settings LuaSettings::get_player_settings}. This table becomes invalid if its associated player does.
19493
+ *
19494
+ * Even though this attribute is marked as read-only, individual settings can be changed by overwriting their {@link ModSetting} table. Mods can only change their own settings. Using the in-game console, all player settings can be changed.
19495
+ * @example
19496
+ *
19497
+ * ```
19498
+ * -- Change the value of the "active_lifestyle" setting
19499
+ * player.mod_settings["active_lifestyle"] = {value = true}
19500
+ * ```
19289
19501
  * @see {@link https://lua-api.factorio.com/latest/LuaPlayer.html#LuaPlayer.mod_settings Online documentation}
19290
19502
  */
19291
19503
  readonly mod_settings: LuaCustomTable<string, ModSetting>
@@ -19457,7 +19669,7 @@ interface LuaProgrammableSpeakerControlBehavior extends LuaControlBehavior {
19457
19669
  }
19458
19670
 
19459
19671
  /**
19460
- * An interface to send messages to the calling RCON interface.
19672
+ * An interface to send messages to the calling RCON interface through the global object named `rcon`.
19461
19673
  * @see {@link https://lua-api.factorio.com/latest/LuaRCON.html Online documentation}
19462
19674
  * @noSelf
19463
19675
  */
@@ -19663,22 +19875,22 @@ interface LuaRecipe {
19663
19875
  */
19664
19876
  readonly category: string
19665
19877
  /**
19666
- * Ingredients for this recipe.
19667
- * @example What the "steel-chest" recipe would return
19878
+ * The ingredients to this recipe.
19879
+ * @example The ingredients of `"advanced-oil-processing"` would look like this:
19668
19880
  *
19669
19881
  * ```
19670
- * {{type="item", name="steel-plate", amount=8}}
19671
- * ```
19672
- * @example What the "advanced-oil-processing" recipe would return
19673
- *
19674
- * ```
19675
- * {{type="fluid", name="crude-oil", amount=10}, {type="fluid", name="water", amount=5}}
19882
+ * {{type="fluid", name="crude-oil", amount=100}, {type="fluid", name="water", amount=50}}
19676
19883
  * ```
19677
19884
  * @see {@link https://lua-api.factorio.com/latest/LuaRecipe.html#LuaRecipe.ingredients Online documentation}
19678
19885
  */
19679
19886
  readonly ingredients: Ingredient[]
19680
19887
  /**
19681
- * The results of this recipe.
19888
+ * The results/products of this recipe.
19889
+ * @example The products of `"advanced-oil-processing"` would look like this:
19890
+ *
19891
+ * ```
19892
+ * {{type="fluid", name="heavy-oil", amount=25}, {type="fluid", name="light-oil", amount=45}, {type="fluid", name="petroleum-gas", amount=55}}
19893
+ * ```
19682
19894
  * @see {@link https://lua-api.factorio.com/latest/LuaRecipe.html#LuaRecipe.products Online documentation}
19683
19895
  */
19684
19896
  readonly products: Product[]
@@ -19791,12 +20003,22 @@ interface LuaRecipePrototype {
19791
20003
  */
19792
20004
  readonly category: string
19793
20005
  /**
19794
- * Ingredients for this recipe.
20006
+ * The ingredients to this recipe.
20007
+ * @example The ingredients of `"advanced-oil-processing"` would look like this:
20008
+ *
20009
+ * ```
20010
+ * {{type="fluid", name="crude-oil", amount=100}, {type="fluid", name="water", amount=50}}
20011
+ * ```
19795
20012
  * @see {@link https://lua-api.factorio.com/latest/LuaRecipePrototype.html#LuaRecipePrototype.ingredients Online documentation}
19796
20013
  */
19797
20014
  readonly ingredients: Ingredient[]
19798
20015
  /**
19799
- * The results of this recipe.
20016
+ * The results/products of this recipe.
20017
+ * @example The products of `"advanced-oil-processing"` would look like this:
20018
+ *
20019
+ * ```
20020
+ * {{type="fluid", name="heavy-oil", amount=25}, {type="fluid", name="light-oil", amount=45}, {type="fluid", name="petroleum-gas", amount=55}}
20021
+ * ```
19800
20022
  * @see {@link https://lua-api.factorio.com/latest/LuaRecipePrototype.html#LuaRecipePrototype.products Online documentation}
19801
20023
  */
19802
20024
  readonly products: Product[]
@@ -19966,7 +20188,7 @@ interface LuaRemote {
19966
20188
  }
19967
20189
 
19968
20190
  /**
19969
- * Allows rendering of geometric shapes, text and sprites in the game world. Each render object is identified by an id that is universally unique for the lifetime of a whole game.
20191
+ * Allows rendering of geometric shapes, text and sprites in the game world through the global object named `rendering`. Each render object is identified by an id that is universally unique for the lifetime of a whole game.
19970
20192
  * @remarks If an entity target of an object is destroyed or changes surface, then the object is also destroyed.
19971
20193
  * @see {@link https://lua-api.factorio.com/latest/LuaRendering.html Online documentation}
19972
20194
  * @noSelf
@@ -20077,7 +20299,7 @@ interface LuaRendering {
20077
20299
  */
20078
20300
  readonly visible?: boolean
20079
20301
  /**
20080
- * If this should be drawn below sprites and entities.
20302
+ * If this should be drawn below sprites and entities. Rich text does not support this option.
20081
20303
  */
20082
20304
  readonly draw_on_ground?: boolean
20083
20305
  /**
@@ -20100,6 +20322,10 @@ interface LuaRendering {
20100
20322
  * If this should only be rendered in alt mode. Defaults to false.
20101
20323
  */
20102
20324
  readonly only_in_alt_mode?: boolean
20325
+ /**
20326
+ * If rich text rendering is enabled. Defaults to false.
20327
+ */
20328
+ readonly use_rich_text?: boolean
20103
20329
  }): uint64
20104
20330
  /**
20105
20331
  * Create a circle.
@@ -20284,6 +20510,10 @@ interface LuaRendering {
20284
20510
  * Only used if `orientation_target` is a LuaEntity.
20285
20511
  */
20286
20512
  readonly orientation_target_offset?: Vector
20513
+ /**
20514
+ * Only used if `orientation_target` is a LuaEntity.
20515
+ */
20516
+ readonly use_target_orientation?: boolean
20287
20517
  readonly surface: SurfaceIdentification
20288
20518
  /**
20289
20519
  * In ticks. Defaults to living forever.
@@ -20349,6 +20579,10 @@ interface LuaRendering {
20349
20579
  * Only used if `orientation_target` is a LuaEntity.
20350
20580
  */
20351
20581
  readonly orientation_target_offset?: Vector
20582
+ /**
20583
+ * Only used if `orientation_target` is a LuaEntity.
20584
+ */
20585
+ readonly use_target_orientation?: boolean
20352
20586
  /**
20353
20587
  * Offsets the center of the sprite if `orientation_target` is given. This offset will rotate together with the sprite.
20354
20588
  */
@@ -20485,6 +20719,10 @@ interface LuaRendering {
20485
20719
  * Only used if `orientation_target` is a LuaEntity.
20486
20720
  */
20487
20721
  readonly orientation_target_offset?: Vector
20722
+ /**
20723
+ * Only used if `orientation_target` is a LuaEntity.
20724
+ */
20725
+ readonly use_target_orientation?: boolean
20488
20726
  /**
20489
20727
  * Offsets the center of the animation if `orientation_target` is given. This offset will rotate together with the animation.
20490
20728
  */
@@ -20536,13 +20774,13 @@ interface LuaRendering {
20536
20774
  is_valid(id: uint64): boolean
20537
20775
  /**
20538
20776
  * Gets an array of all valid object ids.
20539
- * @param mod_name If provided, get only the render objects created by this mod.
20777
+ * @param mod_name If provided, get only the render objects created by this mod. An empty string (`""`) refers to all objects not belonging to a mod, such as those created using console commands.
20540
20778
  * @see {@link https://lua-api.factorio.com/latest/LuaRendering.html#LuaRendering.get_all_ids Online documentation}
20541
20779
  */
20542
20780
  get_all_ids(mod_name?: string): uint64[]
20543
20781
  /**
20544
- * Destroys all render objects.
20545
- * @param mod_name If provided, only the render objects created by this mod are destroyed.
20782
+ * Destroys all render objects. Passing an empty string (`""`)
20783
+ * @param mod_name If provided, only the render objects created by this mod are destroyed. An empty string (`""`) refers to all objects not belonging to a mod, such as those created using console commands.
20546
20784
  * @see {@link https://lua-api.factorio.com/latest/LuaRendering.html#LuaRendering.clear Online documentation}
20547
20785
  */
20548
20786
  clear(mod_name?: string): void
@@ -20627,6 +20865,17 @@ interface LuaRendering {
20627
20865
  * @see {@link https://lua-api.factorio.com/latest/LuaRendering.html#LuaRendering.set_only_in_alt_mode Online documentation}
20628
20866
  */
20629
20867
  set_only_in_alt_mode(id: uint64, only_in_alt_mode: boolean): void
20868
+ /**
20869
+ * Get whether this uses the target orientation.
20870
+ * @returns `nil` if the object is not a sprite, polygon, or animation.
20871
+ * @see {@link https://lua-api.factorio.com/latest/LuaRendering.html#LuaRendering.get_use_target_orientation Online documentation}
20872
+ */
20873
+ get_use_target_orientation(id: uint64): boolean | nil
20874
+ /**
20875
+ * Set whether this uses the target orientation.
20876
+ * @see {@link https://lua-api.factorio.com/latest/LuaRendering.html#LuaRendering.set_use_target_orientation Online documentation}
20877
+ */
20878
+ set_use_target_orientation(id: uint64, use_target_orientation: boolean): void
20630
20879
  /**
20631
20880
  * Get the color or tint of the object with this id.
20632
20881
  *
@@ -20850,6 +21099,21 @@ interface LuaRendering {
20850
21099
  * @see {@link https://lua-api.factorio.com/latest/LuaRendering.html#LuaRendering.set_scale_with_zoom Online documentation}
20851
21100
  */
20852
21101
  set_scale_with_zoom(id: uint64, scale_with_zoom: boolean): void
21102
+ /**
21103
+ * Get if the text with this id parses rich text tags.
21104
+ *
21105
+ * _Can only be used if this is Text_
21106
+ * @returns `nil` if the object is not a text.
21107
+ * @see {@link https://lua-api.factorio.com/latest/LuaRendering.html#LuaRendering.get_use_rich_text Online documentation}
21108
+ */
21109
+ get_use_rich_text(id: uint64): boolean | nil
21110
+ /**
21111
+ * Set if the text with this id parses rich text tags.
21112
+ *
21113
+ * _Can only be used if this is Text_
21114
+ * @see {@link https://lua-api.factorio.com/latest/LuaRendering.html#LuaRendering.set_use_rich_text Online documentation}
21115
+ */
21116
+ set_use_rich_text(id: uint64, use_rich_text: boolean): void
20853
21117
  /**
20854
21118
  * Get if the circle or rectangle with this id is filled.
20855
21119
  *
@@ -21271,8 +21535,15 @@ interface LuaRoboportControlBehavior extends LuaControlBehavior {
21271
21535
  */
21272
21536
  interface LuaSettings {
21273
21537
  /**
21274
- * Gets the current per-player settings for the given player, indexed by prototype name. Returns the same structure as {@link LuaPlayer#mod_settings LuaPlayer::mod_settings}.
21275
- * @remarks This table will become invalid if its associated player does.
21538
+ * Gets the current per-player settings for the given player, indexed by prototype name. Returns the same structure as {@link LuaPlayer#mod_settings LuaPlayer::mod_settings}. This table becomes invalid if its associated player does.
21539
+ *
21540
+ * Even though this attribute is marked as read-only, individual settings can be changed by overwriting their {@link ModSetting} table. Mods can only change their own settings. Using the in-game console, all player settings can be changed.
21541
+ * @example
21542
+ *
21543
+ * ```
21544
+ * -- Change the value of the "active_lifestyle" setting
21545
+ * settings.get_player_settings(player_index)["active_lifestyle"] = {value = true}
21546
+ * ```
21276
21547
  * @see {@link https://lua-api.factorio.com/latest/LuaSettings.html#LuaSettings.get_player_settings Online documentation}
21277
21548
  */
21278
21549
  get_player_settings(player: PlayerIdentification): LuaCustomTable<string, ModSetting>
@@ -21284,14 +21555,14 @@ interface LuaSettings {
21284
21555
  /**
21285
21556
  * The current global mod settings, indexed by prototype name.
21286
21557
  *
21287
- * Even though these are marked as read-only, they can be changed by overwriting individual {@link ModSetting} tables in the custom table. Mods can only change their own settings. Using the in-game console, all global settings can be changed.
21558
+ * Even though this attribute is marked as read-only, individual settings can be changed by overwriting their {@link ModSetting} table. Mods can only change their own settings. Using the in-game console, all player settings can be changed.
21288
21559
  * @see {@link https://lua-api.factorio.com/latest/LuaSettings.html#LuaSettings.global Online documentation}
21289
21560
  */
21290
21561
  readonly global: LuaCustomTable<string, ModSetting>
21291
21562
  /**
21292
21563
  * The default player mod settings for this map, indexed by prototype name.
21293
21564
  *
21294
- * Even though these are marked as read-only, they can be changed by overwriting individual {@link ModSetting} tables in the custom table. Mods can only change their own settings. Using the in-game console, all player settings can be changed.
21565
+ * Even though this attribute is marked as read-only, individual settings can be changed by overwriting their {@link ModSetting} table. Mods can only change their own settings. Using the in-game console, all player settings can be changed.
21295
21566
  * @see {@link https://lua-api.factorio.com/latest/LuaSettings.html#LuaSettings.player Online documentation}
21296
21567
  */
21297
21568
  readonly player: LuaCustomTable<string, ModSetting>
@@ -22188,7 +22459,7 @@ interface BaseSurfaceCreateEntity {
22188
22459
  */
22189
22460
  readonly target?: LuaEntity | (MapPosition | MapPositionArray)
22190
22461
  /**
22191
- * Source entity. Used for beams and highlight-boxes.
22462
+ * Source entity. Used for beams, projectiles, and highlight-boxes.
22192
22463
  */
22193
22464
  readonly source?: LuaEntity | (MapPosition | MapPositionArray)
22194
22465
  /**
@@ -22199,6 +22470,10 @@ interface BaseSurfaceCreateEntity {
22199
22470
  * If given set the last_user to this player. If fast_replace is true simulate fast replace using this player.
22200
22471
  */
22201
22472
  readonly player?: PlayerIdentification
22473
+ /**
22474
+ * If fast_replace is true simulate fast replace using this character.
22475
+ */
22476
+ readonly character?: LuaEntity
22202
22477
  /**
22203
22478
  * If false while fast_replace is true and player is nil any items from fast-replacing will be deleted instead of dropped on the ground.
22204
22479
  */
@@ -22692,6 +22967,7 @@ interface LuaSurface {
22692
22967
  readonly to_be_upgraded?: boolean
22693
22968
  readonly limit?: uint
22694
22969
  readonly is_military_target?: boolean
22970
+ readonly has_item_inside?: LuaItemPrototype
22695
22971
  /**
22696
22972
  * Whether the filters should be inverted.
22697
22973
  */
@@ -23597,7 +23873,7 @@ interface LuaSurface {
23597
23873
  */
23598
23874
  readonly can_open_gates?: boolean
23599
23875
  /**
23600
- * Defines how coarse the pathfinder's grid is. Smaller values mean a coarser grid (negative numbers allowed). Allowed values are from -8 to 8. Defaults to `0`.
23876
+ * Defines how coarse the pathfinder's grid is, where smaller values mean a coarser grid. Defaults to `0`, which equals a resolution of `1x1` tiles, centered on tile centers. Values range from `-8` to `8` inclusive, where each integer increment doubles/halves the resolution. So, a resolution of `-8` equals a grid of `256x256` tiles, and a resolution of `8` equals `1/256` of a tile.
23601
23877
  */
23602
23878
  readonly path_resolution_modifier?: int
23603
23879
  /**
@@ -23751,12 +24027,12 @@ interface LuaSurface {
23751
24027
  */
23752
24028
  name: string
23753
24029
  /**
23754
- * Unique ID associated with this surface.
24030
+ * This surface's index in {@link LuaGameScript#surfaces LuaGameScript::surfaces} (unique ID). It is assigned when a surface is created, and remains so until it is {@link OnSurfaceDeletedEvent deleted}. Indexes of deleted surfaces can be reused.
23755
24031
  * @see {@link https://lua-api.factorio.com/latest/LuaSurface.html#LuaSurface.index Online documentation}
23756
24032
  */
23757
24033
  readonly index: SurfaceIndex
23758
24034
  /**
23759
- * The generation settings for this surface. These can be modified to after surface generation, but note that this will not retroactively update the surface. To manually adjust it, {@link LuaSurface#regenerate_entity LuaSurface::regenerate_entity}, {@link LuaSurface#regenerate_decorative LuaSurface::regenerate_decorative} and {@link LuaSurface#delete_chunk LuaSurface::delete_chunk} can be used.
24035
+ * The generation settings for this surface. These can be modified after surface generation, but note that this will not retroactively update the surface. To manually regenerate it, {@link LuaSurface#regenerate_entity LuaSurface::regenerate_entity}, {@link LuaSurface#regenerate_decorative LuaSurface::regenerate_decorative}, and {@link LuaSurface#delete_chunk LuaSurface::delete_chunk} can be used.
23760
24036
  * @see {@link https://lua-api.factorio.com/latest/LuaSurface.html#LuaSurface.map_gen_settings Online documentation}
23761
24037
  */
23762
24038
  get map_gen_settings(): MapGenSettings
@@ -23782,7 +24058,7 @@ interface LuaSurface {
23782
24058
  */
23783
24059
  readonly darkness: float
23784
24060
  /**
23785
- * Current wind speed.
24061
+ * Current wind speed in tiles per tick.
23786
24062
  * @see {@link https://lua-api.factorio.com/latest/LuaSurface.html#LuaSurface.wind_speed Online documentation}
23787
24063
  */
23788
24064
  wind_speed: double
@@ -23966,7 +24242,7 @@ interface LuaTechnology {
23966
24242
  */
23967
24243
  level: uint
23968
24244
  /**
23969
- * The count formula used for this infinite research. `nil` if this research isn't infinite.
24245
+ * The count formula, if this research has any. See the {@linkplain https://wiki.factorio.com/Prototype/Technology#Technology_data wiki} for details.
23970
24246
  * @see {@link https://lua-api.factorio.com/latest/LuaTechnology.html#LuaTechnology.research_unit_count_formula Online documentation}
23971
24247
  */
23972
24248
  readonly research_unit_count_formula?: string
@@ -24069,7 +24345,7 @@ interface LuaTechnologyPrototype {
24069
24345
  */
24070
24346
  readonly max_level: uint
24071
24347
  /**
24072
- * The count formula used for this infinite research. `nil` if this research isn't infinite.
24348
+ * The count formula, if this research has any. See the {@linkplain https://wiki.factorio.com/Prototype/Technology#Technology_data wiki} for details.
24073
24349
  * @see {@link https://lua-api.factorio.com/latest/LuaTechnologyPrototype.html#LuaTechnologyPrototype.research_unit_count_formula Online documentation}
24074
24350
  */
24075
24351
  readonly research_unit_count_formula?: string
@@ -24246,10 +24522,10 @@ interface LuaTilePrototype {
24246
24522
  */
24247
24523
  readonly next_direction?: LuaTilePrototype
24248
24524
  /**
24249
- * Items that when placed will produce this tile. It is a dictionary indexed by the item prototype name. `nil` (instead of an empty table) if no items can place this tile.
24525
+ * Items that when placed will produce this tile, if any. Construction bots will choose the first item in the list to build this tile.
24250
24526
  * @see {@link https://lua-api.factorio.com/latest/LuaTilePrototype.html#LuaTilePrototype.items_to_place_this Online documentation}
24251
24527
  */
24252
- readonly items_to_place_this: SimpleItemStack[] | nil
24528
+ readonly items_to_place_this?: ItemStackDefinition[]
24253
24529
  /**
24254
24530
  * False if this tile is not allowed in blueprints regardless of the ability to build it.
24255
24531
  * @see {@link https://lua-api.factorio.com/latest/LuaTilePrototype.html#LuaTilePrototype.can_be_part_of_blueprint Online documentation}