Factorio.com|Forums|Wiki|Mod Portal|API Docs

# Factorio Prototype Docs Version 2.0.77

# Prototypes - Prototype Docs

## 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 'accumulator' | Entity with energy source with specialised animation for charging/discharging. [...]
AchievementPrototype 'achievement' | This prototype definition is used for the in-game achievements.
AchievementPrototypeWithCondition abstract |
ActiveDefenseEquipmentPrototype 'active-defense-equipment' | Used by discharge defense and personal laser defense.
ActiveTriggerPrototype abstract | The abstract base of all active trigger prototypes. [...]
AgriculturalTowerPrototype 'agricultural-tower' |
AirbornePollutantPrototype 'airborne-pollutant' | A type of pollution that can spread throughout the chunks of a map.
AmbientSound 'ambient-sound' | This prototype is used to make sound while playing the game. [...]
AmmoCategory 'ammo-category' | An ammo category. [...]
AmmoItemPrototype 'ammo' | Ammo used for a gun.
AmmoTurretPrototype 'ammo-turret' | A turret that consumes ammo items.
AnimationPrototype 'animation' | Specifies an animation that can be used with LuaRendering::draw_animation at runtime.
ArithmeticCombinatorPrototype 'arithmetic-combinator' | An arithmetic combinator.
ArmorPrototype 'armor' | Armor to wear on your in-game character for defense and buffs.
ArrowPrototype 'arrow' | The arrows used for example in the campaign, they are literally just arrows.
ArtilleryFlarePrototype 'artillery-flare' | The entity spawned by the artillery targeting remote.
ArtilleryProjectilePrototype 'artillery-projectile' | The projectile shot by artillery.
ArtilleryTurretPrototype 'artillery-turret' | An artillery turret.
ArtilleryWagonPrototype 'artillery-wagon' | An artillery wagon.
AssemblingMachinePrototype 'assembling-machine' | An assembling machine - like the assembling machines 1/2/3 in the game, but you can use your own recipe categories.
AsteroidChunkPrototype 'asteroid-chunk' |
AsteroidCollectorPrototype 'asteroid-collector' |
AsteroidPrototype 'asteroid' |
AutoplaceControl 'autoplace-control' | A setting in the map creation GUI. [...]
BatteryEquipmentPrototype 'battery-equipment' | Used by personal battery.
BeaconPrototype 'beacon' | Entity with the ability to transfer module effects to its neighboring entities.
BeamPrototype 'beam' | Used as a laser beam.
BeltImmunityEquipmentPrototype 'belt-immunity-equipment' | Used by belt immunity equipment.
BlueprintBookPrototype 'blueprint-book' | A blueprint book.
BlueprintItemPrototype 'blueprint' | A blueprint.
BoilerPrototype 'boiler' | A boiler. [...]
BuildEntityAchievementPrototype 'build-entity-achievement' | This prototype is used for receiving an achievement when the player builds an entity.
BurnerGeneratorPrototype 'burner-generator' | An entity that produces power from a burner energy source.
BurnerUsagePrototype '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.
CaptureRobotPrototype 'capture-robot' |
CarPrototype 'car' | Entity with specialized properties for acceleration, braking, and turning.
CargoBayPrototype 'cargo-bay' |
CargoLandingPadPrototype 'cargo-landing-pad' |
CargoPodPrototype 'cargo-pod' |
CargoWagonPrototype 'cargo-wagon' | A cargo wagon.
ChainActiveTriggerPrototype 'chain-active-trigger' | Jumps between targets and applies a Trigger to them.
ChangedSurfaceAchievementPrototype 'change-surface-achievement' | This prototype is used for receiving an achievement when the player changes to a surface.
CharacterCorpsePrototype 'character-corpse' | The corpse of a CharacterPrototype.
CharacterPrototype 'character' | Entity that you move around on the screen during the campaign and freeplay.
CliffPrototype 'cliff' | A cliff.
CollisionLayerPrototype '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 abstract | Abstract base type for decider and arithmetic combinators.
CompleteObjectiveAchievementPrototype 'complete-objective-achievement' |
ConstantCombinatorPrototype '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 'construction-robot' | A construction robot.
ContainerPrototype 'container' | A generic container, such as a chest. [...]
CopyPasteToolPrototype 'copy-paste-tool' | A copy-paste or cut-paste tool.
CorpsePrototype 'corpse' | Used for corpses, for example the remnants when destroying buildings.
CraftingMachinePrototype abstract | The abstract basis of the assembling machines and furnaces. [...]
CreatePlatformAchievementPrototype 'create-platform-achievement' | This prototype is used for receiving an achievement when the player creates a space platform.
CurvedRailAPrototype 'curved-rail-a' | A curved-A rail.
CurvedRailBPrototype 'curved-rail-b' | A curved-B rail.
CustomEventPrototype 'custom-event' | Custom events share the same namespace as custom inputs and built-in events for subscribing to and raising them.
CustomInputPrototype 'custom-input' | Used for custom keyboard shortcuts/key bindings in mods. [...]
DamageType '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 'deconstructible-tile-proxy' | Entity used to signify that the tile below it should be deconstructed.
DeconstructionItemPrototype 'deconstruction-item' | A deconstruction planner.
DecorativePrototype '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 '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 'deliver-category' |
DeliverImpactCombination 'deliver-impact-combination' |
DepleteResourceAchievementPrototype 'deplete-resource-achievement' | This prototype is used for receiving an achievement when a resource entity is depleted.
DestroyCliffAchievementPrototype 'destroy-cliff-achievement' |
DisplayPanelPrototype 'display-panel' | Entity that display a signal icon and some text, either configured directly in the entity or through the circuit network.
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 'dont-kill-manually-achievement' | This prototype is used for receiving an achievement when the player kill first entity using artillery.
DontResearchBeforeResearchingAchievementPrototype '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 '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 'electric-pole' | An electric pole - part of the electric system.
ElectricTurretPrototype 'electric-turret' | A turret that uses electricity as ammunition.
ElevatedCurvedRailAPrototype 'elevated-curved-rail-a' | An elevated curved-A rail.
ElevatedCurvedRailBPrototype 'elevated-curved-rail-b' | An elevated curved-B rail.
ElevatedHalfDiagonalRailPrototype 'elevated-half-diagonal-rail' | An elevated half diagonal rail.
ElevatedStraightRailPrototype 'elevated-straight-rail' | An elevated straight rail.
EnemySpawnerPrototype 'unit-spawner' | Can spawn entities. [...]
EnergyShieldEquipmentPrototype 'energy-shield-equipment' | Used by energy shield.
EntityGhostPrototype 'entity-ghost' | The entity used for ghosts of entities. [...]
EntityPrototype abstract | Abstract base of all entities in the game. [...]
EntityWithHealthPrototype abstract | Abstract base of all entities with health in the game.
EntityWithOwnerPrototype abstract | Abstract base of all entities with a force in the game. [...]
EquipArmorAchievementPrototype '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 '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 'explosion' | Used to play an animation and a sound.
FireFlamePrototype 'fire' | A fire.
FishPrototype 'fish' | Entity that spawns in water tiles, which can be mined. [...]
FluidPrototype 'fluid' | A fluid.
FluidStreamPrototype '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 abstract | Abstract base for construction/logistics and combat robots.
FontPrototype 'font' | Fonts are used in all GUIs in the game.
FuelCategory 'fuel-category' | Each item which has a fuel_value must have a fuel category. [...]
FurnacePrototype 'furnace' | A furnace. [...]
FusionGeneratorPrototype 'fusion-generator' | Consumes a fluid to generate electricity and create another fluid.
FusionReactorPrototype 'fusion-reactor' | Fusion reactor. [...]
GatePrototype 'gate' | A gate.
GeneratorEquipmentPrototype 'generator-equipment' | Used by portable fusion reactor. [...]
GeneratorPrototype 'generator' | An entity that produces power from fluids, for example a steam engine.
GodControllerPrototype 'god-controller' | Properties of the god controller.
GroupAttackAchievementPrototype '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 'half-diagonal-rail' | A half diagonal rail.
HeatInterfacePrototype 'heat-interface' | This entity produces or consumes heat. [...]
HeatPipePrototype 'heat-pipe' | A heat pipe.
HighlightBoxEntityPrototype 'highlight-box' | Used to attach graphics for cursor boxes to entities during runtime. [...]
ImpactCategory 'impact-category' |
InfinityCargoWagonPrototype 'infinity-cargo-wagon' | A cargo wagon that can spawn or void items at will.
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 'inserter' | An inserter.
InventoryBonusEquipmentPrototype 'inventory-bonus-equipment' |
ItemEntityPrototype 'item-entity' | The entity used for items on the ground.
ItemGroup 'item-group' | An item group. [...]
ItemPrototype 'item' | Possible configuration for all items.
ItemRequestProxyPrototype '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 '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 '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 '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 'lab' | A lab. [...]
LampPrototype 'lamp' | A lamp to provide light, using energy.
LandMinePrototype 'land-mine' | A land mine.
LaneSplitterPrototype 'lane-splitter' |
LegacyCurvedRailPrototype 'legacy-curved-rail' | A legacy curved rail.
LegacyStraightRailPrototype 'legacy-straight-rail' | A legacy straight rail.
LightningAttractorPrototype 'lightning-attractor' | Absorbs lightning and optionally converts it into electricity.
LightningPrototype 'lightning' | Lightning randomly hits entities on planets with lightning_properties. [...]
LinkedBeltPrototype 'linked-belt' | A belt that can be connected to a belt anywhere else, including on a different surface. [...]
LinkedContainerPrototype '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 abstract | Continuously loads and unloads machines, as an alternative to inserters.
LocomotivePrototype 'locomotive' | A locomotive.
LogisticContainerPrototype '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 'map-settings' | The default map settings.
MarketPrototype 'market' | Offers can be added to a market and they are shown when opening the entity. [...]
MiningDrillPrototype 'mining-drill' | A mining drill for automatically extracting resources from resource entities. [...]
ModData 'mod-data' | Block of arbitrary data set by mods in prototype stage. [...]
ModuleCategory 'module-category' | A module category. [...]
ModulePrototype 'module' | A module. [...]
ModuleTransferAchievementPrototype '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 'noise-expression' | A NoiseExpression with a name. [...]
NamedNoiseFunction '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 'offshore-pump' | An offshore pump.
ParticlePrototype 'optimized-particle' | An entity with a limited lifetime that can use trigger effects.
ParticleSourcePrototype 'particle-source' | Creates particles.
PipePrototype 'pipe' | An entity to transport fluids over a distance and between machines.
PipeToGroundPrototype 'pipe-to-ground' | A pipe to ground.
PlaceEquipmentAchievementPrototype 'place-equipment-achievement' |
PlanetPrototype 'planet' |
PlantPrototype 'plant' |
PlayerDamagedAchievementPrototype 'player-damaged-achievement' | This prototype is used for receiving an achievement when the player receives damage.
PlayerPortPrototype 'player-port' | Deprecated in 2.0.
PowerSwitchPrototype 'power-switch' | A power switch.
ProcessionLayerInheritanceGroup 'procession-layer-inheritance-group' | Helps ProcessionLayers pass properties between subsequent transitions if they belong to the same group.
ProcessionPrototype 'procession' | Describes the duration and visuals of a departure, arrival or an intermezzo while traveling between surfaces. [...]
ProduceAchievementPrototype '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 'programmable-speaker' | A programmable speaker.
ProjectilePrototype 'projectile' | Entity with limited lifetime that can hit other entities and has triggers when this happens.
Prototype abstract |
PrototypeBase abstract | The abstract base for prototypes. [...]
ProxyContainerPrototype 'proxy-container' | A container that must be set to point at other entity and inventory index so it can forward all inventory interactions to the other entity.
PumpPrototype 'pump' | The pump is used to transfer fluids between tanks, fluid wagons and pipes.
QualityPrototype 'quality' | One quality step. [...]
RadarPrototype 'radar' | A radar.
RailChainSignalPrototype 'rail-chain-signal' | A rail chain signal.
RailPlannerPrototype 'rail-planner' | A rail planner.
RailPrototype abstract | The abstract base of all rail prototypes.
RailRampPrototype 'rail-ramp' | A rail ramp.
RailRemnantsPrototype 'rail-remnants' | Used for rail corpses.
RailSignalBasePrototype abstract | The abstract base entity for both rail signals.
RailSignalPrototype 'rail-signal' | A rail signal.
RailSupportPrototype 'rail-support' |
ReactorPrototype 'reactor' | A reactor.
RecipeCategory 'recipe-category' | A recipe category. [...]
RecipePrototype 'recipe' | A recipe. [...]
RemoteControllerPrototype 'remote-controller' | Properties of the remote controller.
RepairToolPrototype 'repair-tool' | A repair pack. [...]
ResearchAchievementPrototype 'research-achievement' | This prototype is used for receiving an achievement when the player completes a specific research.
ResearchWithSciencePackAchievementPrototype 'research-with-science-pack-achievement' |
ResourceCategory 'resource-category' | A resource category. [...]
ResourceEntityPrototype 'resource' | A mineable/gatherable entity.
RoboportEquipmentPrototype 'roboport-equipment' | Used by personal roboport.
RoboportPrototype 'roboport' | A roboport.
RobotWithLogisticInterfacePrototype abstract | The common properties of logistic and construction robots represented by an abstract prototype.
RocketSiloPrototype 'rocket-silo' | A rocket silo.
RocketSiloRocketPrototype 'rocket-silo-rocket' | The rocket inside the rocket silo.
RocketSiloRocketShadowPrototype 'rocket-silo-rocket-shadow' | The shadow of the rocket inside the rocket silo.
RollingStockPrototype abstract | The abstract base of all rolling stock.
SegmentPrototype 'segment' | Entity representing an individual segment in a SegmentedUnitPrototype
SegmentedUnitPrototype 'segmented-unit' | Entity composed of multiple segment entities that trail behind the head.
SelectionToolPrototype 'selection-tool' | Used in the base game as a base for the blueprint item and the deconstruction item.
SelectorCombinatorPrototype 'selector-combinator' |
ShootAchievementPrototype 'shoot-achievement' | This prototype is used for receiving an achievement when the player shoots certain ammo.
ShortcutPrototype 'shortcut' | Definition for a shortcut button in the shortcut bar. [...]
SimpleEntityPrototype '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 '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 abstract | Abstract entity that has an animation.
SmokeWithTriggerPrototype '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 'sound' | Specifies a sound that can be used with SoundPath at runtime.
SpaceConnectionDistanceTraveledAchievementPrototype 'space-connection-distance-traveled-achievement' |
SpaceConnectionPrototype 'space-connection' |
SpaceLocationPrototype 'space-location' | A space location, such as a planet or the solar system edge.
SpacePlatformHubPrototype 'space-platform-hub' |
SpacePlatformStarterPackPrototype 'space-platform-starter-pack' |
SpectatorControllerPrototype 'spectator-controller' | Properties of the spectator controller.
SpeechBubblePrototype 'speech-bubble' | A speech bubble. [...]
SpiderLegPrototype 'spider-leg' | Used by SpiderLegSpecification for SpiderVehiclePrototype, also known as spidertron.
SpiderUnitPrototype 'spider-unit' |
SpiderVehiclePrototype 'spider-vehicle' | A spidertron.
SpidertronRemotePrototype 'spidertron-remote' | The spidertron remote. [...]
SplitterPrototype 'splitter' | A splitter.
SpritePrototype 'sprite' | Specifies an image that can be used with SpritePath at runtime.
StickerPrototype 'sticker' | Entity that sticks to another entity, and damages/slows it. [...]
StorageTankPrototype 'storage-tank' | A storage tank.
StraightRailPrototype 'straight-rail' | A straight rail.
SurfacePropertyPrototype 'surface-property' |
SurfacePrototype 'surface' |
TechnologyPrototype 'technology' | A technology.
TemporaryContainerPrototype 'temporary-container' | A container that can automatically destroy itself when it is emptied or after it has existed for a certain time.
ThrusterPrototype 'thruster' | Consumes two fluids as fuel to produce thrust for a space platform.
TileEffectDefinition 'tile-effect' | Used to define the parameters for tile shaders.
TileGhostPrototype 'tile-ghost' | The entity used for tile ghosts.
TilePrototype 'tile' | A tile.
TipsAndTricksItem '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 'train-stop' | A train stop.
TransportBeltConnectablePrototype abstract | Abstract class that anything that is a belt or can connect to belts uses.
TransportBeltPrototype 'transport-belt' | A transport belt.
TreePrototype '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 'turret' | A turret that needs no extra ammunition. [...]
TutorialDefinition 'tutorial' | The definition of the tutorial to be used in the tips and tricks, see TipsAndTricksItem. [...]
UndergroundBeltPrototype 'underground-belt' | An underground belt.
UnitPrototype 'unit' | Entity that moves around and attacks players, for example biters and spitters.
UpgradeItemPrototype 'upgrade-item' | An upgrade planner. [...]
UseEntityInEnergyProductionAchievementPrototype 'use-entity-in-energy-production-achievement' | This prototype is used for receiving an achievement when the player produces energy by entity.
UseItemAchievementPrototype 'use-item-achievement' | This prototype is used for receiving an achievement when the player uses a capsule.
UtilityConstants 'utility-constants' | Constants used by the game that are not specific to certain prototypes. [...]
UtilitySounds 'utility-sounds' | Sounds used by the game that are not specific to certain prototypes.
UtilitySprites 'utility-sprites' | Sprites used by the game that are not specific to certain prototypes.
ValvePrototype 'valve' | A passive device that provides limited control of fluid flow between pipelines.
VehiclePrototype abstract | Abstract base of all vehicles.
VirtualSignalPrototype 'virtual-signal' | A virtual signal.
WallPrototype 'wall' | A wall.

