Factorio.com|Forums|Wiki|Mod Portal|API Docs Prototype|Runtime|Auxiliary

# Factorio Prototype Docs Version 2.0.7

## Prototypes

Prototypes are used as templates for the machines, recipes, and more in the game engine. The point of prototypes is to define parameters for predefined behaviour. This is done by filling out a set of properties. Properties that the game is not looking for are simply ignored.

Each non-abstract prototype has an associated type name, which denotes what its type property needs to equal. Abstract prototypes on the other hand can not be directly created, but serve as a base class that can be inherited from.

Prototypes rely on multiple levels of inheritance, which can be visualized as a tree.

AccumulatorPrototype changed 'accumulator' | Entity with energy source with specialised animation for charging/discharging. [...]
AchievementPrototype changed 'achievement' | This prototype definition is used for the in-game achievements.
AchievementPrototypeWithCondition new abstract |
ActiveDefenseEquipmentPrototype 'active-defense-equipment' | Used by discharge defense and personal laser defense.
ActiveTriggerPrototype new abstract | The abstract base of all active trigger prototypes. [...]
AgriculturalTowerPrototypenew 'agricultural-tower' |
AirbornePollutantPrototype new 'airborne-pollutant' |
AmbientSound changed 'ambient-sound' | This prototype is used to make sound while playing the game. [...]
AmmoCategory changed 'ammo-category' | An ammo category. [...]
AmmoItemPrototype changed 'ammo' | Ammo used for a gun.
AmmoTurretPrototype changed 'ammo-turret' | A turret that consumes ammo items.
AnimationPrototype changed 'animation' | Specifies an animation that can be used with LuaRendering::draw_animation at runtime.
ArithmeticCombinatorPrototype 'arithmetic-combinator' | An arithmetic combinator.
ArmorPrototype changed 'armor' | Armor to wear on your in-game character for defense and buffs.
ArrowPrototype changed 'arrow' | The arrows used for example in the campaign, they are literally just arrows.
ArtilleryFlarePrototype changed 'artillery-flare' | The entity spawned by the artillery targeting remote.
ArtilleryProjectilePrototype changed 'artillery-projectile' | The projectile shot by artillery.
ArtilleryTurretPrototype changed 'artillery-turret' | An artillery turret.
ArtilleryWagonPrototype changed 'artillery-wagon' | An artillery wagon.
AssemblingMachinePrototype changed 'assembling-machine' | An assembling machine - like the assembling machines 1/2/3 in the game, but you can use your own recipe categories.
AsteroidChunkPrototype new 'asteroid-chunk' |
AsteroidCollectorPrototypenew 'asteroid-collector' |
AsteroidPrototypenew 'asteroid' |
AutoplaceControl 'autoplace-control' | A setting in the map creation GUI. [...]
BatteryEquipmentPrototype 'battery-equipment' | Used by personal battery.
BeaconPrototype changed 'beacon' | Entity with the ability to transfer module effects to its neighboring entities.
BeamPrototype changed 'beam' | Used as a laser beam.
BeltImmunityEquipmentPrototype 'belt-immunity-equipment' | Used by belt immunity equipment.
BlueprintBookPrototype 'blueprint-book' | A blueprint book.
BlueprintItemPrototype changed 'blueprint' | A blueprint.
BoilerPrototype changed 'boiler' | A boiler. [...]
BuildEntityAchievementPrototype changed 'build-entity-achievement' | This prototype is used for receiving an achievement when the player builds an entity.
BurnerGeneratorPrototype changed 'burner-generator' | An entity that produces power from a burner energy source.
BurnerUsagePrototype new 'burner-usage' | Set of data affecting tooltips, looks of gui slots etc when burner is not supposed to be burning items but eating them.
CapsulePrototype 'capsule' | A capsule, for example a combat robot capsule or the raw fish.
CaptureRobotPrototypenew 'capture-robot' |
CarPrototype changed 'car' | Entity with specialized properties for acceleration, braking, and turning.
CargoBayPrototypenew 'cargo-bay' |
CargoLandingPadPrototype new 'cargo-landing-pad' |
CargoPodPrototype new 'cargo-pod' |
CargoWagonPrototype 'cargo-wagon' | A cargo wagon.
ChainActiveTriggerPrototype new 'chain-active-trigger' | Jumps between targets and applies a Trigger to them.
ChangedSurfaceAchievementPrototype new 'change-surface-achievement' | This prototype is used for receiving an achievement when the player changes to a surface.
CharacterCorpsePrototype changed 'character-corpse' | The corpse of a CharacterPrototype.
CharacterPrototype changed 'character' | Entity that you move around on the screen during the campaign and freeplay.
CliffPrototype changed 'cliff' | A cliff.
CollisionLayerPrototype new 'collision-layer' | A collision layer. [...]
CombatRobotCountAchievementPrototype 'combat-robot-count-achievement' | This prototype is used for receiving an achievement when the player has a certain robot follower count.
CombatRobotPrototype 'combat-robot' | A combat robot. [...]
CombinatorPrototype changed abstract | Abstract base type for decider and arithmetic combinators.
CompleteObjectiveAchievementPrototype new 'complete-objective-achievement' |
ConstantCombinatorPrototype changed 'constant-combinator' | A constant combinator.
ConstructWithRobotsAchievementPrototype 'construct-with-robots-achievement' | This prototype is used for receiving an achievement when the player constructs enough entities with construction robots.
ConstructionRobotPrototype changed 'construction-robot' | A construction robot.
ContainerPrototype changed 'container' | A generic container, such as a chest. [...]
CopyPasteToolPrototype changed 'copy-paste-tool' | A copy-paste or cut-paste tool.
CorpsePrototype changed 'corpse' | Used for corpses, for example the remnants when destroying buildings.
CraftingMachinePrototype changed 'crafting-machine' | The abstract basis of the assembling machines and furnaces. [...]
CreatePlatformAchievementPrototype new 'create-platform-achievement' | This prototype is used for receiving an achievement when the player creates a space platform.
CurvedRailAPrototype new 'curved-rail-a' | A curved-A rail.
CurvedRailBPrototype new 'curved-rail-b' | A curved-B rail.
CustomEventPrototype new 'custom-event' | Custom events share the same namespace as custom inputs and built-in events for subscribing to and raising them.
CustomInputPrototype changed 'custom-input' | Used for custom keyboard shortcuts/key bindings in mods. [...]
DamageType changed 'damage-type' | A damage type. [...]
DeciderCombinatorPrototype 'decider-combinator' | A decider combinator.
DeconstructWithRobotsAchievementPrototype 'deconstruct-with-robots-achievement' | This prototype is used for receiving an achievement when the player deconstructs enough entities with construction robots.
DeconstructibleTileProxyPrototype changed 'deconstructible-tile-proxy' | Entity used to signify that the tile below it should be deconstructed.
DeconstructionItemPrototype changed 'deconstruction-item' | A deconstruction planner.
DecorativePrototype changed 'optimized-decorative' | Simple decorative purpose objects on the map, they have no health and some of them are removed when the player builds over. [...]
DelayedActiveTriggerPrototype new 'delayed-active-trigger' | Delays the delivery of triggered effect by some number of ticks.
DeliverByRobotsAchievementPrototype 'deliver-by-robots-achievement' | This prototype is used for receiving an achievement, when the player requests and receives enough items using logistic robots.
DeliverCategory new 'deliver-category' |
DeliverImpactCombination new 'deliver-impact-combination' |
DepleteResourceAchievementPrototype new 'deplete-resource-achievement' | This prototype is used for receiving an achievement when a resource entity is depleted.
DestroyCliffAchievementPrototype new 'destroy-cliff-achievement' |
DisplayPanelPrototype new 'display-panel' | A display panel prototype to provide a prototype for display panels.
DontBuildEntityAchievementPrototype 'dont-build-entity-achievement' | This prototype is used for receiving an achievement when the player finishes the game without building a specific entity.
DontCraftManuallyAchievementPrototype 'dont-craft-manually-achievement' | This prototype is used for receiving an achievement when the player finishes the game without crafting more than a set amount.
DontKillManuallyAchievementPrototype new 'dont-kill-manually-achievement' | This prototype is used for receiving an achievement when the player kill first entity using artillery.
DontResearchBeforeResearchingAchievementPrototype new 'dont-research-before-researching-achievement' | This prototype is used for receiving an achievement when the player researches with a specific science pack before unlocking another.
DontUseEntityInEnergyProductionAchievementPrototype 'dont-use-entity-in-energy-production-achievement' | This prototype is used for receiving an achievement when the player finishes the game without receiving energy from a specific energy source.
EditorControllerPrototype changed 'editor-controller' | Properties of the editor controller.
ElectricEnergyInterfacePrototype 'electric-energy-interface' | Entity with electric energy source with that can have some of its values changed runtime. [...]
ElectricPolePrototype changed 'electric-pole' | An electric pole - part of the electric system.
ElectricTurretPrototype 'electric-turret' | A turret that uses electricity as ammunition.
ElevatedCurvedRailAPrototype new 'elevated-curved-rail-a' | An elevated curved-A rail.
ElevatedCurvedRailBPrototype new 'elevated-curved-rail-b' | An elevated curved-B rail.
ElevatedHalfDiagonalRailPrototype new 'elevated-half-diagonal-rail' | An elevated half diagonal rail.
ElevatedStraightRailPrototype new 'elevated-straight-rail' | An elevated straight rail.
EnemySpawnerPrototype changed 'unit-spawner' | Can spawn entities. [...]
EnergyShieldEquipmentPrototype 'energy-shield-equipment' | Used by energy shield.
EntityGhostPrototype changed 'entity-ghost' | The entity used for ghosts of entities. [...]
EntityPrototype changed abstract | Abstract base of all entities in the game. [...]
EntityWithHealthPrototype changed abstract | Abstract base of all entities with health in the game.
EntityWithOwnerPrototype changed abstract | Abstract base of all entities with a force in the game. [...]
EquipArmorAchievementPrototype new 'equip-armor-achievement' | This prototype is used for receiving an achievement when the player equips armor.
EquipmentCategory 'equipment-category' | Defines a category to be available to equipment and equipment grids.
EquipmentGhostPrototype new 'equipment-ghost' | The equipment used for ghosts of equipment.
EquipmentGridPrototype 'equipment-grid' | The prototype of an equipment grid, for example the one used in a power armor.
EquipmentPrototype abstract | Abstract base of all equipment modules. [...]
ExplosionPrototype changed 'explosion' | Used to play an animation and a sound.
FireFlamePrototype changed 'fire' | A fire.
FishPrototype changed 'fish' | Entity that spawns in water tiles, which can be mined. [...]
FluidPrototype changed 'fluid' | A fluid.
FluidStreamPrototype changed 'stream' | Used for example for the handheld flamethrower.
FluidTurretPrototype 'fluid-turret' | A turret that uses fluid as ammunition.
FluidWagonPrototype 'fluid-wagon' | A fluid wagon.
FlyingRobotPrototype changed abstract | Abstract base for construction/logistics and combat robots.
FontPrototype 'font' | Fonts are used in all GUIs in the game.
FuelCategory changed 'fuel-category' | Each item which has a fuel_value must have a fuel category. [...]
FusionGeneratorPrototype new 'fusion-generator' |
FusionReactorPrototype new 'fusion-reactor' | Fusion reactor. [...]
GatePrototype changed 'gate' | A gate.
GeneratorEquipmentPrototype 'generator-equipment' | Used by portable fusion reactor. [...]
GeneratorPrototype changed 'generator' | An entity that produces power from fluids, for example a steam engine.
GodControllerPrototype 'god-controller' | Properties of the god controller.
GroupAttackAchievementPrototype changed 'group-attack-achievement' | This prototype is used for receiving an achievement when the player gets attacked due to pollution.
GuiStyle 'gui-style' | The available GUI styles.
GunPrototype 'gun' | A gun. [...]
HalfDiagonalRailPrototype new 'half-diagonal-rail' | A half diagonal rail.
HeatInterfacePrototype 'heat-interface' | This entity produces or consumes heat. [...]
HeatPipePrototype changed 'heat-pipe' | A heat pipe.
HighlightBoxEntityPrototype changed 'highlight-box' | Used to attach graphics for cursor boxes to entities during runtime. [...]
ImpactCategory new 'impact-category' |
InfinityContainerPrototype 'infinity-container' | A generic container, such as a chest, that can spawn or void items and interact with the logistics network.
InfinityPipePrototype 'infinity-pipe' | This entity produces or consumes fluids. [...]
InserterPrototype changed 'inserter' | An inserter.
InventoryBonusEquipmentPrototype new 'inventory-bonus-equipment' |
ItemEntityPrototype changed 'item-entity' | The entity used for items on the ground.
ItemGroup changed 'item-group' | An item group. [...]
ItemPrototype changed 'item' | Possible configuration for all items.
ItemRequestProxyPrototype changed 'item-request-proxy' | Entity used to signify that an entity is requesting items, for example modules for an assembling machine after it was blueprinted with modules inside.
ItemSubGroup 'item-subgroup' | An item subgroup. [...]
ItemWithEntityDataPrototype changed 'item-with-entity-data' | ItemWithEntityData saves data associated with the entity that it represents, for example the content of the equipment grid of a car.
ItemWithInventoryPrototype changed 'item-with-inventory' | The inventory allows setting player defined filters similar to cargo wagon inventories.
ItemWithLabelPrototype 'item-with-label' | Like a normal item but with the ability to have a colored label.
ItemWithTagsPrototype 'item-with-tags' | Item type that can store any basic arbitrary Lua data, see LuaItemStack::tags.
KillAchievementPrototype changed 'kill-achievement' | This prototype is used for receiving an achievement when the player destroys a certain amount of an entity, with a specific damage type.
LabPrototype changed 'lab' | A lab. [...]
LampPrototype changed 'lamp' | A lamp to provide light, using energy.
LandMinePrototype changed 'land-mine' | A land mine.
LaneSplitterPrototype new 'lane-splitter' |
LegacyCurvedRailPrototype new 'legacy-curved-rail' | A legacy curved rail.
LegacyStraightRailPrototype new 'legacy-straight-rail' | A legacy straight rail.
LightningAttractorPrototypenew 'lightning-attractor' |
LightningPrototypenew 'lightning' |
LinkedBeltPrototype changed 'linked-belt' | A belt that can be connected to a belt anywhere else, including on a different surface. [...]
LinkedContainerPrototype changed 'linked-container' | A container that shares its inventory with containers with the same link_id, which can be set via the GUI. [...]
Loader1x1Prototype 'loader-1x1' | Continuously loads and unloads machines, as an alternative to inserters. [...]
Loader1x2Prototype 'loader' | Continuously loads and unloads machines, as an alternative to inserters. [...]
LoaderPrototype changed 'loader' | Continuously loads and unloads machines, as an alternative to inserters.
LocomotivePrototype 'locomotive' | A locomotive.
LogisticContainerPrototype changed 'logistic-container' | A generic container, such as a chest, that interacts with the logistics network.
LogisticRobotPrototype 'logistic-robot' | A logistic robot.
MapGenPresets 'map-gen-presets' | The available map gen presets.
MapSettings changed 'map-settings' | The default map settings.
MarketPrototype 'market' | Offers can be added to a market and they are shown when opening the entity. [...]
MiningDrillPrototype changed 'mining-drill' | A mining drill for automatically extracting resources from resource entities. [...]
ModuleCategory 'module-category' | A module category. [...]
ModulePrototype changed 'module' | A module. [...]
ModuleTransferAchievementPrototype new 'module-transfer-achievement' | This prototype is used for receiving an achievement when the player moves a module with the cursor.
MouseCursor 'mouse-cursor' | Used by SelectionToolPrototype::mouse_cursor.
MovementBonusEquipmentPrototype 'movement-bonus-equipment' | Used by exoskeleton. [...]
NamedNoiseExpression changed 'noise-expression' | A NoiseExpression with a name. [...]
NamedNoiseFunction new 'noise-function' | Named noise functions are defined in the same way as NamedNoiseExpression except that they also have parameters. [...]
NightVisionEquipmentPrototype 'night-vision-equipment' | Used by nightvision.
OffshorePumpPrototype changed 'offshore-pump' | An offshore pump.
ParticlePrototype 'optimized-particle' | An entity with a limited lifetime that can use trigger effects.
ParticleSourcePrototype changed 'particle-source' | Creates particles.
PipePrototype 'pipe' | An entity to transport fluids over a distance and between machines.
PipeToGroundPrototype changed 'pipe-to-ground' | A pipe to ground.
PlaceEquipmentAchievementPrototype new 'place-equipment-achievement' |
PlanetPrototype new 'planet' |
PlantPrototypenew 'plant' |
PlayerDamagedAchievementPrototype 'player-damaged-achievement' | This prototype is used for receiving an achievement when the player receives damage.
PlayerPortPrototype changed 'player-port' | Deprecated in 2.0.
PowerSwitchPrototype changed 'power-switch' | A power switch.
ProcessionLayerInheritanceGroup new 'procession-layer-inheritance-group' | Helps ProcessionLayers pass properties between subsequent transitions if they belong to the same group.
ProcessionPrototype new 'procession' | Describes the duration and visuals of a departure, arrival or an intermezzo while traveling between surfaces. [...]
ProduceAchievementPrototype changed 'produce-achievement' | This prototype is used for receiving an achievement when the player produces more than the specified amount of items.
ProducePerHourAchievementPrototype 'produce-per-hour-achievement' | This prototype is used for receiving an achievement when the player crafts a specified item a certain amount, in an hour.
ProgrammableSpeakerPrototype changed 'programmable-speaker' | A programmable speaker.
ProjectilePrototype changed 'projectile' | Entity with limited lifetime that can hit other entities and has triggers when this happens.
Prototype new abstract |
PrototypeBase changed abstract | The abstract base for prototypes. [...]
PumpPrototype changed 'pump' | The pump is used to transfer fluids between tanks, fluid wagons and pipes.
QualityPrototype new 'quality' |
RadarPrototype changed 'radar' | A radar.
RailChainSignalPrototype changed 'rail-chain-signal' | A rail chain signal.
RailPlannerPrototype changed 'rail-planner' | A rail planner.
RailPrototype changed 'rail' | The abstract base of all rail prototypes.
RailRampPrototype new 'rail-ramp' | A rail ramp.
RailRemnantsPrototype changed 'rail-remnants' | Used for rail corpses.
RailSignalBasePrototype changed abstract | The abstract base entity for both rail signals.
RailSignalPrototype 'rail-signal' | A rail signal.
RailSupportPrototype new 'rail-support' |
ReactorPrototype changed 'reactor' | A reactor.
RecipeCategory 'recipe-category' | A recipe category. [...]
RecipePrototype changed 'recipe' | A recipe. [...]
RemoteControllerPrototype new 'remote-controller' | Properties of the remote controller.
RepairToolPrototype changed 'repair-tool' | A repair pack. [...]
ResearchAchievementPrototype 'research-achievement' | This prototype is used for receiving an achievement when the player completes a specific research.
ResearchWithSciencePackAchievementPrototype new 'research-with-science-pack-achievement' |
ResourceCategory 'resource-category' | A resource category. [...]
ResourceEntityPrototype changed 'resource' | A mineable/gatherable entity. [...]
RoboportEquipmentPrototype changed 'roboport-equipment' | Used by personal roboport.
RoboportPrototype changed 'roboport' | A roboport.
RobotWithLogisticInterfacePrototype changed abstract | The common properties of logistic and construction robots represented by an abstract prototype.
RocketSiloPrototype changed 'rocket-silo' | A rocket silo.
RocketSiloRocketPrototype changed 'rocket-silo-rocket' | The rocket inside the rocket silo.
RocketSiloRocketShadowPrototype 'rocket-silo-rocket-shadow' | The shadow of the rocket inside the rocket silo.
RollingStockPrototype changed 'rolling-stock' | The abstract base of all rolling stock.
SegmentPrototypenew 'segment' | Entity representing an individual segment in a SegmentedUnitPrototype
SegmentedUnitPrototypenew 'segmented-unit' | Entity composed of multiple segment entities that trail behind the head.
SelectionToolPrototype changed 'selection-tool' | Used in the base game as a base for the blueprint item and the deconstruction item.
SelectorCombinatorPrototype new 'selector-combinator' |
ShootAchievementPrototype new 'shoot-achievement' | This prototype is used for receiving an achievement when the player shoots certain ammo.
ShortcutPrototype changed 'shortcut' | Definition for a shortcut button in the shortcut bar. [...]
SimpleEntityPrototype changed 'simple-entity' | An extremely basic entity with no special functionality. [...]
SimpleEntityWithForcePrototype 'simple-entity-with-force' | By default, this entity will be a priority target for units/turrets, who will choose to attack it even if it does not block their path. [...]
SimpleEntityWithOwnerPrototype changed 'simple-entity-with-owner' | Has a force, but unlike SimpleEntityWithForcePrototype it is only attacked if the biters get stuck on it (or if EntityWithOwnerPrototype::is_military_target set to true to make the two entity types equivalent). [...]
SmokePrototype changed abstract | Abstract entity that has an animation.
SmokeWithTriggerPrototype changed 'smoke-with-trigger' | An entity with animation and a trigger.
SolarPanelEquipmentPrototype 'solar-panel-equipment' | A portable solar panel.
SolarPanelPrototype 'solar-panel' | A solar panel.
SoundPrototype changed 'sound' | Specifies a sound that can be used with SoundPath at runtime.
SpaceConnectionDistanceTraveledAchievementPrototype new 'space-connection-distance-traveled-achievement' |
SpaceConnectionPrototype new 'space-connection' |
SpaceLocationPrototype new 'space-location' | A space location, such as a planet.
SpacePlatformHubPrototypenew 'space-platform-hub' |
SpacePlatformStarterPackPrototype new 'space-platform-starter-pack' |
SpectatorControllerPrototype 'spectator-controller' | Properties of the spectator controller.
SpeechBubblePrototype changed 'speech-bubble' | A speech bubble. [...]
SpiderLegPrototype changed 'spider-leg' | Used by SpiderLegSpecification for SpiderVehiclePrototype, also known as spidertron.
SpiderUnitPrototype new 'spider-unit' |
SpiderVehiclePrototype 'spider-vehicle' | A spidertron.
SpidertronRemotePrototype changed 'spidertron-remote' | The spidertron remote. [...]
SplitterPrototype changed 'splitter' | A splitter.
SpritePrototype changed 'sprite' | Specifies an image that can be used with SpritePath at runtime.
StickerPrototype changed 'sticker' | Entity that sticks to another entity, and damages/slows it. [...]
StorageTankPrototype changed 'storage-tank' | A storage tank.
StraightRailPrototype changed 'straight-rail' | A straight rail.
SurfacePropertyPrototype new 'surface-property' |
SurfacePrototype new 'surface' |
TechnologyPrototype changed 'technology' | A technology.
TemporaryContainerPrototype new 'temporary-container' |
ThrusterPrototypenew 'thruster' |
TileEffectDefinition changed 'tile-effect' | Used to define the parameters for tile shaders.
TileGhostPrototype changed 'tile-ghost' | The entity used for tile ghosts.
TilePrototype changed 'tile' | A tile.
TipsAndTricksItem changed 'tips-and-tricks-item' | A tips and tricks entry.
TipsAndTricksItemCategory 'tips-and-tricks-item-category' | A TipsAndTricksItem category, used for sorting of tips and tricks entries: Tips and trick entries are sorted first by category and then by their order within that category.
ToolPrototype 'tool' | Items with a "durability". [...]
TrainPathAchievementPrototype 'train-path-achievement' | This prototype is used for receiving an achievement when the player has a specified train path length.
TrainStopPrototype changed 'train-stop' | A train stop.
TransportBeltConnectablePrototype changed 'transport-belt-connectable' | Abstract class that anything that is a belt or can connect to belts uses.
TransportBeltPrototype changed 'transport-belt' | A transport belt.
TreePrototype changed 'tree' | A tree.
TriggerTargetType 'trigger-target-type' | The base game always internally defines a "common" trigger target type. [...]
TrivialSmokePrototype 'trivial-smoke' | Smoke, but it's not an entity for optimization purposes.
TurretPrototype changed 'turret' | A turret that needs no extra ammunition. [...]
TutorialDefinition changed 'tutorial' | The definition of the tutorial to be used in the tips and tricks, see TipsAndTricksItem. [...]
UndergroundBeltPrototype changed 'underground-belt' | An underground belt.
UnitPrototype changed 'unit' | Entity that moves around and attacks players, for example biters and spitters.
UpgradeItemPrototype changed 'upgrade-item' | An upgrade planner.
UseItemAchievementPrototype new 'use-item-achievement' | This prototype is used for receiving an achievement when the player uses a capsule.
UtilityConstants changed 'utility-constants' | Constants used by the game that are not specific to certain prototypes. [...]
UtilitySounds changed 'utility-sounds' | Sounds used by the game that are not specific to certain prototypes.
UtilitySprites changed 'utility-sprites' | Sprites used by the game that are not specific to certain prototypes.
VehiclePrototype changed 'vehicle' | Abstract base of all vehicles.
VirtualSignalPrototype changed 'virtual-signal' | A virtual signal.
WallPrototype changed 'wall' | A wall.

## AccumulatorPrototype 'accumulator' changed

energy_source | :: ElectricEnergySource | The capacity of the energy source buffer specifies the capacity of the accumulator.
The capacity of the energy source buffer specifies the capacity of the accumulator.
chargable_graphics new optional | :: ChargableGraphics |
circuit_wire_max_distance optional | :: double | The maximum circuit wire distance for this entity.
The maximum circuit wire distance for this entity.
draw_copper_wires optional | :: bool |
draw_circuit_wires optional | :: bool |
circuit_connector new optional | :: CircuitConnectorDefinition |
default_output_signal optional | :: SignalIDConnector | The name of the signal that is the default for when an accumulator is connected to the circuit network.
The name of the signal that is the default for when an accumulator is connected to the circuit network.

## AchievementPrototype 'achievement' changed

icons optional | :: array[IconData] | Can't be an empty array.
Can't be an empty array.
icon optional | :: FileName | Path to the icon file. [...]
Path to the icon file. [...]
icon_size optional | :: SpriteSizeType | The size of the square icon, in pixels. [...]
The size of the square icon, in pixels. [...]
steam_stats_name optional | :: string | Unusable by mods, as this refers to unlocking the achievement through Steam.
Unusable by mods, as this refers to unlocking the achievement through Steam.
allowed_without_fight optional | :: bool | If this is set to `false`, it is not possible to complete the achievement on the peaceful difficulty setting or when the enemy base generation settings have been changed.
If this is set to `false`, it is not possible to complete the achievement on the peaceful difficulty setting or when the enemy base generation settings have been changed.

## AchievementPrototypeWithCondition abstract new

objective_condition | :: `"game-finished"` or `"rocket-launched"` |

## ActiveDefenseEquipmentPrototype 'active-defense-equipment'

automatic | :: bool |
attack_parameters | :: AttackParameters |

## ActiveTriggerPrototype abstract new

No new properties

## AgriculturalTowerPrototype 'agricultural-tower' new

graphics_set optional | :: CraftingMachineGraphicsSet |
crane | :: AgriculturalCraneProperties |
energy_source | :: EnergySource |
input_inventory_size | :: ItemStackIndex |
output_inventory_size optional | :: ItemStackIndex |
energy_usage | :: Energy |
crane_energy_usage | :: Energy |
random_growth_offset optional | :: double | Must be >= 0 and < 1.
Must be >= 0 and < 1.
growth_grid_tile_size optional | :: uint32 | Must be positive.
Must be positive.
central_orienting_sound optional | :: InterruptibleSound |
arm_extending_sound optional | :: InterruptibleSound |
grappler_orienting_sound optional | :: InterruptibleSound |
grappler_extending_sound optional | :: InterruptibleSound |
planting_sound optional | :: Sound |
harvesting_sound optional | :: Sound |
radius_visualisation_picture optional | :: Sprite |
radius | :: double | Must be positive.
Must be positive.
central_orienting_sound_source optional | :: string |
arm_extending_sound_source optional | :: string |
grappler_orienting_sound_source optional | :: string |
grappler_extending_sound_source optional | :: string |
planting_procedure_points optional | :: array[Vector3D] |
harvesting_procedure_points optional | :: array[Vector3D] |
circuit_wire_max_distance optional | :: double | The maximum circuit wire distance for this entity.
The maximum circuit wire distance for this entity.
draw_copper_wires optional | :: bool |
draw_circuit_wires optional | :: bool |
circuit_connector optional | :: CircuitConnectorDefinition |

## AirbornePollutantPrototype 'airborne-pollutant' new

chart_color | :: Color |
icon | :: Sprite |
affects_evolution | :: bool |
affects_water_tint | :: bool | If true, large amounts of this pollution will cause water tiles to turn a sickly green.
If true, large amounts of this pollution will cause water tiles to turn a sickly green.

## AmbientSound 'ambient-sound' changed

type | :: `"ambient-sound"` | Specification of the type of the prototype.
Specification of the type of the prototype.
name | :: string | Unique textual identification of the prototype.
Unique textual identification of the prototype.
weight optional | :: double | Cannot be less than zero. [...]
Cannot be less than zero. [...]
track_type changed | :: AmbientSoundType |
planet new optional | :: SpaceLocationID | Track without a planet is bound to space platforms.
Track without a planet is bound to space platforms.
sound optional | :: Sound | Static music track. [...]
Static music track. [...]
variable_sound new optional | :: VariableAmbientSoundVariableSound | Variable music track. [...]
Variable music track. [...]

## AmmoCategory 'ammo-category' changed

bonus_gui_order optional | :: Order |
icons new optional | :: array[IconData] | Can't be an empty array.
Can't be an empty array.
icon new optional | :: FileName | Path to the icon file. [...]
Path to the icon file. [...]
icon_size new optional | :: SpriteSizeType | The size of the square icon, in pixels. [...]
The size of the square icon, in pixels. [...]

## AmmoItemPrototype 'ammo' changed

ammo_type | :: AmmoType or array[AmmoType] | When using a plain AmmoType (no array), the ammo type applies to everything (`"default"`). [...]
When using a plain AmmoType (no array), the ammo type applies to everything (`"default"`). [...]
magazine_size optional | :: float | Number of shots before ammo item is consumed. [...]
Number of shots before ammo item is consumed. [...]
reload_time optional | :: float | Amount of extra time (in ticks) it takes to reload the weapon after depleting the magazine. [...]
Amount of extra time (in ticks) it takes to reload the weapon after depleting the magazine. [...]
ammo_category new | :: AmmoCategoryID |
shoot_protected new optional | :: bool |

## AmmoTurretPrototype 'ammo-turret' changed

energy_source new optional | :: ElectricEnergySource |
energy_per_shot new optional | :: Energy |
inventory_size | :: ItemStackIndex |
automated_ammo_count | :: ItemCountType | Shift of the "alt-mode icon" relative to the turret's position.
Shift of the "alt-mode icon" relative to the turret's position.
prepare_with_no_ammo new optional | :: bool |

## AnimationPrototype 'animation' changed

type | :: `"animation"` |
name | :: string | Name of the animation. [...]
Name of the animation. [...]
layers optional | :: array[Animation] | If this property is present, all Animation definitions have to be placed as entries in the array, and they will all be loaded from there. [...]
If this property is present, all Animation definitions have to be placed as entries in the array, and they will all be loaded from there. [...]
filename optional | :: FileName | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
priority optional | :: SpritePriority | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
flags optional | :: SpriteFlags | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
size optional | :: SpriteSizeType or {SpriteSizeType, SpriteSizeType} | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
width optional | :: SpriteSizeType | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
height optional | :: SpriteSizeType | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
x optional | :: SpriteSizeType | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
y optional | :: SpriteSizeType | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
position optional | :: {SpriteSizeType, SpriteSizeType} | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
shift optional | :: Vector | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
rotate_shift new optional | :: bool | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
apply_special_effect new optional | :: bool | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
scale optional | :: double | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
draw_as_shadow optional | :: bool | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
draw_as_glow optional | :: bool | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
draw_as_light optional | :: bool | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
mipmap_count optional | :: uint8 | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
apply_runtime_tint optional | :: bool | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
tint_as_overlay new optional | :: bool | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
invert_colors new optional | :: bool | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
tint optional | :: Color | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
blend_mode optional | :: BlendMode | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
load_in_minimal_mode optional | :: bool | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
premul_alpha optional | :: bool | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
generate_sdf optional | :: bool | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
surface new optional | :: SpriteUsageSurfaceHint | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
usage new optional | :: SpriteUsageHint | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
run_mode changed optional | :: AnimationRunMode | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
frame_count optional | :: uint32 | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
line_length optional | :: uint32 | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
animation_speed optional | :: float | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
max_advance optional | :: float | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
repeat_count optional | :: uint8 | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
dice optional | :: uint8 | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
dice_x optional | :: uint8 | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
dice_y optional | :: uint8 | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
frame_sequence optional | :: AnimationFrameSequence | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
stripes optional | :: array[Stripe] | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
filenames new optional | :: array[FileName] | Only loaded if neither `layers` nor `stripes` are defined.
Only loaded if neither `layers` nor `stripes` are defined.
slice new optional | :: uint32 | Only loaded if `layers` is not defined and if `filenames` is defined.
Only loaded if `layers` is not defined and if `filenames` is defined.
lines_per_file new optional | :: uint32 | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]

## ArithmeticCombinatorPrototype 'arithmetic-combinator'

plus_symbol_sprites optional | :: Sprite4Way |
minus_symbol_sprites optional | :: Sprite4Way |
multiply_symbol_sprites optional | :: Sprite4Way |
divide_symbol_sprites optional | :: Sprite4Way |
modulo_symbol_sprites optional | :: Sprite4Way |
power_symbol_sprites optional | :: Sprite4Way |
left_shift_symbol_sprites optional | :: Sprite4Way |
right_shift_symbol_sprites optional | :: Sprite4Way |
and_symbol_sprites optional | :: Sprite4Way |
or_symbol_sprites optional | :: Sprite4Way |
xor_symbol_sprites optional | :: Sprite4Way |

## ArmorPrototype 'armor' changed

equipment_grid optional | :: EquipmentGridID | Name of the EquipmentGridPrototype that this armor has.
Name of the EquipmentGridPrototype that this armor has.
resistances optional | :: array[Resistance] | What amount of damage the armor takes on what type of damage is incoming.
What amount of damage the armor takes on what type of damage is incoming.
inventory_size_bonus optional | :: ItemStackIndex | By how many slots the inventory of the player is expanded when the armor is worn.
By how many slots the inventory of the player is expanded when the armor is worn.
provides_flight new optional | :: bool |
collision_box new optional | :: BoundingBox |
drawing_box new optional | :: BoundingBox |
takeoff_sound new optional | :: Sound | Only loaded if `provides_flight` is `true`.
Only loaded if `provides_flight` is `true`.
flight_sound new optional | :: InterruptibleSound | Only loaded if `provides_flight` is `true`.
Only loaded if `provides_flight` is `true`.
landing_sound new optional | :: Sound | Only loaded if `provides_flight` is `true`.
Only loaded if `provides_flight` is `true`.
steps_sound new optional | :: Sound |
moving_sound new optional | :: Sound |

## ArrowPrototype 'arrow' changed

arrow_picture | :: Sprite |
circle_picture optional | :: Sprite |
blinking optional | :: bool |

## ArtilleryFlarePrototype 'artillery-flare' changed

pictures optional | :: AnimationVariations | Picture variation count and individual frame count must be equal to shadow variation count.
Picture variation count and individual frame count must be equal to shadow variation count.
life_time | :: uint16 |
shadows optional | :: AnimationVariations | Shadow variation variation count and individual frame count must be equal to picture variation count.
Shadow variation variation count and individual frame count must be equal to picture variation count.
render_layer optional | :: RenderLayer |
render_layer_when_on_ground optional | :: RenderLayer |
regular_trigger_effect optional | :: TriggerEffect |
regular_trigger_effect_frequency optional | :: uint32 |
ended_in_water_trigger_effect optional | :: TriggerEffect |
movement_modifier_when_on_ground optional | :: double |
movement_modifier optional | :: double |
creation_shift optional | :: Vector |
initial_speed optional | :: Vector |
initial_height optional | :: float |
initial_vertical_speed optional | :: float |
initial_frame_speed optional | :: float |
shots_per_flare optional | :: uint32 | How many artillery shots should be fired at the position of this flare.
How many artillery shots should be fired at the position of this flare.
early_death_ticks optional | :: uint32 | How long this flare stays alive after `shots_per_flare` amount of shots have been shot at it.
How long this flare stays alive after `shots_per_flare` amount of shots have been shot at it.
shot_category optional | :: AmmoCategoryID |

## ArtilleryProjectilePrototype 'artillery-projectile' changed

reveal_map | :: bool |
picture optional | :: Sprite |
shadow optional | :: Sprite |
chart_picture optional | :: Sprite |
action optional | :: Trigger |
final_action optional | :: Trigger |
height_from_ground optional | :: float |
rotatable optional | :: bool | Whether the picture of the projectile is rotated to match the direction of travel.
Whether the picture of the projectile is rotated to match the direction of travel.

## ArtilleryTurretPrototype 'artillery-turret' changed

gun | :: ItemID | Name of a GunPrototype.
Name of a GunPrototype.
inventory_size | :: ItemStackIndex | Must be > 0.
Must be > 0.
ammo_stack_limit | :: ItemCountType | Must be > 0.
Must be > 0.
automated_ammo_count | :: ItemCountType |
turret_rotation_speed | :: double |
manual_range_modifier | :: double | Must be positive.
Must be positive.
alert_when_attacking optional | :: bool |
disable_automatic_firing optional | :: bool |
base_picture_secondary_draw_order optional | :: uint8 |
base_picture_render_layer optional | :: RenderLayer |
base_picture optional | :: Animation4Way |
cannon_base_shift new | :: Vector3D |
cannon_base_pictures optional | :: RotatedSprite |
cannon_barrel_pictures optional | :: RotatedSprite |
rotating_sound optional | :: InterruptibleSound |
turn_after_shooting_cooldown optional | :: uint16 |
cannon_parking_frame_count optional | :: uint16 |
cannon_parking_speed optional | :: float | Must be positive.
Must be positive.
circuit_wire_max_distance new optional | :: double | The maximum circuit wire distance for this entity.
The maximum circuit wire distance for this entity.
draw_copper_wires new optional | :: bool |
draw_circuit_wires new optional | :: bool |
circuit_connector new optional | :: CircuitConnectorDefinition |
cannon_barrel_recoil_shiftings optional | :: array[Vector3D] |
cannon_barrel_recoil_shiftings_load_correction_matrix optional | :: array[Vector3D] | Only loaded if `cannon_barrel_recoil_shiftings` is loaded.
Only loaded if `cannon_barrel_recoil_shiftings` is loaded.
cannon_barrel_light_direction optional | :: Vector3D | Only loaded if `cannon_barrel_recoil_shiftings` is loaded.
Only loaded if `cannon_barrel_recoil_shiftings` is loaded.