## AccumulatorPrototype 'accumulator'

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 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 | :: boolean |
draw_circuit_wires optional | :: boolean |
circuit_connector 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'

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 | :: boolean | 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

objective_condition optional | :: `"game-finished"` or `"rocket-launched"` or `"late-research"` | The condition that needs to be met to receive the achievement. [...]
The condition that needs to be met to receive the achievement. [...]

## ActiveDefenseEquipmentPrototype 'active-defense-equipment'

automatic | :: boolean |
attack_parameters | :: AttackParameters |

## ActiveTriggerPrototype abstract

No new properties

## AgriculturalTowerPrototype 'agricultural-tower'

graphics_set optional | :: CraftingMachineGraphicsSet |
crane | :: AgriculturalCraneProperties |
energy_source | :: EnergySource |
input_inventory_size | :: ItemStackIndex |
output_inventory_size optional | :: ItemStackIndex |
energy_usage | :: Energy | The amount of energy this agricultural tower uses for each planted or harvested plant.
The amount of energy this agricultural tower uses for each planted or harvested plant.
crane_energy_usage | :: Energy | The amount of energy this agricultural tower uses while the crane is moving.
The amount of energy this agricultural tower uses while the crane is moving.
radius | :: double | The radius represents grid tiles which are created around the agricultural tower from its collision box. [...]
The radius represents grid tiles which are created around the agricultural tower from its collision box. [...]
growth_grid_tile_size optional | :: uint32 | The size of one grid tile a plant is planted into. [...]
The size of one grid tile a plant is planted into. [...]
growth_area_radius optional | :: double | The minimum radius of empty space a plant requires around it to be planted. [...]
The minimum radius of empty space a plant requires around it to be planted. [...]
random_growth_offset optional | :: double | The maximum offset from the grid tile center which will be applied to the planting spot selected by this agricultural tower. [...]
The maximum offset from the grid tile center which will be applied to the planting spot selected by this agricultural tower. [...]
randomize_planting_tile optional | :: boolean | Whether the agricultural tower will start from a random grid tile when given a planting task.
Whether the agricultural tower will start from a random grid tile when given a planting task.
radius_visualisation_picture optional | :: Sprite |
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 |
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 | :: boolean |
draw_circuit_wires optional | :: boolean |
circuit_connector optional | :: CircuitConnectorDefinition |
accepted_seeds optional | :: array[ItemID] | When missing, all items with plant result will be accepted. [...]
When missing, all items with plant result will be accepted. [...]

## AirbornePollutantPrototype 'airborne-pollutant'

localised_name_with_amount optional | :: string | The translated plural string key to use when displaying this pollution's name with an amount. [...]
The translated plural string key to use when displaying this pollution's name with an amount. [...]
chart_color | :: Color |
icon | :: Sprite |
affects_evolution | :: boolean |
affects_water_tint | :: boolean | 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.
damages_trees optional | :: boolean | If true, trees will occasionally take damage from this pollutant type. [...]
If true, trees will occasionally take damage from this pollutant type. [...]

## AmbientSound 'ambient-sound'

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 | :: AmbientSoundType |
planet 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 optional | :: VariableAmbientSoundVariableSound | Variable music track. [...]
Variable music track. [...]

## AmmoCategory 'ammo-category'

bonus_gui_order optional | :: Order |
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. [...]

## AmmoItemPrototype 'ammo'

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 | :: AmmoCategoryID |
shoot_protected optional | :: boolean |

## AmmoTurretPrototype 'ammo-turret'

energy_source optional | :: ElectricEnergySource |
energy_per_shot optional | :: Energy |
inventory_size | :: ItemStackIndex | Size of the ammo inventory.
Size of the ammo inventory.
automated_ammo_count | :: ItemCountType | The amount of ammo that inserters automatically insert into this turret.
The amount of ammo that inserters automatically insert into this turret.
prepare_with_no_ammo optional | :: boolean |

## AnimationPrototype 'animation'

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 optional | :: boolean | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
apply_special_effect optional | :: boolean | 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 | :: boolean | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
draw_as_glow optional | :: boolean | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
draw_as_light optional | :: boolean | 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 | :: boolean | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
tint_as_overlay optional | :: boolean | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
invert_colors optional | :: boolean | 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 | :: boolean | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
premul_alpha optional | :: boolean | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
allow_forced_downscale optional | :: boolean | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
generate_sdf optional | :: boolean | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
surface optional | :: SpriteUsageSurfaceHint | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
usage optional | :: SpriteUsageHint | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
run_mode 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 optional | :: array[FileName] | Only loaded if neither `layers` nor `stripes` are defined.
Only loaded if neither `layers` nor `stripes` are defined.
slice 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 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'

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 optional | :: boolean |
collision_box optional | :: BoundingBox |
drawing_box optional | :: BoundingBox |
takeoff_sound optional | :: Sound | Only loaded if `provides_flight` is `true`.
Only loaded if `provides_flight` is `true`.
flight_sound optional | :: InterruptibleSound | Only loaded if `provides_flight` is `true`.
Only loaded if `provides_flight` is `true`.
landing_sound optional | :: Sound | Only loaded if `provides_flight` is `true`.
Only loaded if `provides_flight` is `true`.
steps_sound optional | :: Sound |
moving_sound optional | :: Sound |

## ArrowPrototype 'arrow'

arrow_picture | :: Sprite |
circle_picture optional | :: Sprite |
blinking optional | :: boolean |

## ArtilleryFlarePrototype 'artillery-flare'

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 | Only artillery turrets/wagons whose ammo's ammo_category matches this category will shoot at this flare. [...]
Only artillery turrets/wagons whose ammo's ammo_category matches this category will shoot at this flare. [...]

## ArtilleryProjectilePrototype 'artillery-projectile'

reveal_map | :: boolean |
picture optional | :: Sprite |
shadow optional | :: Sprite |
chart_picture optional | :: Sprite |
action optional | :: Trigger |
final_action optional | :: Trigger |
height_from_ground optional | :: float |
rotatable optional | :: boolean | 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'

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 optional | :: ItemCountType | Must be > 0. [...]
Must be > 0. [...]
turret_rotation_speed | :: double |
manual_range_modifier | :: double | Must be positive.
Must be positive.
alert_when_attacking optional | :: boolean |
disable_automatic_firing optional | :: boolean |
base_picture_secondary_draw_order optional | :: uint8 |
base_picture_render_layer optional | :: RenderLayer |
base_picture optional | :: Animation4Way |
cannon_base_shift | :: 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 optional | :: double | The maximum circuit wire distance for this entity.
The maximum circuit wire distance for this entity.
draw_copper_wires optional | :: boolean |
draw_circuit_wires optional | :: boolean |
circuit_connector 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'

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 optional | :: 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 | :: boolean |
cannon_base_pictures optional | :: RollingStockRotatedSlopedGraphics |
cannon_base_height optional | :: double |
cannon_base_shift_when_vertical optional | :: double |
cannon_base_shift_when_horizontal optional | :: double |
cannon_barrel_pictures 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'

fixed_recipe optional | :: RecipeID | The preset recipe of this machine. [...]
The preset recipe of this machine. [...]
fixed_quality optional | :: QualityID | Only loaded when fixed_recipe is provided.
Only loaded when fixed_recipe is provided.
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 optional | :: double | The maximum circuit wire distance for this entity.
The maximum circuit wire distance for this entity.
draw_copper_wires optional | :: boolean |
draw_circuit_wires optional | :: boolean |
default_recipe_finished_signal optional | :: SignalIDConnector |
default_working_signal optional | :: SignalIDConnector |
enable_logistic_control_behavior optional | :: boolean |
ingredient_count optional | :: uint16 | Sets the maximum number of item ingredients this machine can craft with. [...]
Sets the maximum number of item ingredients this machine can craft with. [...]
max_item_product_count optional | :: uint16 |
circuit_connector optional | :: {CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition} |
circuit_connector_flipped optional | :: {CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition} |
fluid_boxes_off_when_no_fluid_recipe optional | :: boolean |
disabled_when_recipe_not_researched optional | :: boolean | Defaults to true if `fixed_recipe` is not given.
Defaults to true if `fixed_recipe` is not given.

## AsteroidChunkPrototype 'asteroid-chunk'

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 | :: boolean |

## AsteroidCollectorPrototype 'asteroid-collector'

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 | :: boolean |
draw_circuit_wires optional | :: boolean |
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'

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

## AutoplaceControl 'autoplace-control'

category | :: `"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 | :: boolean | Sets whether this control's richness can be changed. [...]
Sets whether this control's richness can be changed. [...]
can_be_disabled optional | :: boolean | 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. [...]
related_to_fight_achievements optional | :: boolean | Whether this settings being lower than default disables fight related achievements.
Whether this settings being lower than default disables fight related achievements.

## BatteryEquipmentPrototype 'battery-equipment'

No new properties

## BeaconPrototype 'beacon'

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 | :: uint32 | 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 optional | :: double | Must be 0 or positive.
Must be 0 or positive.
module_slots | :: ItemStackIndex | The number of module slots in this beacon.
The number of module slots in this beacon.
quality_affects_module_slots optional | :: boolean | If set, QualityPrototype::beacon_module_slots_bonus will be added to module slots count.
If set, QualityPrototype::beacon_module_slots_bonus will be added to module slots count.
quality_affects_supply_area_distance optional | :: boolean | If set, QualityPrototype::beacon_supply_area_distance_bonus will be added to supply_area_distance. [...]
If set, QualityPrototype::beacon_supply_area_distance_bonus will be added to supply_area_distance. [...]
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 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 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 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 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'

action optional | :: Trigger |
width | :: float |
damage_interval | :: uint32 | Damage interval can't be 0. [...]
Damage interval can't be 0. [...]
target_offset optional | :: Vector |
random_target_offset optional | :: boolean |
action_triggered_automatically optional | :: boolean | Whether this beams should trigger its action every `damage_interval`. [...]
Whether this beams should trigger its action every `damage_interval`. [...]
graphics_set | :: 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'

No new properties

## BoilerPrototype 'boiler'

pictures 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 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 | :: boolean | 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 | :: boolean | 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 optional | :: `"heat-fluid-inside"` or `"output-to-separate-pipe"` | In the `"output-to-separate-pipe"` mode, fluid is transferred from the `fluid_box` to the `output_fluid_box` when enough energy is available to heat the input fluid to the `target_temperature`. [...]
In the `"output-to-separate-pipe"` mode, fluid is transferred from the `fluid_box` to the `output_fluid_box` when enough energy is available to heat the input fluid to the `target_temperature`. [...]

## BuildEntityAchievementPrototype 'build-entity-achievement'

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 | :: boolean | 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 optional | :: MapTick | The achievement must be completed within this time limit.
The achievement must be completed within this time limit.

## BurnerGeneratorPrototype 'burner-generator'

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 | :: boolean | 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 optional | :: PerceivedPerformance | Affects animation speed and working sound.
Affects animation speed and working sound.

## BurnerUsagePrototype 'burner-usage'

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'

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'

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 |
rotation_snap_angle | :: double | Vehicle will snap the vertical, horizontal or diagonal axis if it's within this angle
Vehicle will snap the vertical, horizontal or diagonal axis if it's within this angle
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 | :: boolean | If this car prototype uses tank controls to drive.
If this car prototype uses tank controls to drive.
auto_sort_inventory optional | :: boolean | If this car prototype keeps the trunk inventory sorted.
If this car prototype keeps the trunk inventory sorted.
has_belt_immunity optional | :: boolean | If this car is immune to movement by belts.
If this car is immune to movement by belts.
immune_to_tree_impacts optional | :: boolean | 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 | :: boolean | 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 | :: boolean | 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 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'

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'

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 | :: boolean |
draw_circuit_wires optional | :: boolean |
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 | In chunks. [...]
In chunks. [...]
radar_visualisation_color optional | :: Color |

## CargoPodPrototype 'cargo-pod'

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 |
impact_trigger optional | :: Trigger |

## CargoWagonPrototype 'cargo-wagon'

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

## ChainActiveTriggerPrototype 'chain-active-trigger'

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'

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'

time_to_live | :: uint32 | In ticks. [...]
In ticks. [...]
render_layer optional | :: RenderLayer |
pictures optional | :: AnimationVariations | Mandatory if `picture` is not defined.
Mandatory if `picture` is not defined.
picture optional | :: Animation | Only loaded, and mandatory if `pictures` is not defined.
Only loaded, and mandatory if `pictures` is not defined.
armor_picture_mapping optional | :: dictionary[ItemID → int32] | A mapping of ArmorPrototype name to a number. [...]
A mapping of ArmorPrototype name to a number. [...]

## CharacterPrototype 'character'

crafting_speed optional | :: double |
mining_speed | :: double |
running_speed | :: double |
distance_per_frame | :: double |
maximum_corner_sliding_distance | :: double |
heartbeat optional | :: Sound | The sound played when the character's health is low.
The sound played when the character's health is low.
inventory_size | :: ItemStackIndex | Number of slots in the main inventory. [...]
Number of slots in the main inventory. [...]
guns_inventory_size 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 | :: array[float] | List of positions in the running animation when the moving sound is played.
List of positions in the running animation when the moving sound is played.
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 optional | :: float |
grounded_landing_search_radius 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 | :: boolean | 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 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'

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 optional | :: CraterPlacementDefinition |

## CollisionLayerPrototype 'collision-layer'

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 | :: boolean |
light optional | :: LightDefinition |

## CombinatorPrototype abstract

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 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 | :: boolean |
draw_circuit_wires optional | :: boolean |

## CompleteObjectiveAchievementPrototype 'complete-objective-achievement'

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

## ConstantCombinatorPrototype 'constant-combinator'

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 | :: boolean |
draw_circuit_wires optional | :: boolean |
pulse_duration optional | :: uint32 | When not zero, toggle entity will enable constant combinator for that amount of ticks and then turn it off.
When not zero, toggle entity will enable constant combinator for that amount of ticks and then turn it off.

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

limited_to_one_game | :: boolean | 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 | :: boolean |

## ConstructionRobotPrototype 'construction-robot'

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

## ContainerPrototype 'container'

inventory_size | :: ItemStackIndex | The number of slots in this container.
The number of slots in this container.
quality_affects_inventory_size optional | :: boolean |
picture optional | :: Sprite | The picture displayed for this entity.
The picture displayed for this entity.
inventory_type optional | :: `"normal"` or `"with_bar"` or `"with_filters_and_bar"` or `"with_custom_stack_size"` or `"with_weight_limit"` | Determines the type of inventory that this container has. [...]
Determines the type of inventory that this container has. [...]
inventory_properties optional | :: InventoryWithCustomStackSizeSpecification | Only used when `inventory_type` is `"with_custom_stack_size"`.
Only used when `inventory_type` is `"with_custom_stack_size"`.
inventory_weight_limit optional | :: Weight | Only used when `inventory_type` is `"with_weight_limit"`.
Only used when `inventory_type` is `"with_weight_limit"`.
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 | :: boolean |
draw_circuit_wires optional | :: boolean |
circuit_connector optional | :: CircuitConnectorDefinition |
default_status optional | :: EntityStatus |

## CopyPasteToolPrototype 'copy-paste-tool'

cuts optional | :: boolean |

## CorpsePrototype 'corpse'

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 optional | :: boolean |
remove_on_entity_placement optional | :: boolean |
remove_on_tile_placement optional | :: boolean |
auto_setup_collision_box optional | :: boolean | If true, and the collision box is unset, this will take the collision box of the first entity that uses this corpse.
If true, and the collision box is unset, this will take the collision box of the first entity that uses this corpse.
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 | Defines after which frame in the `animation` the `direction_shuffle` should be applied. [...]
Defines after which frame in the `animation` the `direction_shuffle` should be applied. [...]
use_tile_color_for_ground_patch_tint optional | :: boolean |
use_decay_layer optional | :: boolean |
underwater_layer_offset 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 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 optional | :: RotatedAnimationVariations |
splash optional | :: AnimationVariations |
ground_patch optional | :: AnimationVariations |
ground_patch_higher optional | :: AnimationVariations |
ground_patch_decay optional | :: AnimationVariations |
underwater_patch optional | :: RotatedSprite |
ground_patch_fade_out_duration optional | :: float |
direction_shuffle optional | :: array[array[uint16]] | May not be an empty array. [...]
May not be an empty array. [...]

## CraftingMachinePrototype abstract

quality_affects_energy_usage optional | :: boolean | When set, QualityPrototype::crafting_machine_energy_usage_multiplier will be applied to energy_usage.
When set, QualityPrototype::crafting_machine_energy_usage_multiplier will be applied to energy_usage.
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 optional | :: EffectReceiver |
module_slots optional | :: ItemStackIndex | The number of module slots in this machine.
The number of module slots in this machine.
quality_affects_module_slots optional | :: boolean | If set, QualityPrototype::crafting_machine_module_slots_bonus will be added to module slots count.
If set, QualityPrototype::crafting_machine_module_slots_bonus will be added to module slots count.
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 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 | :: boolean | 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 | :: boolean | 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 | :: boolean | 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 | :: boolean | 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 | :: boolean | 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 optional | :: boolean |
ignore_output_full optional | :: boolean |
graphics_set optional | :: CraftingMachineGraphicsSet |
graphics_set_flipped optional | :: CraftingMachineGraphicsSet |
perceived_performance optional | :: PerceivedPerformance | Affects animation speed.
Affects animation speed.
production_health_effect optional | :: ProductionHealthEffect |
trash_inventory_size optional | :: ItemStackIndex |
vector_to_place_result optional | :: Vector |
forced_symmetry optional | :: Mirroring |
crafting_speed_quality_multiplier optional | :: dictionary[QualityID → double] | Each value must be >= 0.01. [...]
Each value must be >= 0.01. [...]
module_slots_quality_bonus optional | :: dictionary[QualityID → ItemStackIndex] | If value is not provided for a quality, then QualityPrototype::crafting_machine_module_slots_bonus will be used as a module slots bonus instead. [...]
If value is not provided for a quality, then QualityPrototype::crafting_machine_module_slots_bonus will be used as a module slots bonus instead. [...]
energy_usage_quality_multiplier optional | :: dictionary[QualityID → double] | Each value must be >= 0.01. [...]
Each value must be >= 0.01. [...]

## CreatePlatformAchievementPrototype 'create-platform-achievement'

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

## CurvedRailAPrototype 'curved-rail-a'

No new properties

## CurvedRailBPrototype 'curved-rail-b'

No new properties

## CustomEventPrototype 'custom-event'

No new properties

## CustomInputPrototype 'custom-input'

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 | :: boolean | If this custom input is enabled. [...]
If this custom input is enabled. [...]
enabled_while_spectating optional | :: boolean |
enabled_while_in_cutscene optional | :: boolean |
include_selected_prototype optional | :: boolean | 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 optional | :: boolean | 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'

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'

No new properties

## DeconstructionItemPrototype 'deconstruction-item'

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'

pictures | :: SpriteVariations | Must contain at least 1 picture.
Must contain at least 1 picture.
stateless_visualisation optional | :: StatelessVisualisation or array[StatelessVisualisation] | 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 optional | :: array[StatelessVisualisation or array[StatelessVisualisation]] | 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 | :: boolean |
opacity_over_water optional | :: float | Loaded only if `render_layer` = "decals". [...]
Loaded only if `render_layer` = "decals". [...]
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 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 optional | :: double |
target_count optional | :: uint16 |
placed_effect optional | :: TriggerEffect |
autoplace optional | :: AutoplaceSpecification |

## DelayedActiveTriggerPrototype 'delayed-active-trigger'

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 | :: boolean | 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 | :: 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'

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

## DeliverImpactCombination 'deliver-impact-combination'

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 | :: TriggerEffect |

## DepleteResourceAchievementPrototype 'deplete-resource-achievement'

amount optional | :: uint32 | How many resource entities need to be depleted.
How many resource entities need to be depleted.
limited_to_one_game optional | :: boolean | 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'

amount optional | :: uint32 |
limited_to_one_game optional | :: boolean | 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'

sprites optional | :: Sprite4Way | The display panel's graphics.
The display panel's graphics.
max_text_width optional | :: uint32 | The maximum display width of the text on the display panel. [...]
The maximum display 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 | :: boolean |
draw_circuit_wires optional | :: boolean |
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 |
research_with optional | :: ItemID or array[ItemID] | If you research technology using one of specified items before building entity, you receive the achievement.
If you research technology using one of specified items before building entity, you receive the achievement.

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

amount | :: 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'

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'

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 | :: boolean | If `true`, the achievements will only be checked for the last hour of the game, independently of finishing the game.
If `true`, the achievements will only be checked for the last hour of the game, independently of finishing the game.
minimum_energy_produced optional | :: Energy | The minimum amount of energy that needs to be produced by the allowed entities to trigger the achievement.
The minimum amount of energy that needs to be produced by the allowed entities to trigger the achievement.

## EditorControllerPrototype 'editor-controller'

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 | :: boolean |
adjust_speed_based_off_zoom | :: boolean |
render_as_day | :: boolean |
instant_blueprint_building | :: boolean |
instant_deconstruction | :: boolean |
instant_upgrading | :: boolean |
instant_rail_planner | :: boolean |
show_status_icons | :: boolean |
show_hidden_entities | :: boolean |
show_entity_tags | :: boolean |
show_entity_health_bars | :: boolean |
show_additional_entity_info_gui | :: boolean |
generate_neighbor_chunks | :: boolean |
fill_built_entity_energy_buffers | :: boolean |
show_character_tab_in_controller_gui | :: boolean |
show_infinity_filters_in_controller_gui | :: boolean |
placed_corpses_never_expire | :: boolean |
ignore_tile_conditions | :: boolean |

## 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 | :: boolean | 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'

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 | :: boolean |
draw_circuit_wires optional | :: boolean |
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_drag_building optional | :: boolean |
auto_connect_up_to_n_wires optional | :: uint8 | `0` means disable auto-connect.
`0` means disable auto-connect.
rewire_neighbours_when_destroying optional | :: boolean |

## ElectricTurretPrototype 'electric-turret'

energy_source | :: ElectricEnergySource or VoidEnergySource |

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

No new properties

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

No new properties

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

No new properties

## ElevatedStraightRailPrototype 'elevated-straight-rail'

No new properties

## EnemySpawnerPrototype 'unit-spawner'

graphics_set | :: EnemySpawnerGraphicsSet |
max_count_of_owned_units | :: uint32 | Count of enemies this spawner can sustain.
Count of enemies this spawner can sustain.
max_count_of_owned_defensive_units optional | :: uint32 | Count of defensive enemies this spawner can sustain. [...]
Count of defensive 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.
max_defensive_friends_around_to_spawn optional | :: uint32 | How many friendly defensive units are required within the EnemySpawnerPrototype::spawning_radius of this spawner for it to stop producing more units. [...]
How many friendly defensive 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 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 optional | :: dictionary[AirbornePollutantID → EnemySpawnerAbsorption] |
min_darkness_to_spawn optional | :: float |
max_darkness_to_spawn optional | :: float |
spawn_decorations_on_expansion optional | :: boolean | Whether `spawn_decoration` should be spawned when enemies expand.
Whether `spawn_decoration` should be spawned when enemies expand.
spawn_decoration 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 optional | :: EntityID |

## EnergyShieldEquipmentPrototype 'energy-shield-equipment'

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

## EntityGhostPrototype 'entity-ghost'

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

## EntityPrototype abstract

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 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 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 specify the area where the sticker animation can appear for entities that can have stickers on them.
Used to specify the area where the sticker animation can appear for entities that can have stickers on them.
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 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 optional | :: array[SurfaceCondition] |
deconstruction_alternative 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 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 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 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 optional | :: string | Name of a ImpactCategory.
Name of a ImpactCategory.
open_sound optional | :: Sound |
close_sound optional | :: Sound |
placeable_position_visualization optional | :: Sprite |
radius_visualisation_specification optional | :: RadiusVisualisationSpecification |
stateless_visualisation optional | :: StatelessVisualisation or array[StatelessVisualisation] |
draw_stateless_visualisations_in_ghost optional | :: boolean |
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 | :: boolean | 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 optional | :: Energy | This entity can freeze if heating_energy is larger than zero.
This entity can freeze if heating_energy is larger than zero.
allow_copy_paste optional | :: boolean |
selectable_in_game optional | :: boolean |
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 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 optional | :: int32 |
diagonal_tile_grid_size 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 optional | :: EntityID |
ambient_sounds optional | :: WorldAmbientSoundDefinition or array[WorldAmbientSoundDefinition] |
icon_draw_specification optional | :: IconDrawSpecification | Used to specify where and how the alt-mode icons should be drawn.
Used to specify where and how the alt-mode icons should be drawn.
icons_positioning optional | :: array[IconSequencePositioning] |

## EntityWithHealthPrototype abstract

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 | :: boolean |
hide_resistances optional | :: boolean | 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 | :: boolean |
random_corpse_variation optional | :: boolean |
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 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

is_military_target optional | :: boolean | 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 | :: boolean | 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_shift optional | :: Vector | The shift from the bottom left corner of the selection box.
The shift from the bottom left corner of the selection box.
quality_indicator_scale 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'

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 | :: boolean | 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'

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 | :: boolean | 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'

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 | :: boolean |
beam optional | :: boolean |
correct_rotation optional | :: boolean |
scale_animation_speed optional | :: boolean |
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 |
delay optional | :: MapTick | Number of ticks to delay the explosion effects by.
Number of ticks to delay the explosion effects by.
delay_deviation optional | :: MapTick | The maximum number of ticks to randomly delay the explosion effects by. [...]
The maximum number of ticks to randomly delay the explosion effects by. [...]
explosion_effect optional | :: Trigger | The effect/trigger that happens when the explosion effect triggers after the initial delay as defined by `delay` and `delay_deviation`.
The effect/trigger that happens when the explosion effect triggers after the initial delay as defined by `delay` and `delay_deviation`.

## FireFlamePrototype 'fire'

damage_per_tick | :: 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 | :: boolean | If `false`, then all animations loop. [...]
If `false`, then all animations loop. [...]
limit_overlapping_particles optional | :: boolean |
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 optional | :: float |
light_size_modifier_maximum 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'

pictures optional | :: SpriteVariations |

## FluidPrototype 'fluid'

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 | :: 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 optional | :: Color | Color to use for visualization. [...]
Color to use for visualization. [...]
max_temperature 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 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 | :: boolean | 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'

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 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 | :: boolean |
shadow_scale_enabled optional | :: boolean |
target_initial_position_only optional | :: boolean |

## FluidTurretPrototype 'fluid-turret'

fluid_buffer_size | :: FluidAmount |
fluid_buffer_input_flow | :: FluidAmount |
activation_buffer_ratio | :: 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 | :: FluidAmount |
quality_affects_capacity optional | :: boolean |
tank_count optional | :: uint8 | Must be 1, 2 or 3.
Must be 1, 2 or 3.
connection_category optional | :: string or array[string] | Pumps are only allowed to connect to this fluid wagon if the pump's fluid box connection and this fluid wagon share a connection category. [...]
Pumps are only allowed to connect to this fluid wagon if the pump's fluid box connection and this fluid wagon share a connection category. [...]

## FlyingRobotPrototype abstract

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 | :: boolean | Whether the font has a border.
Whether the font has a border.
filtered optional | :: boolean |
border_color optional | :: Color | The color of the border, if enabled.
The color of the border, if enabled.

## FuelCategory 'fuel-category'

fuel_value_type optional | :: LocalisedString |

## FurnacePrototype 'furnace'

result_inventory_size | :: ItemStackIndex | The number of output slots.
The number of output slots.
source_inventory_size | :: ItemStackIndex | The number of input slots, but not more than 1.
The number of input slots, but not more than 1.
cant_insert_at_source_message_key optional | :: string | The locale key of the message shown when the player attempts to insert an item into the furnace that cannot be processed by that furnace. [...]
The locale key of the message shown when the player attempts to insert an item into the furnace that cannot be processed by that furnace. [...]
custom_input_slot_tooltip_key optional | :: string | The locale key of the tooltip to be shown in the input slot instead of the automatically generated list of items that fit there
The locale key of the tooltip to be shown in the input slot instead of the automatically generated list of items that fit there
circuit_connector optional | :: {CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition} |
circuit_connector_flipped optional | :: {CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition} |
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 | :: boolean |
draw_circuit_wires optional | :: boolean |
default_recipe_finished_signal optional | :: SignalIDConnector |
default_working_signal optional | :: SignalIDConnector |

## FusionGeneratorPrototype 'fusion-generator'

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 and working sound.
Affects animation speed and working sound.
burns_fluid optional | :: boolean | 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. [...]
effectivity optional | :: double | `1` means 100% effectivity. [...]
`1` means 100% effectivity. [...]

## FusionReactorPrototype 'fusion-reactor'

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 | :: boolean | 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. [...]
target_temperature optional | :: float | The temperature of the fluid to output. [...]
The temperature of the fluid to output. [...]
perceived_performance optional | :: PerceivedPerformance | Affects working sound.
Affects working sound.

## GatePrototype 'gate'

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 optional | :: Sound | Played when the gate opens.
Played when the gate opens.
closing_sound optional | :: Sound | Played when the gate closes.
Played when the gate closes.
fadeout_interval optional | :: uint32 |
opened_collision_mask 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'

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 optional | :: Sprite |
vertical_frozen_patch 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 | :: FluidAmount | The number of fluid units the generator uses per tick.
The number of fluid units the generator uses per tick.
maximum_temperature | :: 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 | :: boolean | 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 | :: boolean | 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 | :: boolean | 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 optional | :: PerceivedPerformance | Affects animation speed and working sound.
Affects animation speed and working sound.
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'

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 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.
attack_type optional | :: `"autonomous"` or `"distraction"` or `"scripted"` | The type of attack that triggers this achievement. [...]
The type of attack that triggers this achievement. [...]

## 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'

No new properties

## HeatInterfacePrototype 'heat-interface'

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

## HeatPipePrototype 'heat-pipe'

connection_sprites optional | :: ConnectableEntityGraphics |
heat_glow_sprites optional | :: ConnectableEntityGraphics |
heat_buffer | :: HeatBuffer |
heating_radius optional | :: float | Must be >= 0.
Must be >= 0.

## HighlightBoxEntityPrototype 'highlight-box'

No new properties

## ImpactCategory 'impact-category'

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

## InfinityCargoWagonPrototype 'infinity-cargo-wagon'

erase_contents_when_mined optional | :: boolean |
preserve_contents_when_created optional | :: boolean | When true, items created inside the infinity cargo wagon will not start to spoil until they have been removed from the wagon.
When true, items created inside the infinity cargo wagon will not start to spoil until they have been removed from the wagon.
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.

## InfinityContainerPrototype 'infinity-container'

erase_contents_when_mined | :: boolean |
preserve_contents_when_created optional | :: boolean | When true, items created inside the infinity chest will not start to spoil until they have been removed from the chest.
When true, items created inside the infinity chest will not start to spoil until they have been removed from the chest.
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'

extension_speed | :: double |
rotation_speed | :: double |
starting_distance optional | :: double |
insert_position | :: Vector |
pickup_position | :: Vector |
platform_picture optional | :: Sprite4Way |
platform_frozen optional | :: Sprite4Way |
hand_base_picture optional | :: Sprite |
hand_open_picture optional | :: Sprite |
hand_closed_picture optional | :: Sprite |
hand_base_frozen optional | :: Sprite |
hand_open_frozen optional | :: Sprite |
hand_closed_frozen 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 optional | :: boolean | Whether this inserter is considered a bulk inserter. [...]
Whether this inserter is considered a bulk inserter. [...]
uses_inserter_stack_size_bonus optional | :: boolean | When set to false, then relevant value of inserter stack size bonus (LuaForce::inserter_stack_size_bonus or LuaForce::bulk_inserter_capacity_bonus) will not affect inserter stack size.
When set to false, then relevant value of inserter stack size bonus (LuaForce::inserter_stack_size_bonus or LuaForce::bulk_inserter_capacity_bonus) will not affect inserter stack size.
allow_custom_vectors optional | :: boolean | Whether pickup and insert position can be set run-time.
Whether pickup and insert position can be set run-time.
allow_burner_leech optional | :: boolean | 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 | :: boolean | 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 | :: boolean | Whether the inserter should be able to fish fish.
Whether the inserter should be able to fish fish.
grab_less_to_match_belt_stack optional | :: boolean | 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 optional | :: boolean | Inserter will wait until its hand is full.
Inserter will wait until its hand is full.
enter_drop_mode_if_held_stack_spoiled optional | :: boolean | 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 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 | :: boolean |
draw_circuit_wires optional | :: boolean |
default_stack_control_input_signal optional | :: SignalIDConnector |
draw_inserter_arrow optional | :: boolean | 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 | :: boolean | 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 optional | :: {CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition} |

## InventoryBonusEquipmentPrototype 'inventory-bonus-equipment'

inventory_size_bonus | :: ItemStackIndex |

## ItemEntityPrototype 'item-entity'

No new properties

## ItemGroup 'item-group'

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'

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 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 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 optional | :: ItemID |
plant_result 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 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 optional | :: double | Additional fuel acceleration multiplier per quality level. [...]
Additional fuel acceleration multiplier per quality level. [...]
fuel_top_speed_multiplier_quality_bonus optional | :: double | Additional fuel top speed multiplier per quality level. [...]
Additional fuel top speed multiplier per quality level. [...]
weight 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 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 optional | :: Sound |
drop_sound optional | :: Sound |
inventory_move_sound optional | :: Sound |
default_import_location optional | :: SpaceLocationID |
color_hint optional | :: ColorHintSpecification | Only used by hidden setting, support may be limited.
Only used by hidden setting, support may be limited.
has_random_tint optional | :: boolean |
spoil_to_trigger_result optional | :: SpoilToTriggerResult |
destroyed_by_dropping_trigger 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 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. [...]
moved_to_hub_when_building optional | :: boolean | Whether this item should be moved to the hub when space platform performs building, upgrade or deconstruction and is left with this item. [...]
Whether this item should be moved to the hub when space platform performs building, upgrade or deconstruction and is left with this item. [...]
random_tint_color optional | :: Color | Randomly tints item instances on belts and in the world. [...]
Randomly tints item instances on belts and in the world. [...]
spoil_level optional | :: uint8 | Used by Inserters with spoil priority. [...]
Used by Inserters with spoil priority. [...]
auto_recycle optional | :: boolean | Whether the item should be included in the self-recycling recipes automatically generated by the quality mod. [...]
Whether the item should be included in the self-recycling recipes automatically generated by the quality mod. [...]

## ItemRequestProxyPrototype 'item-request-proxy'

use_target_entity_alert_icon_shift optional | :: boolean |

## 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'

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 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 optional | :: SpriteSizeType | The size of the square icon, in pixels. [...]
The size of the square icon, in pixels. [...]

## ItemWithInventoryPrototype 'item-with-inventory'

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 | :: boolean | 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'

to_kill 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 optional | :: EntityID or array[EntityID] | The killer of the entity must be one of these entities.
The killer of the entity must be one of these entities.
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 | :: boolean | This defines if the player needs to be in a vehicle.
This defines if the player needs to be in a vehicle.
personally optional | :: boolean | 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'

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 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 optional | :: EffectReceiver |
module_slots optional | :: ItemStackIndex | The number of module slots in this lab.
The number of module slots in this lab.
quality_affects_module_slots optional | :: boolean | If set, QualityPrototype::lab_module_slots_bonus will be added to module slots count.
If set, QualityPrototype::lab_module_slots_bonus will be added to module slots count.
uses_quality_drain_modifier optional | :: boolean | Whether the QualityPrototype::science_pack_drain_multiplier of the quality of this lab should affect how much science is consumed to research one unit of technology.
Whether the QualityPrototype::science_pack_drain_multiplier of the quality of this lab should affect how much science is consumed to research one unit of technology.
science_pack_drain_rate_percent optional | :: uint8 | May not be `0` or larger than `100`.
May not be `0` or larger than `100`.
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 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 optional | :: ItemStackIndex |

## LampPrototype 'lamp'

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 | :: boolean |
draw_circuit_wires optional | :: boolean |
circuit_connector 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 | :: boolean | 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 optional | :: SignalIDConnector |
default_green_signal optional | :: SignalIDConnector |
default_blue_signal optional | :: SignalIDConnector |
default_rgb_signal optional | :: SignalIDConnector |

## LandMinePrototype 'land-mine'

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.
trigger_interval optional | :: uint32 | Time between checks to detonate due to nearby enemies, in ticks. [...]
Time between checks to detonate due to nearby enemies, in ticks. [...]
action optional | :: Trigger |
ammo_category optional | :: AmmoCategoryID |
force_die_on_attack optional | :: boolean | Force the landmine to kill itself when exploding.
Force the landmine to kill itself when exploding.
trigger_force optional | :: ForceCondition |
trigger_collision_mask 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'

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

## LegacyCurvedRailPrototype 'legacy-curved-rail'

No new properties

## LegacyStraightRailPrototype 'legacy-straight-rail'

No new properties

## LightningAttractorPrototype 'lightning-attractor'

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'

graphics_set optional | :: LightningGraphicsSet |
sound optional | :: Sound |
attracted_volume_modifier optional | :: float |
strike_effect optional | :: Trigger | Effect that is triggered when lightning strikes something that is not a lightning attractor. [...]
Effect that is triggered when lightning strikes something that is not a lightning attractor. [...]
attractor_hit_effect optional | :: Trigger | Effect that is triggered when lightning hits a lightning attractor. [...]
Effect that is triggered when lightning hits a lightning attractor. [...]
source_offset optional | :: Vector |
source_variance optional | :: Vector |
damage optional | :: double | When lightning strikes something that is not a lightning attractor, this damage is applied to the target.
When lightning strikes something that is not a lightning attractor, this damage is applied to the target.
energy optional | :: Energy | When lightning hits a lightning attractor, this amount of energy is transferred to the lightning attractor.
When lightning hits a lightning attractor, this amount of energy is transferred to the lightning attractor.
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'

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

## LinkedContainerPrototype 'linked-container'

inventory_size | :: ItemStackIndex | Must be > 0.
Must be > 0.
picture optional | :: Sprite |
inventory_type optional | :: `"normal"` or `"with_bar"` or `"with_filters_and_bar"` or `"with_custom_stack_size"` or `"with_weight_limit"` | Determines the type of inventory that this linked container has. [...]
Determines the type of inventory that this linked container has. [...]
inventory_properties optional | :: InventoryWithCustomStackSizeSpecification | Only used when `inventory_type` is `"with_custom_stack_size"`.
Only used when `inventory_type` is `"with_custom_stack_size"`.
inventory_weight_limit optional | :: Weight | Only used when `inventory_type` is `"with_weight_limit"`.
Only used when `inventory_type` is `"with_weight_limit"`.
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 | :: boolean |
draw_circuit_wires optional | :: boolean |
circuit_connector optional | :: CircuitConnectorDefinition |

## Loader1x1Prototype 'loader-1x1'

No new properties

## Loader1x2Prototype 'loader'

No new properties

## LoaderPrototype abstract

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 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 | :: boolean | Whether this loader can load and unload RollingStockPrototype.
Whether this loader can load and unload RollingStockPrototype.
allow_container_interaction optional | :: boolean | 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.
per_lane_filters optional | :: boolean | If filters are per lane. [...]
If filters are per lane. [...]
max_belt_stack_size 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. [...]
adjustable_belt_stack_size optional | :: boolean | Loader belt stack size can be adjusted at runtime. [...]
Loader belt stack size can be adjusted at runtime. [...]
wait_for_full_stack optional | :: boolean | When set, this loader will ignore items for which there is not enough to create a full belt stack. [...]
When set, this loader will ignore items for which there is not enough to create a full belt stack. [...]
respect_insert_limits optional | :: boolean | When set, this loader will respect the same automated insertion limits as inserters do, instead of inserting up to the full ingredient stack capacity.
When set, this loader will respect the same automated insertion limits as inserters do, instead of inserting up to the full ingredient stack capacity.
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 optional | :: double | The maximum circuit wire distance for this entity.
The maximum circuit wire distance for this entity.
draw_copper_wires optional | :: boolean |
draw_circuit_wires optional | :: boolean |
circuit_connector 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 optional | :: RollingStockRotatedSlopedGraphics |
darkness_to_render_light_animation optional | :: float |
max_snap_to_train_stop_distance optional | :: float | In tiles. [...]
In tiles. [...]

## LogisticContainerPrototype 'logistic-container'

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 optional | :: ItemStackIndex |
render_not_in_network_icon optional | :: boolean | 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 | :: boolean | 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'

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 | :: AsteroidSettings |

## MarketPrototype 'market'

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

## MiningDrillPrototype 'mining-drill'

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 center of the mining drill to search for resources in. [...]
The distance from the center of the mining drill to search for resources in. [...]
resource_searching_offset optional | :: Vector | Offset of the `resource_searching_radius` from the entity center when the mining drill is facing north.
Offset of the `resource_searching_radius` from the entity center when the mining drill is facing north.
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 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 optional | :: EffectReceiver |
module_slots optional | :: ItemStackIndex | The number of module slots in this machine.
The number of module slots in this machine.
quality_affects_module_slots optional | :: boolean | If set, QualityPrototype::mining_drill_module_slots_bonus will be added to module slots count.
If set, QualityPrototype::mining_drill_module_slots_bonus will be added to module slots count.
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 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 | :: boolean |
draw_circuit_wires optional | :: boolean |
base_render_layer optional | :: RenderLayer |
resource_drain_rate_percent optional | :: uint8 | May not be `0` or larger than `100`.
May not be `0` or larger than `100`.
shuffle_resources_to_mine optional | :: boolean |
drops_full_belt_stacks optional | :: boolean |
uses_force_mining_productivity_bonus optional | :: boolean |
quality_affects_mining_radius optional | :: boolean | If set, QualityPrototype::mining_drill_mining_radius_bonus will be added to resource_searching_radius.
If set, QualityPrototype::mining_drill_mining_radius_bonus will be added to resource_searching_radius.
moving_sound optional | :: InterruptibleSound |
drilling_sound optional | :: InterruptibleSound |
drilling_sound_animation_start_frame optional | :: uint16 |
drilling_sound_animation_end_frame 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 optional | :: {CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition} |
filter_count optional | :: uint8 | How many filters this mining drill has. [...]
How many filters this mining drill has. [...]

## ModData 'mod-data'

data_type optional | :: string | Arbitrary string that mods can use to declare type of data. [...]
Arbitrary string that mods can use to declare type of data. [...]
data | :: dictionary[string → AnyBasic] |

## ModuleCategory 'module-category'

No new properties

## ModulePrototype 'module'

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 | :: boolean |
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'

module | :: ItemID or array[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 | :: boolean | 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'

expression | :: NoiseExpression | The noise expression itself. [...]
The noise expression itself. [...]
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. [...]
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'

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'

fluid_box | :: FluidBox |
pumping_speed | :: FluidAmount | How many units of fluid are produced per tick. [...]
How many units of fluid are produced per tick. [...]
fluid_source_offset | :: Vector |
perceived_performance optional | :: PerceivedPerformance | Affects animation speed.
Affects animation speed.
graphics_set optional | :: OffshorePumpGraphicsSet |
energy_source | :: EnergySource | Defines how the offshore pump is powered. [...]
Defines how the offshore pump is powered. [...]
energy_usage | :: Energy | Sets how much energy this offshore pump consumes. [...]
Sets how much energy this offshore pump consumes. [...]
remove_on_tile_collision optional | :: boolean |
always_draw_fluid optional | :: boolean | 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 | :: boolean |
draw_circuit_wires optional | :: boolean |
circuit_connector 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 | :: boolean |
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'

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'

fluid_box | :: FluidBox |
pictures optional | :: Sprite4Way |
frozen_patch optional | :: Sprite4Way |
visualization optional | :: Sprite4Way |
disabled_visualization optional | :: Sprite4Way |
draw_fluid_icon_override optional | :: boolean | 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'

armor | :: ItemID |
limit_quality | :: QualityID |
limit_equip_quality | :: QualityID |
amount optional | :: uint32 |
limited_to_one_game optional | :: boolean | 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'

map_seed_offset optional | :: uint32 |
entities_require_heating optional | :: boolean |
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'

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 | :: boolean | 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'

No new properties

## PowerSwitchPrototype 'power-switch'

power_on_animation optional | :: Animation |
overlay_start optional | :: Animation |
overlay_loop optional | :: Animation |
led_on optional | :: Sprite |
led_off optional | :: Sprite |
frozen_patch 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 | :: boolean |
draw_circuit_wires optional | :: boolean |

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

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

## ProcessionPrototype 'procession'

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'

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 | :: boolean | 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 | :: ItemIDFilter | 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. [...]

## 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 | :: ItemIDFilter | 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'

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 | :: boolean |
draw_circuit_wires optional | :: boolean |
circuit_connector optional | :: CircuitConnectorDefinition |

## ProjectilePrototype 'projectile'

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 optional | :: RotatedAnimationVariations |
rotatable optional | :: boolean | 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 | :: boolean |
direction_only optional | :: boolean | 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 | :: boolean | 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 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 | :: boolean |
shadow optional | :: RotatedAnimationVariations |

## Prototype abstract

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. [...]
custom_tooltip_fields optional | :: array[CustomTooltipField] | Allows to add extra description items to the tooltip and Factoriopedia.
Allows to add extra description items to the tooltip and Factoriopedia.

## PrototypeBase abstract

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 optional | :: LocalisedString | Provides additional description used in factoriopedia.
Provides additional description used in factoriopedia.
subgroup optional | :: ItemSubGroupID | The name of an ItemSubGroup.
The name of an ItemSubGroup.
hidden optional | :: boolean |
hidden_in_factoriopedia optional | :: boolean |
parameter optional | :: boolean | 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 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.

## ProxyContainerPrototype 'proxy-container'

picture optional | :: Sprite |
draw_inventory_content optional | :: boolean | If the content of the inventory should be rendered in alt mode.
If the content of the inventory should be rendered in alt mode.
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 | :: boolean |
draw_circuit_wires optional | :: boolean |
circuit_connector optional | :: CircuitConnectorDefinition |

## PumpPrototype 'pump'

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 | :: 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 |
flow_scaling optional | :: boolean | When true, pump will reduce pumping speed based on fullness of the input fluid segment.
When true, pump will reduce pumping speed based on fullness of the input fluid segment.
fluid_animation optional | :: Animation4Way |
glass_pictures optional | :: Sprite4Way |
frozen_patch optional | :: Sprite4Way |
circuit_wire_max_distance optional | :: double |
draw_copper_wires optional | :: boolean |
draw_circuit_wires optional | :: boolean |
circuit_connector optional | :: {CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition} |
fluid_wagon_connector_graphics optional | :: FluidWagonConnectorGraphics |

## QualityPrototype 'quality'

draw_sprite_by_default optional | :: boolean |
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 | The quality effect of the module is multiplied by this. [...]
The quality effect of the module is multiplied by this. [...]
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]`. [...]
default_multiplier optional | :: double | Must be >= 0.01.
Must be >= 0.01.
inserter_speed_multiplier optional | :: double | Must be >= 0.01.
Must be >= 0.01.
fluid_wagon_capacity_multiplier optional | :: double | Must be >= 0.01. [...]
Must be >= 0.01. [...]
inventory_size_multiplier optional | :: double | Must be >= 0.01.
Must be >= 0.01.
lab_research_speed_multiplier optional | :: double | Must be >= 0.01.
Must be >= 0.01.
crafting_machine_speed_multiplier optional | :: double | Must be >= 0.01. [...]
Must be >= 0.01. [...]
crafting_machine_energy_usage_multiplier optional | :: double | Must be >= 0.01. [...]
Must be >= 0.01. [...]
logistic_cell_charging_energy_multiplier optional | :: double | Must be >= 0.01.
Must be >= 0.01.
tool_durability_multiplier optional | :: double | Must be >= 0.01. [...]
Must be >= 0.01. [...]
accumulator_capacity_multiplier optional | :: double | Must be >= 0.01.
Must be >= 0.01.
flying_robot_max_energy_multiplier optional | :: double | Must be >= 0.01.
Must be >= 0.01.
range_multiplier optional | :: double | Must be within `[1, 3]`. [...]
Must be within `[1, 3]`. [...]
asteroid_collector_collection_radius_bonus optional | :: double | Must be >= 0. [...]
Must be >= 0. [...]
equipment_grid_width_bonus optional | :: int16 |
equipment_grid_height_bonus optional | :: int16 |
electric_pole_wire_reach_bonus optional | :: float | Must be >= 0.
Must be >= 0.
electric_pole_supply_area_distance_bonus optional | :: float | Must be >= 0.
Must be >= 0.
beacon_supply_area_distance_bonus optional | :: float | Only affects beacons with BeaconPrototype::quality_affects_supply_area_distance set. [...]
Only affects beacons with BeaconPrototype::quality_affects_supply_area_distance set. [...]
mining_drill_mining_radius_bonus optional | :: float | Only affects mining drills with MiningDrillPrototype::quality_affects_mining_radius set. [...]
Only affects mining drills with MiningDrillPrototype::quality_affects_mining_radius set. [...]
logistic_cell_charging_station_count_bonus optional | :: uint32 | Only affects roboports with RoboportPrototype::charging_station_count_affected_by_quality set. [...]
Only affects roboports with RoboportPrototype::charging_station_count_affected_by_quality set. [...]
beacon_module_slots_bonus optional | :: ItemStackIndex | Only affects beacons with BeaconPrototype::quality_affects_module_slots set.
Only affects beacons with BeaconPrototype::quality_affects_module_slots set.
crafting_machine_module_slots_bonus optional | :: ItemStackIndex | Only affects crafting machines with CraftingMachinePrototype::quality_affects_module_slots set. [...]
Only affects crafting machines with CraftingMachinePrototype::quality_affects_module_slots set. [...]
mining_drill_module_slots_bonus optional | :: ItemStackIndex | Only affects mining drills with MiningDrillPrototype::quality_affects_module_slots set.
Only affects mining drills with MiningDrillPrototype::quality_affects_module_slots set.
lab_module_slots_bonus optional | :: ItemStackIndex | Only affects labs with LabPrototype::quality_affects_module_slots set.
Only affects labs with LabPrototype::quality_affects_module_slots set.