## ArtilleryWagonPrototype 'artillery-wagon' changed

gun | :: ItemID | Name of a GunPrototype.
Name of a GunPrototype.
inventory_size | :: ItemStackIndex | Must be > 0.
Must be > 0.
ammo_stack_limit | :: ItemCountType | Must be > 0.
Must be > 0.
turret_rotation_speed | :: double |
manual_range_modifier | :: double | Must be > 0.
Must be > 0.
disable_automatic_firing optional | :: bool |
cannon_base_pictures changed optional | :: RollingStockRotatedSlopedGraphics |
cannon_base_height new optional | :: double |
cannon_base_shift_when_vertical new optional | :: double |
cannon_base_shift_when_horizontal new optional | :: double |
cannon_barrel_pictures changed optional | :: RollingStockRotatedSlopedGraphics |
rotating_sound optional | :: InterruptibleSound |
turn_after_shooting_cooldown optional | :: uint16 |
cannon_parking_frame_count optional | :: uint16 |
cannon_parking_speed optional | :: float | Must be positive.
Must be positive.
cannon_barrel_recoil_shiftings optional | :: array[Vector3D] |
cannon_barrel_recoil_shiftings_load_correction_matrix optional | :: array[Vector3D] | Only loaded if `cannon_barrel_recoil_shiftings` is loaded.
Only loaded if `cannon_barrel_recoil_shiftings` is loaded.
cannon_barrel_light_direction optional | :: Vector3D | Only loaded if `cannon_barrel_recoil_shiftings` is loaded.
Only loaded if `cannon_barrel_recoil_shiftings` is loaded.

## AssemblingMachinePrototype 'assembling-machine' changed

fixed_recipe optional | :: RecipeID | The preset recipe of this machine. [...]
The preset recipe of this machine. [...]
fixed_quality new optional | :: QualityID |
gui_title_key optional | :: string | The locale key of the title of the GUI that is shown when the player opens the assembling machine. [...]
The locale key of the title of the GUI that is shown when the player opens the assembling machine. [...]
circuit_wire_max_distance new optional | :: double | The maximum circuit wire distance for this entity.
The maximum circuit wire distance for this entity.
draw_copper_wires new optional | :: bool |
draw_circuit_wires new optional | :: bool |
default_recipe_finished_signal new optional | :: SignalIDConnector |
default_working_signal new optional | :: SignalIDConnector |
enable_logistic_control_behavior new optional | :: bool |
ingredient_count optional | :: uint8 | Sets the maximum number of ingredients this machine can craft with. [...]
Sets the maximum number of ingredients this machine can craft with. [...]
circuit_connector new optional | :: {CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition} |
fluid_boxes_off_when_no_fluid_recipe new optional | :: bool |

## AsteroidChunkPrototype 'asteroid-chunk' new

collision_box optional | :: SimpleBoundingBox |
minable optional | :: MinableProperties |
dying_trigger_effect optional | :: TriggerEffect |
graphics_set optional | :: AsteroidGraphicsSet |
icons optional | :: array[IconData] | Can't be an empty array.
Can't be an empty array.
icon optional | :: FileName | Path to the icon file. [...]
Path to the icon file. [...]
icon_size optional | :: SpriteSizeType | The size of the square icon, in pixels. [...]
The size of the square icon, in pixels. [...]
hide_from_signal_gui optional | :: bool |

## AsteroidCollectorPrototype 'asteroid-collector' new

arm_inventory_size optional | :: ItemStackIndex |
arm_inventory_size_quality_increase optional | :: ItemStackIndex |
inventory_size optional | :: ItemStackIndex |
inventory_size_quality_increase optional | :: ItemStackIndex |
graphics_set | :: AsteroidCollectorGraphicsSet |
passive_energy_usage | :: Energy |
arm_energy_usage | :: Energy |
arm_slow_energy_usage | :: Energy | If `arm_energy_usage` is not met, attempts to move slower at the cost of `arm_slow_energy_usage`.
If `arm_energy_usage` is not met, attempts to move slower at the cost of `arm_slow_energy_usage`.
energy_usage_quality_scaling optional | :: float |
arm_count_base optional | :: uint32 |
arm_count_quality_scaling optional | :: uint32 |
head_collection_radius optional | :: float |
collection_box_offset optional | :: float |
deposit_radius optional | :: float |
arm_speed_base optional | :: float |
arm_speed_quality_scaling optional | :: float |
arm_angular_speed_cap_base optional | :: float |
arm_angular_speed_cap_quality_scaling optional | :: float |
tether_size optional | :: float |
unpowered_arm_speed_scale optional | :: float |
minimal_arm_swing_segment_retraction optional | :: uint32 |
held_items_offset optional | :: float |
held_items_spread optional | :: float |
held_items_display_count optional | :: uint8 |
munch_sound optional | :: Sound |
deposit_sound optional | :: Sound |
arm_extend_sound optional | :: Sound |
arm_retract_sound optional | :: Sound |
energy_source | :: ElectricEnergySource or VoidEnergySource |
circuit_wire_max_distance optional | :: double | The maximum circuit wire distance for this entity.
The maximum circuit wire distance for this entity.
draw_copper_wires optional | :: bool |
draw_circuit_wires optional | :: bool |
radius_visualisation_picture optional | :: Sprite |
collection_radius | :: double | Must be positive.
Must be positive.
circuit_connector optional | :: {CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition} |
arm_color_gradient optional | :: array[Color] |

## AsteroidPrototype 'asteroid' new

mass optional | :: double |
graphics_set optional | :: AsteroidGraphicsSet |

## AutoplaceControl 'autoplace-control'

category changed | :: `"resource"` or `"terrain"` or `"cliff"` or `"enemy"` | Controls in what tab the autoplace is shown in the map generator GUI.
Controls in what tab the autoplace is shown in the map generator GUI.
richness optional | :: bool | Sets whether this control's richness can be changed. [...]
Sets whether this control's richness can be changed. [...]
can_be_disabled optional | :: bool | Whether there is an "enable" checkbox for the autoplace control in the map generator GUI. [...]
Whether there is an "enable" checkbox for the autoplace control in the map generator GUI. [...]

## BatteryEquipmentPrototype 'battery-equipment'

No new properties

## BeaconPrototype 'beacon' changed

energy_usage | :: Energy | The constant power usage of this beacon.
The constant power usage of this beacon.
energy_source | :: ElectricEnergySource or VoidEnergySource |
supply_area_distance | :: double | The maximum distance that this beacon can supply its neighbors with its module's effects. [...]
The maximum distance that this beacon can supply its neighbors with its module's effects. [...]
distribution_effectivity | :: double | The multiplier of the module's effects, when shared between neighbors.
The multiplier of the module's effects, when shared between neighbors.
distribution_effectivity_bonus_per_quality_level new optional | :: double | Must be 0 or positive.
Must be 0 or positive.
module_slots new | :: ItemStackIndex | The number of module slots in this beacon.
The number of module slots in this beacon.
graphics_set optional | :: BeaconGraphicsSet | The graphics for the beacon.
The graphics for the beacon.
animation optional | :: Animation | Only loaded if `graphics_set` is not defined. [...]
Only loaded if `graphics_set` is not defined. [...]
base_picture optional | :: Animation | Only loaded if `graphics_set` is not defined. [...]
Only loaded if `graphics_set` is not defined. [...]
perceived_performance new optional | :: PerceivedPerformance | Affects animation speed.
Affects animation speed.
radius_visualisation_picture optional | :: Sprite |
allowed_effects optional | :: EffectTypeLimitation | The types of modules that a player can place inside of the beacon.
The types of modules that a player can place inside of the beacon.
allowed_module_categories new optional | :: array[ModuleCategoryID] | Sets the module categories that are allowed to be inserted into this machine.
Sets the module categories that are allowed to be inserted into this machine.
profile new optional | :: array[double] | Extra multiplier applied to the effects received from beacon by the effect receiver based on amount of beacons that are in range of that effect receiver. [...]
Extra multiplier applied to the effects received from beacon by the effect receiver based on amount of beacons that are in range of that effect receiver. [...]
beacon_counter new optional | :: `"total"` or `"same_type"` | The beacon counter used by effect receiver when deciding which sample to take from `profile`.
The beacon counter used by effect receiver when deciding which sample to take from `profile`.

## BeamPrototype 'beam' changed

action optional | :: Trigger |
width changed | :: float |
damage_interval | :: uint32 | Damage interval can't be 0. [...]
Damage interval can't be 0. [...]
target_offset optional | :: Vector |
random_target_offset optional | :: bool |
action_triggered_automatically optional | :: bool | Whether this beams should trigger its action every `damage_interval`. [...]
Whether this beams should trigger its action every `damage_interval`. [...]
graphics_set new | :: BeamGraphicsSet |

## BeltImmunityEquipmentPrototype 'belt-immunity-equipment'

energy_consumption | :: Energy | The continuous power consumption of the belt immunity equipment.
The continuous power consumption of the belt immunity equipment.

## BlueprintBookPrototype 'blueprint-book'

No new properties

## BlueprintItemPrototype 'blueprint' changed

No new properties

## BoilerPrototype 'boiler' changed

pictures new optional | :: BoilerPictureSet |
energy_source | :: EnergySource |
fluid_box | :: FluidBox | The input fluid box. [...]
The input fluid box. [...]
output_fluid_box | :: FluidBox | The output fluid box. [...]
The output fluid box. [...]
energy_consumption | :: Energy |
burning_cooldown | :: uint16 | Controls for how many ticks the boiler will show the fire and fire_glow after the energy source runs out of energy. [...]
Controls for how many ticks the boiler will show the fire and fire_glow after the energy source runs out of energy. [...]
target_temperature changed optional | :: float | Only loaded, and mandatory if `mode` is `"output-to-separate-pipe"`. [...]
Only loaded, and mandatory if `mode` is `"output-to-separate-pipe"`. [...]
fire_glow_flicker_enabled optional | :: bool | If this is set to false, `fire_glow` alpha is always 1 instead of being controlled by the light intensity of the energy source.
If this is set to false, `fire_glow` alpha is always 1 instead of being controlled by the light intensity of the energy source.
fire_flicker_enabled optional | :: bool | If this is set to false, `fire` alpha is always 1 instead of being controlled by the light intensity of the energy source.
If this is set to false, `fire` alpha is always 1 instead of being controlled by the light intensity of the energy source.
mode changed optional | :: `"heat-fluid-inside"` or `"output-to-separate-pipe"` | In the `"heat-fluid-inside"` mode, fluid in the `fluid_box` is continuously heated from the input temperature up to its FluidPrototype::max_temperature. [...]
In the `"heat-fluid-inside"` mode, fluid in the `fluid_box` is continuously heated from the input temperature up to its FluidPrototype::max_temperature. [...]

## BuildEntityAchievementPrototype 'build-entity-achievement' changed

to_build | :: EntityID | This will trigger the achievement, if this entity is placed.
This will trigger the achievement, if this entity is placed.
amount optional | :: uint32 | How many entities need to be built.
How many entities need to be built.
limited_to_one_game optional | :: bool | If this is false, the player carries over their statistics from this achievement through all their saves.
If this is false, the player carries over their statistics from this achievement through all their saves.
within new optional | :: MapTick | The achievement must be completed within this time limit.
The achievement must be completed within this time limit.

## BurnerGeneratorPrototype 'burner-generator' changed

energy_source | :: ElectricEnergySource | The output energy source of the generator. [...]
The output energy source of the generator. [...]
burner | :: BurnerEnergySource | The input energy source of the generator.
The input energy source of the generator.
animation optional | :: Animation4Way | Plays when the generator is active. [...]
Plays when the generator is active. [...]
max_power_output | :: Energy | How much energy this generator can produce.
How much energy this generator can produce.
idle_animation optional | :: Animation4Way | Plays when the generator is inactive. [...]
Plays when the generator is inactive. [...]
always_draw_idle_animation optional | :: bool | Whether the `idle_animation` should also play when the generator is active.
Whether the `idle_animation` should also play when the generator is active.
perceived_performance new optional | :: PerceivedPerformance | Affects animation speed.
Affects animation speed.

## BurnerUsagePrototype 'burner-usage' new

empty_slot_sprite | :: Sprite |
empty_slot_caption | :: LocalisedString |
empty_slot_description optional | :: LocalisedString |
icon | :: Sprite |
no_fuel_status optional | :: LocalisedString |
accepted_fuel_key | :: string |
burned_in_key | :: string |

## CapsulePrototype 'capsule'

capsule_action | :: CapsuleAction |
radius_color optional | :: Color | Color of the range radius that is shown around the player when they hold the capsule.
Color of the range radius that is shown around the player when they hold the capsule.

## CaptureRobotPrototype 'capture-robot' new

capture_speed optional | :: double | Must be >= 0.001.
Must be >= 0.001.
search_radius optional | :: double | Must be >= 0.0.
Must be >= 0.0.
destroy_action optional | :: Trigger |
capture_animation optional | :: Animation |

## CarPrototype 'car' changed

animation optional | :: RotatedAnimation | Animation speed 1 means 1 frame per tile.
Animation speed 1 means 1 frame per tile.
effectivity | :: double | Modifies the efficiency of energy transfer from burner output to wheels.
Modifies the efficiency of energy transfer from burner output to wheels.
consumption | :: Energy |
rotation_speed | :: double |
energy_source | :: BurnerEnergySource or VoidEnergySource |
turret_animation optional | :: RotatedAnimation | Animation speed 1 means 1 frame per tile.
Animation speed 1 means 1 frame per tile.
light_animation optional | :: RotatedAnimation | Must have the same frame count as `animation`.
Must have the same frame count as `animation`.
render_layer optional | :: RenderLayer |
tank_driving optional | :: bool | If this car prototype uses tank controls to drive.
If this car prototype uses tank controls to drive.
auto_sort_inventory new optional | :: bool | If this car prototype keeps the trunk inventory sorted.
If this car prototype keeps the trunk inventory sorted.
has_belt_immunity optional | :: bool | If this car is immune to movement by belts.
If this car is immune to movement by belts.
immune_to_tree_impacts optional | :: bool | If this car gets damaged by driving over/against trees.
If this car gets damaged by driving over/against trees.
immune_to_rock_impacts optional | :: bool | If this car gets damaged by driving over/against rocks.
If this car gets damaged by driving over/against rocks.
immune_to_cliff_impacts optional | :: bool | If this car gets damaged by driving against cliffs.
If this car gets damaged by driving against cliffs.
turret_rotation_speed optional | :: float |
turret_return_timeout optional | :: uint32 | Timeout in ticks specifying how long the turret must be inactive to return to the default position.
Timeout in ticks specifying how long the turret must be inactive to return to the default position.
inventory_size | :: ItemStackIndex | Size of the car inventory.
Size of the car inventory.
trash_inventory_size new optional | :: ItemStackIndex | If set to 0 then the car will not have a Logistics tab.
If set to 0 then the car will not have a Logistics tab.
light optional | :: LightDefinition |
sound_no_fuel optional | :: Sound |
darkness_to_render_light_animation optional | :: float |
track_particle_triggers optional | :: FootstepTriggerEffectList |
guns optional | :: array[ItemID] | The names of the GunPrototypes this car prototype uses.
The names of the GunPrototypes this car prototype uses.

## CargoBayPrototype 'cargo-bay' new

graphics_set optional | :: CargoBayConnectableGraphicsSet |
platform_graphics_set optional | :: CargoBayConnectableGraphicsSet | A special variant which renders on space platforms. [...]
A special variant which renders on space platforms. [...]
inventory_size_bonus | :: ItemStackIndex | Cannot be 0.
Cannot be 0.
hatch_definitions optional | :: array[CargoHatchDefinition] |

## CargoLandingPadPrototype 'cargo-landing-pad' new

graphics_set optional | :: CargoBayConnectableGraphicsSet |
inventory_size | :: ItemStackIndex |
trash_inventory_size optional | :: ItemStackIndex |
circuit_wire_max_distance optional | :: double | The maximum circuit wire distance for this entity.
The maximum circuit wire distance for this entity.
draw_copper_wires optional | :: bool |
draw_circuit_wires optional | :: bool |
circuit_connector optional | :: CircuitConnectorDefinition |
cargo_station_parameters | :: CargoStationParameters |
robot_animation optional | :: Animation | Drawn when a robot brings/takes items from this landing pad.
Drawn when a robot brings/takes items from this landing pad.
robot_landing_location_offset optional | :: Vector | The offset from the center of this landing pad where a robot visually brings/takes items.
The offset from the center of this landing pad where a robot visually brings/takes items.
robot_opened_duration optional | :: uint8 |
robot_animation_sound optional | :: Sound | Played when a robot brings/takes items from this landing pad. [...]
Played when a robot brings/takes items from this landing pad. [...]
radar_range optional | :: uint32 |

## CargoPodPrototype 'cargo-pod' new

default_graphic optional | :: ProcessionGraphic | Has to be of type 'pod-catalogue'.
Has to be of type 'pod-catalogue'.
default_shadow_graphic optional | :: ProcessionGraphic | Has to be of type 'pod-catalogue'.
Has to be of type 'pod-catalogue'.
procession_graphic_catalogue optional | :: ProcessionGraphicCatalogue |
procession_audio_catalogue optional | :: ProcessionAudioCatalogue |
shadow_slave_entity optional | :: EntityID |
inventory_size | :: ItemStackIndex |
spawned_container | :: EntityID |

## CargoWagonPrototype 'cargo-wagon'

inventory_size | :: ItemStackIndex | Size of the inventory of the wagon. [...]
Size of the inventory of the wagon. [...]

## ChainActiveTriggerPrototype 'chain-active-trigger' new

action optional | :: Trigger | The trigger to apply when jumping to a new target.
The trigger to apply when jumping to a new target.
max_jumps optional | :: uint32 | Max number of jumps per trigger.
Max number of jumps per trigger.
max_range_per_jump optional | :: double | Max length of jumps.
Max length of jumps.
max_range optional | :: double | Max distance jumps are allowed to travel away from the original target.
Max distance jumps are allowed to travel away from the original target.
jump_delay_ticks optional | :: MapTick | Tick delay between each jump. [...]
Tick delay between each jump. [...]
fork_chance optional | :: double | Chance that a new fork will spawn after each jump. [...]
Chance that a new fork will spawn after each jump. [...]
fork_chance_increase_per_quality_level optional | :: double |
max_forks_per_jump optional | :: uint32 | Maximum number of forks that can spawn from a single jump.
Maximum number of forks that can spawn from a single jump.
max_forks optional | :: uint32 | Maximum number of forks allowed to spawn for the entire chain.
Maximum number of forks allowed to spawn for the entire chain.

## ChangedSurfaceAchievementPrototype 'change-surface-achievement' new

surface optional | :: string | This will trigger the achievement, if the player changes to this surface.
This will trigger the achievement, if the player changes to this surface.

## CharacterCorpsePrototype 'character-corpse' changed

time_to_live | :: uint32 | 0 for infinite.
0 for infinite.
render_layer optional | :: RenderLayer |
pictures optional | :: AnimationVariations | Mandatory if `picture` is not defined.
Mandatory if `picture` is not defined.
picture optional | :: Animation | Mandatory if `pictures` is not defined.
Mandatory if `pictures` is not defined.
armor_picture_mapping optional | :: dictionary[ItemID → int32] | Table of key value pairs, the keys are armor names and the values are numbers. [...]
Table of key value pairs, the keys are armor names and the values are numbers. [...]

## CharacterPrototype 'character' changed

mining_speed | :: double |
running_speed | :: double |
distance_per_frame | :: double |
maximum_corner_sliding_distance | :: double |
heartbeat | :: Sound | The sound played when the character's health is low.
The sound played when the character's health is low.
eat | :: Sound | The sound played when the character eats (fish for example).
The sound played when the character eats (fish for example).
inventory_size | :: ItemStackIndex | Number of slots in the main inventory. [...]
Number of slots in the main inventory. [...]
guns_inventory_size new optional | :: ItemStackIndex | Must be between 1 and 15.
Must be between 1 and 15.
build_distance | :: uint32 |
drop_item_distance | :: uint32 |
reach_distance | :: uint32 |
reach_resource_distance | :: double |
item_pickup_distance | :: double |
loot_pickup_distance | :: double |
ticks_to_keep_gun | :: uint32 |
ticks_to_keep_aiming_direction | :: uint32 |
ticks_to_stay_in_combat | :: uint32 |
damage_hit_tint | :: Color |
mining_with_tool_particles_animation_positions | :: array[float] | List of positions in the mining with tool animation when the mining sound and mining particles are created.
List of positions in the mining with tool animation when the mining sound and mining particles are created.
running_sound_animation_positions | :: array[float] | List of positions in the running animation when the walking sound is played.
List of positions in the running animation when the walking sound is played.
moving_sound_animation_positions new | :: array[float] |
animations | :: array[CharacterArmorAnimation] |
crafting_categories optional | :: array[RecipeCategoryID] | Names of the crafting categories the character can craft recipes from. [...]
Names of the crafting categories the character can craft recipes from. [...]
mining_categories optional | :: array[ResourceCategoryID] | Names of the resource categories the character can mine resources from.
Names of the resource categories the character can mine resources from.
light optional | :: LightDefinition |
flying_bob_speed new optional | :: float |
grounded_landing_search_radius new optional | :: double | The search radius for a non-colliding position to move the player to if they are grounded mid-flight. [...]
The search radius for a non-colliding position to move the player to if they are grounded mid-flight. [...]
enter_vehicle_distance optional | :: double | Must be >= 0.
Must be >= 0.
tool_attack_distance optional | :: double |
respawn_time optional | :: uint32 | Time in seconds. [...]
Time in seconds. [...]
has_belt_immunity optional | :: bool | Whether this character is moved by belts when standing on them.
Whether this character is moved by belts when standing on them.
character_corpse optional | :: EntityID | Name of the character corpse that is spawned when this character dies.
Name of the character corpse that is spawned when this character dies.
flying_collision_mask new optional | :: CollisionMaskConnector | This collision mask is used when the character is flying. [...]
This collision mask is used when the character is flying. [...]
tool_attack_result optional | :: Trigger |
footstep_particle_triggers optional | :: FootstepTriggerEffectList | Triggered every tick of the running animation.
Triggered every tick of the running animation.
synced_footstep_particle_triggers optional | :: FootstepTriggerEffectList | Triggered when the running animation (`animations`) rolls over the frames defined in `right_footprint_frames` and `left_footprint_frames`.
Triggered when the running animation (`animations`) rolls over the frames defined in `right_footprint_frames` and `left_footprint_frames`.
footprint_particles optional | :: array[FootprintParticle] | Triggered when the running animation (`animations`) rolls over the frames defined in `right_footprint_frames` and `left_footprint_frames`.
Triggered when the running animation (`animations`) rolls over the frames defined in `right_footprint_frames` and `left_footprint_frames`.
left_footprint_offset optional | :: Vector | Offset from the center of the entity for the left footprint. [...]
Offset from the center of the entity for the left footprint. [...]
right_footprint_offset optional | :: Vector | Offset from the center of the entity for the right footprint. [...]
Offset from the center of the entity for the right footprint. [...]
right_footprint_frames optional | :: array[float] | The frames in the running animation (`animations`) where the right foot touches the ground.
The frames in the running animation (`animations`) where the right foot touches the ground.
left_footprint_frames optional | :: array[float] | The frames in the running animation (`animations`) where the left foot touches the ground.
The frames in the running animation (`animations`) where the left foot touches the ground.

## CliffPrototype 'cliff' changed

orientations | :: OrientedCliffPrototypeSet |
grid_size | :: Vector |
grid_offset | :: Vector |
cliff_explosive optional | :: ItemID | Name of a capsule that has a robot_action to explode cliffs.
Name of a capsule that has a robot_action to explode cliffs.
place_as_crater new optional | :: CraterPlacementDefinition |

## CollisionLayerPrototype 'collision-layer' new

No new properties

## CombatRobotCountAchievementPrototype 'combat-robot-count-achievement'

count optional | :: uint32 | This will trigger the achievement, if player's current robot count is over this amount.
This will trigger the achievement, if player's current robot count is over this amount.

## CombatRobotPrototype 'combat-robot'

time_to_live | :: uint32 |
attack_parameters | :: AttackParameters |
idle optional | :: RotatedAnimation |
shadow_idle optional | :: RotatedAnimation |
in_motion optional | :: RotatedAnimation |
shadow_in_motion optional | :: RotatedAnimation |
range_from_player optional | :: double |
friction optional | :: double |
destroy_action optional | :: Trigger | Applied when the combat robot expires (runs out of `time_to_live`).
Applied when the combat robot expires (runs out of `time_to_live`).
follows_player optional | :: bool |
light optional | :: LightDefinition |

## CombinatorPrototype abstract changed

energy_source | :: ElectricEnergySource or VoidEnergySource | Defines how this combinator gets energy. [...]
Defines how this combinator gets energy. [...]
active_energy_usage | :: Energy |
sprites optional | :: Sprite4Way |
frozen_patch new optional | :: Sprite4Way |
activity_led_sprites optional | :: Sprite4Way |
input_connection_bounding_box | :: BoundingBox |
output_connection_bounding_box | :: BoundingBox |
activity_led_light_offsets | :: {Vector, Vector, Vector, Vector} |
screen_light_offsets | :: {Vector, Vector, Vector, Vector} |
input_connection_points | :: {WireConnectionPoint, WireConnectionPoint, WireConnectionPoint, WireConnectionPoint} |
output_connection_points | :: {WireConnectionPoint, WireConnectionPoint, WireConnectionPoint, WireConnectionPoint} |
activity_led_light optional | :: LightDefinition |
screen_light optional | :: LightDefinition |
activity_led_hold_time optional | :: uint8 |
circuit_wire_max_distance optional | :: double | The maximum circuit wire distance for this entity.
The maximum circuit wire distance for this entity.
draw_copper_wires optional | :: bool |
draw_circuit_wires optional | :: bool |

## CompleteObjectiveAchievementPrototype 'complete-objective-achievement' new

within optional | :: MapTick | The achievement must be completed within this time limit.
The achievement must be completed within this time limit.

## ConstantCombinatorPrototype 'constant-combinator' changed

sprites optional | :: Sprite4Way |
activity_led_sprites optional | :: Sprite4Way |
activity_led_light_offsets | :: {Vector, Vector, Vector, Vector} |
circuit_wire_connection_points | :: {WireConnectionPoint, WireConnectionPoint, WireConnectionPoint, WireConnectionPoint} |
activity_led_light optional | :: LightDefinition |
circuit_wire_max_distance optional | :: double | The maximum circuit wire distance for this entity.
The maximum circuit wire distance for this entity.
draw_copper_wires optional | :: bool |
draw_circuit_wires optional | :: bool |

## ConstructWithRobotsAchievementPrototype 'construct-with-robots-achievement'

limited_to_one_game | :: bool | If this is false, the player carries over their statistics from this achievement through all their saves.
If this is false, the player carries over their statistics from this achievement through all their saves.
amount optional | :: uint32 | This will trigger the achievement, if enough entities were placed using construction robots.
This will trigger the achievement, if enough entities were placed using construction robots.
more_than_manually optional | :: bool |

## ConstructionRobotPrototype 'construction-robot' changed

construction_vector | :: Vector |
working optional | :: RotatedAnimation |
shadow_working optional | :: RotatedAnimation |
smoke optional | :: Animation |
sparks optional | :: AnimationVariations |
repairing_sound optional | :: Sound |
mined_sound_volume_modifier new optional | :: float |
working_light optional | :: LightDefinition |

## ContainerPrototype 'container' changed

inventory_size | :: ItemStackIndex | The number of slots in this container.
The number of slots in this container.
picture optional | :: Sprite | The picture displayed for this entity.
The picture displayed for this entity.
inventory_type changed optional | :: `"normal"` or `"with_bar"` or `"with_filters_and_bar"` | Whether the inventory of this container can be filtered (like cargo wagons) or not.
Whether the inventory of this container can be filtered (like cargo wagons) or not.
circuit_wire_max_distance optional | :: double | The maximum circuit wire distance for this container.
The maximum circuit wire distance for this container.
draw_copper_wires optional | :: bool |
draw_circuit_wires optional | :: bool |
circuit_connector new optional | :: CircuitConnectorDefinition |
default_status new optional | :: EntityStatus |

## CopyPasteToolPrototype 'copy-paste-tool' changed

cuts optional | :: bool |

## CorpsePrototype 'corpse' changed

dying_speed optional | :: float | Multiplier for `time_before_shading_off` and `time_before_removed`. [...]
Multiplier for `time_before_shading_off` and `time_before_removed`. [...]
splash_speed optional | :: float | Controls the speed of the splash animation: `1 ÷ splash_speed = duration of the splash animation`
Controls the speed of the splash animation: `1 ÷ splash_speed = duration of the splash animation`
time_before_shading_off optional | :: uint32 | Controls how long the corpse takes to fade, as in how long it takes to get from no transparency to full transparency/removed. [...]
Controls how long the corpse takes to fade, as in how long it takes to get from no transparency to full transparency/removed. [...]
time_before_removed optional | :: uint32 | Time in ticks this corpse lasts. [...]
Time in ticks this corpse lasts. [...]
expires new optional | :: bool |
remove_on_entity_placement optional | :: bool |
remove_on_tile_placement optional | :: bool |
final_render_layer optional | :: RenderLayer |
ground_patch_render_layer optional | :: RenderLayer |
animation_render_layer optional | :: RenderLayer |
splash_render_layer optional | :: RenderLayer |
animation_overlay_render_layer optional | :: RenderLayer |
animation_overlay_final_render_layer optional | :: RenderLayer |
shuffle_directions_at_frame optional | :: uint8 |
use_tile_color_for_ground_patch_tint optional | :: bool |
use_decay_layer new optional | :: bool |
underwater_layer_offset new optional | :: int8 |
ground_patch_fade_in_delay optional | :: float |
ground_patch_fade_in_speed optional | :: float |
ground_patch_fade_out_start optional | :: float |
decay_frame_transition_duration new optional | :: float |
animation optional | :: RotatedAnimationVariations | The dying animation.
The dying animation.
animation_overlay optional | :: RotatedAnimationVariations | Variation count must be the same as `animation` variation count. [...]
Variation count must be the same as `animation` variation count. [...]
decay_animation new optional | :: RotatedAnimationVariations |
splash optional | :: AnimationVariations |
ground_patch optional | :: AnimationVariations |
ground_patch_higher optional | :: AnimationVariations |
ground_patch_decay new optional | :: AnimationVariations |
underwater_patch new optional | :: RotatedSprite |
ground_patch_fade_out_duration optional | :: float |
direction_shuffle optional | :: array[array[uint16]] | An array of arrays of integers. [...]
An array of arrays of integers. [...]

## CraftingMachinePrototype 'crafting-machine' changed

energy_usage | :: Energy | Sets how much energy this machine uses while crafting. [...]
Sets how much energy this machine uses while crafting. [...]
crafting_speed | :: double | How fast this crafting machine can craft. [...]
How fast this crafting machine can craft. [...]
crafting_categories | :: array[RecipeCategoryID] | A list of recipe categories this crafting machine can use.
A list of recipe categories this crafting machine can use.
energy_source | :: EnergySource | Defines how the crafting machine is powered. [...]
Defines how the crafting machine is powered. [...]
fluid_boxes optional | :: array[FluidBox] | The crafting machine's fluid boxes. [...]
The crafting machine's fluid boxes. [...]
effect_receiver new optional | :: EffectReceiver |
module_slots new optional | :: ItemStackIndex | The number of module slots in this machine.
The number of module slots in this machine.
allowed_effects optional | :: EffectTypeLimitation | Sets the modules and beacon effects that are allowed to be used on this machine.
Sets the modules and beacon effects that are allowed to be used on this machine.
allowed_module_categories new optional | :: array[ModuleCategoryID] | Sets the module categories that are allowed to be inserted into this machine.
Sets the module categories that are allowed to be inserted into this machine.
show_recipe_icon optional | :: bool | Whether the "alt-mode icon" should be drawn at all.
Whether the "alt-mode icon" should be drawn at all.
return_ingredients_on_change optional | :: bool | Controls whether the ingredients of an in-progress recipe are destroyed when mining the machine/changing the recipe. [...]
Controls whether the ingredients of an in-progress recipe are destroyed when mining the machine/changing the recipe. [...]
draw_entity_info_icon_background optional | :: bool | Whether the "alt-mode icon" should have a black background.
Whether the "alt-mode icon" should have a black background.
match_animation_speed_to_activity optional | :: bool | Whether the speed of the animation and working visualization should be based on the machine's speed (boosted or slowed by modules).
Whether the speed of the animation and working visualization should be based on the machine's speed (boosted or slowed by modules).
show_recipe_icon_on_map optional | :: bool | Whether the recipe icon should be shown on the map.
Whether the recipe icon should be shown on the map.
fast_transfer_modules_into_module_slots_only new optional | :: bool |
ignore_output_full new optional | :: bool |
graphics_set new optional | :: CraftingMachineGraphicsSet |
graphics_set_flipped new optional | :: CraftingMachineGraphicsSet |
perceived_performance new optional | :: PerceivedPerformance | Affects animation speed.
Affects animation speed.
production_health_effect new optional | :: ProductionHealthEffect |
trash_inventory_size new optional | :: ItemStackIndex |
vector_to_place_result new optional | :: Vector |
forced_symmetry new optional | :: Mirroring |

## CreatePlatformAchievementPrototype 'create-platform-achievement' new

amount optional | :: uint32 | How many space platforms need to be created.
How many space platforms need to be created.

## CurvedRailAPrototype 'curved-rail-a' new

No new properties

## CurvedRailBPrototype 'curved-rail-b' new

No new properties

## CustomEventPrototype 'custom-event' new

No new properties

## CustomInputPrototype 'custom-input' changed

key_sequence | :: string | The default key sequence for this custom input. [...]
The default key sequence for this custom input. [...]
alternative_key_sequence optional | :: string | The alternative key binding for this control. [...]
The alternative key binding for this control. [...]
controller_key_sequence optional | :: string | The controller (game pad) keybinding for this control. [...]
The controller (game pad) keybinding for this control. [...]
controller_alternative_key_sequence optional | :: string | The alternative controller (game pad) keybinding for this control. [...]
The alternative controller (game pad) keybinding for this control. [...]
linked_game_control optional | :: LinkedGameControl | When a custom-input is linked to a game control it won't show up in the control-settings GUI and will fire when the linked control is pressed.
When a custom-input is linked to a game control it won't show up in the control-settings GUI and will fire when the linked control is pressed.
consuming optional | :: ConsumingType | Sets whether internal game events associated with the same key sequence should be fired or blocked. [...]
Sets whether internal game events associated with the same key sequence should be fired or blocked. [...]
enabled optional | :: bool | If this custom input is enabled. [...]
If this custom input is enabled. [...]
enabled_while_spectating optional | :: bool |
enabled_while_in_cutscene optional | :: bool |
include_selected_prototype optional | :: bool | If true, the type and name of the currently selected prototype will be provided as "selected_prototype" in the raised Lua event. [...]
If true, the type and name of the currently selected prototype will be provided as "selected_prototype" in the raised Lua event. [...]
item_to_spawn optional | :: ItemID | The item will be created when this input is pressed and action is set to "spawn-item". [...]
The item will be created when this input is pressed and action is set to "spawn-item". [...]
action optional | :: `"lua"` or `"spawn-item"` or `"toggle-personal-roboport"` or `"toggle-personal-logistic-requests"` or `"toggle-equipment-movement-bonus"` | A Lua event is only raised if the action is "lua".
A Lua event is only raised if the action is "lua".
block_modifiers new optional | :: bool | If `true`, when the shortcut is activated, the modifiers used for this shortcut can't be re-used to press something else until unpressed. [...]
If `true`, when the shortcut is activated, the modifiers used for this shortcut can't be re-used to press something else until unpressed. [...]

## DamageType 'damage-type' changed

No new properties

## DeciderCombinatorPrototype 'decider-combinator'

equal_symbol_sprites optional | :: Sprite4Way |
greater_symbol_sprites optional | :: Sprite4Way |
less_symbol_sprites optional | :: Sprite4Way |
not_equal_symbol_sprites optional | :: Sprite4Way |
greater_or_equal_symbol_sprites optional | :: Sprite4Way |
less_or_equal_symbol_sprites optional | :: Sprite4Way |

## DeconstructWithRobotsAchievementPrototype 'deconstruct-with-robots-achievement'

amount | :: uint32 | This will trigger the achievement, if enough entities were deconstructed using construction robots.
This will trigger the achievement, if enough entities were deconstructed using construction robots.

## DeconstructibleTileProxyPrototype 'deconstructible-tile-proxy' changed

No new properties

## DeconstructionItemPrototype 'deconstruction-item' changed

entity_filter_count optional | :: ItemStackIndex | Can't be > 255.
Can't be > 255.
tile_filter_count optional | :: ItemStackIndex | Can't be > 255.
Can't be > 255.

## DecorativePrototype 'optimized-decorative' changed