## RadarPrototype 'radar'

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 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 optional | :: double | The maximum circuit wire distance for this entity.
The maximum circuit wire distance for this entity.
draw_copper_wires optional | :: boolean |
draw_circuit_wires optional | :: boolean |
circuit_connector optional | :: CircuitConnectorDefinition |
radius_minimap_visualisation_color optional | :: Color |
rotation_speed optional | :: double |
connects_to_other_radars optional | :: boolean | 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 optional | :: boolean |
energy_fraction_to_connect optional | :: float | Must be between 0 and 1. [...]
Must be between 0 and 1. [...]
energy_fraction_to_disconnect optional | :: float | Must be between 0 and 1. [...]
Must be between 0 and 1. [...]

## RailChainSignalPrototype 'rail-chain-signal'

No new properties

## RailPlannerPrototype 'rail-planner'

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

## RailPrototype abstract

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 optional | :: RailFenceGraphicsSet |
extra_planner_penalty optional | :: double |
extra_planner_goal_penalty optional | :: double |
forced_fence_segment_count optional | :: uint8 | Must be 0, 2 or 4. [...]
Must be 0, 2 or 4. [...]
ending_shifts optional | :: array[Vector] |
deconstruction_marker_positions optional | :: array[Vector] |
removes_soft_decoratives optional | :: boolean |