pictures | :: SpriteVariations | Must contain at least 1 picture.
Must contain at least 1 picture.
stateless_visualisation new optional | :: StatelessVisualisations | Can be defined only when decorative is not "decal" (see `render_layer`).
Can be defined only when decorative is not "decal" (see `render_layer`).
stateless_visualisation_variations new optional | :: array[StatelessVisualisations] | Only loaded if `stateless_visualisation` is not defined. [...]
Only loaded if `stateless_visualisation` is not defined. [...]
collision_box optional | :: BoundingBox | Must contain the [0,0] point. [...]
Must contain the [0,0] point. [...]
render_layer optional | :: RenderLayer | When "decals" render layer is used, the decorative is treated as decal. [...]
When "decals" render layer is used, the decorative is treated as decal. [...]
grows_through_rail_path optional | :: bool |
tile_layer optional | :: int16 | Mandatory if `render_layer` = "decals". [...]
Mandatory if `render_layer` = "decals". [...]
decal_overdraw_priority optional | :: uint16 | Loaded only if `render_layer` = "decals". [...]
Loaded only if `render_layer` = "decals". [...]
collision_mask changed optional | :: CollisionMaskConnector | Defaults to the mask from UtilityConstants::default_collision_masks when indexed by `"decorative"`.
Defaults to the mask from UtilityConstants::default_collision_masks when indexed by `"decorative"`.
walking_sound optional | :: Sound |
trigger_effect optional | :: TriggerEffect | Called by DestroyDecorativesTriggerEffectItem.
Called by DestroyDecorativesTriggerEffectItem.
minimal_separation new optional | :: double |
target_count new optional | :: uint16 |
placed_effect new optional | :: TriggerEffect |
autoplace optional | :: AutoplaceSpecification |

## DelayedActiveTriggerPrototype 'delayed-active-trigger' new

action | :: Trigger | The trigger to apply after `delay` has elapsed.
The trigger to apply after `delay` has elapsed.
delay | :: uint32 | The number of ticks to delay the delivery of the triggered effect. [...]
The number of ticks to delay the delivery of the triggered effect. [...]
repeat_count optional | :: uint32 | The number of times to repeat the delayed trigger.
The number of times to repeat the delayed trigger.
repeat_delay optional | :: uint32 | The number of ticks between repeat deliveries of the triggered effect. [...]
The number of ticks between repeat deliveries of the triggered effect. [...]
cancel_when_source_is_destroyed optional | :: bool | If true, the delayed trigger is cancelled if the source entity is destroyed.
If true, the delayed trigger is cancelled if the source entity is destroyed.

## DeliverByRobotsAchievementPrototype 'deliver-by-robots-achievement'

amount changed | :: uint32 | This will trigger the achievement, when the player receives enough items through logistic robots.
This will trigger the achievement, when the player receives enough items through logistic robots.

## DeliverCategory 'deliver-category' new

type | :: `"deliver-category"` |
name | :: string | Name of the deliver category.
Name of the deliver category.

## DeliverImpactCombination 'deliver-impact-combination' new

type | :: `"deliver-impact-combination"` |
name | :: string | Name of the deliver impact combination.
Name of the deliver impact combination.
impact_category | :: string |
deliver_category | :: string |
trigger_effect_item | :: TriggerEffectItem |

## DepleteResourceAchievementPrototype 'deplete-resource-achievement' new

amount optional | :: uint32 | How many resource entities need to be depleted.
How many resource entities need to be depleted.
limited_to_one_game optional | :: bool | If this is false, the player carries over their statistics from this achievement through all their saves.
If this is false, the player carries over their statistics from this achievement through all their saves.

## DestroyCliffAchievementPrototype 'destroy-cliff-achievement' new

amount optional | :: uint32 |
limited_to_one_game optional | :: bool | If this is false, the player carries over their statistics from this achievement through all their saves.
If this is false, the player carries over their statistics from this achievement through all their saves.

## DisplayPanelPrototype 'display-panel' new

sprites optional | :: Sprite4Way | The display panel's graphics.
The display panel's graphics.
max_text_width optional | :: uint32 | The maximum width of the text on the display panel.
The maximum width of the text on the display panel.
text_shift optional | :: Vector | The shift of the text on the display panel.
The shift of the text on the display panel.
text_color optional | :: Color | The color of the text on the display panel.
The color of the text on the display panel.
background_color optional | :: Color | The background color of the display panel text.
The background color of the display panel text.
circuit_wire_max_distance optional | :: double | The maximum circuit wire distance for this entity.
The maximum circuit wire distance for this entity.
draw_copper_wires optional | :: bool |
draw_circuit_wires optional | :: bool |
circuit_connector optional | :: {CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition} |

## DontBuildEntityAchievementPrototype 'dont-build-entity-achievement'

dont_build | :: EntityID or array[EntityID] | This will disable the achievement, if this entity is placed. [...]
This will disable the achievement, if this entity is placed. [...]
amount optional | :: uint32 |

## DontCraftManuallyAchievementPrototype 'dont-craft-manually-achievement'

amount changed | :: uint32 | This will disable the achievement, if the player crafts more than this.
This will disable the achievement, if the player crafts more than this.

## DontKillManuallyAchievementPrototype 'dont-kill-manually-achievement' new

to_kill optional | :: EntityID | This will disable the achievement, if this entity is killed manually. [...]
This will disable the achievement, if this entity is killed manually. [...]
type_not_to_kill optional | :: string | This will disable the achievement, if this entity type is killed manually. [...]
This will disable the achievement, if this entity type is killed manually. [...]

## DontResearchBeforeResearchingAchievementPrototype 'dont-research-before-researching-achievement' new

dont_research | :: ItemID or array[ItemID] | This will disable the achievement, if technology unlocking this item is researched before meeting requirements.
This will disable the achievement, if technology unlocking this item is researched before meeting requirements.
research_with | :: ItemID or array[ItemID] | If you research technology using one of specified items, you receive the achievement.
If you research technology using one of specified items, you receive the achievement.

## DontUseEntityInEnergyProductionAchievementPrototype 'dont-use-entity-in-energy-production-achievement'

excluded | :: EntityID or array[EntityID] | This will not disable the achievement, if this entity is placed, and you have received any amount of power from it.
This will not disable the achievement, if this entity is placed, and you have received any amount of power from it.
included optional | :: EntityID or array[EntityID] | This will disable the achievement, if this entity is placed, and you have received any amount of power from it. [...]
This will disable the achievement, if this entity is placed, and you have received any amount of power from it. [...]
last_hour_only optional | :: bool |
minimum_energy_produced optional | :: Energy |

## EditorControllerPrototype 'editor-controller' changed

type | :: `"editor-controller"` |
name | :: string | Name of the editor controller. [...]
Name of the editor controller. [...]
inventory_size | :: ItemStackIndex |
gun_inventory_size | :: ItemStackIndex |
movement_speed | :: double | Must be >= 0.34375.
Must be >= 0.34375.
item_pickup_distance | :: double |
loot_pickup_distance | :: double |
mining_speed | :: double |
enable_flash_light | :: bool |
adjust_speed_based_off_zoom | :: bool |
render_as_day | :: bool |
instant_blueprint_building | :: bool |
instant_deconstruction | :: bool |
instant_upgrading | :: bool |
instant_rail_planner | :: bool |
show_status_icons | :: bool |
show_hidden_entities | :: bool |
show_entity_tags | :: bool |
show_entity_health_bars | :: bool |
show_additional_entity_info_gui | :: bool |
generate_neighbor_chunks | :: bool |
fill_built_entity_energy_buffers | :: bool |
show_character_tab_in_controller_gui | :: bool |
show_infinity_filters_in_controller_gui | :: bool |
placed_corpses_never_expire | :: bool |
ignore_surface_conditions new | :: bool |

## ElectricEnergyInterfacePrototype 'electric-energy-interface'

energy_source | :: ElectricEnergySource |
energy_production optional | :: Energy |
energy_usage optional | :: Energy |
gui_mode optional | :: `"all"` or `"none"` or `"admins"` |
continuous_animation optional | :: bool | Whether the electric energy interface animation always runs instead of being scaled to activity.
Whether the electric energy interface animation always runs instead of being scaled to activity.
render_layer optional | :: RenderLayer |
light optional | :: LightDefinition | The light that this electric energy interface emits.
The light that this electric energy interface emits.
picture optional | :: Sprite |
pictures optional | :: Sprite4Way | Only loaded if `picture` is not defined.
Only loaded if `picture` is not defined.
animation optional | :: Animation | Only loaded if both `picture` and `pictures` are not defined.
Only loaded if both `picture` and `pictures` are not defined.
animations optional | :: Animation4Way | Only loaded if `picture`, `pictures`, and `animation` are not defined.
Only loaded if `picture`, `pictures`, and `animation` are not defined.

## ElectricPolePrototype 'electric-pole' changed

pictures optional | :: RotatedSprite |
supply_area_distance | :: double | The "radius" of this pole's supply area. [...]
The "radius" of this pole's supply area. [...]
connection_points | :: array[WireConnectionPoint] |
radius_visualisation_picture optional | :: Sprite |
active_picture optional | :: Sprite | Drawn above the `pictures` when the electric pole is connected to an electric network.
Drawn above the `pictures` when the electric pole is connected to an electric network.
maximum_wire_distance optional | :: double | The maximum distance between this pole and any other connected pole - if two poles are farther apart than this, they cannot be connected together directly. [...]
The maximum distance between this pole and any other connected pole - if two poles are farther apart than this, they cannot be connected together directly. [...]
draw_copper_wires optional | :: bool |
draw_circuit_wires optional | :: bool |
light optional | :: LightDefinition | Drawn when the electric pole is connected to an electric network.
Drawn when the electric pole is connected to an electric network.
track_coverage_during_build_by_moving optional | :: bool |
auto_connect_up_to_n_wires new optional | :: uint8 | `0` means disable auto-connect.
`0` means disable auto-connect.

## ElectricTurretPrototype 'electric-turret'

energy_source | :: ElectricEnergySource or VoidEnergySource |

## ElevatedCurvedRailAPrototype 'elevated-curved-rail-a' new

No new properties

## ElevatedCurvedRailBPrototype 'elevated-curved-rail-b' new

No new properties

## ElevatedHalfDiagonalRailPrototype 'elevated-half-diagonal-rail' new

No new properties

## ElevatedStraightRailPrototype 'elevated-straight-rail' new

No new properties

## EnemySpawnerPrototype 'unit-spawner' changed

graphics_set new | :: EnemySpawnerGraphicsSet |
max_count_of_owned_units | :: uint32 | Count of enemies this spawner can sustain.
Count of enemies this spawner can sustain.
max_friends_around_to_spawn | :: uint32 | How many friendly units are required within the EnemySpawnerPrototype::spawning_radius of this spawner for it to stop producing more units.
How many friendly units are required within the EnemySpawnerPrototype::spawning_radius of this spawner for it to stop producing more units.
spawning_cooldown | :: {double, double} | Ticks for cooldown after unit is spawned. [...]
Ticks for cooldown after unit is spawned. [...]
spawning_radius | :: double | How far from the spawner can the units be spawned.
How far from the spawner can the units be spawned.
spawning_spacing | :: double | What spaces should be between the spawned units.
What spaces should be between the spawned units.
max_richness_for_spawn_shift | :: double | Max richness to determine spawn shift. [...]
Max richness to determine spawn shift. [...]
max_spawn_shift | :: double | Caps how much richness can be added on top of evolution when spawning units. [...]
Caps how much richness can be added on top of evolution when spawning units. [...]
call_for_help_radius | :: double |
time_to_capture new optional | :: uint32 |
result_units | :: array[UnitSpawnDefinition] | Array of the entities that this spawner can spawn and their spawn probabilities. [...]
Array of the entities that this spawner can spawn and their spawn probabilities. [...]
dying_sound optional | :: Sound |
absorptions_per_second new optional | :: dictionary[AirbornePollutantID → EnemySpawnerAbsorption] |
min_darkness_to_spawn optional | :: float |
max_darkness_to_spawn optional | :: float |
spawn_decorations_on_expansion optional | :: bool | Whether `spawn_decoration` should be spawned when enemies expand.
Whether `spawn_decoration` should be spawned when enemies expand.
spawn_decoration changed optional | :: array[CreateDecorativesTriggerEffectItem] | Decoratives to be created when the spawner is created by the map generator. [...]
Decoratives to be created when the spawner is created by the map generator. [...]
captured_spawner_entity new optional | :: EntityID |

## EnergyShieldEquipmentPrototype 'energy-shield-equipment'

max_shield_value | :: float |
energy_per_shield | :: Energy |

## EntityGhostPrototype 'entity-ghost' changed

medium_build_sound optional | :: Sound |
large_build_sound optional | :: Sound |
huge_build_sound new optional | :: Sound |
small_build_animated_sound new optional | :: Sound |
medium_build_animated_sound new optional | :: Sound |
large_build_animated_sound new optional | :: Sound |
huge_build_animated_sound new optional | :: Sound |

## EntityPrototype abstract changed

icons optional | :: array[IconData] | This will be used in the electric network statistics, editor building selection, and the bonus gui. [...]
This will be used in the electric network statistics, editor building selection, and the bonus gui. [...]
icon optional | :: FileName | Path to the icon file. [...]
Path to the icon file. [...]
icon_size optional | :: SpriteSizeType | The size of the square icon, in pixels. [...]
The size of the square icon, in pixels. [...]
collision_box optional | :: BoundingBox | Specification of the entity collision boundaries. [...]
Specification of the entity collision boundaries. [...]
collision_mask changed optional | :: CollisionMaskConnector | Defaults to the mask from UtilityConstants::default_collision_masks when indexed by the entity type.
Defaults to the mask from UtilityConstants::default_collision_masks when indexed by the entity type.
map_generator_bounding_box optional | :: BoundingBox | Used instead of the collision box during map generation. [...]
Used instead of the collision box during map generation. [...]
selection_box optional | :: BoundingBox | Specification of the entity selection area. [...]
Specification of the entity selection area. [...]
drawing_box_vertical_extension new optional | :: double | Specification of extra vertical space needed to see the whole entity in GUIs. [...]
Specification of extra vertical space needed to see the whole entity in GUIs. [...]
sticker_box optional | :: BoundingBox | Used to set the area of the entity that can have stickers on it, currently only used for units to specify the area where the green slow down stickers can appear.
Used to set the area of the entity that can have stickers on it, currently only used for units to specify the area where the green slow down stickers can appear.
hit_visualization_box optional | :: BoundingBox | Where beams should hit the entity. [...]
Where beams should hit the entity. [...]
trigger_target_mask optional | :: TriggerTargetMask | Defaults to the mask from UtilityConstants::default_trigger_target_mask_by_type.
Defaults to the mask from UtilityConstants::default_trigger_target_mask_by_type.
flags optional | :: EntityPrototypeFlags |
tile_buildability_rules new optional | :: array[TileBuildabilityRule] |
minable optional | :: MinableProperties | The item given to the player when they mine the entity and other properties relevant to mining this entity.
The item given to the player when they mine the entity and other properties relevant to mining this entity.
surface_conditions new optional | :: array[SurfaceCondition] |
deconstruction_alternative new optional | :: EntityID | Used to merge multiple entities into one entry in the deconstruction planner.
Used to merge multiple entities into one entry in the deconstruction planner.
selection_priority optional | :: uint8 | The entity with the higher number is selectable before the entity with the lower number.
The entity with the higher number is selectable before the entity with the lower number.
build_grid_size optional | :: uint8 | Supported values are 1 (for 1x1 grid) and 2 (for 2x2 grid, like rails). [...]
Supported values are 1 (for 1x1 grid) and 2 (for 2x2 grid, like rails). [...]
remove_decoratives changed optional | :: `"automatic"` or `"true"` or `"false"` | Whether this entity should remove decoratives that collide with it when this entity is built. [...]
Whether this entity should remove decoratives that collide with it when this entity is built. [...]
emissions_per_second changed optional | :: dictionary[AirbornePollutantID → double] | Amount of emissions created (positive number) or cleaned (negative number) every second by the entity. [...]
Amount of emissions created (positive number) or cleaned (negative number) every second by the entity. [...]
shooting_cursor_size changed optional | :: double | The cursor size used when shooting at this entity.
The cursor size used when shooting at this entity.
created_smoke optional | :: CreateTrivialSmokeEffectItem | The smoke that is shown when the entity is placed.
The smoke that is shown when the entity is placed.
working_sound optional | :: WorkingSound | Will also work on entities that don't actually do work.
Will also work on entities that don't actually do work.
created_effect optional | :: Trigger | The effect/trigger that happens when the entity is placed.
The effect/trigger that happens when the entity is placed.
build_sound optional | :: Sound |
mined_sound optional | :: Sound |
mining_sound optional | :: Sound |
rotated_sound optional | :: Sound |
impact_category new optional | :: string | Name of a ImpactCategory.
Name of a ImpactCategory.
open_sound optional | :: Sound |
close_sound optional | :: Sound |
placeable_position_visualization new optional | :: Sprite |
radius_visualisation_specification optional | :: RadiusVisualisationSpecification |
stateless_visualisation new optional | :: StatelessVisualisations |
build_base_evolution_requirement optional | :: double |
alert_icon_shift optional | :: Vector |
alert_icon_scale optional | :: float |
fast_replaceable_group optional | :: string | This allows you to replace an entity that's already placed, with a different one in your inventory. [...]
This allows you to replace an entity that's already placed, with a different one in your inventory. [...]
next_upgrade optional | :: EntityID | Name of the entity that will be automatically selected as the upgrade of this entity when using the upgrade planner without configuration. [...]
Name of the entity that will be automatically selected as the upgrade of this entity when using the upgrade planner without configuration. [...]
protected_from_tile_building optional | :: bool | When this is true, this entity prototype should be included during tile collision checks with tiles that have TilePrototype::check_collision_with_entities set to true.
When this is true, this entity prototype should be included during tile collision checks with tiles that have TilePrototype::check_collision_with_entities set to true.
heating_energy new optional | :: Energy |
allow_copy_paste optional | :: bool |
selectable_in_game optional | :: bool |
placeable_by optional | :: ItemToPlace or array[ItemToPlace] | Item that when placed creates this entity. [...]
Item that when placed creates this entity. [...]
remains_when_mined optional | :: EntityID or array[EntityID] | The entity that remains when this one is mined, deconstructed or fast-replaced. [...]
The entity that remains when this one is mined, deconstructed or fast-replaced. [...]
additional_pastable_entities optional | :: array[EntityID] | Names of the entity prototypes this entity prototype can be pasted on to in addition to the standard supported types. [...]
Names of the entity prototypes this entity prototype can be pasted on to in addition to the standard supported types. [...]
tile_width changed optional | :: int32 | Used to determine how the center of the entity should be positioned when building (unless the off-grid flag is specified). [...]
Used to determine how the center of the entity should be positioned when building (unless the off-grid flag is specified). [...]
tile_height changed optional | :: int32 |
diagonal_tile_grid_size new optional | :: TilePosition |
autoplace optional | :: AutoplaceSpecification | Used to specify the rules for placing this entity during map generation.
Used to specify the rules for placing this entity during map generation.
map_color optional | :: Color |
friendly_map_color optional | :: Color |
enemy_map_color optional | :: Color |
water_reflection optional | :: WaterReflectionDefinition | May also be defined inside `graphics_set` instead of directly in the entity prototype. [...]
May also be defined inside `graphics_set` instead of directly in the entity prototype. [...]
ambient_sounds_group new optional | :: EntityID |
ambient_sounds new optional | :: WorldAmbientSoundDefinition or array[WorldAmbientSoundDefinition] |
icon_draw_specification new optional | :: IconDrawSpecification | Used to specify where and how should be the alt-mode icons of entities should be drawn.
Used to specify where and how should be the alt-mode icons of entities should be drawn.
icons_positioning new optional | :: array[IconSequencePositioning] |

## EntityWithHealthPrototype abstract changed

max_health optional | :: float | The unit health can never go over the maximum. [...]
The unit health can never go over the maximum. [...]
healing_per_tick optional | :: float | The amount of health automatically regenerated per tick. [...]
The amount of health automatically regenerated per tick. [...]
repair_speed_modifier optional | :: float | Multiplier of RepairToolPrototype::speed for this entity prototype.
Multiplier of RepairToolPrototype::speed for this entity prototype.
dying_explosion optional | :: ExplosionDefinition or array[ExplosionDefinition] | The entities that are spawned in place of this one when it dies.
The entities that are spawned in place of this one when it dies.
dying_trigger_effect optional | :: TriggerEffect |
damaged_trigger_effect optional | :: TriggerEffect |
loot optional | :: array[LootItem] | The loot is dropped on the ground when the entity is killed.
The loot is dropped on the ground when the entity is killed.
resistances optional | :: array[Resistance] | See damage.
See damage.
attack_reaction optional | :: AttackReactionItem or array[AttackReactionItem] |
repair_sound optional | :: Sound | Played when this entity is repaired with a RepairToolPrototype.
Played when this entity is repaired with a RepairToolPrototype.
alert_when_damaged optional | :: bool |
hide_resistances optional | :: bool | Whether the resistances of this entity should be hidden in the entity tooltip.
Whether the resistances of this entity should be hidden in the entity tooltip.
create_ghost_on_death optional | :: bool |
random_corpse_variation optional | :: bool |
integration_patch_render_layer optional | :: RenderLayer | May also be defined inside `graphics_set` instead of directly in the entity prototype. [...]
May also be defined inside `graphics_set` instead of directly in the entity prototype. [...]
corpse optional | :: EntityID or array[EntityID] | Specifies the names of the CorpsePrototype to be used when this entity dies.
Specifies the names of the CorpsePrototype to be used when this entity dies.
integration_patch optional | :: Sprite4Way | May also be defined inside `graphics_set` instead of directly in the entity prototype. [...]
May also be defined inside `graphics_set` instead of directly in the entity prototype. [...]
overkill_fraction new optional | :: float | Fraction of health by which predicted damage must be exceeded before entity is considered as "predicted to die" causing turrets (and others) to stop shooting more projectiles. [...]
Fraction of health by which predicted damage must be exceeded before entity is considered as "predicted to die" causing turrets (and others) to stop shooting more projectiles. [...]

## EntityWithOwnerPrototype abstract changed

is_military_target optional | :: bool | Whether this prototype should be a high priority target for enemy forces. [...]
Whether this prototype should be a high priority target for enemy forces. [...]
allow_run_time_change_of_is_military_target optional | :: bool | If this is true, this entity's `is_military_target` property can be changed during runtime (on the entity, not on the prototype itself).
If this is true, this entity's `is_military_target` property can be changed during runtime (on the entity, not on the prototype itself).
quality_indicator_scale new optional | :: double | The default scale is based on the tile distance of the shorter dimension. [...]
The default scale is based on the tile distance of the shorter dimension. [...]

## EquipArmorAchievementPrototype 'equip-armor-achievement' new

armor | :: ItemID | The achievement will trigger if this armor or the alternative armor is equipped.
The achievement will trigger if this armor or the alternative armor is equipped.
alternative_armor | :: ItemID | The achievement will trigger if this armor or the other armor is equipped.
The achievement will trigger if this armor or the other armor is equipped.
limit_quality | :: QualityID |
amount optional | :: uint32 | How many armors need to be equipped.
How many armors need to be equipped.
limited_to_one_game optional | :: bool | If this is false, the player carries over their statistics from this achievement through all their saves.
If this is false, the player carries over their statistics from this achievement through all their saves.

## EquipmentCategory 'equipment-category'

No new properties

## EquipmentGhostPrototype 'equipment-ghost' new

No new properties

## EquipmentGridPrototype 'equipment-grid'

equipment_categories | :: array[EquipmentCategoryID] | Only equipment with at least one of these categories can be inserted into the grid.
Only equipment with at least one of these categories can be inserted into the grid.
width | :: uint32 |
height | :: uint32 |
locked optional | :: bool | Whether this locked from user interaction which means that the user cannot put equipment into or take equipment from this equipment grid.
Whether this locked from user interaction which means that the user cannot put equipment into or take equipment from this equipment grid.

## EquipmentPrototype abstract

sprite | :: Sprite | The graphics to use when this equipment is shown inside an equipment grid.
The graphics to use when this equipment is shown inside an equipment grid.
shape | :: EquipmentShape | How big this equipment should be in the grid and whether it should be one solid rectangle or of a custom shape.
How big this equipment should be in the grid and whether it should be one solid rectangle or of a custom shape.
categories | :: array[EquipmentCategoryID] | Sets the categories of the equipment. [...]
Sets the categories of the equipment. [...]
energy_source | :: ElectricEnergySource |
take_result optional | :: ItemID | Name of the item prototype that should be returned to the player when they remove this equipment from an equipment grid.
Name of the item prototype that should be returned to the player when they remove this equipment from an equipment grid.
background_color optional | :: Color | The color that the background of this equipment should have when shown inside an equipment grid.
The color that the background of this equipment should have when shown inside an equipment grid.
background_border_color optional | :: Color | The color that the border of the background of this equipment should have when shown inside an equipment grid.
The color that the border of the background of this equipment should have when shown inside an equipment grid.
grabbed_background_color optional | :: Color | The color that the background of this equipment should have when held in the players hand and hovering over an equipment grid.
The color that the background of this equipment should have when held in the players hand and hovering over an equipment grid.

## ExplosionPrototype 'explosion' changed

animations | :: AnimationVariations |
sound optional | :: Sound |
smoke optional | :: TrivialSmokeID | Mandatory if `smoke_count` > 0.
Mandatory if `smoke_count` > 0.
height optional | :: float |
smoke_slow_down_factor optional | :: float |
smoke_count optional | :: uint16 |
rotate optional | :: bool |
beam optional | :: bool |
correct_rotation optional | :: bool |
scale_animation_speed optional | :: bool |
fade_in_duration optional | :: uint8 |
fade_out_duration optional | :: uint8 |
render_layer optional | :: RenderLayer |
scale_in_duration optional | :: uint8 |
scale_out_duration optional | :: uint8 |
scale_end optional | :: float |
scale_increment_per_tick optional | :: float |
light_intensity_factor_initial optional | :: float | Silently clamped to be between 0 and 1.
Silently clamped to be between 0 and 1.
light_intensity_factor_final optional | :: float | Silently clamped to be between 0 and 1.
Silently clamped to be between 0 and 1.
light_size_factor_initial optional | :: float | Silently clamped to be between 0 and 1.
Silently clamped to be between 0 and 1.
light_size_factor_final optional | :: float | Silently clamped to be between 0 and 1.
Silently clamped to be between 0 and 1.
light optional | :: LightDefinition |
light_intensity_peak_start_progress optional | :: float |
light_intensity_peak_end_progress optional | :: float |
light_size_peak_start_progress optional | :: float |
light_size_peak_end_progress optional | :: float |
scale_initial optional | :: float |
scale_initial_deviation optional | :: float |
scale optional | :: float |
scale_deviation optional | :: float |

## FireFlamePrototype 'fire' changed

damage_per_tick changed | :: DamageParameters |
spread_delay | :: uint32 |
spread_delay_deviation | :: uint32 |
render_layer optional | :: RenderLayer |
initial_render_layer optional | :: RenderLayer |
secondary_render_layer optional | :: RenderLayer |
small_tree_fire_pictures optional | :: AnimationVariations |
pictures optional | :: AnimationVariations |
smoke_source_pictures optional | :: AnimationVariations |
secondary_pictures optional | :: AnimationVariations |
burnt_patch_pictures optional | :: SpriteVariations |
secondary_picture_fade_out_start optional | :: uint32 |
secondary_picture_fade_out_duration optional | :: uint32 |
spawn_entity optional | :: EntityID |
smoke optional | :: array[SmokeSource] |
maximum_spread_count optional | :: uint16 |
initial_flame_count optional | :: uint8 | Spawns this many `secondary_pictures` around the entity when it first spawns. [...]
Spawns this many `secondary_pictures` around the entity when it first spawns. [...]
uses_alternative_behavior optional | :: bool | If `false`, then all animations loop. [...]
If `false`, then all animations loop. [...]
limit_overlapping_particles optional | :: bool |
tree_dying_factor optional | :: float |
fade_in_duration optional | :: uint32 |
fade_out_duration optional | :: uint32 |
initial_lifetime optional | :: uint32 |
damage_multiplier_decrease_per_tick optional | :: float |
damage_multiplier_increase_per_added_fuel optional | :: float |
maximum_damage_multiplier optional | :: float |
lifetime_increase_by optional | :: uint32 |
lifetime_increase_cooldown optional | :: uint32 |
maximum_lifetime optional | :: uint32 |
add_fuel_cooldown optional | :: uint32 |
delay_between_initial_flames optional | :: uint32 |
smoke_fade_in_duration optional | :: uint32 |
smoke_fade_out_duration optional | :: uint32 |
on_fuel_added_action optional | :: Trigger |
on_damage_tick_effect optional | :: Trigger |
light optional | :: LightDefinition |
light_size_modifier_per_flame new optional | :: float |
light_size_modifier_maximum new optional | :: float |
particle_alpha_blend_duration optional | :: uint16 |
burnt_patch_lifetime optional | :: uint32 |
burnt_patch_alpha_default optional | :: float |
particle_alpha optional | :: float | Only loaded if `uses_alternative_behavior` is true.
Only loaded if `uses_alternative_behavior` is true.
particle_alpha_deviation optional | :: float | Only loaded if `uses_alternative_behavior` is true.
Only loaded if `uses_alternative_behavior` is true.
flame_alpha optional | :: float | Only loaded if `uses_alternative_behavior` is false.
Only loaded if `uses_alternative_behavior` is false.
flame_alpha_deviation optional | :: float | Only loaded if `uses_alternative_behavior` is false.
Only loaded if `uses_alternative_behavior` is false.
burnt_patch_alpha_variations optional | :: array[TileAndAlpha] |

## FishPrototype 'fish' changed

pictures optional | :: SpriteVariations |

## FluidPrototype 'fluid' changed

icons optional | :: array[IconData] | Can't be an empty array.
Can't be an empty array.
icon optional | :: FileName | Path to the icon file. [...]
Path to the icon file. [...]
icon_size optional | :: SpriteSizeType | The size of the square icon, in pixels. [...]
The size of the square icon, in pixels. [...]
default_temperature changed | :: float | Also the minimum temperature of the fluid. [...]
Also the minimum temperature of the fluid. [...]
base_color | :: Color | Used by bars that show the fluid color, like the flamethrower turret fill bar in the tooltip, or the fill bar for the fluid wagon tooltip; and for the pipe windows and storage tank fill gauges.
Used by bars that show the fluid color, like the flamethrower turret fill bar in the tooltip, or the fill bar for the fluid wagon tooltip; and for the pipe windows and storage tank fill gauges.
flow_color | :: Color | Used only for pipe windows or storage tank fill gauges.
Used only for pipe windows or storage tank fill gauges.
visualization_color new optional | :: Color | Color to use for visualization. [...]
Color to use for visualization. [...]
max_temperature changed optional | :: float |
heat_capacity optional | :: Energy | Joule needed to heat 1 Unit by 1 °C.
Joule needed to heat 1 Unit by 1 °C.
fuel_value optional | :: Energy |
emissions_multiplier optional | :: double | Scales pollution generated when the fluid is consumed.
Scales pollution generated when the fluid is consumed.
gas_temperature changed optional | :: float | Above this temperature the `gas_flow` animation is used to display the fluid inside storage tanks and pipes.
Above this temperature the `gas_flow` animation is used to display the fluid inside storage tanks and pipes.
auto_barrel optional | :: bool | Whether the fluid should be included in the barrel recipes automatically generated by the base mod. [...]
Whether the fluid should be included in the barrel recipes automatically generated by the base mod. [...]

## FluidStreamPrototype 'stream' changed

particle_spawn_interval | :: uint16 | The stream will spawn one particle every `particle_spawn_interval` ticks until the `particle_spawn_timeout` is reached. [...]
The stream will spawn one particle every `particle_spawn_interval` ticks until the `particle_spawn_timeout` is reached. [...]
particle_horizontal_speed | :: float | Must be larger than 0. [...]
Must be larger than 0. [...]
particle_horizontal_speed_deviation | :: float |
particle_vertical_acceleration | :: float |
initial_action optional | :: Trigger | Action that is triggered when the first particle lands.
Action that is triggered when the first particle lands.
action optional | :: Trigger | Action that is triggered every time a particle lands. [...]
Action that is triggered every time a particle lands. [...]
special_neutral_target_damage changed optional | :: DamageParameters |
width optional | :: float |
particle_buffer_size optional | :: uint32 | Number of spawned child particles of the stream. [...]
Number of spawned child particles of the stream. [...]
particle_spawn_timeout optional | :: uint16 |
particle_start_alpha optional | :: float |
particle_end_alpha optional | :: float |
particle_start_scale optional | :: float |
particle_alpha_per_part optional | :: float |
particle_scale_per_part optional | :: float |
particle_fade_out_threshold optional | :: float | Value between 0 and 1.
Value between 0 and 1.
particle_loop_exit_threshold optional | :: float | Value between 0 and 1.
Value between 0 and 1.
particle_loop_frame_count optional | :: uint16 | Will be set to 1 by the game if less than 1.
Will be set to 1 by the game if less than 1.
particle_fade_out_duration optional | :: uint16 | Will be set to 1 by the game if less than 1.
Will be set to 1 by the game if less than 1.
spine_animation optional | :: Animation |
particle optional | :: Animation |
shadow optional | :: Animation |
smoke_sources optional | :: array[SmokeSource] | Smoke spawning is controlled by `progress_to_create_smoke`.
Smoke spawning is controlled by `progress_to_create_smoke`.
progress_to_create_smoke optional | :: float | The point in the particles projectile arc to start spawning smoke. [...]
The point in the particles projectile arc to start spawning smoke. [...]
stream_light optional | :: LightDefinition |
ground_light optional | :: LightDefinition |
target_position_deviation optional | :: double |
oriented_particle optional | :: bool |
shadow_scale_enabled optional | :: bool |

## FluidTurretPrototype 'fluid-turret'

fluid_buffer_size changed | :: FluidAmount |
fluid_buffer_input_flow changed | :: FluidAmount |
activation_buffer_ratio changed | :: FluidAmount | Before an turret that was out of fluid ammunition is able to fire again, the `fluid_buffer_size` must fill to this proportion.
Before an turret that was out of fluid ammunition is able to fire again, the `fluid_buffer_size` must fill to this proportion.
fluid_box | :: FluidBox |
muzzle_light optional | :: LightDefinition |
enough_fuel_indicator_light optional | :: LightDefinition |
not_enough_fuel_indicator_light optional | :: LightDefinition |
muzzle_animation optional | :: Animation |
folded_muzzle_animation_shift optional | :: AnimatedVector |
preparing_muzzle_animation_shift optional | :: AnimatedVector |
prepared_muzzle_animation_shift optional | :: AnimatedVector |
starting_attack_muzzle_animation_shift optional | :: AnimatedVector |
attacking_muzzle_animation_shift optional | :: AnimatedVector |
ending_attack_muzzle_animation_shift optional | :: AnimatedVector |
folding_muzzle_animation_shift optional | :: AnimatedVector |
enough_fuel_indicator_picture optional | :: Sprite4Way |
not_enough_fuel_indicator_picture optional | :: Sprite4Way |
out_of_ammo_alert_icon optional | :: Sprite | The sprite will be drawn on top of fluid turrets that are out of fluid ammunition. [...]
The sprite will be drawn on top of fluid turrets that are out of fluid ammunition. [...]

## FluidWagonPrototype 'fluid-wagon'

capacity changed | :: FluidAmount |
tank_count optional | :: uint8 | Must be 1, 2 or 3.
Must be 1, 2 or 3.

## FlyingRobotPrototype abstract changed

speed | :: double | The flying speed of the robot, in tiles/tick.
The flying speed of the robot, in tiles/tick.
max_speed optional | :: double | The maximum flying speed of the robot, including bonuses, in tiles/tick. [...]
The maximum flying speed of the robot, including bonuses, in tiles/tick. [...]
max_energy optional | :: Energy | How much energy can be stored in the batteries. [...]
How much energy can be stored in the batteries. [...]
energy_per_move optional | :: Energy | How much energy does it cost to move 1 tile. [...]
How much energy does it cost to move 1 tile. [...]
energy_per_tick optional | :: Energy | How much energy does it cost to fly for 1 tick. [...]
How much energy does it cost to fly for 1 tick. [...]
min_to_charge optional | :: float | The robot will go to charge when its battery fill ratio is less than this. [...]
The robot will go to charge when its battery fill ratio is less than this. [...]
max_to_charge optional | :: float | If the robot's battery fill ratio is more than this, it does not need to charge before stationing. [...]
If the robot's battery fill ratio is more than this, it does not need to charge before stationing. [...]
speed_multiplier_when_out_of_energy optional | :: float | Some robots simply crash, some slowdown but keep going. [...]
Some robots simply crash, some slowdown but keep going. [...]

## FontPrototype 'font'

type | :: `"font"` |
name | :: string | Name of the font.
Name of the font.
size | :: int32 | Size of the font.
Size of the font.
from | :: string | The name of the fonts .ttf descriptor. [...]
The name of the fonts .ttf descriptor. [...]
spacing optional | :: float |
border optional | :: bool | Whether the font has a border.
Whether the font has a border.
filtered optional | :: bool |
border_color optional | :: Color | The color of the border, if enabled.
The color of the border, if enabled.

## FuelCategory 'fuel-category' changed

fuel_value_type new optional | :: LocalisedString |

## FusionGeneratorPrototype 'fusion-generator' new

energy_source | :: ElectricEnergySource | `output_flow_limit` is mandatory and must be positive.
`output_flow_limit` is mandatory and must be positive.
graphics_set optional | :: FusionGeneratorGraphicsSet |
input_fluid_box | :: FluidBox | filter is mandatory.
filter is mandatory.
output_fluid_box | :: FluidBox | filter is mandatory.
filter is mandatory.
max_fluid_usage | :: FluidAmount | Must be positive.
Must be positive.
perceived_performance optional | :: PerceivedPerformance | Affects animation speed.
Affects animation speed.

## FusionReactorPrototype 'fusion-reactor' new

energy_source | :: ElectricEnergySource | First energy source for the process: provides energy
First energy source for the process: provides energy
burner | :: BurnerEnergySource | Second energy source for the process: provides fuel
Second energy source for the process: provides fuel
graphics_set | :: FusionReactorGraphicsSet |
input_fluid_box | :: FluidBox | The input fluid box. [...]
The input fluid box. [...]
output_fluid_box | :: FluidBox | The output fluid box. [...]
The output fluid box. [...]
neighbour_connectable optional | :: NeighbourConnectable | Defines connection points to neighbours used to compute neighbour bonus.
Defines connection points to neighbours used to compute neighbour bonus.
two_direction_only optional | :: bool | If set to true, only North and East direction will be buildable.
If set to true, only North and East direction will be buildable.
neighbour_bonus optional | :: float |
power_input | :: Energy | Power input consumed from first energy source at full performance. [...]
Power input consumed from first energy source at full performance. [...]
max_fluid_usage | :: FluidAmount | Maximum amount of fluid converted from `input_fluid_box` to `output_fluid_box` within a single tick. [...]
Maximum amount of fluid converted from `input_fluid_box` to `output_fluid_box` within a single tick. [...]
perceived_performance optional | :: PerceivedPerformance | Affects animation speed.
Affects animation speed.

## GatePrototype 'gate' changed

vertical_animation optional | :: Animation |
horizontal_animation optional | :: Animation |
vertical_rail_animation_left optional | :: Animation |
vertical_rail_animation_right optional | :: Animation |
horizontal_rail_animation_left optional | :: Animation |
horizontal_rail_animation_right optional | :: Animation |
vertical_rail_base optional | :: Animation |
horizontal_rail_base optional | :: Animation |
wall_patch optional | :: Animation |
opening_speed | :: float |
activation_distance | :: double |
timeout_to_close | :: uint32 |
opening_sound new optional | :: Sound | Played when the gate opens.
Played when the gate opens.
closing_sound new optional | :: Sound | Played when the gate closes.
Played when the gate closes.
fadeout_interval optional | :: uint32 |
opened_collision_mask changed optional | :: CollisionMaskConnector | This collision mask is used when the gate is open. [...]
This collision mask is used when the gate is open. [...]

## GeneratorEquipmentPrototype 'generator-equipment'

power | :: Energy | The power output of this equipment.
The power output of this equipment.
burner optional | :: BurnerEnergySource | If not defined, this equipment produces power for free.
If not defined, this equipment produces power for free.

## GeneratorPrototype 'generator' changed

energy_source | :: ElectricEnergySource |
fluid_box | :: FluidBox | This must have a filter if `max_power_output` is not defined.
This must have a filter if `max_power_output` is not defined.
horizontal_animation optional | :: Animation |
vertical_animation optional | :: Animation |
horizontal_frozen_patch new optional | :: Sprite |
vertical_frozen_patch new optional | :: Sprite |
effectivity optional | :: double | How much energy the generator produces compared to how much energy it consumes. [...]
How much energy the generator produces compared to how much energy it consumes. [...]
fluid_usage_per_tick changed | :: FluidAmount | The number of fluid units the generator uses per tick.
The number of fluid units the generator uses per tick.
maximum_temperature changed | :: float | The maximum temperature to which the efficiency can increase. [...]
The maximum temperature to which the efficiency can increase. [...]
smoke optional | :: array[SmokeSource] |
burns_fluid optional | :: bool | If set to true, the available power output is based on the FluidPrototype::fuel_value. [...]
If set to true, the available power output is based on the FluidPrototype::fuel_value. [...]
scale_fluid_usage optional | :: bool | Scales the generator's fluid usage to its maximum power output. [...]
Scales the generator's fluid usage to its maximum power output. [...]
destroy_non_fuel_fluid optional | :: bool | This property is used when `burns_fluid` is true and the fluid has a fuel_value of 0. [...]
This property is used when `burns_fluid` is true and the fluid has a fuel_value of 0. [...]
perceived_performance new optional | :: PerceivedPerformance | Affects animation speed.
Affects animation speed.
max_power_output optional | :: Energy | The power production of the generator is capped to this value. [...]
The power production of the generator is capped to this value. [...]

## GodControllerPrototype 'god-controller'

type | :: `"god-controller"` |
name | :: string | Name of the god-controller. [...]
Name of the god-controller. [...]
inventory_size | :: ItemStackIndex |
movement_speed | :: double | Must be >= 0.34375.
Must be >= 0.34375.
item_pickup_distance | :: double |
loot_pickup_distance | :: double |
mining_speed | :: double |
crafting_categories optional | :: array[RecipeCategoryID] | Names of the crafting categories the player can craft recipes from.
Names of the crafting categories the player can craft recipes from.
mining_categories optional | :: array[ResourceCategoryID] | Names of the resource categories the player can mine resources from.
Names of the resource categories the player can mine resources from.

## GroupAttackAchievementPrototype 'group-attack-achievement' changed

amount optional | :: uint32 | This will trigger the achievement, if the player receives this amount of attacks. [...]
This will trigger the achievement, if the player receives this amount of attacks. [...]
entities new optional | :: array[EntityID] | The achievement is only triggered if the attacking group of enemies contains at least one of the entities listed here.
The achievement is only triggered if the attacking group of enemies contains at least one of the entities listed here.

## GuiStyle 'gui-style'

default_tileset optional | :: FileName |
default_sprite_scale optional | :: double |
default_sprite_priority optional | :: SpritePriority |

Custom properties | :: string → StyleSpecification | Styles are defined as uniquely named StyleSpecification properties of the prototype. [...]
Styles are defined as uniquely named StyleSpecification properties of the prototype. [...]

## GunPrototype 'gun'

attack_parameters | :: AttackParameters | The information the item needs to know in order to know what ammo it requires, the sounds, and range.
The information the item needs to know in order to know what ammo it requires, the sounds, and range.

## HalfDiagonalRailPrototype 'half-diagonal-rail' new

No new properties

## HeatInterfacePrototype 'heat-interface'

heat_buffer | :: HeatBuffer |
picture optional | :: Sprite |
gui_mode optional | :: `"all"` or `"none"` or `"admins"` |

## HeatPipePrototype 'heat-pipe' changed

connection_sprites optional | :: ConnectableEntityGraphics |
heat_glow_sprites optional | :: ConnectableEntityGraphics |
heat_buffer | :: HeatBuffer |

## HighlightBoxEntityPrototype 'highlight-box' changed

No new properties

## ImpactCategory 'impact-category' new

type | :: `"impact-category"` |
name | :: string | Name of the impact category.
Name of the impact category.

## InfinityContainerPrototype 'infinity-container'

erase_contents_when_mined | :: bool |
gui_mode optional | :: `"all"` or `"none"` or `"admins"` | Controls which players can control what the chest spawns.
Controls which players can control what the chest spawns.

## InfinityPipePrototype 'infinity-pipe'

gui_mode optional | :: `"all"` or `"none"` or `"admins"` |

## InserterPrototype 'inserter' changed

extension_speed | :: double |
rotation_speed | :: double |
insert_position | :: Vector |
pickup_position | :: Vector |
platform_picture optional | :: Sprite4Way |
platform_frozen new optional | :: Sprite4Way |
hand_base_picture optional | :: Sprite |
hand_open_picture optional | :: Sprite |
hand_closed_picture optional | :: Sprite |
hand_base_frozen new optional | :: Sprite |
hand_open_frozen new optional | :: Sprite |
hand_closed_frozen new optional | :: Sprite |
hand_base_shadow optional | :: Sprite |
hand_open_shadow optional | :: Sprite |
hand_closed_shadow optional | :: Sprite |
energy_source | :: EnergySource | Defines how this inserter gets energy. [...]
Defines how this inserter gets energy. [...]
energy_per_movement optional | :: Energy |
energy_per_rotation optional | :: Energy |
bulk new optional | :: bool | Whether this inserter is considered a bulk inserter. [...]
Whether this inserter is considered a bulk inserter. [...]
allow_custom_vectors optional | :: bool | Whether pickup and insert position can be set run-time.
Whether pickup and insert position can be set run-time.
allow_burner_leech optional | :: bool | Whether this burner inserter can fuel itself from the fuel inventory of the entity it is picking up items from.
Whether this burner inserter can fuel itself from the fuel inventory of the entity it is picking up items from.
draw_held_item optional | :: bool | Whether the item that the inserter is holding should be drawn.
Whether the item that the inserter is holding should be drawn.
use_easter_egg optional | :: bool | Whether the inserter should be able to fish fish.
Whether the inserter should be able to fish fish.
grab_less_to_match_belt_stack new optional | :: bool | If drop target is belt, inserter may grab less so that it does not drop partial stacks unless it is forced to drop partial.
If drop target is belt, inserter may grab less so that it does not drop partial stacks unless it is forced to drop partial.
wait_for_full_hand new optional | :: bool | Inserter will wait until its hand is full.
Inserter will wait until its hand is full.
enter_drop_mode_if_held_stack_spoiled new optional | :: bool | If inserter waits for full hand it could become stuck when item in hand changed because of spoiling. [...]
If inserter waits for full hand it could become stuck when item in hand changed because of spoiling. [...]
max_belt_stack_size new optional | :: uint8 | This inserter will not create stacks on belt with more than this amount of items. [...]
This inserter will not create stacks on belt with more than this amount of items. [...]
filter_count optional | :: uint8 | How many filters this inserter has. [...]
How many filters this inserter has. [...]
hand_size optional | :: double | Used to determine how long the arm of the inserter is when drawing it. [...]
Used to determine how long the arm of the inserter is when drawing it. [...]
circuit_wire_max_distance optional | :: double | The maximum circuit wire distance for this entity.
The maximum circuit wire distance for this entity.
draw_copper_wires optional | :: bool |
draw_circuit_wires optional | :: bool |
default_stack_control_input_signal optional | :: SignalIDConnector |
draw_inserter_arrow optional | :: bool | Whether the yellow arrow that indicates the drop point of the inserter and the line that indicates the pickup position should be drawn.
Whether the yellow arrow that indicates the drop point of the inserter and the line that indicates the pickup position should be drawn.
chases_belt_items optional | :: bool | Whether the inserter hand should move to the items it picks up from belts, leading to item chasing behaviour. [...]
Whether the inserter hand should move to the items it picks up from belts, leading to item chasing behaviour. [...]
stack_size_bonus optional | :: uint8 | Stack size bonus that is inherent to the prototype without having to be researched.
Stack size bonus that is inherent to the prototype without having to be researched.
circuit_connector new optional | :: {CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition} |

## InventoryBonusEquipmentPrototype 'inventory-bonus-equipment' new

inventory_size_bonus | :: ItemStackIndex |

## ItemEntityPrototype 'item-entity' changed

No new properties

## ItemGroup 'item-group' changed

icons optional | :: array[IconData] | The icon that is shown to represent this item group. [...]
The icon that is shown to represent this item group. [...]
icon optional | :: FileName | Path to the icon that is shown to represent this item group. [...]
Path to the icon that is shown to represent this item group. [...]
icon_size optional | :: SpriteSizeType | The size of the square icon, in pixels. [...]
The size of the square icon, in pixels. [...]
order_in_recipe optional | :: Order | Item ingredients in recipes are ordered by item group. [...]
Item ingredients in recipes are ordered by item group. [...]

## ItemPrototype 'item' changed

stack_size | :: ItemCountType | Count of items of the same name that can be stored in one inventory slot. [...]
Count of items of the same name that can be stored in one inventory slot. [...]
icons optional | :: array[IconData] | Can't be an empty array.
Can't be an empty array.
icon optional | :: FileName | Path to the icon file. [...]
Path to the icon file. [...]
icon_size optional | :: SpriteSizeType | The size of the square icon, in pixels. [...]
The size of the square icon, in pixels. [...]
dark_background_icons optional | :: array[IconData] | Can't be an empty array.
Can't be an empty array.
dark_background_icon optional | :: FileName | If this is set, it is used to show items in alt-mode instead of the normal item icon. [...]
If this is set, it is used to show items in alt-mode instead of the normal item icon. [...]
dark_background_icon_size new optional | :: SpriteSizeType | The size of the square icon, in pixels. [...]
The size of the square icon, in pixels. [...]
place_result optional | :: EntityID | Name of the EntityPrototype that can be built using this item. [...]
Name of the EntityPrototype that can be built using this item. [...]
place_as_equipment_result new optional | :: EquipmentID |
fuel_category optional | :: FuelCategoryID | Must exist when a nonzero fuel_value is defined.
Must exist when a nonzero fuel_value is defined.
burnt_result optional | :: ItemID | The item that is the result when this item gets burned as fuel.
The item that is the result when this item gets burned as fuel.
spoil_result new optional | :: ItemID |
plant_result new optional | :: EntityID |
place_as_tile optional | :: PlaceAsTile |
pictures optional | :: SpriteVariations | Used to give the item multiple different icons so that they look less uniform on belts. [...]
Used to give the item multiple different icons so that they look less uniform on belts. [...]
flags optional | :: ItemPrototypeFlags | Specifies some properties of the item.
Specifies some properties of the item.
spoil_ticks new optional | :: uint32 |
fuel_value optional | :: Energy | Amount of energy the item gives when used as fuel. [...]
Amount of energy the item gives when used as fuel. [...]
fuel_acceleration_multiplier optional | :: double | Must be 0 or positive.
Must be 0 or positive.
fuel_top_speed_multiplier optional | :: double | Must be 0 or positive.
Must be 0 or positive.
fuel_emissions_multiplier optional | :: double |
fuel_acceleration_multiplier_quality_bonus new optional | :: double | Additional fuel acceleration multiplier per quality level. [...]
Additional fuel acceleration multiplier per quality level. [...]
fuel_top_speed_multiplier_quality_bonus new optional | :: double | Additional fuel top speed multiplier per quality level. [...]
Additional fuel top speed multiplier per quality level. [...]
weight new optional | :: Weight | The default weight is calculated automatically from recipes and falls back to UtilityConstants::default_item_weight.
The default weight is calculated automatically from recipes and falls back to UtilityConstants::default_item_weight.
ingredient_to_weight_coefficient new optional | :: double |
fuel_glow_color optional | :: Color | Colors the glow of the burner energy source when this fuel is burned. [...]
Colors the glow of the burner energy source when this fuel is burned. [...]
open_sound optional | :: Sound |
close_sound optional | :: Sound |
pick_sound new optional | :: Sound |
drop_sound new optional | :: Sound |
inventory_move_sound new optional | :: Sound |
default_import_location new optional | :: SpaceLocationID |
color_hint new optional | :: ColorHintSpecification | Only used by hidden setting, support may be limited.
Only used by hidden setting, support may be limited.
has_random_tint new optional | :: bool |
spoil_to_trigger_result new optional | :: SpoilToTriggerResult | Only loaded if `spoil_result` is not defined.
Only loaded if `spoil_result` is not defined.
destroyed_by_dropping_trigger new optional | :: Trigger | The effect/trigger that happens when an item is destroyed by being dropped on a TilePrototype marked as destroying dropped items. [...]
The effect/trigger that happens when an item is destroyed by being dropped on a TilePrototype marked as destroying dropped items. [...]
rocket_launch_products optional | :: array[ItemProductPrototype] |
send_to_orbit_mode new optional | :: SendToOrbitMode | The way this item works when we try to send it to the orbit on its own. [...]
The way this item works when we try to send it to the orbit on its own. [...]
random_tint_color new optional | :: Color | Randomly tints item instances on belts and in the world. [...]
Randomly tints item instances on belts and in the world. [...]

## ItemRequestProxyPrototype 'item-request-proxy' changed

use_target_entity_alert_icon_shift optional | :: bool |

## ItemSubGroup 'item-subgroup'

group | :: ItemGroupID | The item group this subgroup is located in.
The item group this subgroup is located in.

## ItemWithEntityDataPrototype 'item-with-entity-data' changed

icon_tintable_masks optional | :: array[IconData] | Can't be an empty array. [...]
Can't be an empty array. [...]
icon_tintable_mask optional | :: FileName | Path to the icon file. [...]
Path to the icon file. [...]
icon_tintable_mask_size new optional | :: SpriteSizeType | The size of the square icon, in pixels. [...]
The size of the square icon, in pixels. [...]
icon_tintables optional | :: array[IconData] | Can't be an empty array. [...]
Can't be an empty array. [...]
icon_tintable optional | :: FileName | Path to the icon file. [...]
Path to the icon file. [...]
icon_tintable_size new optional | :: SpriteSizeType | The size of the square icon, in pixels. [...]
The size of the square icon, in pixels. [...]

## ItemWithInventoryPrototype 'item-with-inventory' changed

inventory_size | :: ItemStackIndex | The inventory size of the item.
The inventory size of the item.
item_filters optional | :: array[ItemID] | A list of explicit item names to be used as filters.
A list of explicit item names to be used as filters.
item_group_filters optional | :: array[ItemGroupID] | A list of explicit item group names to be used as filters.
A list of explicit item group names to be used as filters.
item_subgroup_filters optional | :: array[ItemSubGroupID] | A list of explicit item subgroup names to be used as filters.
A list of explicit item subgroup names to be used as filters.
filter_mode optional | :: `"blacklist"` or `"whitelist"` | This determines how filters are applied. [...]
This determines how filters are applied. [...]
filter_message_key optional | :: string | The locale key used when the player attempts to put an item that doesn't match the filter rules into the item-with-inventory.
The locale key used when the player attempts to put an item that doesn't match the filter rules into the item-with-inventory.

## ItemWithLabelPrototype 'item-with-label'

default_label_color optional | :: Color | The default label color the item will use.
The default label color the item will use.
draw_label_for_cursor_render optional | :: bool | If the item will draw its label when held in the cursor in place of the item count.
If the item will draw its label when held in the cursor in place of the item count.

## ItemWithTagsPrototype 'item-with-tags'

No new properties

## KillAchievementPrototype 'kill-achievement' changed

to_kill changed optional | :: EntityID or array[EntityID] | This defines which entity needs to be destroyed in order to receive the achievement.
This defines which entity needs to be destroyed in order to receive the achievement.
type_to_kill optional | :: string | This defines what entity type needs to be destroyed in order to receive the achievement.
This defines what entity type needs to be destroyed in order to receive the achievement.
damage_type optional | :: DamageTypeID | This defines how the player needs to destroy the specific entity.
This defines how the player needs to destroy the specific entity.
damage_dealer new optional | :: EntityID | The killer of the entity must be this entity.
The killer of the entity must be this entity.
amount optional | :: uint32 | This is the amount of entity of the specified type the player needs to destroy to receive the achievement.
This is the amount of entity of the specified type the player needs to destroy to receive the achievement.
in_vehicle optional | :: bool | This defines if the player needs to be in a vehicle.
This defines if the player needs to be in a vehicle.
personally optional | :: bool | This defines to make sure you are the one driving, for instance, in a tank rather than an automated train.
This defines to make sure you are the one driving, for instance, in a tank rather than an automated train.

## LabPrototype 'lab' changed

energy_usage | :: Energy | The amount of energy this lab uses.
The amount of energy this lab uses.
energy_source | :: EnergySource | Defines how this lab gets energy.
Defines how this lab gets energy.
on_animation optional | :: Animation | The animation that plays when the lab is active.
The animation that plays when the lab is active.
off_animation optional | :: Animation | The animation that plays when the lab is idle.
The animation that plays when the lab is idle.
frozen_patch new optional | :: Sprite |
inputs | :: array[ItemID] | A list of the names of science packs that can be used in this lab. [...]
A list of the names of science packs that can be used in this lab. [...]
researching_speed optional | :: double |
effect_receiver new optional | :: EffectReceiver |
module_slots new optional | :: ItemStackIndex | The number of module slots in this lab.
The number of module slots in this lab.
uses_quality_drain_modifier new optional | :: bool | Whether the QualityPrototype::science_pack_drain_multiplier of the quality of the science pack should be considered by the lab.
Whether the QualityPrototype::science_pack_drain_multiplier of the quality of the science pack should be considered by the lab.
science_pack_drain_rate_percent new optional | :: uint8 | May not be 0. [...]
May not be 0. [...]
allowed_effects optional | :: EffectTypeLimitation | Sets the modules and beacon effects that are allowed to be used on this lab.
Sets the modules and beacon effects that are allowed to be used on this lab.
allowed_module_categories new optional | :: array[ModuleCategoryID] | Sets the module categories that are allowed to be inserted into this machine.
Sets the module categories that are allowed to be inserted into this machine.
light optional | :: LightDefinition |
trash_inventory_size new optional | :: ItemStackIndex |

## LampPrototype 'lamp' changed

picture_on optional | :: Sprite | The lamps graphics when it's on.
The lamps graphics when it's on.
picture_off optional | :: Sprite | The lamps graphics when it's off.
The lamps graphics when it's off.
energy_usage_per_tick | :: Energy | The amount of energy the lamp uses. [...]
The amount of energy the lamp uses. [...]
energy_source | :: ElectricEnergySource or VoidEnergySource | The emissions set on the energy source are ignored so lamps cannot produce pollution.
The emissions set on the energy source are ignored so lamps cannot produce pollution.
light optional | :: LightDefinition | What color the lamp will be when it is on, and receiving power.
What color the lamp will be when it is on, and receiving power.
light_when_colored optional | :: LightDefinition | This refers to when the light is in a circuit network, and is lit a certain color based on a signal value.
This refers to when the light is in a circuit network, and is lit a certain color based on a signal value.
circuit_wire_max_distance optional | :: double | The maximum circuit wire distance for this entity.
The maximum circuit wire distance for this entity.
draw_copper_wires optional | :: bool |
draw_circuit_wires optional | :: bool |
circuit_connector new optional | :: CircuitConnectorDefinition |
glow_size optional | :: float |
glow_color_intensity optional | :: float |
darkness_for_all_lamps_on optional | :: float | darkness_for_all_lamps_on must be > darkness_for_all_lamps_off. [...]
darkness_for_all_lamps_on must be > darkness_for_all_lamps_off. [...]
darkness_for_all_lamps_off optional | :: float | darkness_for_all_lamps_on must be > darkness_for_all_lamps_off. [...]
darkness_for_all_lamps_on must be > darkness_for_all_lamps_off. [...]
always_on optional | :: bool | Whether the lamp should always be on.
Whether the lamp should always be on.
signal_to_color_mapping optional | :: array[SignalColorMapping] |
glow_render_mode optional | :: `"additive"` or `"multiplicative"` |
default_red_signal new optional | :: SignalIDConnector |
default_green_signal new optional | :: SignalIDConnector |
default_blue_signal new optional | :: SignalIDConnector |
default_rgb_signal new optional | :: SignalIDConnector |

## LandMinePrototype 'land-mine' changed

picture_safe optional | :: Sprite | The sprite of the landmine before it is armed (just after placing).
The sprite of the landmine before it is armed (just after placing).
picture_set optional | :: Sprite | The sprite of the landmine of a friendly force when it is armed.
The sprite of the landmine of a friendly force when it is armed.
trigger_radius | :: double |
picture_set_enemy optional | :: Sprite | The sprite of the landmine of an enemy force when it is armed.
The sprite of the landmine of an enemy force when it is armed.
timeout optional | :: uint32 | Time between placing and the landmine being armed, in ticks.
Time between placing and the landmine being armed, in ticks.
action optional | :: Trigger |
ammo_category optional | :: AmmoCategoryID |
force_die_on_attack optional | :: bool | Force the landmine to kill itself when exploding.
Force the landmine to kill itself when exploding.
trigger_force optional | :: ForceCondition |
trigger_collision_mask changed optional | :: CollisionMaskConnector | Collision mask that another entity must collide with to make this landmine blow up.
Collision mask that another entity must collide with to make this landmine blow up.

## LaneSplitterPrototype 'lane-splitter' new

structure_animation_speed_coefficient optional | :: double |
structure_animation_movement_cooldown optional | :: uint32 |
structure | :: Animation4Way |
structure_patch optional | :: Animation4Way |

## LegacyCurvedRailPrototype 'legacy-curved-rail' new

No new properties

## LegacyStraightRailPrototype 'legacy-straight-rail' new

No new properties

## LightningAttractorPrototype 'lightning-attractor' new

chargable_graphics optional | :: ChargableGraphics |
lightning_strike_offset optional | :: MapPosition |
efficiency optional | :: double | Cannot be less than 0.
Cannot be less than 0.
range_elongation optional | :: double |
energy_source optional | :: ElectricEnergySource | Mandatory if `efficiency` is larger than 0. [...]
Mandatory if `efficiency` is larger than 0. [...]

## LightningPrototype 'lightning' new

graphics_set optional | :: LightningGraphicsSet |
sound optional | :: Sound |
attracted_volume_modifier optional | :: float |
strike_effect optional | :: Trigger |
source_offset optional | :: Vector |
source_variance optional | :: Vector |
damage optional | :: double |
energy optional | :: Energy |
time_to_damage optional | :: uint16 | Must be less than or equal to `effect_duration`.
Must be less than or equal to `effect_duration`.
effect_duration | :: uint16 |

## LinkedBeltPrototype 'linked-belt' changed

structure optional | :: LinkedBeltStructure |
structure_render_layer optional | :: RenderLayer |
allow_clone_connection optional | :: bool |
allow_blueprint_connection optional | :: bool |
allow_side_loading optional | :: bool |

## LinkedContainerPrototype 'linked-container' changed

inventory_size | :: ItemStackIndex | Must be > 0.
Must be > 0.
picture optional | :: Sprite |
inventory_type changed optional | :: `"normal"` or `"with_bar"` or `"with_filters_and_bar"` | Whether the inventory of this container can be filtered (like cargo wagons) or not.
Whether the inventory of this container can be filtered (like cargo wagons) or not.
gui_mode optional | :: `"all"` or `"none"` or `"admins"` | Players that can access the GUI to change the link ID.
Players that can access the GUI to change the link ID.
circuit_wire_max_distance optional | :: double | The maximum circuit wire distance for this linked container.
The maximum circuit wire distance for this linked container.
draw_copper_wires optional | :: bool |
draw_circuit_wires optional | :: bool |
circuit_connector new optional | :: CircuitConnectorDefinition |

## Loader1x1Prototype 'loader-1x1'

No new properties

## Loader1x2Prototype 'loader'

No new properties

## LoaderPrototype 'loader' changed

structure optional | :: LoaderStructure |
filter_count | :: uint8 | How many item filters this loader has. [...]
How many item filters this loader has. [...]
structure_render_layer optional | :: RenderLayer |
circuit_connector_layer new optional | :: RenderLayer | Render layer for all directions of the circuit connectors.
Render layer for all directions of the circuit connectors.
container_distance optional | :: double | The distance between the position of this loader and the tile of the loader's container target.
The distance between the position of this loader and the tile of the loader's container target.
allow_rail_interaction optional | :: bool | Whether this loader can load and unload RollingStockPrototype.
Whether this loader can load and unload RollingStockPrototype.
allow_container_interaction optional | :: bool | Whether this loader can load and unload stationary inventories such as containers and crafting machines.
Whether this loader can load and unload stationary inventories such as containers and crafting machines.
max_belt_stack_size new optional | :: uint8 | Loader will not create stacks on belt that are larger than this value. [...]
Loader will not create stacks on belt that are larger than this value. [...]
belt_length optional | :: double | How long this loader's belt is. [...]
How long this loader's belt is. [...]
energy_source optional | :: ElectricEnergySource or HeatEnergySource or FluidEnergySource or VoidEnergySource |
energy_per_item optional | :: Energy | Energy in Joules. [...]
Energy in Joules. [...]
circuit_wire_max_distance new optional | :: double | The maximum circuit wire distance for this entity.
The maximum circuit wire distance for this entity.
draw_copper_wires new optional | :: bool |
draw_circuit_wires new optional | :: bool |
circuit_connector new optional | :: array[CircuitConnectorDefinition] | First the four cardinal directions for `direction_out`, followed by the four directions for `direction_in`.
First the four cardinal directions for `direction_out`, followed by the four directions for `direction_in`.

## LocomotivePrototype 'locomotive'

max_power | :: Energy |
reversing_power_modifier | :: double |
energy_source | :: BurnerEnergySource or VoidEnergySource |
front_light optional | :: LightDefinition |
front_light_pictures changed optional | :: RollingStockRotatedSlopedGraphics |
darkness_to_render_light_animation optional | :: float |
max_snap_to_train_stop_distance optional | :: float | In tiles. [...]
In tiles. [...]

## LogisticContainerPrototype 'logistic-container' changed

logistic_mode | :: union | The way this chest interacts with the logistic network.
The way this chest interacts with the logistic network.
max_logistic_slots optional | :: uint16 | The number of request slots this logistics container has. [...]
The number of request slots this logistics container has. [...]
trash_inventory_size new optional | :: ItemStackIndex |
render_not_in_network_icon optional | :: bool | Whether the "no network" icon should be rendered on this entity if the entity is not within a logistics network.
Whether the "no network" icon should be rendered on this entity if the entity is not within a logistics network.
opened_duration optional | :: uint8 |
animation optional | :: Animation | Drawn when a robot brings/takes items from this container.
Drawn when a robot brings/takes items from this container.
landing_location_offset optional | :: Vector | The offset from the center of this container where a robot visually brings/takes items.
The offset from the center of this container where a robot visually brings/takes items.
use_exact_mode optional | :: bool | Whether logistic robots have to deliver the exact amount of items requested to this logistic container instead of over-delivering (within their cargo size).
Whether logistic robots have to deliver the exact amount of items requested to this logistic container instead of over-delivering (within their cargo size).
animation_sound optional | :: Sound | Played when a robot brings/takes items from this container. [...]
Played when a robot brings/takes items from this container. [...]

## LogisticRobotPrototype 'logistic-robot'

idle_with_cargo optional | :: RotatedAnimation | Only the first frame of the animation is drawn. [...]
Only the first frame of the animation is drawn. [...]
in_motion_with_cargo optional | :: RotatedAnimation | Only the first frame of the animation is drawn. [...]
Only the first frame of the animation is drawn. [...]
shadow_idle_with_cargo optional | :: RotatedAnimation | Only the first frame of the animation is drawn. [...]
Only the first frame of the animation is drawn. [...]
shadow_in_motion_with_cargo optional | :: RotatedAnimation | Only the first frame of the animation is drawn. [...]
Only the first frame of the animation is drawn. [...]

## MapGenPresets 'map-gen-presets'

type | :: `"map-gen-presets"` |
name | :: string | Name of the map gen presets. [...]
Name of the map gen presets. [...]

Custom properties | :: string → MapGenPreset | Presets are defined as uniquely named MapGenPreset properties of the prototype. [...]
Presets are defined as uniquely named MapGenPreset properties of the prototype. [...]

## MapSettings 'map-settings' changed

type | :: `"map-settings"` |
name | :: string | Name of the map-settings. [...]
Name of the map-settings. [...]
pollution | :: PollutionSettings |
steering | :: SteeringSettings |
enemy_evolution | :: EnemyEvolutionSettings |
enemy_expansion | :: EnemyExpansionSettings |
unit_group | :: UnitGroupSettings |
path_finder | :: PathFinderSettings |
max_failed_behavior_count | :: uint32 | If a behavior fails this many times, the enemy (or enemy group) is destroyed. [...]
If a behavior fails this many times, the enemy (or enemy group) is destroyed. [...]
difficulty_settings | :: DifficultySettings |
asteroids new | :: AsteroidSettings |

## MarketPrototype 'market'

picture optional | :: Sprite |
allow_access_to_all_forces optional | :: bool | Whether all forces are allowed to open this market.
Whether all forces are allowed to open this market.

## MiningDrillPrototype 'mining-drill' changed

vector_to_place_result | :: Vector | The position where any item results are placed, when the mining drill is facing north (default direction). [...]
The position where any item results are placed, when the mining drill is facing north (default direction). [...]
resource_searching_radius | :: double | The distance from the centre of the mining drill to search for resources in. [...]
The distance from the centre of the mining drill to search for resources in. [...]
energy_usage | :: Energy | The amount of energy used by the drill while mining. [...]
The amount of energy used by the drill while mining. [...]
mining_speed | :: double | The speed of this drill.
The speed of this drill.
energy_source | :: EnergySource | The energy source of this mining drill.
The energy source of this mining drill.
resource_categories | :: array[ResourceCategoryID] | The names of the ResourceCategory that can be mined by this drill. [...]
The names of the ResourceCategory that can be mined by this drill. [...]
output_fluid_box optional | :: FluidBox |
input_fluid_box optional | :: FluidBox |
graphics_set optional | :: MiningDrillGraphicsSet |
wet_mining_graphics_set optional | :: MiningDrillGraphicsSet |
perceived_performance new optional | :: PerceivedPerformance | Affects animation speed.
Affects animation speed.
base_picture optional | :: Sprite4Way | Used by the pumpjack to have a static 4 way sprite.
Used by the pumpjack to have a static 4 way sprite.
effect_receiver new optional | :: EffectReceiver |
module_slots new optional | :: ItemStackIndex | The number of module slots in this machine.
The number of module slots in this machine.
allowed_effects optional | :: EffectTypeLimitation | Sets the modules and beacon effects that are allowed to be used on this mining drill.
Sets the modules and beacon effects that are allowed to be used on this mining drill.
allowed_module_categories new optional | :: array[ModuleCategoryID] | Sets the module categories that are allowed to be inserted into this machine.
Sets the module categories that are allowed to be inserted into this machine.
radius_visualisation_picture optional | :: Sprite | The sprite used to show the range of the mining drill.
The sprite used to show the range of the mining drill.
circuit_wire_max_distance optional | :: double | The maximum circuit wire distance for this entity.
The maximum circuit wire distance for this entity.
draw_copper_wires optional | :: bool |
draw_circuit_wires optional | :: bool |
base_render_layer optional | :: RenderLayer |
resource_drain_rate_percent new optional | :: uint8 |
shuffle_resources_to_mine new optional | :: bool |
drops_full_belt_stacks new optional | :: bool |
moving_sound new optional | :: InterruptibleSound |
drilling_sound new optional | :: InterruptibleSound |
drilling_sound_animation_start_frame new optional | :: uint16 |
drilling_sound_animation_end_frame new optional | :: uint16 |
monitor_visualization_tint optional | :: Color | When this mining drill is connected to the circuit network, the resource that it is reading (either the entire resource patch, or the resource in the mining area of the drill, depending on circuit network setting), is tinted in this color when mousing over the mining drill.
When this mining drill is connected to the circuit network, the resource that it is reading (either the entire resource patch, or the resource in the mining area of the drill, depending on circuit network setting), is tinted in this color when mousing over the mining drill.
circuit_connector new optional | :: {CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition} |
filter_count new optional | :: uint8 | How many filters this mining drill has. [...]
How many filters this mining drill has. [...]

## ModuleCategory 'module-category'

No new properties

## ModulePrototype 'module' changed

category | :: ModuleCategoryID | Used when upgrading modules: Ctrl + click modules into an entity and it will replace lower tier modules of the same category with higher tier modules.
Used when upgrading modules: Ctrl + click modules into an entity and it will replace lower tier modules of the same category with higher tier modules.
tier | :: uint32 | Tier of the module inside its category. [...]
Tier of the module inside its category. [...]
effect | :: Effect | The effect of the module on the machine it's inserted in, such as increased pollution.
The effect of the module on the machine it's inserted in, such as increased pollution.
requires_beacon_alt_mode optional | :: bool |
art_style optional | :: string | Chooses with what art style the module is shown inside beacons. [...]
Chooses with what art style the module is shown inside beacons. [...]
beacon_tint optional | :: BeaconVisualizationTints |

## ModuleTransferAchievementPrototype 'module-transfer-achievement' new

module | :: ItemID | This will trigger the achievement, if this module is transferred.
This will trigger the achievement, if this module is transferred.
amount optional | :: uint32 | How many modules need to be transferred.
How many modules need to be transferred.
limited_to_one_game optional | :: bool | If this is false, the player carries over their statistics from this achievement through all their saves.
If this is false, the player carries over their statistics from this achievement through all their saves.

## MouseCursor 'mouse-cursor'

type | :: `"mouse-cursor"` |
name | :: string | Name of the prototype.
Name of the prototype.
system_cursor optional | :: `"arrow"` or `"i-beam"` or `"crosshair"` or `"wait-arrow"` or `"size-all"` or `"no"` or `"hand"` | Either this or the other three properties have to be present.
Either this or the other three properties have to be present.
filename optional | :: FileName | Mandatory if `system_cursor` is not defined.
Mandatory if `system_cursor` is not defined.
hot_pixel_x optional | :: int16 | Mandatory if `system_cursor` is not defined.
Mandatory if `system_cursor` is not defined.
hot_pixel_y optional | :: int16 | Mandatory if `system_cursor` is not defined.
Mandatory if `system_cursor` is not defined.

## MovementBonusEquipmentPrototype 'movement-bonus-equipment'

energy_consumption | :: Energy |
movement_bonus | :: double | Multiplier of the character speed/vehicle acceleration.
Multiplier of the character speed/vehicle acceleration.

## NamedNoiseExpression 'noise-expression' changed

expression | :: NoiseExpression | The noise expression itself. [...]
The noise expression itself. [...]
local_expressions new optional | :: dictionary[string → NoiseExpression] | A map of expression name to expression. [...]
A map of expression name to expression. [...]
local_functions new optional | :: dictionary[string → NoiseFunction] | A map of function name to function. [...]
A map of function name to function. [...]
intended_property optional | :: string | Names the property that this expression is intended to provide a value for, if any. [...]
Names the property that this expression is intended to provide a value for, if any. [...]

## NamedNoiseFunction 'noise-function' new

parameters | :: array[string] | The order of the parameters matters because functions can also be called with positional arguments. [...]
The order of the parameters matters because functions can also be called with positional arguments. [...]
expression | :: NoiseExpression |
local_expressions optional | :: dictionary[string → NoiseExpression] | A map of expression name to expression. [...]
A map of expression name to expression. [...]
local_functions optional | :: dictionary[string → NoiseFunction] | A map of function name to function. [...]
A map of function name to function. [...]

## NightVisionEquipmentPrototype 'night-vision-equipment'

energy_input | :: Energy |
color_lookup | :: DaytimeColorLookupTable |
darkness_to_turn_on optional | :: float | Must be >= 0 and <= 1.
Must be >= 0 and <= 1.
activate_sound optional | :: Sound |
deactivate_sound optional | :: Sound |

## OffshorePumpPrototype 'offshore-pump' changed