## RailRampPrototype 'rail-ramp'

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 `"rail-ramp/allow_on_deep_oil_ocean"`.
Defaults to the mask from UtilityConstants::default_collision_masks when indexed by `"rail-ramp/allow_on_deep_oil_ocean"`.

## RailRemnantsPrototype 'rail-remnants'

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

## RailSignalBasePrototype abstract

ground_picture_set | :: RailSignalPictureSet |
elevated_picture_set | :: 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 | :: boolean |
draw_circuit_wires optional | :: boolean |
default_red_output_signal optional | :: SignalIDConnector |
default_orange_output_signal optional | :: SignalIDConnector |
default_green_output_signal optional | :: SignalIDConnector |
default_blue_output_signal optional | :: SignalIDConnector |
elevated_collision_mask 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 optional | :: uint8 |

## RailSignalPrototype 'rail-signal'

No new properties

## RailSupportPrototype 'rail-support'

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 | :: boolean |
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 `"rail-support/allow_on_deep_oil_ocean"`.
Defaults to the mask from UtilityConstants::default_collision_masks when indexed by `"rail-support/allow_on_deep_oil_ocean"`.
elevated_selection_boxes optional | :: array[BoundingBox] | Array must contain 8 items.
Array must contain 8 items.

## ReactorPrototype 'reactor'

working_light_picture optional | :: Animation |
heat_buffer | :: HeatBuffer | The energy output as heat.
The energy output as heat.
heating_radius optional | :: double | Must be >= 0.
Must be >= 0.
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 | :: boolean | 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 | :: boolean | 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 optional | :: double | The maximum circuit wire distance for this entity.
The maximum circuit wire distance for this entity.
draw_copper_wires optional | :: boolean |
draw_circuit_wires optional | :: boolean |
circuit_connector optional | :: CircuitConnectorDefinition |
default_temperature_signal optional | :: SignalIDConnector |

## RecipeCategory 'recipe-category'

No new properties

## RecipePrototype 'recipe'

category optional | :: RecipeCategoryID | The category of this recipe. [...]
The category of this recipe. [...]
additional_categories optional | :: array[RecipeCategoryID] |
crafting_machine_tint 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 optional | :: double | Must be >= 0.
Must be >= 0.
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 | :: boolean | 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 | :: boolean | 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 | :: boolean | Hides the recipe from item/fluid production statistics.
Hides the recipe from item/fluid production statistics.
hide_from_player_crafting optional | :: boolean | Hides the recipe from the player's crafting screen. [...]
Hides the recipe from the player's crafting screen. [...]
hide_from_bonus_gui optional | :: boolean |
allow_decomposition optional | :: boolean | 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 | :: boolean | 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 | :: boolean | 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 | :: boolean | 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 | :: boolean | 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 | :: boolean | Whether the products are always shown in the recipe tooltip.
Whether the products are always shown in the recipe tooltip.
unlock_results optional | :: boolean | 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 optional | :: boolean |
result_is_always_fresh optional | :: boolean | 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.
reset_freshness_on_craft optional | :: boolean | When set to true, if the recipe successfully finishes crafting without spoiling, the result is produced fresh (non-spoiled).
When set to true, if the recipe successfully finishes crafting without spoiling, the result is produced fresh (non-spoiled).
allow_consumption_message optional | :: LocalisedString |
allow_speed_message optional | :: LocalisedString |
allow_productivity_message optional | :: LocalisedString |
allow_pollution_message optional | :: LocalisedString |
allow_quality_message optional | :: LocalisedString |
surface_conditions optional | :: array[SurfaceCondition] |
hide_from_signal_gui optional | :: boolean | If left unset, this property will be determined automatically: If the recipe is not `hidden`, and no item, fluid, or virtual signal has the same icon as this recipe, this property will be set to `false`. [...]
If left unset, this property will be determined automatically: If the recipe is not `hidden`, and no item, fluid, or virtual signal has the same icon as this recipe, this property will be set to `false`. [...]
allow_consumption optional | :: boolean |
allow_speed optional | :: boolean |
allow_productivity optional | :: boolean |
allow_pollution optional | :: boolean |
allow_quality optional | :: boolean |
allowed_module_categories 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 optional | :: array[TechnologyID] | Additional technologies to list under "Unlocked by" on a recipe's Factoriopedia page.
Additional technologies to list under "Unlocked by" on a recipe's Factoriopedia page.
auto_recycle optional | :: boolean | Whether the recipe should be included in the recycling recipes automatically generated by the quality mod. [...]
Whether the recipe should be included in the recycling recipes automatically generated by the quality mod. [...]

## RemoteControllerPrototype 'remote-controller'

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'

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 | :: boolean | Mandatory if `technology` is not defined. [...]
Mandatory if `technology` is not defined. [...]

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

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

## ResourceCategory 'resource-category'

No new properties

## ResourceEntityPrototype 'resource'

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 | :: boolean | 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 | :: boolean | 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 | :: boolean | 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 | :: boolean | 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 optional | :: boolean |
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 is decreased by mining, its current resource amount is lowered by this number.
Every time an infinite-type resource is decreased by mining, its current resource amount is lowered by this number.
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 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'

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 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 | :: boolean | 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 | :: boolean |
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 optional | :: boolean |
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 | :: boolean |
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'

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 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 optional | :: uint32 | In chunks. [...]
In chunks. [...]
radar_visualisation_color optional | :: Color |
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_roboport_count_output_signal 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 | :: boolean |
draw_circuit_wires optional | :: boolean |
circuit_connector optional | :: CircuitConnectorDefinition |
render_recharge_icon optional | :: boolean | Whether to render the no charge icon if the roboport has less energy than `recharge_minimum` in its internal buffer and is recovering from a blackout.
Whether to render the no charge icon if the roboport has less energy than `recharge_minimum` in its internal buffer and is recovering from a blackout.
max_logistic_slots optional | :: LogisticFilterIndex |
spawn_and_station_shadow_height_offset optional | :: float |
stationing_render_layer_swap_height 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 | :: boolean |
draw_construction_radius_visualization optional | :: boolean |
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 optional | :: boolean |
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 | :: boolean |
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

max_payload_size | :: ItemCountType | The robot's cargo carrying capacity. [...]
The robot's cargo carrying capacity. [...]
max_payload_size_after_bonus optional | :: ItemCountType | The robot's maximum possible cargo carrying capacity, including bonuses. [...]
The robot's maximum possible cargo carrying capacity, including bonuses. [...]
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 | :: boolean |
charging_sound optional | :: InterruptibleSound |

## RocketSiloPrototype 'rocket-silo'

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 optional | :: Sprite |
base_front_frozen optional | :: Sprite |
hole_frozen optional | :: Sprite |
door_back_frozen optional | :: Sprite |
door_front_frozen 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 | :: 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 optional | :: boolean | 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 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 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 optional | :: ItemStackIndex |
logistic_trash_inventory_size optional | :: ItemStackIndex |
cargo_station_parameters | :: CargoStationParameters | Must have exactly one entry in CargoStationParameters::hatch_definitions.
Must have exactly one entry in CargoStationParameters::hatch_definitions.
launch_to_space_platforms optional | :: boolean | 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.
can_launch_without_landing_pads optional | :: boolean |

## RocketSiloRocketPrototype 'rocket-silo-rocket'

shadow_slave_entity optional | :: EntityID |
cargo_pod_entity | :: 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 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 optional | :: FogMaskShapeDefinition |
rising_speed | :: double |
engine_starting_speed | :: double |
flying_speed | :: double |
flying_acceleration | :: double |
flying_trigger optional | :: TriggerEffect |
flying_sound optional | :: Sound |
inventory_size | :: ItemStackIndex |

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

No new properties

## RollingStockPrototype abstract

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 optional | :: RollingStockRotatedSlopedGraphics |
wheels 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 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 | :: boolean |
allow_robot_dispatch_in_automatic_mode optional | :: boolean |
default_copy_color_from_train_stop optional | :: boolean |
transition_collision_mask 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 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 optional | :: uint8 |
elevated_rail_sound optional | :: MainSound |
drive_over_elevated_tie_trigger optional | :: TriggerEffect |
door_opening_sound optional | :: InterruptibleSound | Cannot use `fade_ticks`.
Cannot use `fade_ticks`.
door_closing_sound optional | :: InterruptibleSound | Cannot use `fade_ticks`.
Cannot use `fade_ticks`.

## SegmentPrototype 'segment'

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'

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 | :: MapTick | 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'

select | :: SelectionModeData |
alt_select | :: SelectionModeData |
super_forced_select optional | :: SelectionModeData |
reverse_select optional | :: SelectionModeData |
alt_reverse_select 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 | :: boolean | 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 optional | :: boolean |

## SelectorCombinatorPrototype 'selector-combinator'

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'

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'

action | :: `"toggle-alt-mode"` or `"undo"` or `"redo"` or `"paste"` or `"import-string"` or `"toggle-personal-roboport"` or `"toggle-personal-logistic-requests"` 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 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. [...]
small_icons optional | :: array[IconData] | Can't be an empty array.
Can't be an empty array.
small_icon optional | :: FileName | Path to the icon file. [...]
Path to the icon file. [...]
small_icon_size 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 optional | :: boolean | 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 | :: boolean | 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'

count_as_rock_for_filtered_deconstruction optional | :: boolean | 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 | :: boolean |
random_variation_on_create optional | :: boolean | 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 optional | :: RenderLayer |
lower_pictures optional | :: SpriteVariations |
stateless_visualisation_variations optional | :: array[StatelessVisualisation or array[StatelessVisualisation]] | 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'

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 | :: boolean |
random_variation_on_create optional | :: boolean | 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 optional | :: RenderLayer |
lower_pictures optional | :: SpriteVariations | Loaded and drawn with all `pictures`, `picture` and `animations`. [...]
Loaded and drawn with all `pictures`, `picture` and `animations`. [...]
stateless_visualisation_variations optional | :: array[StatelessVisualisation or array[StatelessVisualisation]] |
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

animation optional | :: Animation |
cyclic optional | :: boolean | 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 | :: boolean | 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 | :: boolean |
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'

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 optional | :: boolean | 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 optional | :: boolean | 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.
performance_at_day optional | :: double |
performance_at_night optional | :: double |
solar_coefficient_property optional | :: SurfacePropertyID | Surface property must have a positive default value. [...]
Surface property must have a positive default value. [...]

## 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`.
performance_at_day optional | :: double |
performance_at_night optional | :: double |
solar_coefficient_property optional | :: SurfacePropertyID | Surface property must have a positive default value. [...]
Surface property must have a positive default value. [...]

## SoundPrototype 'sound'

type | :: `"sound"` |
name | :: string | Name of the sound. [...]
Name of the sound. [...]
category optional | :: SoundType |
priority 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 | :: boolean |
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 optional | :: AdvancedVolumeControl |
speed_smoothing_window_size optional | :: uint32 |
variations optional | :: SoundDefinition or array[SoundDefinition] |
filename optional | :: FileName | Supported sound file formats are `.ogg` (Vorbis and Opus) and `.wav`. [...]
Supported sound file formats are `.ogg` (Vorbis and Opus) and `.wav`. [...]
volume optional | :: float | Only loaded if `variations` is not defined. [...]
Only loaded if `variations` is not defined. [...]
min_volume optional | :: float | Only loaded if `variations` and `volume` are not defined. [...]
Only loaded if `variations` and `volume` are not defined. [...]
max_volume optional | :: float | Only loaded if `variations` is not defined. [...]
Only loaded if `variations` is not defined. [...]
preload optional | :: boolean | 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 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'

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 | :: boolean | 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'

from | :: SpaceLocationID |
to | :: SpaceLocationID |
length optional | :: uint32 | Length of the space connection in km. [...]
Length of the space connection in km. [...]
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'

gravity_pull optional | :: 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 sun in map coordinates.
Distance from the sun in map coordinates.
orientation | :: RealOrientation | Angle in relation to the sun.
Angle in relation to the sun.
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 | :: boolean | If `false`, the orbital ring around the sun will not be drawn for this location.
If `false`, the orbital ring around the sun 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 | :: boolean | 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 | :: boolean |
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. [...]
starmap_icon_orientation optional | :: RealOrientation | Orientation of the starmap icon, defaults to pointing towards the sun.
Orientation of the starmap icon, defaults to pointing towards the sun.
asteroid_spawn_definitions optional | :: array[SpaceLocationAsteroidSpawnDefinition] |

## SpacePlatformHubPrototype 'space-platform-hub'

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 | :: boolean |
draw_circuit_wires optional | :: boolean |
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'

trigger optional | :: Trigger |
surface optional | :: SurfaceID |
create_electric_network optional | :: boolean |
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'

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'

stretch_force_scalar 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 optional | :: double | The flexibility of hip. [...]
The flexibility of hip. [...]
knee_height | :: double | The resting height of the knee from the ground. [...]
The resting height of the knee from the ground. [...]
knee_distance_factor | :: 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 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 | :: double |
movement_based_position_selection_distance | :: double |
graphics_set optional | :: SpiderLegGraphicsSet |
walking_sound_volume_modifier optional | :: float |
walking_sound_speed_modifier optional | :: float |
upper_leg_dying_trigger_effects optional | :: array[SpiderLegTriggerEffect] |
lower_leg_dying_trigger_effects optional | :: array[SpiderLegTriggerEffect] |

## SpiderUnitPrototype 'spider-unit'

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 | In chunks. [...]
In chunks. [...]
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 | :: 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.
movement_energy_consumption | :: Energy |
automatic_weapon_cycling | :: boolean |
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'

icon_color_indicator_mask optional | :: FileName | Color mask for the icon. [...]
Color mask for the icon. [...]

## SplitterPrototype 'splitter'

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 optional | :: Sprite4Way |
structure_animation_speed_coefficient optional | :: double |
structure_animation_movement_cooldown optional | :: uint32 |
related_transport_belt 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.
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 | :: boolean |
draw_circuit_wires optional | :: boolean |
circuit_connector optional | :: {CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition} |
default_input_left_condition optional | :: CircuitConditionConnector |
default_input_right_condition optional | :: CircuitConditionConnector |
default_output_left_condition optional | :: CircuitConditionConnector |
default_output_right_condition optional | :: CircuitConditionConnector |

## SpritePrototype 'sprite'

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 optional | :: SpriteSizeType | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
dice_x optional | :: SpriteSizeType | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
dice_y 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 optional | :: boolean | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
apply_special_effect optional | :: boolean | 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 | :: boolean | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
draw_as_glow optional | :: boolean | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
draw_as_light optional | :: boolean | 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 | :: boolean | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
tint_as_overlay optional | :: boolean | Only loaded if `layers` is not defined.
Only loaded if `layers` is not defined.
invert_colors optional | :: boolean | 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 | :: boolean | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
premul_alpha optional | :: boolean | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
allow_forced_downscale optional | :: boolean | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
generate_sdf optional | :: boolean | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
surface optional | :: SpriteUsageSurfaceHint | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]
usage optional | :: SpriteUsageHint | Only loaded if `layers` is not defined. [...]
Only loaded if `layers` is not defined. [...]

## StickerPrototype 'sticker'

duration_in_ticks | :: uint32 | Must be > 0.
Must be > 0.
animation optional | :: Animation |
render_layer 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 | :: boolean |
use_damage_substitute optional | :: boolean |
damage_per_tick 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 optional | :: float | The maximum movement speed for the target. [...]
The maximum movement speed for the target. [...]
target_movement_max_from 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 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 optional | :: boolean | 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 optional | :: float | The maximum movement speed for vehicles. [...]
The maximum movement speed for vehicles. [...]
vehicle_speed_max_from 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 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 optional | :: array[TriggerEffectWithCooldown] | Effects (with cooldowns) to trigger every tick.
Effects (with cooldowns) to trigger every tick.

## StorageTankPrototype 'storage-tank'

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 | :: boolean |
show_fluid_icon optional | :: boolean | 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 | :: boolean |
draw_circuit_wires optional | :: boolean |
circuit_connector optional | :: {CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition} |

## StraightRailPrototype 'straight-rail'

No new properties

## SurfacePropertyPrototype 'surface-property'

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 | :: boolean |

## SurfacePrototype 'surface'

surface_properties optional | :: dictionary[SurfacePropertyID → double] |
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. [...]

## TechnologyPrototype 'technology'

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 | :: boolean | 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 | :: boolean | This can be `false` to disable the technology at the start of the game, or `true` to leave it enabled. [...]
This can be `false` to disable the technology at the start of the game, or `true` to leave it enabled. [...]
essential optional | :: boolean | 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 | :: boolean | 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 | :: boolean | 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 optional | :: boolean |
research_trigger 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.
show_levels_info optional | :: boolean | Can be used to enable or disable showing levels info in technology slot.
Can be used to enable or disable showing levels info in technology slot.
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'

destroy_on_empty optional | :: boolean | Whether the container is automatically destroyed when it is emptied.
Whether the container is automatically destroyed when it is emptied.
time_to_live optional | :: uint32 | Duration after which the container and its contents are automatically destroyed. [...]
Duration after which the container and its contents are automatically destroyed. [...]
alert_after_time optional | :: uint32 | If the container has existed for this long, an alert is show on it. [...]
If the container has existed for this long, an alert is show on it. [...]