fluid_box | :: FluidBox |
pumping_speed changed | :: FluidAmount | How many units of fluid are produced per tick. [...]
How many units of fluid are produced per tick. [...]
fluid_source_offset new | :: Vector |
perceived_performance new optional | :: PerceivedPerformance | Affects animation speed.
Affects animation speed.
graphics_set optional | :: OffshorePumpGraphicsSet |
energy_source new | :: EnergySource | Defines how the offshore pump is powered. [...]
Defines how the offshore pump is powered. [...]
energy_usage new | :: Energy | Sets how much energy this offshore pump consumes. [...]
Sets how much energy this offshore pump consumes. [...]
remove_on_tile_collision optional | :: bool |
always_draw_fluid optional | :: bool | If false, the offshore pump will not show fluid present (visually) before there is an output connected. [...]
If false, the offshore pump will not show fluid present (visually) before there is an output connected. [...]
circuit_wire_max_distance optional | :: double | The maximum circuit wire distance for this entity.
The maximum circuit wire distance for this entity.
draw_copper_wires optional | :: bool |
draw_circuit_wires optional | :: bool |
circuit_connector new optional | :: {CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition} |

## ParticlePrototype 'optimized-particle'

pictures optional | :: AnimationVariations | Picture variation count and individual frame count must be equal to shadow variation count.
Picture variation count and individual frame count must be equal to shadow variation count.
life_time | :: uint16 | Can't be 1.
Can't be 1.
shadows optional | :: AnimationVariations | Shadow variation variation count and individual frame count must be equal to picture variation count.
Shadow variation variation count and individual frame count must be equal to picture variation count.
draw_shadow_when_on_ground optional | :: bool |
regular_trigger_effect optional | :: TriggerEffect |
ended_in_water_trigger_effect optional | :: TriggerEffect |
ended_on_ground_trigger_effect optional | :: TriggerEffect |
render_layer optional | :: RenderLayer |
render_layer_when_on_ground optional | :: RenderLayer |
regular_trigger_effect_frequency optional | :: uint32 | Can't be 1.
Can't be 1.
movement_modifier_when_on_ground optional | :: float |
movement_modifier optional | :: float |
vertical_acceleration optional | :: float | Has to be >= -0.01 and <= 0.01.
Has to be >= -0.01 and <= 0.01.
mining_particle_frame_speed optional | :: float |
fade_away_duration optional | :: uint16 | Defaults to `life_time` / 5, but at most 60. [...]
Defaults to `life_time` / 5, but at most 60. [...]

## ParticleSourcePrototype 'particle-source' changed

time_to_live | :: float |
time_before_start | :: float |
height | :: float |
vertical_speed | :: float |
horizontal_speed | :: float |
particle optional | :: ParticleID | Mandatory if `smoke` is not defined.
Mandatory if `smoke` is not defined.
smoke optional | :: array[SmokeSource] | Mandatory if `particle` is not defined.
Mandatory if `particle` is not defined.
time_to_live_deviation optional | :: float |
time_before_start_deviation optional | :: float |
height_deviation optional | :: float |
vertical_speed_deviation optional | :: float |
horizontal_speed_deviation optional | :: float |

## PipePrototype 'pipe'

fluid_box | :: FluidBox | The area of the entity where fluid/gas inputs, and outputs.
The area of the entity where fluid/gas inputs, and outputs.
horizontal_window_bounding_box | :: BoundingBox |
vertical_window_bounding_box | :: BoundingBox |
pictures optional | :: PipePictures | All graphics for this pipe.
All graphics for this pipe.

## PipeToGroundPrototype 'pipe-to-ground' changed

fluid_box | :: FluidBox |
pictures changed optional | :: Sprite4Way |
frozen_patch new optional | :: Sprite4Way |
visualization new optional | :: Sprite4Way |
disabled_visualization new optional | :: Sprite4Way |
draw_fluid_icon_override optional | :: bool | Causes fluid icon to always be drawn, ignoring the usual pair requirement.
Causes fluid icon to always be drawn, ignoring the usual pair requirement.

## PlaceEquipmentAchievementPrototype 'place-equipment-achievement' new

armor | :: ItemID |
limit_quality | :: QualityID |
limit_equip_quality | :: QualityID |
amount optional | :: uint32 |
limited_to_one_game optional | :: bool | If this is false, the player carries over their statistics from this achievement through all their saves.
If this is false, the player carries over their statistics from this achievement through all their saves.

## PlanetPrototype 'planet' new

map_seed_offset optional | :: uint32 |
entities_require_heating optional | :: bool |
pollutant_type optional | :: AirbornePollutantID |
persistent_ambient_sounds optional | :: PersistentWorldAmbientSoundsDefinition |
surface_render_parameters optional | :: SurfaceRenderParameters |
player_effects optional | :: Trigger |
ticks_between_player_effects optional | :: MapTick |
map_gen_settings optional | :: PlanetPrototypeMapGenSettings |
surface_properties optional | :: dictionary[SurfacePropertyID → double] |
lightning_properties optional | :: LightningProperties |

## PlantPrototype 'plant' new

growth_ticks | :: MapTick | Must be positive.
Must be positive.
harvest_emissions optional | :: dictionary[AirbornePollutantID → double] | The burst of pollution to emit when the plant is harvested.
The burst of pollution to emit when the plant is harvested.
agricultural_tower_tint optional | :: RecipeTints |

## PlayerDamagedAchievementPrototype 'player-damaged-achievement'

minimum_damage | :: float | This will trigger the achievement, if the amount of damage taken by the dealer, is more than this.
This will trigger the achievement, if the amount of damage taken by the dealer, is more than this.
should_survive | :: bool | This sets the achievement to only trigger, if you survive the minimum amount of damage. [...]
This sets the achievement to only trigger, if you survive the minimum amount of damage. [...]
type_of_dealer optional | :: string | This will trigger the achievement, if the player takes damage from this specific entity type.
This will trigger the achievement, if the player takes damage from this specific entity type.

## deprecated PlayerPortPrototype 'player-port' changed

No new properties

## PowerSwitchPrototype 'power-switch' changed

power_on_animation optional | :: Animation |
overlay_start optional | :: Animation |
overlay_loop optional | :: Animation |
led_on optional | :: Sprite |
led_off optional | :: Sprite |
frozen_patch new optional | :: Sprite |
overlay_start_delay | :: uint8 |
circuit_wire_connection_point | :: WireConnectionPoint |
left_wire_connection_point | :: WireConnectionPoint |
right_wire_connection_point | :: WireConnectionPoint |
wire_max_distance optional | :: double |
draw_copper_wires optional | :: bool |
draw_circuit_wires optional | :: bool |

## ProcessionLayerInheritanceGroup 'procession-layer-inheritance-group' new

intermezzo_application optional | :: TransitionApplication |
arrival_application optional | :: TransitionApplication |

## ProcessionPrototype 'procession' new

timeline | :: ProcessionTimeline | Used when leaving or arriving to a station.
Used when leaving or arriving to a station.
ground_timeline optional | :: ProcessionTimeline | Used alternatively when landing to ground.
Used alternatively when landing to ground.
usage | :: `"departure"` or `"arrival"` or `"intermezzo"` | Arrival and Departure are to be referenced by name. [...]
Arrival and Departure are to be referenced by name. [...]
procession_style | :: uint32 or array[uint32] | Indexes used to match transitions from different surfaces together. [...]
Indexes used to match transitions from different surfaces together. [...]

## ProduceAchievementPrototype 'produce-achievement' changed

amount | :: MaterialAmountType | This will set the amount of items or fluids needed to craft, for the player to complete the achievement.
This will set the amount of items or fluids needed to craft, for the player to complete the achievement.
limited_to_one_game | :: bool | If this is false, the player carries over their statistics from this achievement through all their saves.
If this is false, the player carries over their statistics from this achievement through all their saves.
item_product optional | :: ItemID | Mandatory if `fluid_product` is not defined. [...]
Mandatory if `fluid_product` is not defined. [...]
quality new optional | :: QualityID |
fluid_product optional | :: FluidID | Mandatory if `item_product` is not defined. [...]
Mandatory if `item_product` is not defined. [...]

## ProducePerHourAchievementPrototype 'produce-per-hour-achievement'

amount | :: MaterialAmountType | This is how much the player has to craft in an hour, to receive the achievement.
This is how much the player has to craft in an hour, to receive the achievement.
item_product optional | :: ItemID | Mandatory if `fluid_product` is not defined. [...]
Mandatory if `fluid_product` is not defined. [...]
fluid_product optional | :: FluidID | Mandatory if `item_product` is not defined. [...]
Mandatory if `item_product` is not defined. [...]

## ProgrammableSpeakerPrototype 'programmable-speaker' changed

energy_source | :: ElectricEnergySource or VoidEnergySource |
energy_usage_per_tick | :: Energy |
sprite optional | :: Sprite |
maximum_polyphony | :: uint32 |
instruments | :: array[ProgrammableSpeakerInstrument] |
audible_distance_modifier optional | :: float |
circuit_wire_max_distance optional | :: double |
draw_copper_wires optional | :: bool |
draw_circuit_wires optional | :: bool |
circuit_connector new optional | :: CircuitConnectorDefinition |

## ProjectilePrototype 'projectile' changed

acceleration | :: double | Must be != 0 if `turning_speed_increases_exponentially_with_projectile_speed` is true.
Must be != 0 if `turning_speed_increases_exponentially_with_projectile_speed` is true.
animation changed optional | :: RotatedAnimationVariations |
rotatable optional | :: bool | Whether the animation of the projectile is rotated to match the direction of travel.
Whether the animation of the projectile is rotated to match the direction of travel.
enable_drawing_with_mask optional | :: bool |
direction_only optional | :: bool | Setting this to true can be used to disable projectile homing behaviour.
Setting this to true can be used to disable projectile homing behaviour.
hit_at_collision_position optional | :: bool | When true the entity is hit at the position on its collision box the projectile first collides with. [...]
When true the entity is hit at the position on its collision box the projectile first collides with. [...]
force_condition optional | :: ForceCondition |
piercing_damage optional | :: float | Whenever an entity is hit by the projectile, this number gets reduced by the health of the entity. [...]
Whenever an entity is hit by the projectile, this number gets reduced by the health of the entity. [...]
max_speed optional | :: double | Must be greater than or equal to 0.
Must be greater than or equal to 0.
turn_speed optional | :: float | Must be greater than or equal to 0.
Must be greater than or equal to 0.
speed_modifier optional | :: Vector |
height optional | :: double |
action optional | :: Trigger | Executed when the projectile hits something.
Executed when the projectile hits something.
final_action optional | :: Trigger | Executed when the projectile hits something, after `action` and only if the entity that was hit was destroyed. [...]
Executed when the projectile hits something, after `action` and only if the entity that was hit was destroyed. [...]
light optional | :: LightDefinition |
smoke optional | :: array[SmokeSource] |
hit_collision_mask changed optional | :: CollisionMaskConnector | Defaults to the mask from UtilityConstants::default_collision_masks when indexed by `"projectile/hit"`.
Defaults to the mask from UtilityConstants::default_collision_masks when indexed by `"projectile/hit"`.
turning_speed_increases_exponentially_with_projectile_speed optional | :: bool |
shadow changed optional | :: RotatedAnimationVariations |

## Prototype abstract new

factoriopedia_alternative optional | :: string | The ID type corresponding to the prototype that inherits from this. [...]
The ID type corresponding to the prototype that inherits from this. [...]

## PrototypeBase abstract changed

type | :: string | Specifies the kind of prototype this is. [...]
Specifies the kind of prototype this is. [...]
name | :: string | Unique textual identification of the prototype. [...]
Unique textual identification of the prototype. [...]
order optional | :: Order | Used to order prototypes in inventory, recipes and GUIs. [...]
Used to order prototypes in inventory, recipes and GUIs. [...]
localised_name optional | :: LocalisedString | Overwrites the name set in the locale file. [...]
Overwrites the name set in the locale file. [...]
localised_description optional | :: LocalisedString | Overwrites the description set in the locale file. [...]
Overwrites the description set in the locale file. [...]
factoriopedia_description new optional | :: LocalisedString | Provides additional description used in factoriopedia.
Provides additional description used in factoriopedia.
subgroup new optional | :: ItemSubGroupID | The name of an ItemSubGroup.
The name of an ItemSubGroup.
hidden new optional | :: bool |
hidden_in_factoriopedia new optional | :: bool |
parameter new optional | :: bool | Whether the prototype is a special type which can be used to parametrize blueprints and doesn't have other function.
Whether the prototype is a special type which can be used to parametrize blueprints and doesn't have other function.
factoriopedia_simulation new optional | :: SimulationDefinition | The simulation shown when looking at this prototype in the Factoriopedia GUI.
The simulation shown when looking at this prototype in the Factoriopedia GUI.

## PumpPrototype 'pump' changed

fluid_box | :: FluidBox | The area of the entity where fluid travels.
The area of the entity where fluid travels.
energy_source | :: EnergySource | The type of energy the pump uses.
The type of energy the pump uses.
energy_usage | :: Energy | The amount of energy the pump uses.
The amount of energy the pump uses.
pumping_speed changed | :: FluidAmount | The amount of fluid this pump transfers per tick.
The amount of fluid this pump transfers per tick.
animations optional | :: Animation4Way | The animation for the pump.
The animation for the pump.
fluid_wagon_connector_speed optional | :: double |
fluid_wagon_connector_alignment_tolerance optional | :: double |
fluid_wagon_connector_frame_count optional | :: uint8 |
fluid_animation optional | :: Animation4Way |
glass_pictures optional | :: Sprite4Way |
frozen_patch new optional | :: Sprite4Way |
circuit_wire_max_distance optional | :: double |
draw_copper_wires optional | :: bool |
draw_circuit_wires optional | :: bool |
circuit_connector new optional | :: {CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition} |
fluid_wagon_connector_graphics optional | :: FluidWagonConnectorGraphics |

## QualityPrototype 'quality' new

draw_sprite_by_default optional | :: bool |
color | :: Color |
level | :: uint32 | Requires Space Age to use level greater than `0`.
Requires Space Age to use level greater than `0`.
next optional | :: QualityID |
next_probability optional | :: double | Must be in range [0, 1.0].
Must be in range [0, 1.0].
icons optional | :: array[IconData] | Can't be an empty array.
Can't be an empty array.
icon optional | :: FileName | Path to the icon file. [...]
Path to the icon file. [...]
icon_size optional | :: SpriteSizeType | The size of the square icon, in pixels. [...]
The size of the square icon, in pixels. [...]
beacon_power_usage_multiplier optional | :: float | Must be >= 0.
Must be >= 0.
mining_drill_resource_drain_multiplier optional | :: float | Must be in range `[0, 1]`.
Must be in range `[0, 1]`.
science_pack_drain_multiplier optional | :: float | Must be in range `[0, 1]`.
Must be in range `[0, 1]`.

## RadarPrototype 'radar' changed

energy_usage | :: Energy | The amount of energy this radar uses.
The amount of energy this radar uses.
energy_per_sector | :: Energy | The amount of energy it takes to scan a sector. [...]
The amount of energy it takes to scan a sector. [...]
energy_per_nearby_scan | :: Energy | The amount of energy the radar has to consume for nearby scan to be performed. [...]
The amount of energy the radar has to consume for nearby scan to be performed. [...]
energy_source | :: EnergySource | The energy source for this radar.
The energy source for this radar.
pictures optional | :: RotatedSprite |
frozen_patch new optional | :: Sprite |
max_distance_of_sector_revealed | :: uint32 | The radius of the area this radar can chart, in chunks.
The radius of the area this radar can chart, in chunks.
max_distance_of_nearby_sector_revealed | :: uint32 | The radius of the area constantly revealed by this radar, in chunks.
The radius of the area constantly revealed by this radar, in chunks.
circuit_wire_max_distance new optional | :: double | The maximum circuit wire distance for this entity.
The maximum circuit wire distance for this entity.
draw_copper_wires new optional | :: bool |
draw_circuit_wires new optional | :: bool |
circuit_connector new optional | :: CircuitConnectorDefinition |
radius_minimap_visualisation_color optional | :: Color |
rotation_speed optional | :: double |
connects_to_other_radars new optional | :: bool | If set to true, radars on the same surface will connect to other radars on the same surface using hidden wires with radar origin.
If set to true, radars on the same surface will connect to other radars on the same surface using hidden wires with radar origin.
reset_orientation_when_frozen new optional | :: bool |
energy_fraction_to_connect new optional | :: float | Must be between 0 and 1. [...]
Must be between 0 and 1. [...]
energy_fraction_to_disconnect new optional | :: float | Must be between 0 and 1. [...]
Must be between 0 and 1. [...]

## RailChainSignalPrototype 'rail-chain-signal' changed

No new properties

## RailPlannerPrototype 'rail-planner' changed

rails new | :: array[EntityID] | May not be an empty array. [...]
May not be an empty array. [...]
support new optional | :: EntityID | Name of a rail support.
Name of a rail support.
manual_length_limit new optional | :: double |

## RailPrototype 'rail' changed

walking_sound optional | :: Sound | Sound played when a character walks over this rail.
Sound played when a character walks over this rail.
pictures | :: RailPictureSet |
fence_pictures new optional | :: RailFenceGraphicsSet |
extra_planner_penalty new optional | :: double |
extra_planner_goal_penalty new optional | :: double |
forced_fence_segment_count new optional | :: uint8 | Must be 0, 2 or 4. [...]
Must be 0, 2 or 4. [...]
ending_shifts new optional | :: array[Vector] |
deconstruction_marker_positions new optional | :: array[Vector] |
removes_soft_decoratives new optional | :: bool |

## RailRampPrototype 'rail-ramp' new

support_range optional | :: float | Must be lower than 500 and at least 1.
Must be lower than 500 and at least 1.
collision_mask_allow_on_deep_oil_ocean optional | :: CollisionMaskConnector | Defaults to the mask from UtilityConstants::default_collision_masks when indexed by `"allow_on_deep_oil_ocean"`.
Defaults to the mask from UtilityConstants::default_collision_masks when indexed by `"allow_on_deep_oil_ocean"`.

## RailRemnantsPrototype 'rail-remnants' changed

pictures | :: RailPictureSet |
related_rail new | :: EntityID |
secondary_collision_box new optional | :: BoundingBox |

## RailSignalBasePrototype abstract changed

ground_picture_set new | :: RailSignalPictureSet |
elevated_picture_set new | :: RailSignalPictureSet |
circuit_wire_max_distance optional | :: double | The maximum circuit wire distance for this entity.
The maximum circuit wire distance for this entity.
draw_copper_wires optional | :: bool |
draw_circuit_wires optional | :: bool |
default_red_output_signal optional | :: SignalIDConnector |
default_orange_output_signal optional | :: SignalIDConnector |
default_green_output_signal optional | :: SignalIDConnector |
default_blue_output_signal new optional | :: SignalIDConnector |
elevated_collision_mask new optional | :: CollisionMaskConnector | Defaults to the mask from UtilityConstants::default_collision_masks when indexed by `type .. [...]
Defaults to the mask from UtilityConstants::default_collision_masks when indexed by `type .. [...]
elevated_selection_priority new optional | :: uint8 |

## RailSignalPrototype 'rail-signal'

No new properties

## RailSupportPrototype 'rail-support' new

graphics_set | :: RailSupportGraphicsSet |
support_range optional | :: float | Must be lower than 500 and at least 1.
Must be lower than 500 and at least 1.
not_buildable_if_no_rails optional | :: bool |
snap_to_spots_distance optional | :: float |
collision_mask_allow_on_deep_oil_ocean optional | :: CollisionMaskConnector | Defaults to the mask from UtilityConstants::default_collision_masks when indexed by `"allow_on_deep_oil_ocean"`.
Defaults to the mask from UtilityConstants::default_collision_masks when indexed by `"allow_on_deep_oil_ocean"`.
elevated_selection_boxes optional | :: array[BoundingBox] | Array must contain 8 items.
Array must contain 8 items.

## ReactorPrototype 'reactor' changed

working_light_picture changed optional | :: Animation |
heat_buffer | :: HeatBuffer | The energy output as heat.
The energy output as heat.
energy_source | :: EnergySource | May not be a heat energy source. [...]
May not be a heat energy source. [...]
consumption | :: Energy | How much energy this reactor can consume (from the input energy source) and then output as heat.
How much energy this reactor can consume (from the input energy source) and then output as heat.
connection_patches_connected optional | :: SpriteVariations | If defined, number of variations must be at least equal to count of connections defined in `heat_buffer`. [...]
If defined, number of variations must be at least equal to count of connections defined in `heat_buffer`. [...]
connection_patches_disconnected optional | :: SpriteVariations | If defined, number of variations must be at least equal to count of connections defined in `heat_buffer`. [...]
If defined, number of variations must be at least equal to count of connections defined in `heat_buffer`. [...]
heat_connection_patches_connected optional | :: SpriteVariations | If defined, number of variations must be at least equal to count of connections defined in `heat_buffer`. [...]
If defined, number of variations must be at least equal to count of connections defined in `heat_buffer`. [...]
heat_connection_patches_disconnected optional | :: SpriteVariations | If defined, number of variations must be at least equal to count of connections defined in `heat_buffer`. [...]
If defined, number of variations must be at least equal to count of connections defined in `heat_buffer`. [...]
lower_layer_picture optional | :: Sprite |
heat_lower_layer_picture optional | :: Sprite |
picture optional | :: Sprite |
light optional | :: LightDefinition |
meltdown_action optional | :: Trigger | The action is triggered when the reactor dies (is destroyed) at over 90% of max temperature.
The action is triggered when the reactor dies (is destroyed) at over 90% of max temperature.
neighbour_bonus optional | :: double |
scale_energy_usage optional | :: bool | When this is true, the reactor will stop consuming fuel/energy when the temperature has reached the maximum.
When this is true, the reactor will stop consuming fuel/energy when the temperature has reached the maximum.
use_fuel_glow_color optional | :: bool | Whether the reactor should use fuel_glow_color from the fuel item prototype as light color and tint for `working_light_picture`. [...]
Whether the reactor should use fuel_glow_color from the fuel item prototype as light color and tint for `working_light_picture`. [...]
default_fuel_glow_color optional | :: Color | When `use_fuel_glow_color` is true, this is the color used as `working_light_picture` tint for fuels that don't have glow color defined.
When `use_fuel_glow_color` is true, this is the color used as `working_light_picture` tint for fuels that don't have glow color defined.
circuit_wire_max_distance new optional | :: double | The maximum circuit wire distance for this entity.
The maximum circuit wire distance for this entity.
draw_copper_wires new optional | :: bool |
draw_circuit_wires new optional | :: bool |
circuit_connector new optional | :: CircuitConnectorDefinition |
default_temperature_signal new optional | :: SignalIDConnector |

## RecipeCategory 'recipe-category'

No new properties

## RecipePrototype 'recipe' changed

category optional | :: RecipeCategoryID | The category of this recipe. [...]
The category of this recipe. [...]
crafting_machine_tint changed optional | :: RecipeTints | Used by WorkingVisualisations::working_visualisations to tint certain layers with the recipe color. [...]
Used by WorkingVisualisations::working_visualisations to tint certain layers with the recipe color. [...]
icons optional | :: array[IconData] | Can't be an empty array.
Can't be an empty array.
icon optional | :: FileName | If given, this determines the recipe's icon. [...]
If given, this determines the recipe's icon. [...]
icon_size optional | :: SpriteSizeType | The size of the square icon, in pixels. [...]
The size of the square icon, in pixels. [...]
ingredients optional | :: array[IngredientPrototype] | A table containing ingredient names and amounts. [...]
A table containing ingredient names and amounts. [...]
results optional | :: array[ProductPrototype] | A table containing result names and amounts. [...]
A table containing result names and amounts. [...]
main_product optional | :: string | For recipes with one or more products: Subgroup, localised_name and icon default to the values of the singular/main product, but can be overwritten by the recipe. [...]
For recipes with one or more products: Subgroup, localised_name and icon default to the values of the singular/main product, but can be overwritten by the recipe. [...]
energy_required optional | :: double | The amount of time it takes to make this recipe. [...]
The amount of time it takes to make this recipe. [...]
emissions_multiplier optional | :: double |
maximum_productivity new optional | :: double |
requester_paste_multiplier optional | :: uint32 |
overload_multiplier optional | :: uint32 | Used to determine how many extra items are put into an assembling machine before it's considered "full enough". [...]
Used to determine how many extra items are put into an assembling machine before it's considered "full enough". [...]
allow_inserter_overload optional | :: bool | Whether the recipe is allowed to have the extra inserter overload bonus applied (4 * stack inserter stack size).
Whether the recipe is allowed to have the extra inserter overload bonus applied (4 * stack inserter stack size).
enabled optional | :: bool | This can be `false` to disable the recipe at the start of the game, or `true` to leave it enabled. [...]
This can be `false` to disable the recipe at the start of the game, or `true` to leave it enabled. [...]
hide_from_stats optional | :: bool | Hides the recipe from item/fluid production statistics.
Hides the recipe from item/fluid production statistics.
hide_from_player_crafting optional | :: bool | Hides the recipe from the player's crafting screen. [...]
Hides the recipe from the player's crafting screen. [...]
allow_decomposition optional | :: bool | Whether this recipe is allowed to be broken down for the recipe tooltip "Total raw" calculations.
Whether this recipe is allowed to be broken down for the recipe tooltip "Total raw" calculations.
allow_as_intermediate optional | :: bool | Whether the recipe can be used as an intermediate recipe in hand-crafting.
Whether the recipe can be used as an intermediate recipe in hand-crafting.
allow_intermediates optional | :: bool | Whether the recipe is allowed to use intermediate recipes when hand-crafting.
Whether the recipe is allowed to use intermediate recipes when hand-crafting.
always_show_made_in optional | :: bool | Whether the "Made in: " part of the tool-tip should always be present, and not only when the recipe can't be hand-crafted.
Whether the "Made in: " part of the tool-tip should always be present, and not only when the recipe can't be hand-crafted.
show_amount_in_title optional | :: bool | Whether the recipe name should have the product amount in front of it. [...]
Whether the recipe name should have the product amount in front of it. [...]
always_show_products optional | :: bool | Whether the products are always shown in the recipe tooltip.
Whether the products are always shown in the recipe tooltip.
unlock_results optional | :: bool | Whether enabling this recipe unlocks its item products to show in selection lists (item filters, logistic requests, etc.).
Whether enabling this recipe unlocks its item products to show in selection lists (item filters, logistic requests, etc.).
preserve_products_in_machine_output new optional | :: bool |
result_is_always_fresh new optional | :: bool | When set to true, the recipe will always produce fresh (non-spoiled) item even when the ingredients are spoiled.
When set to true, the recipe will always produce fresh (non-spoiled) item even when the ingredients are spoiled.
allow_consumption_message new optional | :: LocalisedString |
allow_speed_message new optional | :: LocalisedString |
allow_productivity_message new optional | :: LocalisedString |
allow_pollution_message new optional | :: LocalisedString |
allow_quality_message new optional | :: LocalisedString |
surface_conditions new optional | :: array[SurfaceCondition] |
hide_from_signal_gui new optional | :: bool |
allow_consumption new optional | :: bool |
allow_speed new optional | :: bool |
allow_productivity new optional | :: bool |
allow_pollution new optional | :: bool |
allow_quality new optional | :: bool |
allowed_module_categories new optional | :: array[ModuleCategoryID] | Sets the module categories that are allowed to be used with this recipe.
Sets the module categories that are allowed to be used with this recipe.
alternative_unlock_methods new optional | :: array[TechnologyID] |

## RemoteControllerPrototype 'remote-controller' new

type | :: `"remote-controller"` |
name | :: string | Name of the remote controller. [...]
Name of the remote controller. [...]
movement_speed | :: double | Must be >= 0.34375.
Must be >= 0.34375.

## RepairToolPrototype 'repair-tool' changed

speed | :: float | Entity health repaired per used ToolPrototype::durability. [...]
Entity health repaired per used ToolPrototype::durability. [...]

## ResearchAchievementPrototype 'research-achievement'

technology optional | :: TechnologyID | Mandatory if `research_all` is not defined. [...]
Mandatory if `research_all` is not defined. [...]
research_all optional | :: bool | Mandatory if `technology` is not defined. [...]
Mandatory if `technology` is not defined. [...]

## ResearchWithSciencePackAchievementPrototype 'research-with-science-pack-achievement' new

science_pack | :: ItemID |
amount optional | :: uint32 |

## ResourceCategory 'resource-category'

No new properties

## ResourceEntityPrototype 'resource' changed

stages optional | :: AnimationVariations | Entity's graphics, using a graphic sheet, with variation and depletion. [...]
Entity's graphics, using a graphic sheet, with variation and depletion. [...]
stage_counts | :: array[uint32] | Number of stages the animation has.
Number of stages the animation has.
infinite optional | :: bool | If the ore is infinitely minable, or if it will eventually run out of resource.
If the ore is infinitely minable, or if it will eventually run out of resource.
highlight optional | :: bool | If the resource should be highlighted when holding a mining drill that can mine it (holding a pumpjack highlights crude-oil in the base game).
If the resource should be highlighted when holding a mining drill that can mine it (holding a pumpjack highlights crude-oil in the base game).
randomize_visual_position optional | :: bool | Whether there should be a slight offset to graphics of the resource. [...]
Whether there should be a slight offset to graphics of the resource. [...]
map_grid optional | :: bool | Whether the resource should have a grid pattern on the map instead of a solid map color.
Whether the resource should have a grid pattern on the map instead of a solid map color.
draw_stateless_visualisation_under_building new optional | :: bool |
minimum optional | :: uint32 | Must be not 0 when `infinite = true`.
Must be not 0 when `infinite = true`.
normal optional | :: uint32 | Must be not 0 when `infinite = true`.
Must be not 0 when `infinite = true`.
infinite_depletion_amount optional | :: uint32 | Every time an infinite-type resource "ticks" lower it's lowered by that amount. [...]
Every time an infinite-type resource "ticks" lower it's lowered by that amount. [...]
resource_patch_search_radius optional | :: uint32 | When hovering over this resource in the map view: How far to search for other resource patches of this type to display as one (summing amount, white outline).
When hovering over this resource in the map view: How far to search for other resource patches of this type to display as one (summing amount, white outline).
category optional | :: ResourceCategoryID | The category for the resource. [...]
The category for the resource. [...]
walking_sound optional | :: Sound | Sound played when the player walks over this resource.
Sound played when the player walks over this resource.
driving_sound new optional | :: InterruptibleSound | Sound played when a CarPrototype drives over this resource.
Sound played when a CarPrototype drives over this resource.
stages_effect optional | :: AnimationVariations | An effect that can be overlaid above the normal ore graphics. [...]
An effect that can be overlaid above the normal ore graphics. [...]
effect_animation_period optional | :: float | How long it takes `stages_effect` to go from `min_effect_alpha` to `max_effect_alpha`.
How long it takes `stages_effect` to go from `min_effect_alpha` to `max_effect_alpha`.
effect_animation_period_deviation optional | :: float | How much `effect_animation_period` can deviate from its original value. [...]
How much `effect_animation_period` can deviate from its original value. [...]
effect_darkness_multiplier optional | :: float | How much the surface darkness should affect the alpha of `stages_effect`.
How much the surface darkness should affect the alpha of `stages_effect`.
min_effect_alpha optional | :: float | Minimal alpha value of `stages_effect`.
Minimal alpha value of `stages_effect`.
max_effect_alpha optional | :: float | Maximal alpha value of `stages_effect`.
Maximal alpha value of `stages_effect`.
tree_removal_probability optional | :: double | Must be greater than or equal to `0`.
Must be greater than or equal to `0`.
cliff_removal_probability optional | :: double | Must be greater than or equal to `0`.
Must be greater than or equal to `0`.
tree_removal_max_distance optional | :: double | Must be positive when `tree_removal_probability` is set.
Must be positive when `tree_removal_probability` is set.
mining_visualisation_tint optional | :: Color | Defaults to the resources map color if left unset and map color is set, otherwise defaults to white if left unset.
Defaults to the resources map color if left unset and map color is set, otherwise defaults to white if left unset.

## RoboportEquipmentPrototype 'roboport-equipment' changed

recharging_animation optional | :: Animation | The animation played at each charging point when a robot is charging there.
The animation played at each charging point when a robot is charging there.
spawn_and_station_height | :: float | Presumably states the height of the charging stations and thus an additive offset for the charging_offsets.
Presumably states the height of the charging stations and thus an additive offset for the charging_offsets.
charge_approach_distance | :: float | Presumably, the distance from the roboport at which robots will wait to charge.
Presumably, the distance from the roboport at which robots will wait to charge.
construction_radius | :: float | Can't be negative.
Can't be negative.
charging_energy | :: Energy |
spawn_and_station_shadow_height_offset optional | :: float |
stationing_render_layer_swap_height new optional | :: float | When robot ascends or descends to this roboport, at which height is should switch between `"air-object"` and `"object"` render layer.
When robot ascends or descends to this roboport, at which height is should switch between `"air-object"` and `"object"` render layer.
draw_logistic_radius_visualization optional | :: bool | Unused, as roboport equipment does not have a logistic radius that could be drawn.
Unused, as roboport equipment does not have a logistic radius that could be drawn.
draw_construction_radius_visualization optional | :: bool |
recharging_light optional | :: LightDefinition | The light emitted when charging a robot.
The light emitted when charging a robot.
charging_station_count optional | :: uint32 | How many charging points this roboport has. [...]
How many charging points this roboport has. [...]
charging_station_count_affected_by_quality new optional | :: bool |
charging_distance optional | :: float |
charging_station_shift optional | :: Vector |
charging_threshold_distance optional | :: float | Distance in tiles. [...]
Distance in tiles. [...]
robot_vertical_acceleration optional | :: float |
stationing_offset optional | :: Vector | The offset from the center of the roboport at which robots will enter and exit.
The offset from the center of the roboport at which robots will enter and exit.
robot_limit optional | :: ItemCountType | How many robots can exist in the network (cumulative).
How many robots can exist in the network (cumulative).
robots_shrink_when_entering_and_exiting optional | :: bool |
charging_offsets optional | :: array[Vector] | The offsets from the center of the roboport at which robots will charge. [...]
The offsets from the center of the roboport at which robots will charge. [...]
spawn_minimum optional | :: Energy | Minimum amount of energy that needs to available inside the roboport's buffer so that robots can be spawned.
Minimum amount of energy that needs to available inside the roboport's buffer so that robots can be spawned.
burner optional | :: BurnerEnergySource | Add this is if the roboport should be fueled directly instead of using power from the equipment grid.
Add this is if the roboport should be fueled directly instead of using power from the equipment grid.
power optional | :: Energy | Mandatory if `burner` is defined. [...]
Mandatory if `burner` is defined. [...]

## RoboportPrototype 'roboport' changed

energy_source | :: ElectricEnergySource or VoidEnergySource | The roboport's energy source.
The roboport's energy source.
energy_usage | :: Energy | The amount of energy the roboport uses when idle.
The amount of energy the roboport uses when idle.
recharge_minimum | :: Energy | Minimum charge that the roboport has to have after a blackout (0 charge/buffered energy) to begin working again. [...]
Minimum charge that the roboport has to have after a blackout (0 charge/buffered energy) to begin working again. [...]
robot_slots_count | :: ItemStackIndex | The number of robot slots in the roboport.
The number of robot slots in the roboport.
material_slots_count | :: ItemStackIndex | The number of repair pack slots in the roboport.
The number of repair pack slots in the roboport.
base optional | :: Sprite |
base_patch optional | :: Sprite |
frozen_patch new optional | :: Sprite |
base_animation optional | :: Animation | The animation played when the roboport is idle.
The animation played when the roboport is idle.
door_animation_up optional | :: Animation |
door_animation_down optional | :: Animation |
request_to_open_door_timeout | :: uint32 |
radar_range new optional | :: uint32 | Defaults to the max of logistic range or construction range rounded up to chunks.
Defaults to the max of logistic range or construction range rounded up to chunks.
recharging_animation optional | :: Animation | The animation played at each charging point when a robot is charging there.
The animation played at each charging point when a robot is charging there.
spawn_and_station_height | :: float | Presumably states the height of the charging stations and thus an additive offset for the charging_offsets.
Presumably states the height of the charging stations and thus an additive offset for the charging_offsets.
charge_approach_distance | :: float | The distance (in tiles) from the roboport at which robots will wait to charge. [...]
The distance (in tiles) from the roboport at which robots will wait to charge. [...]
logistics_radius | :: float | Can't be negative.
Can't be negative.
construction_radius | :: float | Can't be negative.
Can't be negative.
charging_energy | :: Energy | The maximum power provided to each charging station.
The maximum power provided to each charging station.
open_door_trigger_effect optional | :: TriggerEffect |
close_door_trigger_effect optional | :: TriggerEffect |
default_available_logistic_output_signal optional | :: SignalIDConnector |
default_total_logistic_output_signal optional | :: SignalIDConnector |
default_available_construction_output_signal optional | :: SignalIDConnector |
default_total_construction_output_signal optional | :: SignalIDConnector |
default_roboports_output_signal new optional | :: SignalIDConnector |
circuit_wire_max_distance optional | :: double | The maximum circuit wire distance for this entity.
The maximum circuit wire distance for this entity.
draw_copper_wires optional | :: bool |
draw_circuit_wires optional | :: bool |
circuit_connector new optional | :: CircuitConnectorDefinition |
max_logistic_slots new optional | :: LogisticFilterIndex |
spawn_and_station_shadow_height_offset optional | :: float |
stationing_render_layer_swap_height new optional | :: float | When robot ascends or descends to this roboport, at which height is should switch between `"air-object"` and `"object"` render layer.
When robot ascends or descends to this roboport, at which height is should switch between `"air-object"` and `"object"` render layer.
draw_logistic_radius_visualization optional | :: bool |
draw_construction_radius_visualization optional | :: bool |
recharging_light optional | :: LightDefinition | The light emitted when charging a robot.
The light emitted when charging a robot.
charging_station_count optional | :: uint32 | How many charging points this roboport has. [...]
How many charging points this roboport has. [...]
charging_station_count_affected_by_quality new optional | :: bool |
charging_distance optional | :: float |
charging_station_shift optional | :: Vector |
charging_threshold_distance optional | :: float | Unused.
Unused.
robot_vertical_acceleration optional | :: float |
stationing_offset optional | :: Vector | The offset from the center of the roboport at which robots will enter and exit.
The offset from the center of the roboport at which robots will enter and exit.
robot_limit optional | :: ItemCountType | Unused.
Unused.
robots_shrink_when_entering_and_exiting optional | :: bool |
charging_offsets optional | :: array[Vector] | The offsets from the center of the roboport at which robots will charge. [...]
The offsets from the center of the roboport at which robots will charge. [...]
logistics_connection_distance optional | :: float | Must be >= `logistics_radius`.
Must be >= `logistics_radius`.