## ThrusterPrototype 'thruster'

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 | If a filter is set for this fluidbox it determines what the thruster considers the first fuel.
If a filter is set for this fluidbox it determines what the thruster considers the first fuel.
oxidizer_fluid_box | :: FluidBox | If a filter is set for this fluidbox it determines what the thruster considers the second fuel.
If a filter is set for this fluidbox it determines what the thruster considers the second fuel.
graphics_set optional | :: ThrusterGraphicsSet |
plumes optional | :: PlumesSpecification |

## TileEffectDefinition 'tile-effect'

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

## TileGhostPrototype 'tile-ghost'

No new properties

## TilePrototype 'tile'

collision_mask | :: CollisionMaskConnector |
layer | :: uint8 | Specifies transition drawing priority. [...]
Specifies transition drawing priority. [...]
layer_group optional | :: TileRenderLayer | The base group of render layers this tile belongs to. [...]
The base group of render layers this tile belongs to. [...]
build_animations 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 optional | :: Animation4Way |
built_animation_frame 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 optional | :: boolean | 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 optional | :: SpriteUsageSurfaceHint |
transition_merges_with_tile optional | :: TileID |
effect_color optional | :: Color |
tint optional | :: Color |
particle_tints optional | :: TileBasedParticleTints |
walking_sound optional | :: Sound |
landing_steps_sound optional | :: Sound |
driving_sound optional | :: InterruptibleSound |
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 | :: boolean | 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 optional | :: FluidID |
next_direction optional | :: TileID |
can_be_part_of_blueprint optional | :: boolean |
is_foundation optional | :: boolean |
destroys_dropped_items optional | :: boolean | If items dropped on this tile are destroyed.
If items dropped on this tile are destroyed.
allows_being_covered optional | :: boolean |
searchable optional | :: boolean |
max_health optional | :: float | Must be equal to or greater than 0.
Must be equal to or greater than 0.
weight optional | :: Weight |
dying_explosion 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 optional | :: dictionary[AirbornePollutantID → double] |
default_cover_tile optional | :: TileID |
frozen_variant optional | :: TileID |
thawed_variant optional | :: TileID |
effect optional | :: TileEffectDefinitionID |
trigger_effect optional | :: TriggerEffect | Called by InvokeTileEffectTriggerEffectItem.
Called by InvokeTileEffectTriggerEffectItem.
default_destroyed_dropped_item_trigger 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 | :: boolean | 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 | :: boolean |
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 optional | :: DecorativeID or array[DecorativeID] |
ambient_sounds_group optional | :: TileID |
ambient_sounds optional | :: WorldAmbientSoundDefinition or array[WorldAmbientSoundDefinition] |

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

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 | :: boolean | 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 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. [...]

## 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 | :: boolean | 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'

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 optional | :: SignalIDConnector |
circuit_wire_max_distance optional | :: double |
draw_copper_wires optional | :: boolean |
draw_circuit_wires optional | :: boolean |
color optional | :: Color |
chart_name optional | :: boolean |
light1 optional | :: TrainStopLight |
light2 optional | :: TrainStopLight |
drawing_boxes optional | :: TrainStopDrawingBoxes |
circuit_connector optional | :: {CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition, CircuitConnectorDefinition} |

## TransportBeltConnectablePrototype abstract

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'

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 | :: boolean |
draw_circuit_wires optional | :: boolean |
circuit_connector 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'

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 optional | :: array[StatelessVisualisation or array[StatelessVisualisation]] |

## 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 | :: boolean |
affected_by_wind optional | :: boolean | 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 | :: boolean |
render_layer optional | :: RenderLayer |

## TurretPrototype 'turret'

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 | :: RotatedAnimation8Way |
call_for_help_radius | :: double |
attack_target_mask optional | :: TriggerTargetMask |
ignore_target_mask optional | :: TriggerTargetMask |
shoot_in_prepare_state optional | :: boolean |
start_attacking_only_when_can_shoot optional | :: boolean | When `false` the turret will enter `starting_attack` state without checking its ammo or energy levels. [...]
When `false` the turret will enter `starting_attack` state without checking its ammo or energy levels. [...]
turret_base_has_direction optional | :: boolean | When `true` the turret's collision box will affected by its rotation.
When `true` the turret's collision box will affected by its rotation.
random_animation_offset optional | :: boolean |
attack_from_start_frame optional | :: boolean |
allow_turning_when_starting_attack optional | :: boolean |
gun_animation_secondary_draw_order optional | :: uint8 |
gun_animation_render_layer optional | :: RenderLayer |
graphics_set | :: TurretGraphicsSet |
preparing_animation optional | :: RotatedAnimation8Way |
prepared_animation optional | :: RotatedAnimation8Way |
prepared_alternative_animation optional | :: RotatedAnimation8Way |
starting_attack_animation optional | :: RotatedAnimation8Way |
attacking_animation optional | :: RotatedAnimation8Way |
energy_glow_animation optional | :: RotatedAnimation8Way |
resource_indicator_animation optional | :: RotatedAnimation8Way |
ending_attack_animation optional | :: RotatedAnimation8Way |
folding_animation optional | :: RotatedAnimation8Way |
integration optional | :: Sprite |
special_effect 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 optional | :: InterruptibleSound |
default_speed optional | :: float |
default_speed_secondary optional | :: float |
default_speed_when_killed optional | :: float |
default_starting_progress_when_killed optional | :: float |
rotation_speed optional | :: float |
rotation_speed_secondary optional | :: float |
rotation_speed_when_killed optional | :: float |
rotation_starting_progress_when_killed 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 optional | :: float |
preparing_speed_when_killed optional | :: float |
preparing_starting_progress_when_killed 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 optional | :: float |
folded_starting_progress_when_killed 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 optional | :: float |
prepared_starting_progress_when_killed 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 optional | :: float |
prepared_alternative_starting_progress_when_killed 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 optional | :: float |
starting_attack_speed_when_killed optional | :: float |
starting_attack_starting_progress_when_killed 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 optional | :: float |
ending_attack_speed_when_killed optional | :: float |
ending_attack_starting_progress_when_killed 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 optional | :: float |
folding_speed_when_killed optional | :: float |
folding_starting_progress_when_killed optional | :: float |
prepare_range optional | :: double |
alert_when_attacking optional | :: boolean |
spawn_decorations_on_expansion optional | :: boolean | 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 optional | :: boolean |
unfolds_before_dying optional | :: boolean |
spawn_decoration 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 optional | :: EntityID or array[EntityID] |
can_retarget_while_starting_attack optional | :: boolean |
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 | :: boolean |
draw_circuit_wires optional | :: boolean |
circuit_connector 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'

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'

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

## UnitPrototype 'unit'

run_animation | :: RotatedAnimation |
attack_parameters | :: AttackParameters | Requires `animation` in attack_parameters. [...]
Requires `animation` in attack_parameters. [...]
warcry optional | :: Sound | A sound this unit makes when it sets out to attack.
A sound this unit makes when it sets out to attack.
movement_speed | :: float | Movement speed of this unit in the world, in tiles per tick. [...]
Movement speed of this 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 this unit dies.
The sound file to play this unit dies.
min_pursue_time optional | :: uint32 | In ticks.
In ticks.
has_belt_immunity optional | :: boolean | If this unit is immune to movement by belts.
If this unit is immune to movement by belts.
max_pursue_distance optional | :: double |
radar_range optional | :: uint32 | In chunks. [...]
In chunks. [...]
ai_settings optional | :: UnitAISettings |
move_while_shooting optional | :: boolean |
can_open_gates optional | :: boolean |
affected_by_tiles optional | :: boolean | Whether this unit is affected by tile walking speed modifiers.
Whether this unit is affected by tile walking speed modifiers.
render_layer optional | :: RenderLayer |
light optional | :: LightDefinition |
absorptions_to_join_attack optional | :: dictionary[AirbornePollutantID → float] | The pollution amount that has to be absorbed by the unit's spawner before the unit will leave the spawner and attack the source of the pollution.
The pollution amount that has to be absorbed by the unit's spawner before the unit will leave the spawner and attack the source of the pollution.
spawning_time_modifier optional | :: double | Multiplier for the EnemySpawnerPrototype::spawning_cooldown after it spawns this unit.
Multiplier for the EnemySpawnerPrototype::spawning_cooldown after it spawns this unit.
walking_sound optional | :: Sound |
alternative_attacking_frame_sequence optional | :: UnitAlternativeFrameSequence |
running_sound_animation_positions optional | :: array[float] | List of positions in the `run_animation` when the `walking_sound` is played. [...]
List of positions in the `run_animation` when the `walking_sound` is played. [...]

## UpgradeItemPrototype 'upgrade-item'

No new properties

## UseEntityInEnergyProductionAchievementPrototype 'use-entity-in-energy-production-achievement'

entity | :: EntityID | This entity is needed to produce energy, for the player to complete the achievement.
This entity is needed to produce energy, for the player to complete the achievement.
consumed_condition optional | :: ItemIDFilter | This item need to be consumed before gaining the achievement.
This item need to be consumed before gaining the achievement.
produced_condition optional | :: ItemIDFilter | This item needs to be produced before gaining the achievement.
This item needs to be produced before gaining the achievement.
required_to_build optional | :: EntityID | This item need to be built before gaining the achievement.
This item need to be built before gaining the achievement.

## UseItemAchievementPrototype 'use-item-achievement'

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 | :: boolean | 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'

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 | :: Color |
underground_pipe_max_distance_tint | :: Color |
ghost_shader_tint | :: GhostTintSet |
ghost_shaderless_tint | :: GhostTintSet |
ghost_shimmer_settings | :: GhostShimmerConfig |
probability_product_count_tint | :: Color |
zero_count_value_tint | :: 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 | :: 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 | :: Color |
gui_search_match_background_color | :: 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 | :: Color |
logistic_gui_selected_network_highlight_tint | :: Color |
chart_search_highlight | :: Color |
selected_chart_search_highlight | :: Color |
zoom_to_world_can_use_nightvision | :: boolean |
zoom_to_world_effect_strength | :: float |
max_logistic_filter_count | :: LogisticFilterIndex |
max_terrain_building_size | :: uint8 |
small_area_size | :: float |
medium_area_size | :: float |
large_area_size | :: float |
huge_platform_animation_sound_area | :: float |
small_blueprint_area_size | :: float |
medium_blueprint_area_size | :: float |
large_blueprint_area_size | :: 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.
merge_bonus_gui_production_bonuses optional | :: boolean | If not set, defaults to 'true' when modded and 'false' when vanilla.
If not set, defaults to 'true' when modded and 'false' when vanilla.
daytime_color_lookup | :: DaytimeColorLookupTable |
zoom_to_world_daytime_color_lookup | :: DaytimeColorLookupTable |
frozen_color_lookup | :: ColorLookupTable |
map_editor | :: MapEditorConstants |
drop_item_radius | :: 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 | :: Color |
spawner_evolution_factor_health_modifier | :: float |
item_health_bar_colors | :: 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 | :: Color |
item_tool_durability_bar_color | :: 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 |
feedback_screenshot_subfolder_name | :: string |
feedback_screenshot_file_name | :: string |
default_scorch_mark_color | :: Color |
color_filters optional | :: array[ColorFilterData] |
minimap_slot_hovered_tint | :: Color |
minimap_slot_clicked_tint | :: Color |
clear_cursor_volume_modifier | :: float |
weapons_in_simulation_volume_modifier | :: float |
explosions_in_simulation_volume_modifier | :: float |
enemies_in_simulation_volume_modifier | :: float |
low_energy_robot_estimate_multiplier | :: double |
asteroid_spawning_offset | :: SimpleBoundingBox |
asteroid_fading_range | :: float |
asteroid_spawning_with_random_orientation_max_speed | :: double |
asteroid_position_offset_to_speed_coefficient | :: double |
asteroid_collector_navmesh_refresh_tick_interval | :: uint32 |
asteroid_collector_blockage_update_tile_distance | :: uint32 |
asteroid_collector_max_nurbs_control_point_separation | :: double |
asteroid_collector_static_head_swing_strength_scale | :: float |
asteroid_collector_static_head_swing_segment_count | :: uint32 |
space_platform_acceleration_expression | :: MathExpression | Variables: speed, thrust, weight, width, height
Variables: speed, thrust, weight, width, height
space_platform_relative_speed_factor | :: double |
space_platform_starfield_movement_vector | :: Vector |
space_platform_max_size | :: SimpleBoundingBox |
space_platform_dump_cooldown | :: uint32 | Determines how fast space platforms will send items in drop slots to the surface. [...]
Determines how fast space platforms will send items in drop slots to the surface. [...]
space_platform_manual_dump_cooldown | :: uint32 | Delay after manual transfer until space platform sends items in drop slots to the surface. [...]
Delay after manual transfer until space platform sends items in drop slots to the surface. [...]
space_platform_max_relative_speed_deviation_for_asteroid_chunks_update | :: float | Space platform remembers relative speed range which asteroids use while it moves. [...]
Space platform remembers relative speed range which asteroids use while it moves. [...]
space_platform_asteroid_chunk_trajectory_updates_per_tick | :: uint32 | How many asteroid chunks should be processed per tick, see space_platform_max_relative_speed_deviation_for_asteroid_chunks_update.
How many asteroid chunks should be processed per tick, see space_platform_max_relative_speed_deviation_for_asteroid_chunks_update.
default_item_weight | :: Weight |
rocket_lift_weight | :: Weight |
factoriopedia_recycling_recipe_categories | :: array[RecipeCategoryID] |
max_fluid_flow | :: FluidAmount |
default_pipeline_extent | :: double | The default value of FluidBox::max_pipeline_extent.
The default value of FluidBox::max_pipeline_extent.
default_platform_procession_set | :: ProcessionSet | Must contain arrival and departure with procession_style containing 0.
Must contain arrival and departure with procession_style containing 0.
default_planet_procession_set | :: 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 | :: float | Radius of area where cargo pods won't land.
Radius of area where cargo pods won't land.
landing_area_max_radius | :: float | Max radius where cargo pods will land.
Max radius where cargo pods will land.
lightning_attractor_collection_range_color | :: Color |
lightning_attractor_protection_range_color | :: Color |
landing_squash_immunity | :: MapTick |
ejected_item_lifetime | :: 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 | :: double | Silently clamped to be between 0 and 1/60.
Silently clamped to be between 0 and 1/60.
ejected_item_direction_variation | :: double | Silently clamped to be between 0 and 0.99.
Silently clamped to be between 0 and 0.99.
ejected_item_friction | :: double | Silently clamped to be between 0 and 1.
Silently clamped to be between 0 and 1.
train_visualization | :: TrainVisualizationConstants |
default_collision_masks | :: 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 | :: CollisionMaskConnector |
building_collision_mask | :: CollisionMaskConnector |
water_collision_mask | :: CollisionMaskConnector |
ghost_layer | :: CollisionLayerID |
train_pushed_by_player_max_speed | :: double |
train_pushed_by_player_max_acceleration | :: double |
train_pushed_by_player_ignores_friction | :: boolean |
freezing_temperature | :: double |
train_on_elevated_rail_shadow_shift_multiplier | :: Vector |
max_belt_stack_size | :: uint8 | Must be >= 1.
Must be >= 1.
inserter_hand_stack_items_per_sprite | :: ItemCountType | Must be >= 1.
Must be >= 1.
inserter_hand_stack_max_sprites | :: ItemCountType | Must be >= 1.
Must be >= 1.
remote_view_LPF_min_cutoff_frequency | :: float |
remote_view_LPF_max_cutoff_frequency | :: float |
space_LPF_min_cutoff_frequency | :: float |
space_LPF_max_cutoff_frequency | :: float |
walking_sound_count_reduction_rate | :: float | Silently clamped to be between 0 and 1.
Silently clamped to be between 0 and 1.
moving_sound_count_reduction_rate | :: float | Silently clamped to be between 0 and 1.
Silently clamped to be between 0 and 1.
environment_sounds_transition_fade_in_ticks | :: uint32 |
starmap_orbit_default_color | :: Color |
starmap_orbit_hovered_color | :: Color |
starmap_orbit_clicked_color | :: Color |
starmap_orbit_disabled_color | :: Color |
time_to_show_full_health_bar | :: MapTick | The number of ticks to show a segmented unit's health bar after fully regenerating.
The number of ticks to show a segmented unit's health bar after fully regenerating.
capture_water_mask_at_layer | :: uint8 | Layer within `ground-natural` tile render layer group, before which terrain lightmap alpha channel is copied into water mask. [...]
Layer within `ground-natural` tile render layer group, before which terrain lightmap alpha channel is copied into water mask. [...]
logistic_robots_use_busy_robots_queue | :: boolean |
construction_robots_use_busy_robots_queue | :: boolean |
quality_selector_dropdown_threshold | :: uint8 |
maximum_quality_jump | :: uint8 | Cap for how many steps of quality the output of something (miner/crafter) may be higher than the input (resource/ingredients). [...]
Cap for how many steps of quality the output of something (miner/crafter) may be higher than the input (resource/ingredients). [...]
select_group_row_count | :: uint8 | Will be clamped to the range [1, 100].
Will be clamped to the range [1, 100].
select_slot_row_count | :: uint8 | Will be clamped to the range [1, 100].
Will be clamped to the range [1, 100].
crafting_queue_slots_per_row | :: uint8 | Will be clamped to the range [1, 100].
Will be clamped to the range [1, 100].
logistic_slots_per_row | :: uint8 | Will be clamped to the range [2, 100].
Will be clamped to the range [2, 100].
blueprint_big_slots_per_row | :: uint8 | Will be clamped to the range [2, 100].
Will be clamped to the range [2, 100].
blueprint_small_slots_per_row | :: uint8 | Will be clamped to the range [2, 100].
Will be clamped to the range [2, 100].
inventory_width | :: uint8 | Will be clamped to the range [1, 100].
Will be clamped to the range [1, 100].
module_inventory_width | :: uint8 | Will be clamped to the range [1, 100].
Will be clamped to the range [1, 100].
trash_inventory_width | :: uint8 | Will be clamped to the range [1, 100].
Will be clamped to the 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 |

## UtilitySounds 'utility-sounds'

gui_click | :: Sound |
gui_switch | :: Sound |
list_box_click | :: Sound |
build_small | :: Sound |
build_medium | :: Sound |
build_large | :: Sound |
build_huge | :: Sound |
cannot_build | :: Sound |
build_blueprint_small | :: Sound |
build_blueprint_medium | :: Sound |
build_blueprint_large | :: Sound |
build_blueprint_huge | :: Sound |
build_ghost_upgrade | :: Sound |
build_ghost_upgrade_cancel | :: Sound |
build_animated_small | :: Sound |
build_animated_medium | :: Sound |
build_animated_large | :: Sound |
build_animated_huge | :: Sound |
deconstruct_small | :: Sound |
deconstruct_medium | :: Sound |
deconstruct_large | :: Sound |
deconstruct_huge | :: Sound |
deconstruct_robot | :: Sound |
rotated_small | :: Sound |
rotated_medium | :: Sound |
rotated_large | :: Sound |
rotated_huge | :: Sound |
axe_mining_ore | :: Sound |
axe_mining_stone | :: 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 | :: InterruptibleSound |
default_landing_steps | :: Sound |
segment_dying_sound optional | :: Sound | Only present when the Space Age mod is loaded.
Only present when the Space Age mod is loaded.

## UtilitySprites 'utility-sprites'

cursor_box | :: CursorBoxSpecification |
platform_entity_build_animations optional | :: EntityBuildAnimations | Only present when the Space Age mod is loaded.
Only present when the Space Age mod is loaded.
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 | :: Sprite |
close_black | :: Sprite |
backward_arrow | :: Sprite |
backward_arrow_black | :: Sprite |
forward_arrow | :: Sprite |
forward_arrow_black | :: Sprite |
recipe_arrow | :: Sprite |
close_map_preview | :: Sprite |
color_picker | :: Sprite |
change_recipe | :: Sprite |
dropdown | :: Sprite |
downloading | :: Sprite |
downloaded | :: Sprite |
equipment_grid | :: Sprite |
equipment_grid_small | :: Sprite |
expand_dots | :: Sprite |
export | :: Sprite |
import | :: Sprite |
map | :: Sprite |
map_exchange_string | :: Sprite |
missing_mod_icon | :: Sprite |
not_available | :: Sprite |
not_available_black | :: Sprite |
play | :: Sprite |
stop | :: Sprite |
preset | :: Sprite |
refresh | :: Sprite |
reset | :: Sprite |
reset_white | :: Sprite |
shuffle | :: Sprite |
station_name | :: Sprite |
search | :: 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 | :: Sprite |
reference_point | :: Sprite |
mouse_cursor | :: Sprite |
mouse_cursor_macos | :: Sprite |
mod_category | :: Sprite |
mod_last_updated | :: Sprite |
mod_downloads_count | :: Sprite |
item_to_be_delivered_symbol | :: Sprite |
rebuild_mark | :: Sprite |
any_quality | :: Sprite |
mod_dependency_arrow | :: Sprite |
add | :: Sprite |
add_white | :: 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 | :: 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 | :: Sprite |
destination_full_icon | :: 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 | :: Sprite |
asteroid_collector_path_blocked_icon | :: Sprite |
unclaimed_cargo_icon | :: Sprite |
no_roboport_storage_space_icon | :: Sprite |
cargo_bay_not_connected_icon | :: Sprite |
frozen_icon | :: Sprite |
pipeline_disabled_icon | :: Sprite |
electricity_icon_unplugged | :: Sprite |
tooltip_category_spoilable | :: Sprite |
resources_depleted_icon | :: 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 | :: 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 | :: Sprite |
empty_armor_slot | :: Sprite |
empty_gun_slot | :: Sprite |
empty_ammo_slot | :: Sprite |
empty_robot_slot | :: Sprite |
empty_robot_material_slot | :: Sprite |
empty_inserter_hand_slot | :: Sprite |
empty_trash_slot | :: Sprite |
empty_drop_cargo_slot | :: 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 | :: Sprite |
buildability_elevated_collision_line | :: Sprite |
buildability_elevated_collision_top | :: Sprite |
buildability_elevated_collision_bottom | :: Sprite |
buildability_collision_elevated | :: 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 | :: 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 | :: Sprite |
green_wire_highlight | :: Sprite |
red_wire_highlight | :: Sprite |
wire_shadow | :: Sprite |
and_or | :: Sprite |
left_arrow | :: Sprite |
right_arrow | :: Sprite |
down_arrow | :: Sprite |
enter | :: Sprite |
move_tag | :: 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 | :: 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 | :: Sprite |
side_menu_technology_icon | :: Sprite |
side_menu_logistic_networks_icon | :: Sprite |
side_menu_players_icon | :: Sprite |
circuit_network_panel | :: Sprite |
logistic_network_panel_white | :: Sprite |
logistic_network_panel_black | :: Sprite |
rename_icon | :: Sprite |
achievement_warning | :: Sprite |
achievement_label | :: Sprite |
achievement_label_completed | :: Sprite |
achievement_label_failed | :: Sprite |
rail_signal_placement_indicator | :: Sprite |
train_stop_placement_indicator | :: Sprite |
rail_support_placement_indicator | :: 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 | :: 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 | :: 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 | :: Sprite |
white_mask | :: Sprite |
crafting_machine_recipe_not_unlocked | :: Sprite |
filter_blacklist | :: Sprite |
gps_map_icon | :: Sprite |
custom_tag_icon | :: Sprite |
space_age_icon | :: Sprite |
tip_icon | :: Sprite |
underground_remove_belts | :: Sprite |
max_distance_underground_remove_belts | :: Sprite |
underground_remove_pipes | :: Sprite |
underground_pipe_connection | :: Sprite |
ghost_cursor | :: Sprite |
tile_ghost_cursor | :: Sprite |
force_ghost_cursor | :: Sprite |
force_tile_ghost_cursor | :: Sprite |
cross_select | :: Sprite |
crosshair | :: Sprite |
expand | :: Sprite |
collapse | :: Sprite |
collapse_dark | :: Sprite |
status_working | :: Sprite |
status_not_working | :: Sprite |
status_yellow | :: Sprite |
status_blue | :: Sprite |
status_inactive | :: Sprite |
gradient | :: Sprite |
output_console_gradient | :: Sprite |
select_icon_white | :: Sprite |
select_icon_black | :: Sprite |
notification | :: Sprite |
alert_arrow | :: Sprite |
pin_arrow | :: Sprite |
pin_center | :: Sprite |
technology_white | :: Sprite |
feedback | :: Sprite |
sort_by_name | :: Sprite |
sort_by_time | :: Sprite |
parametrise | :: Sprite |
fluid_visualization_connection | :: Sprite |
fluid_visualization_connection_both_ways | :: Sprite |
fluid_visualization_connection_underground | :: Sprite |
fluid_visualization_extent_arrow | :: Sprite |
starmap_platform_moving | :: Sprite |
starmap_platform_moving_hovered | :: Sprite |
starmap_platform_moving_clicked | :: Sprite |
starmap_platform_stopped | :: Sprite |
starmap_platform_stopped_hovered | :: Sprite |
starmap_platform_stopped_clicked | :: Sprite |
starmap_platform_stacked | :: Sprite |
starmap_platform_stacked_hovered | :: Sprite |
starmap_platform_stacked_clicked | :: Sprite |
starmap_star | :: 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 | :: Animation |
inserter_stack_size_bonus_modifier_icon | :: Sprite |
inserter_stack_size_bonus_modifier_constant optional | :: Sprite |
bulk_inserter_capacity_bonus_modifier_icon | :: Sprite |
bulk_inserter_capacity_bonus_modifier_constant 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 | :: Sprite |
create_ghost_on_entity_death_modifier_constant 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 | :: Sprite |
unlock_space_location_modifier_constant optional | :: Sprite |
unlock_quality_modifier_icon | :: Sprite |
unlock_quality_modifier_constant optional | :: Sprite |
unlock_space_platforms_modifier_icon | :: Sprite |
unlock_space_platforms_modifier_constant optional | :: Sprite |
unlock_circuit_network_modifier_icon | :: Sprite |
unlock_circuit_network_modifier_constant optional | :: Sprite |
cargo_landing_pad_count_modifier_icon | :: Sprite |
cargo_landing_pad_count_modifier_constant optional | :: Sprite |
change_recipe_productivity_modifier_icon | :: Sprite |
change_recipe_productivity_modifier_constant optional | :: Sprite |
cliff_deconstruction_enabled_modifier_icon | :: Sprite |
cliff_deconstruction_enabled_modifier_constant optional | :: Sprite |
mining_with_fluid_modifier_icon | :: Sprite |
mining_with_fluid_modifier_constant optional | :: Sprite |
rail_support_on_deep_oil_ocean_modifier_icon | :: Sprite |
rail_support_on_deep_oil_ocean_modifier_constant optional | :: Sprite |
rail_planner_allow_elevated_rails_modifier_icon | :: Sprite |
rail_planner_allow_elevated_rails_modifier_constant optional | :: Sprite |
beacon_distribution_modifier_icon | :: Sprite |
beacon_distribution_modifier_constant optional | :: Sprite |
belt_stack_size_bonus_modifier_icon | :: Sprite |
belt_stack_size_bonus_modifier_constant optional | :: Sprite |
vehicle_logistics_modifier_icon | :: Sprite |
vehicle_logistics_modifier_constant optional | :: Sprite |

## ValvePrototype 'valve'

mode | :: ValveMode |
threshold optional | :: float | Ignored if ValvePrototype::mode is `"one-way"`. [...]
Ignored if ValvePrototype::mode is `"one-way"`. [...]
fluid_box | :: FluidBox | Must have at least one `"output"` FluidFlowDirection and at least one `"input-output"` FluidFlowDirection.
Must have at least one `"output"` FluidFlowDirection and at least one `"input-output"` FluidFlowDirection.
flow_rate | :: FluidAmount | The max flow rate through the valve per tick.
The max flow rate through the valve per tick.
animations optional | :: Animation4Way |
frozen_patch optional | :: Sprite4Way |

## VehiclePrototype abstract

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 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 | :: boolean | Determines whether this vehicle accepts passengers. [...]
Determines whether this vehicle accepts passengers. [...]
deliver_category optional | :: string | Name of a DeliverCategory.
Name of a DeliverCategory.
chunk_exploration_radius optional | :: uint32 | In chunks. [...]
In chunks. [...]
allow_remote_driving optional | :: boolean |

## VirtualSignalPrototype 'virtual-signal'

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'

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 | :: boolean |
draw_circuit_wires optional | :: boolean |
circuit_connector 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 |