## RobotWithLogisticInterfacePrototype abstract changed

max_payload_size | :: ItemCountType | The robot's cargo carrying capacity. [...]
The robot's cargo carrying capacity. [...]
idle optional | :: RotatedAnimation | Only the first frame of the animation is drawn. [...]
Only the first frame of the animation is drawn. [...]
in_motion optional | :: RotatedAnimation | Only the first frame of the animation is drawn. [...]
Only the first frame of the animation is drawn. [...]
shadow_idle optional | :: RotatedAnimation | Only the first frame of the animation is drawn. [...]
Only the first frame of the animation is drawn. [...]
shadow_in_motion optional | :: RotatedAnimation | Only the first frame of the animation is drawn. [...]
Only the first frame of the animation is drawn. [...]
destroy_action optional | :: Trigger | Applied when the robot expires (runs out of energy and FlyingRobotPrototype::speed_multiplier_when_out_of_energy is 0).
Applied when the robot expires (runs out of energy and FlyingRobotPrototype::speed_multiplier_when_out_of_energy is 0).
draw_cargo optional | :: bool |
charging_sound new optional | :: InterruptibleSound |

## RocketSiloPrototype 'rocket-silo' changed

active_energy_usage | :: Energy | Additional energy used during the following parts of the launch sequence: doors_opening, rocket_rising, arms_advance, engine_starting, arms_retract, doors_closing.
Additional energy used during the following parts of the launch sequence: doors_opening, rocket_rising, arms_advance, engine_starting, arms_retract, doors_closing.
lamp_energy_usage | :: Energy | May be 0. [...]
May be 0. [...]
rocket_entity | :: EntityID | Name of a RocketSiloRocketPrototype.
Name of a RocketSiloRocketPrototype.
arm_02_right_animation optional | :: Animation |
arm_01_back_animation optional | :: Animation |
arm_03_front_animation optional | :: Animation |
shadow_sprite optional | :: Sprite |
hole_sprite optional | :: Sprite |
hole_light_sprite optional | :: Sprite |
rocket_shadow_overlay_sprite optional | :: Sprite |
rocket_glow_overlay_sprite optional | :: Sprite |
door_back_sprite optional | :: Sprite |
door_front_sprite optional | :: Sprite |
base_day_sprite optional | :: Sprite |
base_front_sprite optional | :: Sprite |
red_lights_back_sprites optional | :: Sprite | Drawn from the start of the lights_blinking_open state until the end of the lights_blinking_close state.
Drawn from the start of the lights_blinking_open state until the end of the lights_blinking_close state.
red_lights_front_sprites optional | :: Sprite | Drawn from the start of the lights_blinking_open state until the end of the lights_blinking_close state.
Drawn from the start of the lights_blinking_open state until the end of the lights_blinking_close state.
base_frozen new optional | :: Sprite |
base_front_frozen new optional | :: Sprite |
hole_frozen new optional | :: Sprite |
door_back_frozen new optional | :: Sprite |
door_front_frozen new optional | :: Sprite |
hole_clipping_box | :: BoundingBox |
door_back_open_offset | :: Vector |
door_front_open_offset | :: Vector |
silo_fade_out_start_distance | :: double |
silo_fade_out_end_distance | :: double |
times_to_blink | :: uint8 | How many times the `red_lights_back_sprites` and `red_lights_front_sprites` should blink during lights_blinking_open and lights_blinking_close. [...]
How many times the `red_lights_back_sprites` and `red_lights_front_sprites` should blink during lights_blinking_open and lights_blinking_close. [...]
light_blinking_speed | :: double | The inverse of the duration in ticks of lights_blinking_open and lights_blinking_close.
The inverse of the duration in ticks of lights_blinking_open and lights_blinking_close.
door_opening_speed | :: double | The inverse of the duration in ticks of doors_opening and closing.
The inverse of the duration in ticks of doors_opening and closing.
rocket_parts_required | :: uint32 | The number of crafts that must complete to produce a rocket. [...]
The number of crafts that must complete to produce a rocket. [...]
rocket_quick_relaunch_start_offset new | :: double |
satellite_animation optional | :: Animation |
satellite_shadow_animation optional | :: Animation |
base_night_sprite optional | :: Sprite | Drawn instead of `base_day_sprite` during the night, that is when LuaSurface::darkness is larger than 0.3.
Drawn instead of `base_day_sprite` during the night, that is when LuaSurface::darkness is larger than 0.3.
base_light optional | :: LightDefinition |
base_engine_light optional | :: LightDefinition |
rocket_rising_delay optional | :: uint8 | The time to wait in the doors_opened state before switching to rocket_rising.
The time to wait in the doors_opened state before switching to rocket_rising.
launch_wait_time optional | :: uint8 | The time to wait in the launch_started state before switching to engine_starting.
The time to wait in the launch_started state before switching to engine_starting.
render_not_in_network_icon new optional | :: bool | Whether the "no network" icon should be rendered on this entity if the entity is not within a logistics network.
Whether the "no network" icon should be rendered on this entity if the entity is not within a logistics network.
rocket_parts_storage_cap new optional | :: uint32 | Must be at least `rocket_parts_required`.
Must be at least `rocket_parts_required`.
alarm_trigger optional | :: TriggerEffect | Applied when switching into the lights_blinking_open state.
Applied when switching into the lights_blinking_open state.
clamps_on_trigger optional | :: TriggerEffect | Applied when switching into the arms_advance state.
Applied when switching into the arms_advance state.
clamps_off_trigger optional | :: TriggerEffect | Applied when switching into the arms_retract state.
Applied when switching into the arms_retract state.
doors_trigger optional | :: TriggerEffect | Applied when switching into the doors_opening and doors_closing states.
Applied when switching into the doors_opening and doors_closing states.
raise_rocket_trigger optional | :: TriggerEffect | Applied when switching into the rocket_rising state.
Applied when switching into the rocket_rising state.
alarm_sound optional | :: Sound | Played when switching into the lights_blinking_open state.
Played when switching into the lights_blinking_open state.
quick_alarm_sound new optional | :: Sound | Played when switching from rocket_flying into the doors_opened state when a quick follow-up rocket is ready.
Played when switching from rocket_flying into the doors_opened state when a quick follow-up rocket is ready.
clamps_on_sound optional | :: Sound | Played when switching into the arms_advance state.
Played when switching into the arms_advance state.
clamps_off_sound optional | :: Sound | Played when switching into the arms_retract state.
Played when switching into the arms_retract state.
doors_sound optional | :: Sound | Played when switching into the doors_opening and doors_closing states.
Played when switching into the doors_opening and doors_closing states.
raise_rocket_sound optional | :: Sound | Played when switching into the rocket_rising state.
Played when switching into the rocket_rising state.
to_be_inserted_to_rocket_inventory_size new optional | :: ItemStackIndex |
rocket_supply_inventory_size new optional | :: ItemStackIndex |
logistic_trash_inventory_size new optional | :: ItemStackIndex |
cargo_station_parameters new | :: CargoStationParameters | Must have exactly one entry in CargoStationParameters::hatch_definitions.
Must have exactly one entry in CargoStationParameters::hatch_definitions.
launch_to_space_platforms new optional | :: bool | Enables 'Space Age' functionality for this rocket silo, allowing it to supply space platforms.
Enables 'Space Age' functionality for this rocket silo, allowing it to supply space platforms.

## RocketSiloRocketPrototype 'rocket-silo-rocket' changed

shadow_slave_entity optional | :: EntityID |
cargo_pod_entity new | :: EntityID | Name of a CargoPodPrototype.
Name of a CargoPodPrototype.
dying_explosion optional | :: EntityID |
glow_light optional | :: LightDefinition |
rocket_sprite optional | :: Sprite |
rocket_shadow_sprite optional | :: Sprite |
rocket_glare_overlay_sprite optional | :: Sprite |
rocket_smoke_bottom1_animation optional | :: Animation |
rocket_smoke_bottom2_animation optional | :: Animation |
rocket_smoke_top1_animation optional | :: Animation |
rocket_smoke_top2_animation optional | :: Animation |
rocket_smoke_top3_animation optional | :: Animation |
rocket_flame_animation optional | :: Animation |
rocket_flame_left_animation optional | :: Animation |
rocket_flame_right_animation optional | :: Animation |
rocket_initial_offset optional | :: Vector |
rocket_rise_offset | :: Vector |
cargo_attachment_offset new optional | :: Vector |
rocket_flame_left_rotation | :: float |
rocket_flame_right_rotation | :: float |
rocket_render_layer_switch_distance | :: double |
full_render_layer_switch_distance | :: double |
rocket_launch_offset | :: Vector |
effects_fade_in_start_distance | :: double |
effects_fade_in_end_distance | :: double |
shadow_fade_out_start_ratio | :: double |
shadow_fade_out_end_ratio | :: double |
rocket_visible_distance_from_center | :: float |
rocket_above_wires_slice_offset_from_center optional | :: float |
rocket_air_object_slice_offset_from_center optional | :: float |
rocket_fog_mask new optional | :: FogMaskShapeDefinition |
rising_speed | :: double |
engine_starting_speed | :: double |
flying_speed | :: double |
flying_acceleration | :: double |
flying_trigger optional | :: TriggerEffect |
flying_sound new optional | :: Sound |
inventory_size | :: ItemStackIndex |

## RocketSiloRocketShadowPrototype 'rocket-silo-rocket-shadow'

No new properties

## RollingStockPrototype 'rolling-stock' changed

max_speed | :: double | Maximum speed of the rolling stock in tiles/tick. [...]
Maximum speed of the rolling stock in tiles/tick. [...]
air_resistance | :: double |
joint_distance | :: double | The length between this rolling stocks front and rear joints. [...]
The length between this rolling stocks front and rear joints. [...]
connection_distance | :: double | The distance between the joint of this rolling stock and its connected rolling stocks joint. [...]
The distance between the joint of this rolling stock and its connected rolling stocks joint. [...]
pictures changed optional | :: RollingStockRotatedSlopedGraphics |
wheels changed optional | :: RollingStockRotatedSlopedGraphics |
vertical_selection_shift | :: double |
drive_over_tie_trigger optional | :: TriggerEffect | Usually a sound to play when the rolling stock drives over a tie. [...]
Usually a sound to play when the rolling stock drives over a tie. [...]
drive_over_tie_trigger_minimal_speed new optional | :: double |
tie_distance optional | :: double | In tiles. [...]
In tiles. [...]
back_light optional | :: LightDefinition |
stand_by_light optional | :: LightDefinition |
horizontal_doors optional | :: Animation |
vertical_doors optional | :: Animation |
color optional | :: Color |
allow_manual_color optional | :: bool |
allow_robot_dispatch_in_automatic_mode optional | :: bool |
default_copy_color_from_train_stop new optional | :: bool |
transition_collision_mask new optional | :: CollisionMaskConnector | Defaults to the mask from UtilityConstants::default_collision_masks when indexed by `type .. [...]
Defaults to the mask from UtilityConstants::default_collision_masks when indexed by `type .. [...]
elevated_collision_mask new optional | :: CollisionMaskConnector | Defaults to the mask from UtilityConstants::default_collision_masks when indexed by `type .. [...]
Defaults to the mask from UtilityConstants::default_collision_masks when indexed by `type .. [...]
elevated_selection_priority new optional | :: uint8 |
elevated_rail_sound new optional | :: MainSound |
drive_over_elevated_tie_trigger new optional | :: TriggerEffect |
door_opening_sound new optional | :: InterruptibleSound | Cannot use `fade_ticks`.
Cannot use `fade_ticks`.
door_closing_sound new optional | :: InterruptibleSound | Cannot use `fade_ticks`.
Cannot use `fade_ticks`.

## SegmentPrototype 'segment' new

dying_sound optional | :: Sound | The sound to play when the entity dies. [...]
The sound to play when the entity dies. [...]
dying_sound_volume_modifier optional | :: float |
animation | :: RotatedAnimation | The animation to use of the entity.
The animation to use of the entity.
render_layer optional | :: RenderLayer | The layer to render the entity in.
The layer to render the entity in.
forward_overlap optional | :: uint8 | The number of segments ahead of this one that should always be rendered atop this one, giving the illusion that at all orientations, those preceding segments overlap this current segment. [...]
The number of segments ahead of this one that should always be rendered atop this one, giving the illusion that at all orientations, those preceding segments overlap this current segment. [...]
backward_overlap optional | :: uint8 | The number of segments behind this one that should always be rendered atop this one, giving the illusion that at all orientations, those following segments overlap this current segment. [...]
The number of segments behind this one that should always be rendered atop this one, giving the illusion that at all orientations, those following segments overlap this current segment. [...]
forward_padding optional | :: double | The number of tiles of spacing to add in front of this segment. [...]
The number of tiles of spacing to add in front of this segment. [...]
backward_padding optional | :: double | The number of tiles of spacing to add behind this segment. [...]
The number of tiles of spacing to add behind this segment. [...]
update_effects optional | :: array[TriggerEffectWithCooldown] | The effects to trigger every tick.
The effects to trigger every tick.
update_effects_while_enraged optional | :: array[TriggerEffectWithCooldown] | The effects to trigger every tick while enraged, in addition to `update_effects`.
The effects to trigger every tick while enraged, in addition to `update_effects`.

## SegmentedUnitPrototype 'segmented-unit' new

vision_distance | :: double | Vision distance, affects scanning radius for enemies to attack. [...]
Vision distance, affects scanning radius for enemies to attack. [...]
attack_parameters optional | :: AttackParameters | Attack parameters for when a segmented unit is attacking something.
Attack parameters for when a segmented unit is attacking something.
revenge_attack_parameters optional | :: AttackParameters | Attack parameters for when a segmented unit is attacking something in retaliation because the target first attacked it.
Attack parameters for when a segmented unit is attacking something in retaliation because the target first attacked it.
territory_radius | :: uint32 | The territory radius in chunks. [...]
The territory radius in chunks. [...]
enraged_duration | :: uint32 | The number of ticks to remain enraged after last taking damage.
The number of ticks to remain enraged after last taking damage.
patrolling_speed | :: double | The movement speed while patrolling, in tiles per tick. [...]
The movement speed while patrolling, in tiles per tick. [...]
investigating_speed | :: double | The movement speed while investigating, in tiles per tick. [...]
The movement speed while investigating, in tiles per tick. [...]
attacking_speed | :: double | The movement speed while attacking, in tiles per tick. [...]
The movement speed while attacking, in tiles per tick. [...]
enraged_speed | :: double | The movement speed while enraged, in tiles per tick. [...]
The movement speed while enraged, in tiles per tick. [...]
acceleration_rate | :: double | The acceleration rate when moving from one state to another. [...]
The acceleration rate when moving from one state to another. [...]
turn_radius | :: double | Turn radius, in tiles. [...]
Turn radius, in tiles. [...]
patrolling_turn_radius optional | :: double | Cannot be negative.
Cannot be negative.
turn_smoothing optional | :: double | Attempts to smooth out tight turns by limiting how quickly the unit can change turning directions. [...]
Attempts to smooth out tight turns by limiting how quickly the unit can change turning directions. [...]
ticks_per_scan optional | :: uint32 | The number of ticks between territory scans. [...]
The number of ticks between territory scans. [...]
segment_engine | :: SegmentEngineSpecification | Specification of the segment engine, which should contain a list of the segments that compose the entity's body.
Specification of the segment engine, which should contain a list of the segments that compose the entity's body.
roar optional | :: Sound |
roar_probability optional | :: float | The default is 1.0f / (6.0f * 60.0f), average pause between roars is 6 seconds.
The default is 1.0f / (6.0f * 60.0f), average pause between roars is 6 seconds.
hurt_roar optional | :: Sound | Sound which plays when health ratio drops below any of `hurt_thresholds`.
Sound which plays when health ratio drops below any of `hurt_thresholds`.
hurt_thresholds optional | :: array[float] | Only loaded, and mandatory if `hurt_roar` is defined.
Only loaded, and mandatory if `hurt_roar` is defined.

## SelectionToolPrototype 'selection-tool' changed

select new | :: SelectionModeData |
alt_select new | :: SelectionModeData |
super_forced_select new optional | :: SelectionModeData |
reverse_select new optional | :: SelectionModeData |
alt_reverse_select new optional | :: SelectionModeData | Settings for how the selection tool alt-reverse-selects things in-game (using SHIFT + Right mouse button).
Settings for how the selection tool alt-reverse-selects things in-game (using SHIFT + Right mouse button).
always_include_tiles optional | :: bool | If tiles should be included in the selection regardless of entities also being in the selection. [...]
If tiles should be included in the selection regardless of entities also being in the selection. [...]
mouse_cursor optional | :: MouseCursorID |
skip_fog_of_war new optional | :: bool |

## SelectorCombinatorPrototype 'selector-combinator' new

max_symbol_sprites optional | :: Sprite4Way |
min_symbol_sprites optional | :: Sprite4Way |
count_symbol_sprites optional | :: Sprite4Way |
random_symbol_sprites optional | :: Sprite4Way |
stack_size_sprites optional | :: Sprite4Way |
rocket_capacity_sprites optional | :: Sprite4Way |
quality_symbol_sprites optional | :: Sprite4Way |

## ShootAchievementPrototype 'shoot-achievement' new

ammo_type optional | :: ItemID | This will trigger the achievement, if this ammo is shot.
This will trigger the achievement, if this ammo is shot.
amount optional | :: uint32 | How much of the ammo needs to be shot.
How much of the ammo needs to be shot.

## ShortcutPrototype 'shortcut' changed

action | :: `"toggle-alt-mode"` or `"undo"` or `"copy"` or `"cut"` or `"paste"` or `"import-string"` or `"toggle-personal-roboport"` or `"toggle-equipment-movement-bonus"` or `"spawn-item"` or `"lua"` | If this is `"lua"`, on_lua_shortcut is raised when the shortcut is clicked.
If this is `"lua"`, on_lua_shortcut is raised when the shortcut is clicked.
icons new optional | :: array[IconData] | Can't be an empty array.
Can't be an empty array.
icon changed optional | :: FileName | Path to the icon file. [...]
Path to the icon file. [...]
icon_size new optional | :: SpriteSizeType | The size of the square icon, in pixels. [...]
The size of the square icon, in pixels. [...]
small_icons new optional | :: array[IconData] | Can't be an empty array.
Can't be an empty array.
small_icon changed optional | :: FileName | Path to the icon file. [...]
Path to the icon file. [...]
small_icon_size new optional | :: SpriteSizeType | The size of the small icon, in pixels. [...]
The size of the small icon, in pixels. [...]
item_to_spawn optional | :: ItemID | The item to create when clicking on a shortcut with the action set to `"spawn-item"`. [...]
The item to create when clicking on a shortcut with the action set to `"spawn-item"`. [...]
technology_to_unlock optional | :: TechnologyID | The technology that must be researched before this shortcut can be used. [...]
The technology that must be researched before this shortcut can be used. [...]
unavailable_until_unlocked new optional | :: bool | If `true`, the shortcut will not be available until its `technology_to_unlock` is researched, even if it was already researched in a different game.
If `true`, the shortcut will not be available until its `technology_to_unlock` is researched, even if it was already researched in a different game.
toggleable optional | :: bool | Must be enabled for the Factorio API to be able to set the toggled state on the shortcut button, see LuaPlayer::set_shortcut_toggled.
Must be enabled for the Factorio API to be able to set the toggled state on the shortcut button, see LuaPlayer::set_shortcut_toggled.
associated_control_input optional | :: string | Name of a custom input or vanilla control. [...]
Name of a custom input or vanilla control. [...]
style optional | :: `"default"` or `"blue"` or `"red"` or `"green"` |

## SimpleEntityPrototype 'simple-entity' changed

count_as_rock_for_filtered_deconstruction optional | :: bool | Whether this entity should be treated as a rock for the purpose of deconstruction and for CarPrototype::immune_to_rock_impacts.
Whether this entity should be treated as a rock for the purpose of deconstruction and for CarPrototype::immune_to_rock_impacts.
render_layer optional | :: RenderLayer |
secondary_draw_order optional | :: int8 | Used to determine render order for entities with the same `render_layer` in the same position. [...]
Used to determine render order for entities with the same `render_layer` in the same position. [...]
random_animation_offset optional | :: bool |
random_variation_on_create optional | :: bool | Whether a random graphics variation is chosen when placing the entity/creating it via script/creating it via map generation. [...]
Whether a random graphics variation is chosen when placing the entity/creating it via script/creating it via map generation. [...]
pictures optional | :: SpriteVariations | Takes priority over `picture` and `animations`.
Takes priority over `picture` and `animations`.
picture optional | :: Sprite4Way | Takes priority over `animations`. [...]
Takes priority over `animations`. [...]
animations optional | :: AnimationVariations |
lower_render_layer new optional | :: RenderLayer |
lower_pictures new optional | :: SpriteVariations |
stateless_visualisation_variations new optional | :: array[StatelessVisualisations] | Loaded and drawn with all `pictures`, `picture` and `animations`. [...]
Loaded and drawn with all `pictures`, `picture` and `animations`. [...]

## SimpleEntityWithForcePrototype 'simple-entity-with-force'

No new properties

## SimpleEntityWithOwnerPrototype 'simple-entity-with-owner' changed

render_layer optional | :: RenderLayer |
secondary_draw_order optional | :: int8 | Used to determine render order for entities with the same `render_layer` in the same position. [...]
Used to determine render order for entities with the same `render_layer` in the same position. [...]
random_animation_offset optional | :: bool |
random_variation_on_create optional | :: bool | Whether a random graphics variation is chosen when placing the entity/creating it via script/creating it via map generation. [...]
Whether a random graphics variation is chosen when placing the entity/creating it via script/creating it via map generation. [...]
pictures optional | :: SpriteVariations | Takes priority over `picture` and `animations`.
Takes priority over `picture` and `animations`.
picture optional | :: Sprite4Way | Takes priority over `animations`.
Takes priority over `animations`.
animations optional | :: AnimationVariations |
lower_render_layer new optional | :: RenderLayer |
lower_pictures new optional | :: SpriteVariations | Loaded and drawn with all `pictures`, `picture` and `animations`. [...]
Loaded and drawn with all `pictures`, `picture` and `animations`. [...]
stateless_visualisation_variations new optional | :: array[StatelessVisualisations] |
force_visibility optional | :: ForceCondition | If the entity is not visible to a player, the player cannot select it.
If the entity is not visible to a player, the player cannot select it.

## SmokePrototype abstract changed

animation optional | :: Animation |
cyclic optional | :: bool | If this is false then the smoke expires when the animation has played once.
If this is false then the smoke expires when the animation has played once.
duration optional | :: uint32 | May not be 0 if `cyclic` is true. [...]
May not be 0 if `cyclic` is true. [...]
spread_duration optional | :: uint32 |
fade_away_duration optional | :: uint32 | `fade_in_duration` + `fade_away_duration` must be <= `duration`.
`fade_in_duration` + `fade_away_duration` must be <= `duration`.
fade_in_duration optional | :: uint32 | `fade_in_duration` + `fade_away_duration` must be <= `duration`.
`fade_in_duration` + `fade_away_duration` must be <= `duration`.
start_scale optional | :: double |
end_scale optional | :: double |
color optional | :: Color |
affected_by_wind optional | :: bool | Smoke always moves randomly unless `movement_slow_down_factor` is 0. [...]
Smoke always moves randomly unless `movement_slow_down_factor` is 0. [...]
show_when_smoke_off optional | :: bool |
render_layer optional | :: RenderLayer |
movement_slow_down_factor optional | :: double | Value between 0 and 1, with 0 being no movement.
Value between 0 and 1, with 0 being no movement.
glow_fade_away_duration optional | :: uint32 |
glow_animation optional | :: Animation |

## SmokeWithTriggerPrototype 'smoke-with-trigger' changed

action optional | :: Trigger |
action_cooldown optional | :: uint32 | 0 means never apply.
0 means never apply.
particle_count optional | :: uint8 |
particle_distance_scale_factor optional | :: float |
spread_duration_variation optional | :: uint32 |
particle_duration_variation optional | :: uint32 |
particle_spread optional | :: Vector |
particle_scale_factor optional | :: Vector |
wave_distance optional | :: Vector |
wave_speed optional | :: Vector |
attach_to_target new optional | :: bool | If true, causes the smoke to move with the target entity if one is specified.
If true, causes the smoke to move with the target entity if one is specified.
fade_when_attachment_is_destroyed new optional | :: bool | If true, the smoke will immediately start fading away when the entity it is attached to is destroyed. [...]
If true, the smoke will immediately start fading away when the entity it is attached to is destroyed. [...]

## SolarPanelEquipmentPrototype 'solar-panel-equipment'

power | :: Energy | How much power should be provided.
How much power should be provided.

## SolarPanelPrototype 'solar-panel'

energy_source | :: ElectricEnergySource | Sets how this solar panel connects to the energy network. [...]
Sets how this solar panel connects to the energy network. [...]
picture optional | :: SpriteVariations | The picture displayed for this solar panel.
The picture displayed for this solar panel.
production | :: Energy | The maximum amount of power this solar panel can produce.
The maximum amount of power this solar panel can produce.
overlay optional | :: SpriteVariations | Overlay has to be empty or have same number of variations as `picture`.
Overlay has to be empty or have same number of variations as `picture`.

## SoundPrototype 'sound' changed

type | :: `"sound"` |
name | :: string | Name of the sound. [...]
Name of the sound. [...]
category optional | :: SoundType |
priority new optional | :: uint8 | Sounds with higher priority will replace a sound with lower priority if the maximum sounds limit is reached. [...]
Sounds with higher priority will replace a sound with lower priority if the maximum sounds limit is reached. [...]
aggregation optional | :: AggregationSpecification |
allow_random_repeat optional | :: bool |
audible_distance_modifier optional | :: double | Modifies how far a sound can be heard. [...]
Modifies how far a sound can be heard. [...]
game_controller_vibration_data optional | :: GameControllerVibrationData |
advanced_volume_control new optional | :: AdvancedVolumeControl |
speed_smoothing_window_size new optional | :: uint32 |
variations optional | :: SoundDefinition or array[SoundDefinition] |
filename optional | :: FileName | Supported sound file formats are `.ogg` (Vorbis) and `.wav`. [...]
Supported sound file formats are `.ogg` (Vorbis) and `.wav`. [...]
volume optional | :: float | Only loaded if `variations` is not defined. [...]
Only loaded if `variations` is not defined. [...]
min_volume new optional | :: float | Only loaded if `variations` and `volume` are not defined. [...]
Only loaded if `variations` and `volume` are not defined. [...]
max_volume new optional | :: float | Only loaded if `variations` is not defined. [...]
Only loaded if `variations` is not defined. [...]
preload optional | :: bool | Only loaded if `variations` is not defined.
Only loaded if `variations` is not defined.
speed optional | :: float | Speed must be `>= 1 / 64`. [...]
Speed must be `>= 1 / 64`. [...]
min_speed optional | :: float | Must be `>= 1 / 64`. [...]
Must be `>= 1 / 64`. [...]
max_speed optional | :: float | Must be `>= min_speed`. [...]
Must be `>= min_speed`. [...]
modifiers new optional | :: SoundModifier or array[SoundModifier] | Only loaded if `variations` is not defined.
Only loaded if `variations` is not defined.

## SpaceConnectionDistanceTraveledAchievementPrototype 'space-connection-distance-traveled-achievement' new

tracked_connection | :: SpaceConnectionID |
distance | :: uint32 | How far a platform must travel to gain this achievement. [...]
How far a platform must travel to gain this achievement. [...]
reversed | :: bool | The achievement is unidirectional, this property controls the direction (using space connection definition). [...]
The achievement is unidirectional, this property controls the direction (using space connection definition). [...]

## SpaceConnectionPrototype 'space-connection' new

from | :: SpaceLocationID |
to | :: SpaceLocationID |
length optional | :: uint32 | Cannot be 0.
Cannot be 0.
asteroid_spawn_definitions optional | :: array[SpaceConnectionAsteroidSpawnDefinition] |
icons optional | :: array[IconData] | Can't be an empty array.
Can't be an empty array.
icon optional | :: FileName | Path to the icon file. [...]
Path to the icon file. [...]
icon_size optional | :: SpriteSizeType | The size of the square icon, in pixels. [...]
The size of the square icon, in pixels. [...]

## SpaceLocationPrototype 'space-location' new

gravity_pull | :: double | A value which modifies platform speed; is subtracted when traveling from this location and added when traveling to this location.
A value which modifies platform speed; is subtracted when traveling from this location and added when traveling to this location.
distance | :: double | Distance from the location's parent body in map coordinates.
Distance from the location's parent body in map coordinates.
orientation | :: RealOrientation | Angle in relation to the parent body.
Angle in relation to the parent body.
magnitude optional | :: double | The apparent size of the space location in map coordinates.
The apparent size of the space location in map coordinates.
parked_platforms_orientation optional | :: RealOrientation | The orientation where parked space platforms will be drawn.
The orientation where parked space platforms will be drawn.
label_orientation optional | :: RealOrientation | The orientation where the location's name will be drawn.
The orientation where the location's name will be drawn.
draw_orbit optional | :: bool | If `false`, an orbital ring will not be drawn for this location.
If `false`, an orbital ring will not be drawn for this location.
solar_power_in_space optional | :: double |
asteroid_spawn_influence optional | :: double | If greater than 0, `asteroid_spawn_definitions` will be used on space connections of this location, interpolated based on distance. [...]
If greater than 0, `asteroid_spawn_definitions` will be used on space connections of this location, interpolated based on distance. [...]
fly_condition optional | :: bool | When set to true, it means that this connection offers fly condition rather than wait condition at the destination
When set to true, it means that this connection offers fly condition rather than wait condition at the destination
auto_save_on_first_trip optional | :: bool |
procession_graphic_catalogue optional | :: ProcessionGraphicCatalogue |
procession_audio_catalogue optional | :: ProcessionAudioCatalogue |
platform_procession_set optional | :: ProcessionSet | These transitions are used for any platform stopped at this location.
These transitions are used for any platform stopped at this location.
planet_procession_set optional | :: ProcessionSet | These transitions are used for anything traveling from the surface associated with this location.
These transitions are used for anything traveling from the surface associated with this location.
icons optional | :: array[IconData] | Can't be an empty array.
Can't be an empty array.
icon optional | :: FileName | Path to the icon file. [...]
Path to the icon file. [...]
icon_size optional | :: SpriteSizeType | The size of the square icon, in pixels. [...]
The size of the square icon, in pixels. [...]
starmap_icons optional | :: array[IconData] | Can't be an empty array.
Can't be an empty array.
starmap_icon optional | :: FileName | Path to the icon file. [...]
Path to the icon file. [...]
starmap_icon_size optional | :: SpriteSizeType | The size of the starmap icon, in pixels. [...]
The size of the starmap icon, in pixels. [...]
asteroid_spawn_definitions optional | :: array[SpaceLocationAsteroidSpawnDefinition] |

## SpacePlatformHubPrototype 'space-platform-hub' new

graphics_set optional | :: CargoBayConnectableGraphicsSet |
inventory_size | :: ItemStackIndex |
dump_container | :: EntityID | Name of a ContainerPrototype.
Name of a ContainerPrototype.
persistent_ambient_sounds optional | :: PersistentWorldAmbientSoundsDefinition |
surface_render_parameters optional | :: SurfaceRenderParameters |
circuit_wire_max_distance optional | :: double | The maximum circuit wire distance for this entity.
The maximum circuit wire distance for this entity.
draw_copper_wires optional | :: bool |
draw_circuit_wires optional | :: bool |
circuit_connector optional | :: CircuitConnectorDefinition |
default_speed_signal optional | :: SignalIDConnector |
default_damage_taken_signal optional | :: SignalIDConnector |
platform_repair_speed_modifier optional | :: float |
weight optional | :: Weight |
cargo_station_parameters | :: CargoStationParameters |

## SpacePlatformStarterPackPrototype 'space-platform-starter-pack' new

trigger optional | :: Trigger |
surface optional | :: SurfaceID |
create_electric_network optional | :: bool |
tiles optional | :: array[SpacePlatformTileDefinition] |
initial_items optional | :: array[ItemProductPrototype] | The quality of the items will match the quality of the starter pack.
The quality of the items will match the quality of the starter pack.

## SpectatorControllerPrototype 'spectator-controller'

type | :: `"spectator-controller"` |
name | :: string | Name of the spectator controller. [...]
Name of the spectator controller. [...]
movement_speed | :: double | Must be >= 0.34375.
Must be >= 0.34375.

## SpeechBubblePrototype 'speech-bubble' changed

style | :: string | Needs a style of the type "speech_bubble_style", defined inside the gui styles.
Needs a style of the type "speech_bubble_style", defined inside the gui styles.
wrapper_flow_style optional | :: string | Needs a style of the type "flow_style", defined inside the gui styles.
Needs a style of the type "flow_style", defined inside the gui styles.
y_offset optional | :: double |
fade_in_out_ticks optional | :: uint32 |

## SpiderLegPrototype 'spider-leg' changed

stretch_force_scalar new optional | :: double | A scalar that controls the amount of influence this leg has over the position of the torso. [...]
A scalar that controls the amount of influence this leg has over the position of the torso. [...]
hip_flexibility new optional | :: double | The flexibility of hip. [...]
The flexibility of hip. [...]
knee_height new | :: double | The resting height of the knee from the ground. [...]
The resting height of the knee from the ground. [...]
knee_distance_factor new | :: double | The placement of the knee relative to the torso of the spider and the end of the foot when at rest. [...]
The placement of the knee relative to the torso of the spider and the end of the foot when at rest. [...]
ankle_height new optional | :: double | The height of the foot from the ground when at rest.
The height of the foot from the ground when at rest.
initial_movement_speed | :: double |
movement_acceleration | :: double |
target_position_randomisation_distance | :: double |
minimal_step_size | :: double |
base_position_selection_distance new | :: double |
movement_based_position_selection_distance | :: double |
graphics_set optional | :: SpiderLegGraphicsSet |
walking_sound_volume_modifier changed optional | :: float |
walking_sound_speed_modifier new optional | :: float |
upper_leg_dying_trigger_effects new optional | :: array[SpiderLegTriggerEffect] |
lower_leg_dying_trigger_effects new optional | :: array[SpiderLegTriggerEffect] |

## SpiderUnitPrototype 'spider-unit' new

spider_engine | :: SpiderEngineSpecification |
height | :: float | The height of the spider affects the shooting height and the drawing of the graphics and lights.
The height of the spider affects the shooting height and the drawing of the graphics and lights.
torso_bob_speed optional | :: float | Cannot be negative.
Cannot be negative.
torso_rotation_speed optional | :: float | The orientation of the torso of the spider affects the shooting direction and the drawing of the graphics and lights.
The orientation of the torso of the spider affects the shooting direction and the drawing of the graphics and lights.
graphics_set optional | :: SpiderTorsoGraphicsSet |
absorptions_to_join_attack optional | :: dictionary[AirbornePollutantID → float] |
spawning_time_modifier optional | :: double |
radar_range optional | :: uint32 |
attack_parameters | :: AttackParameters |
dying_sound optional | :: Sound |
warcry optional | :: Sound | A sound the spider unit makes when it sets out to attack.
A sound the spider unit makes when it sets out to attack.
vision_distance | :: double | Must be less than or equal to 100.
Must be less than or equal to 100.
distraction_cooldown | :: uint32 |
min_pursue_time optional | :: uint32 |
max_pursue_distance optional | :: double |
ai_settings optional | :: UnitAISettings |

## SpiderVehiclePrototype 'spider-vehicle'

energy_source | :: BurnerEnergySource or VoidEnergySource |
inventory_size | :: ItemStackIndex |
graphics_set optional | :: SpiderVehicleGraphicsSet |
spider_engine changed | :: SpiderEngineSpecification |
height | :: float | The height of the spider affects the shooting height and the drawing of the graphics and lights.
The height of the spider affects the shooting height and the drawing of the graphics and lights.
chunk_exploration_radius | :: uint32 |
movement_energy_consumption | :: Energy |
automatic_weapon_cycling | :: bool |
chain_shooting_cooldown_modifier | :: float | This is applied whenever the spider shoots (manual and automatic targeting), `automatic_weapon_cycling` is true and the next gun in line (which is then selected) has ammo. [...]
This is applied whenever the spider shoots (manual and automatic targeting), `automatic_weapon_cycling` is true and the next gun in line (which is then selected) has ammo. [...]
torso_rotation_speed optional | :: float | The orientation of the torso of the spider affects the shooting direction and the drawing of the graphics and lights.
The orientation of the torso of the spider affects the shooting direction and the drawing of the graphics and lights.
torso_bob_speed optional | :: float | Cannot be negative.
Cannot be negative.
trash_inventory_size optional | :: ItemStackIndex | If set to 0 then the spider will not have a Logistics tab.
If set to 0 then the spider will not have a Logistics tab.
guns optional | :: array[ItemID] | The guns this spider vehicle uses.
The guns this spider vehicle uses.

## SpidertronRemotePrototype 'spidertron-remote' changed

No new properties

## SplitterPrototype 'splitter' changed

structure optional | :: Animation4Way |
structure_patch optional | :: Animation4Way | Drawn 1 tile north of `structure` when the splitter is facing east or west.
Drawn 1 tile north of `structure` when the splitter is facing east or west.
frozen_patch new optional | :: Sprite4Way |
structure_animation_speed_coefficient optional | :: double |
structure_animation_movement_cooldown optional | :: uint32 |
related_transport_belt new optional | :: EntityID | The name of the TransportBeltPrototype which is used for the sound of the underlying belt.
The name of the TransportBeltPrototype which is used for the sound of the underlying belt.

## SpritePrototype 'sprite' changed

type | :: `"sprite"` |
name | :: string | Name of the sprite. [...]
Name of the sprite. [...]
layers optional | :: array[Sprite] | If this property is present, all Sprite definitions have to be placed as entries in the array, and they will all be loaded from there. [...]
If this property is present, all Sprite definitions have to be placed as entries in the array, and they will all be loaded from there. [...]
filename optional | :: FileName | Only loaded, and mandatory if `layers` is not defined. [...]
Only loaded, and mandatory if `layers` is not defined. [...]
dice new optional | :: SpriteSizeType | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
dice_x new optional | :: SpriteSizeType | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
dice_y new optional | :: SpriteSizeType | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
priority optional | :: SpritePriority | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
flags optional | :: SpriteFlags | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
size optional | :: SpriteSizeType or {SpriteSizeType, SpriteSizeType} | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
width optional | :: SpriteSizeType | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
height optional | :: SpriteSizeType | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
x optional | :: SpriteSizeType | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
y optional | :: SpriteSizeType | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
position optional | :: {SpriteSizeType, SpriteSizeType} | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
shift optional | :: Vector | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
rotate_shift new optional | :: bool | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
apply_special_effect new optional | :: bool | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
scale optional | :: double | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
draw_as_shadow optional | :: bool | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
draw_as_glow optional | :: bool | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
draw_as_light optional | :: bool | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
mipmap_count optional | :: uint8 | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
apply_runtime_tint optional | :: bool | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
tint_as_overlay new optional | :: bool | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
invert_colors new optional | :: bool | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
tint optional | :: Color | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
blend_mode optional | :: BlendMode | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
load_in_minimal_mode optional | :: bool | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
premul_alpha optional | :: bool | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
generate_sdf optional | :: bool | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
surface new optional | :: SpriteUsageSurfaceHint | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
usage new optional | :: SpriteUsageHint | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]

## StickerPrototype 'sticker' changed

duration_in_ticks | :: uint32 | Must be > 0.
Must be > 0.
animation optional | :: Animation |
render_layer new optional | :: RenderLayer |
damage_interval optional | :: uint32 | Interval between application of `damage_per_tick`, in ticks.
Interval between application of `damage_per_tick`, in ticks.
spread_fire_entity optional | :: EntityID | If this is given, this sticker is considered a "fire sticker" for some functions, such as BaseAttackParameters::fire_penalty and EntityPrototypeFlags::not-flammable.
If this is given, this sticker is considered a "fire sticker" for some functions, such as BaseAttackParameters::fire_penalty and EntityPrototypeFlags::not-flammable.
fire_spread_cooldown optional | :: uint8 |
fire_spread_radius optional | :: float |
stickers_per_square_meter optional | :: float |
force_visibility optional | :: ForceCondition |
single_particle optional | :: bool |
damage_per_tick changed optional | :: DamageParameters | Applied every `damage_interval` ticks, so may not necessarily be "per tick".
Applied every `damage_interval` ticks, so may not necessarily be "per tick".
target_movement_modifier optional | :: float | Less than 1 to reduce movement speed, more than 1 to increase it.
Less than 1 to reduce movement speed, more than 1 to increase it.
target_movement_modifier_from optional | :: float | The modifier value when the sticker is attached. [...]
The modifier value when the sticker is attached. [...]
target_movement_modifier_to optional | :: float | The modifier value when the sticker expires. [...]
The modifier value when the sticker expires. [...]
target_movement_max new optional | :: float | The maximum movement speed for the target. [...]
The maximum movement speed for the target. [...]
target_movement_max_from new optional | :: float | The maximum movement speed for the target when the sticker is attached. [...]
The maximum movement speed for the target when the sticker is attached. [...]
target_movement_max_to new optional | :: float | The maximum movement speed for the target when the sticker expires. [...]
The maximum movement speed for the target when the sticker expires. [...]
ground_target new optional | :: bool | If true, causes the target entity to become "grounded", disabling flight. [...]
If true, causes the target entity to become "grounded", disabling flight. [...]
vehicle_speed_modifier optional | :: float | Less than 1 to reduce vehicle speed, more than 1 to increase it.
Less than 1 to reduce vehicle speed, more than 1 to increase it.
vehicle_speed_modifier_from optional | :: float | Works similarly to `target_movement_modifier_from`.
Works similarly to `target_movement_modifier_from`.
vehicle_speed_modifier_to optional | :: float | Works similarly to `target_movement_modifier_to`.
Works similarly to `target_movement_modifier_to`.
vehicle_speed_max new optional | :: float | The maximum movement speed for vehicles. [...]
The maximum movement speed for vehicles. [...]
vehicle_speed_max_from new optional | :: float | The maximum movement speed for vehicles when the sticker is attached. [...]
The maximum movement speed for vehicles when the sticker is attached. [...]
vehicle_speed_max_to new optional | :: float | The maximum movement speed for vehicles when the sticker expires. [...]
The maximum movement speed for vehicles when the sticker expires. [...]
vehicle_friction_modifier optional | :: float |
vehicle_friction_modifier_from optional | :: float | Works similarly to `target_movement_modifier_from`.
Works similarly to `target_movement_modifier_from`.
vehicle_friction_modifier_to optional | :: float | Works similarly to `target_movement_modifier_to`.
Works similarly to `target_movement_modifier_to`.
selection_box_type optional | :: CursorBoxType | Using this property marks the sticker as a "selection sticker", meaning that the selection box will be rendered around the entity when the sticker is on it.
Using this property marks the sticker as a "selection sticker", meaning that the selection box will be rendered around the entity when the sticker is on it.
update_effects new optional | :: array[TriggerEffectWithCooldown] | Effects (with cooldowns) to trigger every tick.
Effects (with cooldowns) to trigger every tick.

## StorageTankPrototype 'storage-tank' changed

fluid_box | :: FluidBox |
window_bounding_box | :: BoundingBox | The location of the window showing the contents. [...]
The location of the window showing the contents. [...]
pictures optional | :: StorageTankPictures |
flow_length_in_ticks | :: uint32 | Must be positive. [...]
Must be positive. [...]
two_direction_only optional | :: bool |
show_fluid_icon optional | :: bool | Whether the "alt-mode icon" should be drawn at all.
Whether the "alt-mode icon" should be drawn at all.
circuit_wire_max_distance optional | :: double |
draw_copper_wires optional | :: bool |
draw_circuit_wires optional | :: bool |
circuit_connector new optional | :: {CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition} |

## StraightRailPrototype 'straight-rail' changed

No new properties

## SurfacePropertyPrototype 'surface-property' new

localised_unit_key optional | :: string | The locale key of the unit of the property. [...]
The locale key of the unit of the property. [...]
default_value | :: double |
is_time optional | :: bool |

## SurfacePrototype 'surface' new

surface_properties optional | :: dictionary[SurfacePropertyID → double] |
icon optional | :: FileName | Path to the icon file. [...]
Path to the icon file. [...]
icon_size optional | :: SpriteSizeType | The size of the square icon, in pixels. [...]
The size of the square icon, in pixels. [...]

## TechnologyPrototype 'technology' changed

icons optional | :: array[IconData] | Can't be an empty array.
Can't be an empty array.
icon optional | :: FileName | Path to the icon file. [...]
Path to the icon file. [...]
icon_size optional | :: SpriteSizeType | The size of the square icon, in pixels. [...]
The size of the square icon, in pixels. [...]
upgrade optional | :: bool | When set to true, and the technology contains several levels, only the relevant one is displayed in the technology screen.
When set to true, and the technology contains several levels, only the relevant one is displayed in the technology screen.
enabled optional | :: bool |
essential new optional | :: bool | Whether the technology should be shown in the technology tree GUI when "Show only essential technologies" is enabled.
Whether the technology should be shown in the technology tree GUI when "Show only essential technologies" is enabled.
visible_when_disabled optional | :: bool | Controls whether the technology is shown in the tech GUI when it is not `enabled`.
Controls whether the technology is shown in the tech GUI when it is not `enabled`.
ignore_tech_cost_multiplier optional | :: bool | Controls whether the technology cost ignores the tech cost multiplier set in the DifficultySettings. [...]
Controls whether the technology cost ignores the tech cost multiplier set in the DifficultySettings. [...]
allows_productivity new optional | :: bool |
research_trigger new optional | :: TechnologyTrigger | Mandatory if `unit` is not defined.
Mandatory if `unit` is not defined.
unit optional | :: TechnologyUnit | Determines the cost in items and time of the technology. [...]
Determines the cost in items and time of the technology. [...]
max_level optional | :: uint32 or `"infinite"` | `"infinite"` for infinite technologies, otherwise `uint32`. [...]
`"infinite"` for infinite technologies, otherwise `uint32`. [...]
prerequisites optional | :: array[TechnologyID] | List of technologies needed to be researched before this one can be researched.
List of technologies needed to be researched before this one can be researched.
effects optional | :: array[Modifier] | List of effects of the technology (applied when the technology is researched).
List of effects of the technology (applied when the technology is researched).

## TemporaryContainerPrototype 'temporary-container' new

destroy_on_empty optional | :: bool |
time_to_live optional | :: uint32 |
alert_after_time optional | :: uint32 |

## ThrusterPrototype 'thruster' new

min_performance | :: ThrusterPerformancePoint |
max_performance | :: ThrusterPerformancePoint | `max_performance.fluid_volume` must not be smaller than `min_performance.fluid_volume`.
`max_performance.fluid_volume` must not be smaller than `min_performance.fluid_volume`.
fuel_fluid_box | :: FluidBox |
oxidizer_fluid_box | :: FluidBox |
graphics_set optional | :: ThrusterGraphicsSet |
plumes optional | :: PlumesSpecification |

## TileEffectDefinition 'tile-effect' changed

type | :: `"tile-effect"` |
name | :: string | Name of the tile-effect.
Name of the tile-effect.
shader new | :: `"water"` or `"space"` or `"puddle"` |
water new optional | :: WaterTileEffectParameters | Only loaded, and mandatory if `shader` is `"water"`.
Only loaded, and mandatory if `shader` is `"water"`.
space new optional | :: SpaceTileEffectParameters | Only loaded, and mandatory if `shader` is `"space"`.
Only loaded, and mandatory if `shader` is `"space"`.
puddle new optional | :: PuddleTileEffectParameters | Only loaded, and mandatory if `shader` is `"puddle"`.
Only loaded, and mandatory if `shader` is `"puddle"`.

## TileGhostPrototype 'tile-ghost' changed

No new properties

## TilePrototype 'tile' changed

collision_mask changed | :: CollisionMaskConnector |
layer | :: uint8 | Specifies transition drawing priority.
Specifies transition drawing priority.
build_animations new optional | :: Animation4Way | The build animation used when this tile is built on a space platform.
The build animation used when this tile is built on a space platform.
build_animations_background new optional | :: Animation4Way |
built_animation_frame new optional | :: uint32 | When the build_animations frame reaches this point the tile is built. [...]
When the build_animations frame reaches this point the tile is built. [...]
variants | :: TileTransitionsVariants | Graphics for this tile.
Graphics for this tile.
map_color | :: Color |
icons optional | :: array[IconData] | Can't be an empty array. [...]
Can't be an empty array. [...]
icon optional | :: FileName | Path to the icon file. [...]
Path to the icon file. [...]
icon_size optional | :: SpriteSizeType | The size of the square icon, in pixels. [...]
The size of the square icon, in pixels. [...]
lowland_fog new optional | :: bool | For surfaces that use fog effect of type `gleba`, this property determines whether given tile should contribute to fog intensity on a chunk or not.
For surfaces that use fog effect of type `gleba`, this property determines whether given tile should contribute to fog intensity on a chunk or not.
transition_overlay_layer_offset optional | :: int8 |
sprite_usage_surface new optional | :: SpriteUsageSurfaceHint |
layer_group optional | :: TileRenderLayer |
transition_merges_with_tile optional | :: TileID |
effect_color optional | :: Color |
tint optional | :: Color |
particle_tints new optional | :: TileBasedParticleTints |
walking_sound optional | :: Sound |
landing_steps_sound new optional | :: Sound |
driving_sound new optional | :: Sound |
build_sound optional | :: Sound or TileBuildSound | If this is loaded as one Sound, it is loaded as the "small" build sound.
If this is loaded as one Sound, it is loaded as the "small" build sound.
mined_sound optional | :: Sound |
walking_speed_modifier optional | :: double |
vehicle_friction_modifier optional | :: double |
decorative_removal_probability optional | :: float |
allowed_neighbors optional | :: array[TileID] | Array of tile names that are allowed next to this one.
Array of tile names that are allowed next to this one.
needs_correction optional | :: bool | Whether the tile needs tile correction logic applied when it's generated in the world, to prevent graphical artifacts. [...]
Whether the tile needs tile correction logic applied when it's generated in the world, to prevent graphical artifacts. [...]
minable optional | :: MinableProperties | If you want the tile to not be mineable, don't specify the minable property. [...]
If you want the tile to not be mineable, don't specify the minable property. [...]
fluid new optional | :: FluidID |
next_direction optional | :: TileID |
can_be_part_of_blueprint optional | :: bool |
is_foundation new optional | :: bool |
destroys_dropped_items new optional | :: bool | If items dropped on this tile are destroyed.
If items dropped on this tile are destroyed.
allows_being_covered new optional | :: bool |
searchable new optional | :: bool |
max_health new optional | :: float | Must be equal to or greater than 0.
Must be equal to or greater than 0.
weight new optional | :: Weight |
dying_explosion new optional | :: ExplosionDefinition or array[ExplosionDefinition] | Triggers when a foundation tile is destroyed by an asteroid.
Triggers when a foundation tile is destroyed by an asteroid.
absorptions_per_second new optional | :: dictionary[AirbornePollutantID → double] |
default_cover_tile new optional | :: TileID |
frozen_variant new optional | :: TileID |
thawed_variant new optional | :: TileID |
effect changed optional | :: TileEffectDefinitionID |
trigger_effect optional | :: TriggerEffect | Called by InvokeTileEffectTriggerEffectItem.
Called by InvokeTileEffectTriggerEffectItem.
default_destroyed_dropped_item_trigger new optional | :: Trigger | The effect/trigger that runs when an item is destroyed by being dropped on this tile. [...]
The effect/trigger that runs when an item is destroyed by being dropped on this tile. [...]
scorch_mark_color optional | :: Color |
check_collision_with_entities optional | :: bool | If set to true, the game will check for collisions with entities before building or mining the tile. [...]
If set to true, the game will check for collisions with entities before building or mining the tile. [...]
effect_color_secondary optional | :: Color | Used by the pollution shader.
Used by the pollution shader.
effect_is_opaque optional | :: bool |
transitions optional | :: array[TileTransitionsToTiles] | Extra transitions.
Extra transitions.
transitions_between_transitions optional | :: array[TileTransitionsBetweenTransitions] |
autoplace optional | :: AutoplaceSpecification |
placeable_by optional | :: ItemToPlace or array[ItemToPlace] |
bound_decoratives new optional | :: DecorativeID or array[DecorativeID] |
ambient_sounds_group new optional | :: TileID |
ambient_sounds new optional | :: WorldAmbientSoundDefinition or array[WorldAmbientSoundDefinition] |

## TipsAndTricksItem 'tips-and-tricks-item' changed

image optional | :: FileName |
simulation optional | :: SimulationDefinition |
tag optional | :: string | String to add in front of the tips and trick entries name. [...]
String to add in front of the tips and trick entries name. [...]
category optional | :: string | Name of a TipsAndTricksItemCategory, used for the sorting of this tips and tricks entry. [...]
Name of a TipsAndTricksItemCategory, used for the sorting of this tips and tricks entry. [...]
indent optional | :: uint8 | The tips and tricks entry is indented by `indent`×6 spaces.
The tips and tricks entry is indented by `indent`×6 spaces.
is_title optional | :: bool | Whether the tip title on the left in the tips and tricks GUI should use the "title_tip_item" style (semi bold font).
Whether the tip title on the left in the tips and tricks GUI should use the "title_tip_item" style (semi bold font).
trigger optional | :: TipTrigger | Condition for when the tip notification should be shown to the player.
Condition for when the tip notification should be shown to the player.
skip_trigger optional | :: TipTrigger | Condition for never showing the tip notification to the player.
Condition for never showing the tip notification to the player.
tutorial optional | :: string | Name of a TutorialDefinition.
Name of a TutorialDefinition.
starting_status optional | :: TipStatus |
dependencies optional | :: array[string] | An array of names of other tips and tricks items. [...]
An array of names of other tips and tricks items. [...]
player_input_method_filter optional | :: PlayerInputMethodFilter |
icons new optional | :: array[IconData] | Can't be an empty array.
Can't be an empty array.
icon new optional | :: FileName | Path to the icon file. [...]
Path to the icon file. [...]
icon_size new optional | :: SpriteSizeType | The size of the square icon, in pixels. [...]
The size of the square icon, in pixels. [...]

## TipsAndTricksItemCategory 'tips-and-tricks-item-category'

type | :: `"tips-and-tricks-item-category"` |
name | :: string |
order | :: Order | Tips and trick categories are sorted by `order`, and then the tips and tips entries are sorted by their own order within those categories.
Tips and trick categories are sorted by `order`, and then the tips and tips entries are sorted by their own order within those categories.

## ToolPrototype 'tool'

durability optional | :: double | The durability of this tool. [...]
The durability of this tool. [...]
durability_description_key optional | :: string | May not be longer than 200 characters.
May not be longer than 200 characters.
durability_description_value optional | :: string | May not be longer than 200 characters. [...]
May not be longer than 200 characters. [...]
infinite optional | :: bool | Whether this tool has infinite durability. [...]
Whether this tool has infinite durability. [...]

## TrainPathAchievementPrototype 'train-path-achievement'

minimum_distance | :: double | The achievement will trigger if a train path is longer than this.
The achievement will trigger if a train path is longer than this.

## TrainStopPrototype 'train-stop' changed

animation_ticks_per_frame | :: uint32 |
rail_overlay_animations optional | :: Animation4Way |
animations optional | :: Animation4Way |
top_animations optional | :: Animation4Way |
default_train_stopped_signal optional | :: SignalIDConnector |
default_trains_count_signal optional | :: SignalIDConnector |
default_trains_limit_signal optional | :: SignalIDConnector |
default_priority_signal new optional | :: SignalIDConnector |
circuit_wire_max_distance optional | :: double |
draw_copper_wires optional | :: bool |
draw_circuit_wires optional | :: bool |
color optional | :: Color |
chart_name optional | :: bool |
light1 optional | :: TrainStopLight |
light2 optional | :: TrainStopLight |
drawing_boxes optional | :: TrainStopDrawingBoxes |
circuit_connector new optional | :: {CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition} |

## TransportBeltConnectablePrototype 'transport-belt-connectable' changed

belt_animation_set optional | :: TransportBeltAnimationSet |
speed | :: double | The speed of the belt: `speed × 480 = x Items/second`. [...]
The speed of the belt: `speed × 480 = x Items/second`. [...]
animation_speed_coefficient optional | :: double |

## TransportBeltPrototype 'transport-belt' changed

connector_frame_sprites optional | :: TransportBeltConnectorFrame |
circuit_wire_max_distance optional | :: double | The maximum circuit wire distance for this entity.
The maximum circuit wire distance for this entity.
draw_copper_wires optional | :: bool |
draw_circuit_wires optional | :: bool |
circuit_connector new optional | :: array[CircuitConnectorDefinition] | Set of 7 circuit connector definitions in order: X, H, V, SE, SW, NE and NW.
Set of 7 circuit connector definitions in order: X, H, V, SE, SW, NE and NW.
related_underground_belt optional | :: EntityID | The name of the UndergroundBeltPrototype which is used in quick-replace fashion when the smart belt dragging behavior is triggered.
The name of the UndergroundBeltPrototype which is used in quick-replace fashion when the smart belt dragging behavior is triggered.

## TreePrototype 'tree' changed

variation_weights optional | :: array[float] |
darkness_of_burnt_tree optional | :: float |
pictures optional | :: SpriteVariations | Mandatory if `variations` is not defined.
Mandatory if `variations` is not defined.
variations optional | :: array[TreeVariation] | If defined, it can't be empty.
If defined, it can't be empty.
colors optional | :: array[Color] | Mandatory if `variations` is defined.
Mandatory if `variations` is defined.
stateless_visualisation_variations new optional | :: array[StatelessVisualisations] |

## TriggerTargetType 'trigger-target-type'

type | :: `"trigger-target-type"` |
name | :: string |

## TrivialSmokePrototype 'trivial-smoke'

animation | :: Animation |
duration | :: uint32 | Can't be 0 - the smoke will never render.
Can't be 0 - the smoke will never render.
glow_animation optional | :: Animation |
color optional | :: Color |
start_scale optional | :: float |
end_scale optional | :: float |
movement_slow_down_factor optional | :: double | Value between 0 and 1, with 1 being no slowdown and 0 being no movement.
Value between 0 and 1, with 1 being no slowdown and 0 being no movement.
spread_duration optional | :: uint32 |
fade_away_duration optional | :: uint32 | `fade_in_duration` + `fade_away_duration` must be <= `duration`.
`fade_in_duration` + `fade_away_duration` must be <= `duration`.
fade_in_duration optional | :: uint32 | `fade_in_duration` + `fade_away_duration` must be <= `duration`.
`fade_in_duration` + `fade_away_duration` must be <= `duration`.
glow_fade_away_duration optional | :: uint32 |
cyclic optional | :: bool |
affected_by_wind optional | :: bool | Smoke always moves randomly unless `movement_slow_down_factor` is 0. [...]
Smoke always moves randomly unless `movement_slow_down_factor` is 0. [...]
show_when_smoke_off optional | :: bool |
render_layer optional | :: RenderLayer |

## TurretPrototype 'turret' changed

attack_parameters | :: AttackParameters | Requires ammo_type in attack_parameters unless this is a AmmoTurretPrototype.
Requires ammo_type in attack_parameters unless this is a AmmoTurretPrototype.
folded_animation changed | :: RotatedAnimation8Way |
call_for_help_radius | :: double |
attack_target_mask optional | :: TriggerTargetMask |
ignore_target_mask optional | :: TriggerTargetMask |
shoot_in_prepare_state optional | :: bool |
start_attacking_only_when_can_shoot new optional | :: bool | When `false` turret will enter `starting_attack` state without checking its ammo or energy levels. [...]
When `false` turret will enter `starting_attack` state without checking its ammo or energy levels. [...]
turret_base_has_direction optional | :: bool |
random_animation_offset optional | :: bool |
attack_from_start_frame optional | :: bool |
allow_turning_when_starting_attack optional | :: bool |
gun_animation_secondary_draw_order optional | :: uint8 |
gun_animation_render_layer optional | :: RenderLayer |
graphics_set new | :: TurretGraphicsSet |
preparing_animation changed optional | :: RotatedAnimation8Way |
prepared_animation changed optional | :: RotatedAnimation8Way |
prepared_alternative_animation changed optional | :: RotatedAnimation8Way |
starting_attack_animation changed optional | :: RotatedAnimation8Way |
attacking_animation changed optional | :: RotatedAnimation8Way |
energy_glow_animation changed optional | :: RotatedAnimation8Way |
resource_indicator_animation new optional | :: RotatedAnimation8Way |
ending_attack_animation changed optional | :: RotatedAnimation8Way |
folding_animation changed optional | :: RotatedAnimation8Way |
integration optional | :: Sprite |
special_effect new optional | :: TurretSpecialEffect |
glow_light_intensity optional | :: float | The intensity of light in the form of `energy_glow_animation` drawn on top of `energy_glow_animation`.
The intensity of light in the form of `energy_glow_animation` drawn on top of `energy_glow_animation`.
energy_glow_animation_flicker_strength optional | :: float | The range of the flickering of the alpha of `energy_glow_animation`. [...]
The range of the flickering of the alpha of `energy_glow_animation`. [...]
starting_attack_sound optional | :: Sound |
dying_sound optional | :: Sound |
preparing_sound optional | :: Sound |
folding_sound optional | :: Sound |
prepared_sound optional | :: Sound |
prepared_alternative_sound optional | :: Sound |
rotating_sound new optional | :: InterruptibleSound |
default_speed new optional | :: float |
default_speed_secondary new optional | :: float |
default_speed_when_killed new optional | :: float |
default_starting_progress_when_killed new optional | :: float |
rotation_speed optional | :: float |
rotation_speed_secondary new optional | :: float |
rotation_speed_when_killed new optional | :: float |
rotation_starting_progress_when_killed new optional | :: float |
preparing_speed optional | :: float | Controls the speed of the preparing_animation: `1 ÷ preparing_speed = duration of the preparing_animation`
Controls the speed of the preparing_animation: `1 ÷ preparing_speed = duration of the preparing_animation`
preparing_speed_secondary new optional | :: float |
preparing_speed_when_killed new optional | :: float |
preparing_starting_progress_when_killed new optional | :: float |
folded_speed optional | :: float | It's randomized whether a particular turret uses the primary or the secondary speed for its animations. [...]
It's randomized whether a particular turret uses the primary or the secondary speed for its animations. [...]
folded_speed_secondary optional | :: float | It's randomized whether a particular turret uses the primary or the secondary speed for its animations. [...]
It's randomized whether a particular turret uses the primary or the secondary speed for its animations. [...]
folded_speed_when_killed new optional | :: float |
folded_starting_progress_when_killed new optional | :: float |
prepared_speed optional | :: float | It's randomized whether a particular turret uses the primary or the secondary speed for its animations. [...]
It's randomized whether a particular turret uses the primary or the secondary speed for its animations. [...]
prepared_speed_secondary optional | :: float | It's randomized whether a particular turret uses the primary or the secondary speed for its animations. [...]
It's randomized whether a particular turret uses the primary or the secondary speed for its animations. [...]
prepared_speed_when_killed new optional | :: float |
prepared_starting_progress_when_killed new optional | :: float |
prepared_alternative_speed optional | :: float | It's randomized whether a particular turret uses the primary or the secondary speed for its animations. [...]
It's randomized whether a particular turret uses the primary or the secondary speed for its animations. [...]
prepared_alternative_speed_secondary optional | :: float | It's randomized whether a particular turret uses the primary or the secondary speed for its animations. [...]
It's randomized whether a particular turret uses the primary or the secondary speed for its animations. [...]
prepared_alternative_speed_when_killed new optional | :: float |
prepared_alternative_starting_progress_when_killed new optional | :: float |
prepared_alternative_chance optional | :: float | The chance for `prepared_alternative_animation` to be used.
The chance for `prepared_alternative_animation` to be used.
starting_attack_speed optional | :: float | Controls the speed of the starting_attack_animation: `1 ÷ starting_attack_speed = duration of the starting_attack_animation`
Controls the speed of the starting_attack_animation: `1 ÷ starting_attack_speed = duration of the starting_attack_animation`
starting_attack_speed_secondary new optional | :: float |
starting_attack_speed_when_killed new optional | :: float |
starting_attack_starting_progress_when_killed new optional | :: float |
attacking_speed optional | :: float | Controls the speed of the attacking_animation: `1 ÷ attacking_speed = duration of the attacking_animation`
Controls the speed of the attacking_animation: `1 ÷ attacking_speed = duration of the attacking_animation`
ending_attack_speed optional | :: float | Controls the speed of the ending_attack_animation: `1 ÷ ending_attack_speed = duration of the ending_attack_animation`
Controls the speed of the ending_attack_animation: `1 ÷ ending_attack_speed = duration of the ending_attack_animation`
ending_attack_speed_secondary new optional | :: float |
ending_attack_speed_when_killed new optional | :: float |
ending_attack_starting_progress_when_killed new optional | :: float |
folding_speed optional | :: float | Controls the speed of the folding_animation: `1 ÷ folding_speed = duration of the folding_animation`
Controls the speed of the folding_animation: `1 ÷ folding_speed = duration of the folding_animation`
folding_speed_secondary new optional | :: float |
folding_speed_when_killed new optional | :: float |
folding_starting_progress_when_killed new optional | :: float |
prepare_range optional | :: double |
alert_when_attacking optional | :: bool |
spawn_decorations_on_expansion optional | :: bool | Whether `spawn_decoration` should be spawned when this turret is created through enemy expansion.
Whether `spawn_decoration` should be spawned when this turret is created through enemy expansion.
folded_animation_is_stateless new optional | :: bool |
unfolds_before_dying new optional | :: bool |
spawn_decoration changed optional | :: array[CreateDecorativesTriggerEffectItem] | Decoratives to be created when the spawner is created by the map generator. [...]
Decoratives to be created when the spawner is created by the map generator. [...]
folded_state_corpse new optional | :: EntityID or array[EntityID] |
circuit_wire_max_distance new optional | :: double | The maximum circuit wire distance for this entity.
The maximum circuit wire distance for this entity.
draw_copper_wires new optional | :: bool |
draw_circuit_wires new optional | :: bool |
circuit_connector new optional | :: array[CircuitConnectorDefinition] | Set of circuit connector definitions for all directions used by this turret. [...]
Set of circuit connector definitions for all directions used by this turret. [...]

## TutorialDefinition 'tutorial' changed

scenario | :: string | Name of the folder for this tutorial scenario in the `tutorials` folder.
Name of the folder for this tutorial scenario in the `tutorials` folder.

## UndergroundBeltPrototype 'underground-belt' changed

max_distance | :: uint8 |
structure optional | :: UndergroundBeltStructure |
underground_sprite optional | :: Sprite |
underground_remove_belts_sprite optional | :: Sprite |
max_distance_underground_remove_belts_sprite new optional | :: Sprite |
underground_collision_mask new optional | :: CollisionMaskConnector |
max_distance_tint new optional | :: Color |

## UnitPrototype 'unit' changed

run_animation | :: RotatedAnimation |
attack_parameters | :: AttackParameters | Requires animation in attack_parameters. [...]
Requires animation in attack_parameters. [...]
warcry new optional | :: Sound | A sound the unit makes when it sets out to attack.
A sound the unit makes when it sets out to attack.
movement_speed | :: float | Movement speed of the unit in the world, in tiles per tick. [...]
Movement speed of the unit in the world, in tiles per tick. [...]
distance_per_frame | :: float | How fast the `run_animation` frames are advanced. [...]
How fast the `run_animation` frames are advanced. [...]
distraction_cooldown | :: uint32 |
vision_distance | :: double | Max is 100. [...]
Max is 100. [...]
rotation_speed optional | :: float |
dying_sound optional | :: Sound | The sound file to play when entity dies.
The sound file to play when entity dies.
min_pursue_time optional | :: uint32 | In ticks.
In ticks.
has_belt_immunity optional | :: bool | If the unit is immune to movement by belts.
If the unit is immune to movement by belts.
max_pursue_distance optional | :: double |
radar_range optional | :: uint32 |
ai_settings optional | :: UnitAISettings |
move_while_shooting optional | :: bool |
can_open_gates optional | :: bool |
affected_by_tiles optional | :: bool |
render_layer optional | :: RenderLayer |
light optional | :: LightDefinition |
absorptions_to_join_attack new optional | :: dictionary[AirbornePollutantID → float] |
spawning_time_modifier optional | :: double |
walking_sound optional | :: Sound |
alternative_attacking_frame_sequence optional | :: UnitAlternativeFrameSequence |
running_sound_animation_positions optional | :: array[float] | Only loaded if `walking_sound` is defined.
Only loaded if `walking_sound` is defined.

## UpgradeItemPrototype 'upgrade-item' changed

No new properties

## UseItemAchievementPrototype 'use-item-achievement' new

to_use | :: ItemID | This will trigger the achievement, if this capsule is used.
This will trigger the achievement, if this capsule is used.
limit_quality | :: QualityID |
amount optional | :: uint32 | How many capsules need to be used.
How many capsules need to be used.
limited_to_one_game optional | :: bool | If this is false, the player carries over their statistics from this achievement through all their saves.
If this is false, the player carries over their statistics from this achievement through all their saves.

## UtilityConstants 'utility-constants' changed

entity_button_background_color | :: Color |
building_buildable_too_far_tint | :: Color |
building_buildable_tint | :: Color |
building_not_buildable_tint | :: Color |
building_ignorable_tint | :: Color |
building_no_tint | :: Color |
underground_belt_max_distance_tint new | :: Color |
underground_pipe_max_distance_tint new | :: Color |
ghost_tint | :: Color |
ghost_tint_delivering new | :: Color |
tile_ghost_tint | :: Color |
tile_ghost_tint_delivering new | :: Color |
ghost_shimmer_settings new | :: GhostShimmerConfig |
probability_product_count_tint new | :: Color |
zero_count_value_tint new | :: Color |
equipment_default_background_color | :: Color |
equipment_default_background_border_color | :: Color |
equipment_default_grabbed_background_color | :: Color |
turret_range_visualization_color | :: Color |
capsule_range_visualization_color | :: Color |
agricultural_range_visualization_color new | :: Color |
artillery_range_visualization_color | :: Color |
chart | :: ChartUtilityConstants | Chart means map and minimap.
Chart means map and minimap.
gui_remark_color | :: Color |
gui_search_match_foreground_color new | :: Color |
gui_search_match_background_color new | :: Color |
default_player_force_color | :: Color |
default_enemy_force_color | :: Color |
default_other_force_color | :: Color |
deconstruct_mark_tint | :: Color |
rail_planner_count_button_color | :: Color |
count_button_size | :: int32 |
logistic_gui_unselected_network_highlight_tint new | :: Color |
logistic_gui_selected_network_highlight_tint new | :: Color |
chart_search_highlight new | :: Color |
selected_chart_search_highlight new | :: Color |
zoom_to_world_can_use_nightvision | :: bool |
zoom_to_world_effect_strength | :: float |
max_logistic_filter_count new | :: LogisticFilterIndex |
max_terrain_building_size | :: uint8 |
small_area_size | :: float |
medium_area_size | :: float |
large_area_size new | :: float |
small_blueprint_area_size | :: float |
medium_blueprint_area_size | :: float |
large_blueprint_area_size new | :: float |
enabled_recipe_slot_tint | :: Color |
disabled_recipe_slot_tint | :: Color |
disabled_recipe_slot_background_tint | :: Color |
forced_enabled_recipe_slot_background_tint | :: Color |
rail_segment_colors | :: array[Color] |
player_colors | :: array[PlayerColorData] | The table with `name = "default"` must exist and be the first member of the array.
The table with `name = "default"` must exist and be the first member of the array.
server_command_console_chat_color | :: Color |
script_command_console_chat_color | :: Color |
default_alert_icon_scale | :: float |
default_alert_icon_shift_by_type optional | :: dictionary[string → Vector] |
default_alert_icon_scale_by_type optional | :: dictionary[string → float] |
bonus_gui_ordering | :: BonusGuiOrdering | The base game uses more entries here that are applied via the ammo-category.lua file.
The base game uses more entries here that are applied via the ammo-category.lua file.
daytime_color_lookup | :: DaytimeColorLookupTable |
zoom_to_world_daytime_color_lookup | :: DaytimeColorLookupTable |
frozen_color_lookup new | :: ColorLookupTable |
map_editor | :: MapEditorConstants |
drop_item_radius new | :: float |
checkerboard_white | :: Color |
checkerboard_black | :: Color |
item_outline_color | :: Color |
item_outline_radius | :: float |
item_outline_inset | :: float |
item_outline_sharpness | :: float |
item_default_random_tint_strength new | :: Color |
spawner_evolution_factor_health_modifier new | :: float |
item_health_bar_colors new | :: array[ItemHealthColorData] | There must be one array item with a threshold of `0`.
There must be one array item with a threshold of `0`.
item_ammo_magazine_left_bar_color new | :: Color |
item_tool_durability_bar_color new | :: Color |
filter_outline_color | :: Color |
icon_shadow_radius | :: float |
icon_shadow_inset | :: float |
icon_shadow_sharpness | :: float |
icon_shadow_color | :: Color |
clipboard_history_size | :: uint32 |
recipe_step_limit | :: uint32 |
manual_rail_building_reach_modifier | :: double |
train_temporary_stop_wait_time | :: uint32 |
train_time_wait_condition_default | :: uint32 |
train_inactivity_wait_condition_default | :: uint32 |
default_trigger_target_mask_by_type optional | :: dictionary[string → TriggerTargetMask] | The strings are entity types.
The strings are entity types.
unit_group_pathfind_resolution | :: int8 |
unit_group_max_pursue_distance | :: double |
dynamic_recipe_overload_factor | :: double |
minimum_recipe_overload_multiplier | :: uint32 |
maximum_recipe_overload_multiplier | :: uint32 |
entity_renderer_search_box_limits | :: EntityRendererSearchBoxLimits |
light_renderer_search_distance_limit | :: uint8 | Can be set to anything from range 0 to 255, but larger values will be clamped to 160. [...]
Can be set to anything from range 0 to 255, but larger values will be clamped to 160. [...]
tree_leaf_distortion_strength_far | :: Vector |
tree_leaf_distortion_distortion_far | :: Vector |
tree_leaf_distortion_speed_far | :: Vector |
tree_leaf_distortion_strength_near | :: Vector |
tree_leaf_distortion_distortion_near | :: Vector |
tree_leaf_distortion_speed_near | :: Vector |
tree_shadow_roughness | :: float |
tree_shadow_speed | :: float |
missing_preview_sprite_location | :: FileName |
main_menu_background_image_location | :: FileName |
main_menu_simulations optional | :: dictionary[string → SimulationDefinition] | The strings represent the names of the simulations.
The strings represent the names of the simulations.
main_menu_background_vignette_intensity | :: float |
main_menu_background_vignette_sharpness | :: float |
default_scorch_mark_color | :: Color |
color_filters optional | :: array[ColorFilterData] |
minimap_slot_hovered_tint new | :: Color |
minimap_slot_clicked_tint new | :: Color |
clear_cursor_volume_modifier new | :: float |
weapons_in_simulation_volume_modifier new | :: float |
explosions_in_simulation_volume_modifier new | :: float |
enemies_in_simulation_volume_modifier new | :: float |
low_energy_robot_estimate_multiplier new | :: double |
asteroid_spawning_offset new | :: SimpleBoundingBox |
asteroid_fading_range new | :: float |
asteroid_spawning_with_random_orientation_max_speed new | :: double |
asteroid_position_offset_to_speed_coefficient new | :: double |
asteroid_collector_navmesh_refresh_tick_interval new | :: uint32 |
asteroid_collector_blockage_update_tile_distance new | :: uint32 |
asteroid_collector_max_nurbs_control_point_separation new | :: double |
asteroid_collector_static_head_swing_strength_scale new | :: double |
asteroid_collector_static_head_swing_segment_count new | :: uint32 |
space_platform_default_speed_formula new | :: MathExpression | Variables: speed, thrust, weight, width, height
Variables: speed, thrust, weight, width, height
space_platform_relative_speed_factor new | :: double |
space_platform_starfield_movement_vector new | :: Vector |
space_platform_max_size new | :: SimpleBoundingBox |
space_platform_dump_cooldown new | :: uint32 | Determines how fast space platforms will send items in trash slots to the surface. [...]
Determines how fast space platforms will send items in trash slots to the surface. [...]
default_item_weight new | :: Weight |
rocket_lift_weight new | :: Weight |
max_fluid_flow new | :: FluidAmount |
default_pipeline_extent new | :: double | The default value of FluidBox::max_pipeline_extent.
The default value of FluidBox::max_pipeline_extent.
default_planet_procession_set new | :: ProcessionSet | Must contain arrival and departure with procession_style containing 0.
Must contain arrival and departure with procession_style containing 0.
default_platform_procession_set new | :: ProcessionSet | Must contain arrival and departure with procession_style containing 0.
Must contain arrival and departure with procession_style containing 0.
landing_area_clear_zone_radius new | :: float | Radius of area where cargo pods won't land.
Radius of area where cargo pods won't land.
landing_area_max_radius new | :: float | Max radius where cargo pods will land.
Max radius where cargo pods will land.
lightning_attractor_collection_range_color new | :: Color |
lightning_attractor_protection_range_color new | :: Color |
ejected_item_lifetime new | :: MapTick | Silently clamped to be between 1 tick and 5 minutes (`5 * 60 * 60` ticks).
Silently clamped to be between 1 tick and 5 minutes (`5 * 60 * 60` ticks).
ejected_item_speed new | :: double | Silently clamped to be between 0 and 1/60.
Silently clamped to be between 0 and 1/60.
ejected_item_direction_variation new | :: double | Silently clamped to be between 0 and 0.99.
Silently clamped to be between 0 and 0.99.
ejected_item_friction new | :: double | Silently clamped to be between 0 and 1.
Silently clamped to be between 0 and 1.
train_visualization new | :: TrainVisualizationConstants |
default_collision_masks new | :: dictionary[string → CollisionMaskConnector] | The strings can be entity types or custom strings.
The strings can be entity types or custom strings.
show_chunk_components_collision_mask new | :: CollisionMaskConnector |
building_collision_mask new | :: CollisionMaskConnector |
water_collision_mask new | :: CollisionMaskConnector |
ghost_layer new | :: CollisionLayerID |
train_pushed_by_player_max_speed new | :: double |
train_pushed_by_player_max_acceleration new | :: double |
train_pushed_by_player_ignores_friction new | :: bool |
freezing_temperature new | :: double |
train_on_elevated_rail_shadow_shift_multiplier new | :: Vector |
select_group_row_count | :: uint8 | Must be in range [1, 100].
Must be in range [1, 100].
select_slot_row_count changed | :: uint8 | Must be in range [1, 100].
Must be in range [1, 100].
inventory_width | :: uint32 | Must be in range [1, 100].
Must be in range [1, 100].
module_inventory_width | :: uint32 | Must be in range [1, 100].
Must be in range [1, 100].
tooltip_monitor_edge_border | :: int32 | Must be >= 1.
Must be >= 1.
flying_text_ttl | :: uint32 | Must be >= 1.
Must be >= 1.
train_path_finding | :: TrainPathFinderConstants |
max_belt_stack_size new | :: uint8 | Must be >= 1.
Must be >= 1.
inserter_hand_stack_items_per_sprite new | :: ItemCountType | Must be >= 1.
Must be >= 1.
inserter_hand_stack_max_sprites new | :: ItemCountType | Must be >= 1.
Must be >= 1.
remote_view_LPF_min_cutoff_frequency new | :: float |
remote_view_LPF_max_cutoff_frequency new | :: float |
walking_sound_count_reduction_rate new | :: float | Silently clamped to be between 0 and 1.
Silently clamped to be between 0 and 1.
moving_sound_count_reduction_rate new | :: float | Silently clamped to be between 0 and 1.
Silently clamped to be between 0 and 1.
music_transition_fade_out_ticks new | :: uint32 |
music_transition_pause_ticks new | :: uint32 |
music_transition_fade_in_ticks new | :: uint32 |
environment_sounds_transition_fade_in_ticks new | :: uint32 |

## UtilitySounds 'utility-sounds' changed

gui_click | :: Sound |
list_box_click | :: Sound |
build_small | :: Sound |
build_medium | :: Sound |
build_large | :: Sound |
build_huge new | :: Sound |
cannot_build | :: Sound |
build_blueprint_small | :: Sound |
build_blueprint_medium | :: Sound |
build_blueprint_large | :: Sound |
build_blueprint_huge new | :: Sound |
build_ghost_upgrade new | :: Sound |
build_ghost_upgrade_cancel new | :: Sound |
build_animated_small new | :: Sound |
build_animated_medium new | :: Sound |
build_animated_large new | :: Sound |
build_animated_huge new | :: Sound |
deconstruct_small | :: Sound |
deconstruct_medium | :: Sound |
deconstruct_large new | :: Sound |
deconstruct_huge new | :: Sound |
deconstruct_robot | :: Sound |
rotated_small | :: Sound |
rotated_medium | :: Sound |
rotated_large new | :: Sound |
rotated_huge new | :: Sound |
axe_mining_ore | :: Sound |
axe_mining_stone new | :: Sound |
mining_wood | :: Sound |
axe_fighting | :: Sound |
alert_destroyed | :: Sound |
console_message | :: Sound |
scenario_message | :: Sound |
new_objective | :: Sound |
game_lost | :: Sound |
game_won | :: Sound |
metal_walking_sound | :: Sound |
research_completed | :: Sound |
default_manual_repair | :: Sound |
crafting_finished | :: Sound |
inventory_click | :: Sound |
inventory_move | :: Sound |
clear_cursor | :: Sound |
armor_insert | :: Sound |
armor_remove | :: Sound |
achievement_unlocked | :: Sound |
wire_connect_pole | :: Sound |
wire_disconnect | :: Sound |
wire_pickup | :: Sound |
tutorial_notice | :: Sound |
smart_pipette | :: Sound |
switch_gun | :: Sound |
picked_up_item | :: Sound |
paste_activated | :: Sound |
item_deleted | :: Sound |
entity_settings_pasted | :: Sound |
entity_settings_copied | :: Sound |
item_spawned | :: Sound |
confirm | :: Sound |
undo | :: Sound |
drop_item | :: Sound |
rail_plan_start | :: Sound |
default_driving_sound new | :: InterruptibleSound |
default_landing_steps new | :: Sound |
segment_dying_sound new optional | :: Sound |

## UtilitySprites 'utility-sprites' changed

cursor_box | :: CursorBoxSpecification |
platform_entity_build_animations new | :: EntityBuildAnimations |
bookmark | :: Sprite |
center | :: Sprite |
check_mark | :: Sprite |
check_mark_white | :: Sprite |
check_mark_green | :: Sprite |
check_mark_dark_green | :: Sprite |
not_played_yet_green | :: Sprite |
not_played_yet_dark_green | :: Sprite |
played_green | :: Sprite |
played_dark_green | :: Sprite |
close_fat | :: Sprite |
close new | :: Sprite |
close_black | :: Sprite |
backward_arrow new | :: Sprite |
backward_arrow_black new | :: Sprite |
forward_arrow new | :: Sprite |
forward_arrow_black new | :: Sprite |
recipe_arrow new | :: Sprite |
close_map_preview | :: Sprite |
color_picker | :: Sprite |
change_recipe | :: Sprite |
dropdown | :: Sprite |
downloading | :: Sprite |
downloaded | :: Sprite |
equipment_grid | :: Sprite |
expand_dots | :: Sprite |
export | :: Sprite |
import | :: Sprite |
map | :: Sprite |
map_exchange_string | :: Sprite |
missing_mod_icon | :: Sprite |
not_available | :: Sprite |
not_available_black new | :: Sprite |
play | :: Sprite |
stop | :: Sprite |
preset | :: Sprite |
refresh | :: Sprite |
reset | :: Sprite |
reset_white | :: Sprite |
shuffle | :: Sprite |
station_name | :: Sprite |
search new | :: Sprite |
sync_mods | :: Sprite |
trash | :: Sprite |
trash_white | :: Sprite |
copy | :: Sprite |
reassign | :: Sprite |
warning | :: Sprite |
warning_white | :: Sprite |
list_view | :: Sprite |
grid_view | :: Sprite |
slots_view new | :: Sprite |
reference_point | :: Sprite |
mouse_cursor | :: Sprite |
mod_category new | :: Sprite |
mod_last_updated new | :: Sprite |
mod_downloads_count new | :: Sprite |
item_to_be_delivered_symbol new | :: Sprite |
rebuild_mark new | :: Sprite |
any_quality new | :: Sprite |
mod_dependency_arrow | :: Sprite |
add | :: Sprite |
add_white new | :: Sprite |
clone | :: Sprite |
go_to_arrow | :: Sprite |
pause | :: Sprite |
speed_down | :: Sprite |
speed_up | :: Sprite |
editor_speed_down | :: Sprite |
editor_pause | :: Sprite |
editor_play | :: Sprite |
editor_speed_up | :: Sprite |
tick_once | :: Sprite |
tick_sixty | :: Sprite |
tick_custom | :: Sprite |
search_icon | :: Sprite |
too_far | :: Sprite |
shoot_cursor_green | :: Sprite |
shoot_cursor_red | :: Sprite |
electricity_icon | :: Sprite |
lightning_warning_icon new | :: Sprite |
fuel_icon | :: Sprite |
ammo_icon | :: Sprite |
fluid_icon | :: Sprite | The sprite will be drawn on top of fluid turrets that are out of fluid ammunition and don't have FluidTurretPrototype::out_of_ammo_alert_icon set.
The sprite will be drawn on top of fluid turrets that are out of fluid ammunition and don't have FluidTurretPrototype::out_of_ammo_alert_icon set.
warning_icon | :: Sprite |
danger_icon | :: Sprite |
destroyed_icon | :: Sprite |
recharge_icon | :: Sprite |
no_path_icon new | :: Sprite |
destination_full_icon new | :: Sprite |
too_far_from_roboport_icon | :: Sprite |
pump_cannot_connect_icon | :: Sprite |
not_enough_repair_packs_icon | :: Sprite |
not_enough_construction_robots_icon | :: Sprite |
no_building_material_icon | :: Sprite |
no_storage_space_icon | :: Sprite |
no_platform_storage_space_icon new | :: Sprite |
asteroid_collector_path_blocked_icon new | :: Sprite |
unclaimed_cargo_icon new | :: Sprite |
no_roboport_storage_space_icon new | :: Sprite |
frozen_icon new | :: Sprite |
pipeline_disabled_icon new | :: Sprite |
electricity_icon_unplugged | :: Sprite |
tooltip_category_spoilable new | :: Sprite |
resources_depleted_icon new | :: Sprite |
game_stopped_visualization | :: Sprite |
health_bar_green_pip | :: Sprite |
health_bar_yellow_pip | :: Sprite |
health_bar_red_pip | :: Sprite |
ghost_bar_pip | :: Sprite |
bar_gray_pip | :: Sprite |
shield_bar_pip | :: Sprite |
hand | :: Sprite |
hand_black | :: Sprite |
entity_info_dark_background | :: Sprite |
medium_gui_arrow | :: Sprite |
small_gui_arrow | :: Sprite |
light_medium | :: Sprite |
light_small | :: Sprite |
light_cone | :: Sprite |
color_effect | :: Sprite |
clock | :: Sprite |
default_ammo_damage_modifier_icon | :: Sprite |
default_gun_speed_modifier_icon | :: Sprite |
default_turret_attack_modifier_icon | :: Sprite |
hint_arrow_up | :: Sprite |
hint_arrow_down | :: Sprite |
hint_arrow_right | :: Sprite |
hint_arrow_left | :: Sprite |
fluid_indication_arrow | :: Sprite |
fluid_indication_arrow_both_ways | :: Sprite |
heat_exchange_indication | :: Sprite |
indication_arrow | :: Sprite |
rail_planner_indication_arrow | :: Sprite |
rail_planner_indication_arrow_anchored new | :: Sprite |
rail_planner_indication_arrow_too_far | :: Sprite |
rail_path_not_possible | :: Sprite |
indication_line | :: Sprite |
short_indication_line | :: Sprite |
short_indication_line_green | :: Sprite |
empty_module_slot new | :: Sprite |
empty_armor_slot new | :: Sprite |
empty_gun_slot new | :: Sprite |
empty_ammo_slot new | :: Sprite |
empty_robot_slot new | :: Sprite |
empty_robot_material_slot new | :: Sprite |
empty_inserter_hand_slot new | :: Sprite |
empty_trash_slot new | :: Sprite |
empty_drop_cargo_slot new | :: Sprite |
upgrade_blueprint | :: Sprite |
slot | :: Sprite |
equipment_slot | :: Sprite |
equipment_collision | :: Sprite |
battery | :: Sprite |
green_circle | :: Sprite |
green_dot | :: Sprite |
robot_slot | :: Sprite |
set_bar_slot | :: Sprite |
missing_icon | :: Sprite |
deconstruction_mark | :: Sprite |
buildability_collision new | :: Sprite |
buildability_elevated_collision_line new | :: Sprite |
buildability_elevated_collision_top new | :: Sprite |
buildability_elevated_collision_bottom new | :: Sprite |
buildability_collision_elevated new | :: Sprite |
upgrade_mark | :: Sprite |
confirm_slot | :: Sprite |
export_slot | :: Sprite |
import_slot | :: Sprite |
none_editor_icon | :: Sprite |
cable_editor_icon | :: Sprite |
tile_editor_icon | :: Sprite |
decorative_editor_icon | :: Sprite |
asteroid_chunk_editor_icon new | :: Sprite |
resource_editor_icon | :: Sprite |
entity_editor_icon | :: Sprite |
item_editor_icon | :: Sprite |
force_editor_icon | :: Sprite |
clone_editor_icon | :: Sprite |
scripting_editor_icon | :: Sprite |
paint_bucket_icon | :: Sprite |
surface_editor_icon | :: Sprite |
time_editor_icon | :: Sprite |
cliff_editor_icon | :: Sprite |
brush_icon | :: Sprite |
spray_icon | :: Sprite |
cursor_icon | :: Sprite |
area_icon | :: Sprite |
line_icon | :: Sprite |
variations_tool_icon | :: Sprite |
lua_snippet_tool_icon | :: Sprite |
editor_selection | :: Sprite |
brush_square_shape | :: Sprite |
brush_circle_shape | :: Sprite |
player_force_icon | :: Sprite |
neutral_force_icon | :: Sprite |
enemy_force_icon | :: Sprite |
nature_icon | :: Sprite |
no_nature_icon | :: Sprite |
multiplayer_waiting_icon | :: Sprite |
spawn_flag | :: Sprite |
questionmark | :: Sprite |
copper_wire | :: Sprite |
green_wire | :: Sprite |
red_wire | :: Sprite |
copper_wire_highlight new | :: Sprite |
green_wire_highlight new | :: Sprite |
red_wire_highlight new | :: Sprite |
wire_shadow | :: Sprite |
and_or | :: Sprite |
left_arrow | :: Sprite |
right_arrow | :: Sprite |
down_arrow | :: Sprite |
enter | :: Sprite |
move_tag new | :: Sprite |
side_menu_blueprint_library_icon | :: Sprite |
side_menu_production_icon | :: Sprite |
side_menu_bonus_icon | :: Sprite |
side_menu_tutorials_icon | :: Sprite |
side_menu_factoriopedia_icon new | :: Sprite |
side_menu_train_icon | :: Sprite |
side_menu_achievements_icon | :: Sprite |
side_menu_menu_icon | :: Sprite |
side_menu_map_icon | :: Sprite |
side_menu_space_platforms_icon new | :: Sprite |
side_menu_technology_icon new | :: Sprite |
side_menu_logistic_networks_icon new | :: Sprite |
side_menu_players_icon new | :: Sprite |
circuit_network_panel new | :: Sprite |
logistic_network_panel_white | :: Sprite |
logistic_network_panel_black | :: Sprite |
rename_icon new | :: Sprite |
achievement_warning new | :: Sprite |
achievement_label new | :: Sprite |
achievement_label_completed new | :: Sprite |
achievement_label_failed | :: Sprite |
rail_signal_placement_indicator | :: Sprite |
train_stop_placement_indicator | :: Sprite |
rail_support_placement_indicator new | :: Sprite |
placement_indicator_leg | :: Sprite |
grey_rail_signal_placement_indicator | :: Sprite |
grey_placement_indicator_leg | :: Sprite |
logistic_radius_visualization | :: Sprite |
construction_radius_visualization | :: Sprite |
track_button | :: Sprite |
track_button_white new | :: Sprite |
show_logistics_network_in_map_view | :: Sprite |
show_electric_network_in_map_view | :: Sprite |
show_turret_range_in_map_view | :: Sprite |
show_train_station_names_in_map_view | :: Sprite |
show_player_names_in_map_view | :: Sprite |
show_tags_in_map_view | :: Sprite |
show_worker_robots_in_map_view | :: Sprite |
show_rail_signal_states_in_map_view | :: Sprite |
show_recipe_icons_in_map_view | :: Sprite |
show_pipelines_in_map_view new | :: Sprite |
train_stop_in_map_view | :: Sprite |
train_stop_disabled_in_map_view | :: Sprite |
train_stop_full_in_map_view | :: Sprite |
custom_tag_in_map_view | :: Sprite |
covered_chunk | :: Sprite |
white_square | :: Sprite |
white_square_icon new | :: Sprite |
white_mask | :: Sprite |
crafting_machine_recipe_not_unlocked | :: Sprite |
filter_blacklist new | :: Sprite |
gps_map_icon | :: Sprite |
custom_tag_icon | :: Sprite |
space_age_icon new | :: Sprite |
tip_icon new | :: Sprite |
underground_remove_belts | :: Sprite |
max_distance_underground_remove_belts new | :: Sprite |
underground_remove_pipes | :: Sprite |
underground_pipe_connection | :: Sprite |
ghost_cursor | :: Sprite |
tile_ghost_cursor | :: Sprite |
force_ghost_cursor new | :: Sprite |
force_tile_ghost_cursor new | :: Sprite |
cross_select | :: Sprite |
crosshair new | :: Sprite |
expand | :: Sprite |
collapse | :: Sprite |
status_working | :: Sprite |
status_not_working | :: Sprite |
status_yellow | :: Sprite |
status_blue new | :: Sprite |
status_inactive new | :: Sprite |
gradient | :: Sprite |
output_console_gradient | :: Sprite |
select_icon_white | :: Sprite |
select_icon_black | :: Sprite |
notification | :: Sprite |
alert_arrow | :: Sprite |
pin_arrow new | :: Sprite |
pin_center new | :: Sprite |
technology_white | :: Sprite |
feedback new | :: Sprite |
sort_by_name new | :: Sprite |
sort_by_time new | :: Sprite |
parametrise new | :: Sprite |
fluid_visualization_connection new | :: Sprite |
fluid_visualization_connection_both_ways new | :: Sprite |
fluid_visualization_connection_underground new | :: Sprite |
fluid_visualization_extent_arrow new | :: Sprite |
starmap_platform_moving new | :: Sprite |
starmap_platform_moving_hovered new | :: Sprite |
starmap_platform_moving_clicked new | :: Sprite |
starmap_platform_stopped new | :: Sprite |
starmap_platform_stopped_hovered new | :: Sprite |
starmap_platform_stopped_clicked new | :: Sprite |
starmap_platform_stacked new | :: Sprite |
starmap_platform_stacked_hovered new | :: Sprite |
starmap_platform_stacked_clicked new | :: Sprite |
starmap_star new | :: Sprite |
controller_joycon_a | :: Sprite |
controller_joycon_b | :: Sprite |
controller_joycon_x | :: Sprite |
controller_joycon_y | :: Sprite |
controller_joycon_back | :: Sprite |
controller_joycon_start | :: Sprite |
controller_joycon_leftstick | :: Sprite |
controller_joycon_rightstick | :: Sprite |
controller_joycon_leftshoulder | :: Sprite |
controller_joycon_rightshoulder | :: Sprite |
controller_joycon_dpup | :: Sprite |
controller_joycon_dpdown | :: Sprite |
controller_joycon_dpleft | :: Sprite |
controller_joycon_dpright | :: Sprite |
controller_joycon_paddle1 | :: Sprite |
controller_joycon_paddle2 | :: Sprite |
controller_joycon_paddle3 | :: Sprite |
controller_joycon_paddle4 | :: Sprite |
controller_joycon_righttrigger | :: Sprite |
controller_joycon_lefttrigger | :: Sprite |
controller_joycon_left_stick | :: Sprite |
controller_joycon_right_stick | :: Sprite |
controller_joycon_black_a | :: Sprite |
controller_joycon_black_b | :: Sprite |
controller_joycon_black_x | :: Sprite |
controller_joycon_black_y | :: Sprite |
controller_joycon_black_back | :: Sprite |
controller_joycon_black_start | :: Sprite |
controller_joycon_black_leftstick | :: Sprite |
controller_joycon_black_rightstick | :: Sprite |
controller_joycon_black_leftshoulder | :: Sprite |
controller_joycon_black_rightshoulder | :: Sprite |
controller_joycon_black_dpup | :: Sprite |
controller_joycon_black_dpdown | :: Sprite |
controller_joycon_black_dpleft | :: Sprite |
controller_joycon_black_dpright | :: Sprite |
controller_joycon_black_paddle1 | :: Sprite |
controller_joycon_black_paddle2 | :: Sprite |
controller_joycon_black_paddle3 | :: Sprite |
controller_joycon_black_paddle4 | :: Sprite |
controller_joycon_black_righttrigger | :: Sprite |
controller_joycon_black_lefttrigger | :: Sprite |
controller_joycon_black_left_stick | :: Sprite |
controller_joycon_black_right_stick | :: Sprite |
controller_xbox_a | :: Sprite |
controller_xbox_b | :: Sprite |
controller_xbox_x | :: Sprite |
controller_xbox_y | :: Sprite |
controller_xbox_back | :: Sprite |
controller_xbox_start | :: Sprite |
controller_xbox_leftstick | :: Sprite |
controller_xbox_rightstick | :: Sprite |
controller_xbox_leftshoulder | :: Sprite |
controller_xbox_rightshoulder | :: Sprite |
controller_xbox_dpup | :: Sprite |
controller_xbox_dpdown | :: Sprite |
controller_xbox_dpleft | :: Sprite |
controller_xbox_dpright | :: Sprite |
controller_xbox_righttrigger | :: Sprite |
controller_xbox_lefttrigger | :: Sprite |
controller_xbox_left_stick | :: Sprite |
controller_xbox_right_stick | :: Sprite |
controller_xbox_black_a | :: Sprite |
controller_xbox_black_b | :: Sprite |
controller_xbox_black_x | :: Sprite |
controller_xbox_black_y | :: Sprite |
controller_xbox_black_back | :: Sprite |
controller_xbox_black_start | :: Sprite |
controller_xbox_black_leftstick | :: Sprite |
controller_xbox_black_rightstick | :: Sprite |
controller_xbox_black_leftshoulder | :: Sprite |
controller_xbox_black_rightshoulder | :: Sprite |
controller_xbox_black_dpup | :: Sprite |
controller_xbox_black_dpdown | :: Sprite |
controller_xbox_black_dpleft | :: Sprite |
controller_xbox_black_dpright | :: Sprite |
controller_xbox_black_righttrigger | :: Sprite |
controller_xbox_black_lefttrigger | :: Sprite |
controller_xbox_black_left_stick | :: Sprite |
controller_xbox_black_right_stick | :: Sprite |
controller_ps_a | :: Sprite |
controller_ps_b | :: Sprite |
controller_ps_x | :: Sprite |
controller_ps_y | :: Sprite |
controller_ps_back | :: Sprite |
controller_ps_start | :: Sprite |
controller_ps_leftstick | :: Sprite |
controller_ps_rightstick | :: Sprite |
controller_ps_leftshoulder | :: Sprite |
controller_ps_rightshoulder | :: Sprite |
controller_ps_dpup | :: Sprite |
controller_ps_dpdown | :: Sprite |
controller_ps_dpleft | :: Sprite |
controller_ps_dpright | :: Sprite |
controller_ps_righttrigger | :: Sprite |
controller_ps_lefttrigger | :: Sprite |
controller_ps_left_stick | :: Sprite |
controller_ps_right_stick | :: Sprite |
controller_ps_black_a | :: Sprite |
controller_ps_black_b | :: Sprite |
controller_ps_black_x | :: Sprite |
controller_ps_black_y | :: Sprite |
controller_ps_black_back | :: Sprite |
controller_ps_black_start | :: Sprite |
controller_ps_black_leftstick | :: Sprite |
controller_ps_black_rightstick | :: Sprite |
controller_ps_black_leftshoulder | :: Sprite |
controller_ps_black_rightshoulder | :: Sprite |
controller_ps_black_dpup | :: Sprite |
controller_ps_black_dpdown | :: Sprite |
controller_ps_black_dpleft | :: Sprite |
controller_ps_black_dpright | :: Sprite |
controller_ps_black_righttrigger | :: Sprite |
controller_ps_black_lefttrigger | :: Sprite |
controller_ps_black_left_stick | :: Sprite |
controller_ps_black_right_stick | :: Sprite |
controller_steamdeck_a | :: Sprite |
controller_steamdeck_b | :: Sprite |
controller_steamdeck_x | :: Sprite |
controller_steamdeck_y | :: Sprite |
controller_steamdeck_back | :: Sprite |
controller_steamdeck_start | :: Sprite |
controller_steamdeck_leftstick | :: Sprite |
controller_steamdeck_rightstick | :: Sprite |
controller_steamdeck_leftshoulder | :: Sprite |
controller_steamdeck_rightshoulder | :: Sprite |
controller_steamdeck_dpup | :: Sprite |
controller_steamdeck_dpdown | :: Sprite |
controller_steamdeck_dpleft | :: Sprite |
controller_steamdeck_dpright | :: Sprite |
controller_steamdeck_paddle1 | :: Sprite |
controller_steamdeck_paddle2 | :: Sprite |
controller_steamdeck_paddle3 | :: Sprite |
controller_steamdeck_paddle4 | :: Sprite |
controller_steamdeck_righttrigger | :: Sprite |
controller_steamdeck_lefttrigger | :: Sprite |
controller_steamdeck_left_stick | :: Sprite |
controller_steamdeck_right_stick | :: Sprite |
controller_steamdeck_black_a | :: Sprite |
controller_steamdeck_black_b | :: Sprite |
controller_steamdeck_black_x | :: Sprite |
controller_steamdeck_black_y | :: Sprite |
controller_steamdeck_black_back | :: Sprite |
controller_steamdeck_black_start | :: Sprite |
controller_steamdeck_black_leftstick | :: Sprite |
controller_steamdeck_black_rightstick | :: Sprite |
controller_steamdeck_black_leftshoulder | :: Sprite |
controller_steamdeck_black_rightshoulder | :: Sprite |
controller_steamdeck_black_dpup | :: Sprite |
controller_steamdeck_black_dpdown | :: Sprite |
controller_steamdeck_black_dpleft | :: Sprite |
controller_steamdeck_black_dpright | :: Sprite |
controller_steamdeck_black_paddle1 | :: Sprite |
controller_steamdeck_black_paddle2 | :: Sprite |
controller_steamdeck_black_paddle3 | :: Sprite |
controller_steamdeck_black_paddle4 | :: Sprite |
controller_steamdeck_black_righttrigger | :: Sprite |
controller_steamdeck_black_lefttrigger | :: Sprite |
controller_steamdeck_black_left_stick | :: Sprite |
controller_steamdeck_black_right_stick | :: Sprite |
clouds | :: Animation |
arrow_button | :: Animation |
explosion_chart_visualization | :: Animation |
refresh_white | :: Animation |
navmesh_pending_icon new | :: Animation |
inserter_stack_size_bonus_modifier_icon | :: Sprite |
inserter_stack_size_bonus_modifier_constant optional | :: Sprite |
bulk_inserter_capacity_bonus_modifier_icon new | :: Sprite |
bulk_inserter_capacity_bonus_modifier_constant new optional | :: Sprite |
laboratory_speed_modifier_icon | :: Sprite |
laboratory_speed_modifier_constant optional | :: Sprite |
character_logistic_trash_slots_modifier_icon | :: Sprite |
character_logistic_trash_slots_modifier_constant optional | :: Sprite |
maximum_following_robots_count_modifier_icon | :: Sprite |
maximum_following_robots_count_modifier_constant optional | :: Sprite |
worker_robot_speed_modifier_icon | :: Sprite |
worker_robot_speed_modifier_constant optional | :: Sprite |
worker_robot_storage_modifier_icon | :: Sprite |
worker_robot_storage_modifier_constant optional | :: Sprite |
create_ghost_on_entity_death_modifier_icon new | :: Sprite |
create_ghost_on_entity_death_modifier_constant new optional | :: Sprite |
turret_attack_modifier_icon | :: Sprite |
turret_attack_modifier_constant optional | :: Sprite |
ammo_damage_modifier_icon | :: Sprite |
ammo_damage_modifier_constant optional | :: Sprite |
give_item_modifier_icon | :: Sprite |
give_item_modifier_constant optional | :: Sprite |
gun_speed_modifier_icon | :: Sprite |
gun_speed_modifier_constant optional | :: Sprite |
unlock_recipe_modifier_icon | :: Sprite |
unlock_recipe_modifier_constant optional | :: Sprite |
character_crafting_speed_modifier_icon | :: Sprite |
character_crafting_speed_modifier_constant optional | :: Sprite |
character_mining_speed_modifier_icon | :: Sprite |
character_mining_speed_modifier_constant optional | :: Sprite |
character_running_speed_modifier_icon | :: Sprite |
character_running_speed_modifier_constant optional | :: Sprite |
character_build_distance_modifier_icon | :: Sprite |
character_build_distance_modifier_constant optional | :: Sprite |
character_item_drop_distance_modifier_icon | :: Sprite |
character_item_drop_distance_modifier_constant optional | :: Sprite |
character_reach_distance_modifier_icon | :: Sprite |
character_reach_distance_modifier_constant optional | :: Sprite |
character_resource_reach_distance_modifier_icon | :: Sprite |
character_resource_reach_distance_modifier_constant optional | :: Sprite |
character_item_pickup_distance_modifier_icon | :: Sprite |
character_item_pickup_distance_modifier_constant optional | :: Sprite |
character_loot_pickup_distance_modifier_icon | :: Sprite |
character_loot_pickup_distance_modifier_constant optional | :: Sprite |
character_inventory_slots_bonus_modifier_icon | :: Sprite |
character_inventory_slots_bonus_modifier_constant optional | :: Sprite |
deconstruction_time_to_live_modifier_icon | :: Sprite |
deconstruction_time_to_live_modifier_constant optional | :: Sprite |
max_failed_attempts_per_tick_per_construction_queue_modifier_icon | :: Sprite |
max_failed_attempts_per_tick_per_construction_queue_modifier_constant optional | :: Sprite |
max_successful_attempts_per_tick_per_construction_queue_modifier_icon | :: Sprite |
max_successful_attempts_per_tick_per_construction_queue_modifier_constant optional | :: Sprite |
character_health_bonus_modifier_icon | :: Sprite |
character_health_bonus_modifier_constant optional | :: Sprite |
mining_drill_productivity_bonus_modifier_icon | :: Sprite |
mining_drill_productivity_bonus_modifier_constant optional | :: Sprite |
train_braking_force_bonus_modifier_icon | :: Sprite |
train_braking_force_bonus_modifier_constant optional | :: Sprite |
worker_robot_battery_modifier_icon | :: Sprite |
worker_robot_battery_modifier_constant optional | :: Sprite |
laboratory_productivity_modifier_icon | :: Sprite |
laboratory_productivity_modifier_constant optional | :: Sprite |
follower_robot_lifetime_modifier_icon | :: Sprite |
follower_robot_lifetime_modifier_constant optional | :: Sprite |
artillery_range_modifier_icon | :: Sprite |
artillery_range_modifier_constant optional | :: Sprite |
nothing_modifier_icon | :: Sprite |
nothing_modifier_constant optional | :: Sprite |
character_additional_mining_categories_modifier_icon | :: Sprite |
character_additional_mining_categories_modifier_constant optional | :: Sprite |
character_logistic_requests_modifier_icon | :: Sprite |
character_logistic_requests_modifier_constant optional | :: Sprite |
unlock_space_location_modifier_icon new | :: Sprite |
unlock_space_location_modifier_constant new optional | :: Sprite |
unlock_quality_modifier_icon new | :: Sprite |
unlock_quality_modifier_constant new optional | :: Sprite |
unlock_space_platforms_modifier_icon new | :: Sprite |
unlock_space_platforms_modifier_constant new optional | :: Sprite |
unlock_circuit_network_modifier_icon new | :: Sprite |
unlock_circuit_network_modifier_constant new optional | :: Sprite |
cargo_landing_pad_count_modifier_icon new | :: Sprite |
cargo_landing_pad_count_modifier_constant new optional | :: Sprite |
change_recipe_productivity_modifier_icon new | :: Sprite |
change_recipe_productivity_modifier_constant new optional | :: Sprite |
cliff_deconstruction_enabled_modifier_icon new | :: Sprite |
cliff_deconstruction_enabled_modifier_constant new optional | :: Sprite |
mining_with_fluid_modifier_icon new | :: Sprite |
mining_with_fluid_modifier_constant new optional | :: Sprite |
rail_support_on_deep_oil_ocean_modifier_icon new | :: Sprite |
rail_support_on_deep_oil_ocean_modifier_constant new optional | :: Sprite |
rail_planner_allow_elevated_rails_modifier_icon new | :: Sprite |
rail_planner_allow_elevated_rails_modifier_constant new optional | :: Sprite |
beacon_distribution_modifier_icon new | :: Sprite |
beacon_distribution_modifier_constant new optional | :: Sprite |
belt_stack_size_bonus_modifier_icon new | :: Sprite |
belt_stack_size_bonus_modifier_constant new optional | :: Sprite |
vehicle_logistics_modifier_icon new | :: Sprite |
vehicle_logistics_modifier_constant new optional | :: Sprite |

## VehiclePrototype 'vehicle' changed

weight | :: double | Must be positive. [...]
Must be positive. [...]
braking_power or braking_force | :: Energy or double | Must be positive. [...]
Must be positive. [...]
friction or friction_force | :: double | Must be positive. [...]
Must be positive. [...]
energy_per_hit_point | :: double | The (movement) energy used per hit point (1 hit point = 1 health damage) taken and dealt for this vehicle during collisions. [...]
The (movement) energy used per hit point (1 hit point = 1 health damage) taken and dealt for this vehicle during collisions. [...]
terrain_friction_modifier optional | :: float | Must be in the [0, 1] interval.
Must be in the [0, 1] interval.
impact_speed_to_volume_ratio new optional | :: double |
stop_trigger_speed optional | :: double |
crash_trigger optional | :: TriggerEffect |
stop_trigger optional | :: TriggerEffect |
equipment_grid optional | :: EquipmentGridID | The name of the EquipmentGridPrototype this vehicle has.
The name of the EquipmentGridPrototype this vehicle has.
minimap_representation optional | :: Sprite | The sprite that represents this vehicle on the map/minimap.
The sprite that represents this vehicle on the map/minimap.
selected_minimap_representation optional | :: Sprite | The sprite that represents this vehicle on the map/minimap when it is selected.
The sprite that represents this vehicle on the map/minimap when it is selected.
allow_passengers optional | :: bool | Determines whether this vehicle accepts passengers. [...]
Determines whether this vehicle accepts passengers. [...]
deliver_category new optional | :: string | Name of a DeliverCategory.
Name of a DeliverCategory.
allow_remote_driving new optional | :: bool |

## VirtualSignalPrototype 'virtual-signal' changed

icons optional | :: array[IconData] | The icon that is used to represent this virtual signal. [...]
The icon that is used to represent this virtual signal. [...]
icon optional | :: FileName | Path to the icon file that is used to represent this virtual signal. [...]
Path to the icon file that is used to represent this virtual signal. [...]
icon_size optional | :: SpriteSizeType | The size of the square icon, in pixels. [...]
The size of the square icon, in pixels. [...]

## WallPrototype 'wall' changed

pictures optional | :: WallPictures |
visual_merge_group optional | :: uint32 | Different walls will visually connect to each other if their merge group is the same.
Different walls will visually connect to each other if their merge group is the same.
circuit_wire_max_distance optional | :: double | The maximum circuit wire distance for this entity.
The maximum circuit wire distance for this entity.
draw_copper_wires optional | :: bool |
draw_circuit_wires optional | :: bool |
circuit_connector new optional | :: CircuitConnectorDefinition |
default_output_signal optional | :: SignalIDConnector |
wall_diode_green optional | :: Sprite4Way |
wall_diode_red optional | :: Sprite4Way |
wall_diode_green_light_top optional | :: LightDefinition |
wall_diode_green_light_right optional | :: LightDefinition |
wall_diode_green_light_bottom optional | :: LightDefinition |
wall_diode_green_light_left optional | :: LightDefinition |
wall_diode_red_light_top optional | :: LightDefinition |
wall_diode_red_light_right optional | :: LightDefinition |
wall_diode_red_light_bottom optional | :: LightDefinition |
wall_diode_red_light_left optional | :: LightDefinition |
connected_gate_visualization optional | :: Sprite |