Factorio Prototype DocsVersion 1.1.107

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.

ActiveDefenseEquipmentPrototype 'active-defense-equipment'
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'
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'
ArtilleryWagonPrototype '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.

AutoplaceControl 'autoplace-control'

A setting in the map creation GUI. [...]

BatteryEquipmentPrototype 'battery-equipment'
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'
BlueprintBookPrototype 'blueprint-book'
BlueprintItemPrototype '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.

CapsulePrototype 'capsule'

A capsule, for example a combat robot capsule or the raw fish.

CarPrototype 'car'

Entity with specialized properties for acceleration, braking, and turning.

CargoWagonPrototype 'cargo-wagon'
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'
CombatRobotCountAchievementPrototype 'combat-robot-count'

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.

ConstantCombinatorPrototype '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'
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. [...]

CurvedRailPrototype 'curved-rail'

A curved rail.

CustomInputPrototype 'custom-input'

Used for custom keyboard shortcuts/key bindings in mods. [...]

DamageType 'damage-type'

A damage type. [...]

DeciderCombinatorPrototype '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'
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. [...]

DeliverByRobotsAchievementPrototype 'deliver-by-robots-achievement'

This prototype is used for receiving an achievement, when the player requests and receives enough items using logistic robots.

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.

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.

EnemySpawnerPrototype 'unit-spawner'

Can spawn entities. [...]

EnergyShieldEquipmentPrototype 'energy-shield-equipment'

Used by energy shield.

EntityGhostPrototype 'entity-ghost'

The entity used for ghosts of entities. [...]

EntityParticlePrototype 'particle'

Deprecated in 0.18. [...]

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

EquipmentCategory 'equipment-category'

Defines a category to be available to equipment and equipment grids.

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.

FinishTheGameAchievementPrototype 'finish-the-game-achievement'

This prototype is used for receiving an achievement when the player finishes the game.

FireFlamePrototype 'fire'

A fire.

FishPrototype 'fish'

Entity that spawns in water tiles, which can be mined. [...]

FlameThrowerExplosionPrototype 'flame-thrower-explosion'

Explosion that can deal damage.

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'
FlyingRobotPrototype abstract

Abstract base for construction/logistics and combat robots.

FlyingTextPrototype 'flying-text'

An upwards flying text that disappears after a certain time (setting LuaEntity::active = false stops the flying and the disappearing.)

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

GatePrototype 'gate'

A gate.

GeneratorEquipmentPrototype 'generator-equipment'
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. [...]

HeatInterfacePrototype 'heat-interface'

This entity produces or consumes heat. [...]

HeatPipePrototype 'heat-pipe'
HighlightBoxEntityPrototype 'highlight-box'

Used to attach graphics for cursor boxes to entities during runtime. [...]

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'
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'
LeafParticlePrototype 'leaf-particle'

Deprecated in 0.18. [...]

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'
LogisticContainerPrototype 'logistic-container'

A generic container, such as a chest, that interacts with the logistics network.

LogisticRobotPrototype '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. [...]

MiningToolPrototype 'mining-tool'

Exists only for migration, cannot be used by mods.

ModuleCategory 'module-category'

A module category. [...]

ModulePrototype 'module'

A module. [...]

MouseCursor 'mouse-cursor'
MovementBonusEquipmentPrototype 'movement-bonus-equipment'

Used by exoskeleton. [...]

NamedNoiseExpression 'noise-expression'

A NoiseExpression with a name. [...]

NightVisionEquipmentPrototype 'night-vision-equipment'

Used by nightvision.

NoiseLayer 'noise-layer'

A noise layer used by the autoplace system. [...]

OffshorePumpPrototype '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'
PlayerDamagedAchievementPrototype 'player-damaged-achievement'

This prototype is used for receiving an achievement when the player receives damage.

PlayerPortPrototype 'player-port'

When a character dies, this entity will immediately respawn the character at the entities location, so there is no respawn time. [...]

PowerSwitchPrototype 'power-switch'
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'
ProjectilePrototype 'projectile'

Entity with limited lifetime that can hit other entities and has triggers when this happens.

PrototypeBase abstract

The abstract base for prototypes. [...]

PumpPrototype 'pump'

The pump is used to transfer fluids between tanks, fluid wagons and pipes.

RadarPrototype 'radar'
RailChainSignalPrototype 'rail-chain-signal'
RailPlannerPrototype 'rail-planner'
RailPrototype abstract

The abstract base of both rail prototypes.

RailRemnantsPrototype 'rail-remnants'

Used for rail corpses.

RailSignalBasePrototype abstract

The abstract base entity for both rail signals.

RailSignalPrototype 'rail-signal'
ReactorPrototype 'reactor'
RecipeCategory 'recipe-category'

A recipe category. [...]

RecipePrototype 'recipe'

A recipe. [...]

RepairToolPrototype 'repair-tool'
ResearchAchievementPrototype 'research-achievement'

This prototype is used for receiving an achievement when the player completes a specific research.

ResourceCategory 'resource-category'

A resource category. [...]

ResourceEntityPrototype 'resource'

A mineable/gatherable entity. [...]

RoboportEquipmentPrototype 'roboport-equipment'
RoboportPrototype 'roboport'
RobotWithLogisticInterfacePrototype abstract

The common properties of logistic and construction robots represented by an abstract prototype.

RocketSiloPrototype '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.

SelectionToolPrototype 'selection-tool'

Used in the base game as a base for the blueprint item and the deconstruction item.

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). [...]

SimpleSmokePrototype 'smoke'

Deprecated in 0.16. [...]

SmokePrototype abstract

Abstract entity that has an animation.

SmokeWithTriggerPrototype 'smoke-with-trigger'

An entity with animation and a trigger.

SolarPanelEquipmentPrototype 'solar-panel-equipment'
SolarPanelPrototype 'solar-panel'
SoundPrototype 'sound'

Specifies a sound that can be used with SoundPath at runtime.

SpectatorControllerPrototype 'spectator-controller'

Properties of the spectator controller.

SpeechBubblePrototype 'speech-bubble'

A speech bubble. [...]

SpiderLegPrototype 'spider-leg'
SpiderVehiclePrototype 'spider-vehicle'
SpidertronRemotePrototype 'spidertron-remote'
SplitterPrototype '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'
StraightRailPrototype 'straight-rail'

A straight rail.

TechnologyPrototype 'technology'

A technology. [...]

TileEffectDefinition 'tile-effect'

Used to define the parameters for the water shader.

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'
TransportBeltConnectablePrototype abstract

Abstract class that anything that is a belt or can connect to belts uses.

TransportBeltPrototype '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'
UnitPrototype 'unit'

Entity that moves around and attacks players, for example biters and spitters.

UpgradeItemPrototype 'upgrade-item'
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.

VehiclePrototype abstract

Abstract base of all vehicles.

VirtualSignalPrototype 'virtual-signal'
WallPrototype 'wall'

A wall.

WindSound 'wind-sound'

A wind sound.

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.

picture optional :: Sprite
charge_cooldown :: uint16

Count of ticks to preserve the animation even when the charging ends. [...]

Count of ticks to preserve the animation even when the charging ends. [...]

discharge_cooldown :: uint16

How long (in ticks) the animation will last after discharge has been initialized.

How long (in ticks) the animation will last after discharge has been initialized.

charge_animation optional :: Animation
charge_light optional :: LightDefinition

Only loaded if charge_animation is defined.

Only loaded if charge_animation is defined.

discharge_animation optional :: Animation
discharge_light optional :: LightDefinition

Only loaded if discharge_animation is defined.

Only loaded if discharge_animation is defined.

circuit_wire_connection_point optional :: WireConnectionPoint

Defines how wires visually connect to this accumulator.

Defines how wires visually connect to this accumulator.

circuit_wire_max_distance optional :: double

The maximum circuit wire distance for this entity.

The maximum circuit wire distance for this entity.

draw_copper_wires optional :: bool
draw_circuit_wires optional :: bool
circuit_connector_sprites optional :: CircuitConnectorSprites

The pictures displayed for circuit connections to this accumulator.

The pictures displayed for circuit connections to this accumulator.

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

icon_mipmaps optional :: IconMipMapType

Icons of reduced size will be used at decreased scale.

Icons of reduced size will be used at decreased scale.

steam_stats_name optional :: string

Unusable by mods, as this refers to unlocking the achievement through Steam.

Unusable by mods, as this refers to unlocking the achievement through Steam.

allowed_without_fight optional :: bool

If this is set to false, it is not possible to complete the achievement on the peaceful difficulty setting or when the enemy base generation settings have been changed.

If this is set to false, it is not possible to complete the achievement on the peaceful difficulty setting or when the enemy base generation settings have been changed.

hidden optional :: bool

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.

sound :: Sound

The sound file and volume.

The sound file and volume.

track_type :: union

Lets the game know in what instances the audio file is played.

Lets the game know in what instances the audio file is played.

weight optional :: double

AmmoCategory - 'ammo-category'

bonus_gui_order optional :: Order

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

AmmoTurretPrototype - 'ammo-turret'

inventory_size :: ItemStackIndex
automated_ammo_count :: ItemCountType
entity_info_icon_shift optional :: Vector

Shift of the "alt-mode icon" relative to the turret's position.

Shift of the "alt-mode icon" relative to the turret's position.

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

hr_version optional :: Animation

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

scale optional :: double

Only loaded if layers is not defined. [...]

Only loaded if layers is not defined. [...]

draw_as_shadow optional :: bool

Only loaded if layers is not defined. [...]

Only loaded if layers is not defined. [...]

draw_as_glow optional :: bool

Only loaded if layers is not defined. [...]

Only loaded if layers is not defined. [...]

draw_as_light optional :: bool

Only loaded if layers is not defined. [...]

Only loaded if layers is not defined. [...]

mipmap_count optional :: uint8

Only loaded if layers is not defined. [...]

Only loaded if layers is not defined. [...]

apply_runtime_tint optional :: bool

Only loaded if layers is not defined.

Only loaded if layers is not defined.

tint optional :: Color

Only loaded if layers is not defined.

Only loaded if layers is not defined.

blend_mode optional :: BlendMode

Only loaded if layers is not defined.

Only loaded if layers is not defined.

load_in_minimal_mode optional :: bool

Only loaded if layers is not defined. [...]

Only loaded if layers is not defined. [...]

premul_alpha optional :: bool

Only loaded if layers is not defined. [...]

Only loaded if layers is not defined. [...]

generate_sdf optional :: bool

Only loaded if layers is not defined. [...]

Only loaded if layers is not defined. [...]

run_mode optional :: "forward" or "backward" or "forward-then-backward"

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.

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.

ArrowPrototype - 'arrow'

ArtilleryFlarePrototype - 'artillery-flare'

pictures :: AnimationVariations

Picture variation count and individual frame count must be equal to shadow variation count.

Picture variation count and individual frame count must be equal to shadow variation count.

life_time :: uint16
shadows optional :: AnimationVariations

Shadow variation variation count and individual frame count must be equal to picture variation count.

Shadow variation variation count and individual frame count must be equal to picture variation count.

render_layer optional :: RenderLayer
render_layer_when_on_ground optional :: RenderLayer
regular_trigger_effect optional :: TriggerEffect
regular_trigger_effect_frequency optional :: uint32
ended_in_water_trigger_effect optional :: TriggerEffect
movement_modifier_when_on_ground optional :: double
movement_modifier optional :: double
creation_shift optional :: Vector
initial_speed optional :: Vector
initial_height optional :: float
initial_vertical_speed optional :: float
initial_frame_speed optional :: float
shots_per_flare optional :: uint32

How many artillery shots should be fired at the position of this flare.

How many artillery shots should be fired at the position of this flare.

early_death_ticks optional :: uint32

How long this flare stays alive after shots_per_flare amount of shots have been shot at it.

How long this flare stays alive after shots_per_flare amount of shots have been shot at it.

shot_category optional :: AmmoCategoryID

ArtilleryProjectilePrototype - 'artillery-projectile'

reveal_map :: bool
picture optional :: Sprite
shadow optional :: Sprite
chart_picture optional :: Sprite
action optional :: Trigger
final_action optional :: Trigger
height_from_ground optional :: float
rotatable optional :: bool

Whether the picture of the projectile is rotated to match the direction of travel.

Whether the picture of the projectile is rotated to match the direction of travel.

ArtilleryTurretPrototype - 'artillery-turret'

gun :: ItemID

Name of a GunPrototype.

Name of a GunPrototype.

inventory_size :: ItemStackIndex

Must be > 0.

Must be > 0.

ammo_stack_limit :: ItemCountType

Must be > 0.

Must be > 0.

automated_ammo_count :: ItemCountType
turret_rotation_speed :: double
manual_range_modifier :: double

Must be positive.

Must be positive.

alert_when_attacking optional :: bool
disable_automatic_firing optional :: bool
base_picture_secondary_draw_order optional :: uint8
base_picture_render_layer optional :: RenderLayer
base_shift optional :: Vector
base_picture optional :: Animation4Way
cannon_base_pictures optional :: RotatedSprite
cannon_barrel_pictures optional :: RotatedSprite
rotating_sound optional :: InterruptibleSound
rotating_stopped_sound optional :: Sound
turn_after_shooting_cooldown optional :: uint16
cannon_parking_frame_count optional :: uint16
cannon_parking_speed optional :: float
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.

turret_rotation_speed :: double
manual_range_modifier :: double

Must be > 0.

Must be > 0.

disable_automatic_firing optional :: bool
cannon_base_pictures optional :: RotatedSprite
cannon_barrel_pictures optional :: RotatedSprite
rotating_sound optional :: InterruptibleSound
rotating_stopped_sound optional :: Sound
turn_after_shooting_cooldown optional :: uint16
cannon_parking_frame_count optional :: uint16
cannon_parking_speed optional :: float
cannon_base_shiftings optional :: array[Vector]

Must match cannon_base_pictures frame count.

Must match cannon_base_pictures frame count.

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

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

ingredient_count optional :: uint8

Sets the maximum number of ingredients this machine can craft with. [...]

Sets the maximum number of ingredients this machine can craft with. [...]

AutoplaceControl - 'autoplace-control'

category :: "resource" or "terrain" or "enemy"

Controls in what tab the autoplace is shown in the map generator GUI.

Controls in what tab the autoplace is shown in the map generator GUI.

richness optional :: bool

Sets whether this control's richness can be changed. [...]

Sets whether this control's richness can be changed. [...]

can_be_disabled optional :: bool

Whether there is an "enable" checkbox for the autoplace control in the map generator GUI. [...]

Whether there is an "enable" checkbox for the autoplace control in the map generator GUI. [...]

BatteryEquipmentPrototype - 'battery-equipment'

No new properties

BeaconPrototype - 'beacon'

energy_usage :: Energy

The constant power usage of this beacon.

The constant power usage of this beacon.

energy_source :: ElectricEnergySource or VoidEnergySource
supply_area_distance :: double

The maximum distance that this beacon can supply its neighbors with its module's effects. [...]

The maximum distance that this beacon can supply its neighbors with its module's effects. [...]

distribution_effectivity :: double

The multiplier of the module's effects, when shared between neighbors.

The multiplier of the module's effects, when shared between neighbors.

module_specification :: ModuleSpecification

The number of module slots in this beacon and their icon positions.

The number of module slots in this beacon and their icon positions.

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

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.

BeamPrototype - 'beam'

width :: double
damage_interval :: uint32

Damage interval can't be 0. [...]

Damage interval can't be 0. [...]

head :: Animation

Head segment of the beam.

Head segment of the beam.

tail :: Animation

Tail segment of the beam. [...]

Tail segment of the beam. [...]

body :: AnimationVariations

Body segment of the beam. [...]

Body segment of the beam. [...]

action optional :: Trigger
target_offset optional :: Vector
random_target_offset optional :: bool
action_triggered_automatically optional :: bool

Whether this beams should trigger its action every damage_interval. [...]

Whether this beams should trigger its action every damage_interval. [...]

random_end_animation_rotation optional :: bool
transparent_start_end_animations optional :: bool
start optional :: Animation

Start point of the beam.

Start point of the beam.

ending optional :: Animation

End point of the beam.

End point of the beam.

light_animations optional :: BeamAnimationSet

Only loaded if start_light, ending_light, head_light, tail_light and body_light are not defined. [...]

Only loaded if start_light, ending_light, head_light, tail_light and body_light are not defined. [...]

ground_light_animations optional :: BeamAnimationSet

Only loaded if start_light, ending_light, head_light, tail_light and body_light are not defined.

Only loaded if start_light, ending_light, head_light, tail_light and body_light are not defined.

start_light optional :: Animation
ending_light optional :: Animation
head_light optional :: Animation
tail_light optional :: Animation
body_light optional :: AnimationVariations

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'

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

When mode is "output-to-separate-pipe", this is the temperature that the input fluid must reach to be moved to the output fluid box. [...]

When mode is "output-to-separate-pipe", this is the temperature that the input fluid must reach to be moved to the output fluid box. [...]

structure :: BoilerStructure
fire :: BoilerFire

Animation that is drawn on top of the structure when burning_cooldown is larger than 1. [...]

Animation that is drawn on top of the structure when burning_cooldown is larger than 1. [...]

fire_glow :: BoilerFireGlow

Animation that is drawn on top of the structure when burning_cooldown is larger than 1. [...]

Animation that is drawn on top of the structure when burning_cooldown is larger than 1. [...]

fire_glow_flicker_enabled optional :: bool

If this is set to false, fire_glow alpha is always 1 instead of being controlled by the light intensity of the energy source.

If this is set to false, fire_glow alpha is always 1 instead of being controlled by the light intensity of the energy source.

fire_flicker_enabled optional :: bool

If this is set to false, fire alpha is always 1 instead of being controlled by the light intensity of the energy source.

If this is set to false, fire alpha is always 1 instead of being controlled by the light intensity of the energy source.

mode optional :: "heat-water-inside" or "output-to-separate-pipe"

In the "heat-water-inside" mode, fluid in the fluid_box is continuously heated from the input temperature up to its FluidPrototype::max_temperature. [...]

In the "heat-water-inside" mode, fluid in the fluid_box is continuously heated from the input temperature up to its FluidPrototype::max_temperature. [...]

patch optional :: BoilerPatch

Drawn above the structure, in the "higher-object-under" RenderLayer. [...]

Drawn above the structure, in the "higher-object-under" RenderLayer. [...]

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

If this is false, the player carries over their statistics from this achievement through all their saves.

If this is false, the player carries over their statistics from this achievement through all their saves.

until_second optional :: uint32

This lets the game know how long into a game, before you can no longer complete the achievement. [...]

This lets the game know how long into a game, before you can no longer complete the achievement. [...]

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

Whether the idle_animation should also play when the generator is active.

Whether the idle_animation should also play when the generator is active.

min_perceived_performance optional :: double

Animation runs at least this fast.

Animation runs at least this fast.

performance_to_sound_speedup optional :: double

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.

CarPrototype - 'car'

animation :: RotatedAnimation

Animation speed 1 means 1 frame per tile.

Animation speed 1 means 1 frame per tile.

effectivity :: double

Modifies the efficiency of energy transfer from burner output to wheels.

Modifies the efficiency of energy transfer from burner output to wheels.

consumption :: Energy
rotation_speed :: double
energy_source or burner :: BurnerEnergySource or VoidEnergySource

Must be a burner energy source when using "burner", otherwise it can also be a void energy source.

Must be a burner energy source when using "burner", otherwise it can also be a void energy source.

inventory_size :: ItemStackIndex

Size of the car inventory.

Size of the car inventory.

turret_animation optional :: RotatedAnimation

Animation speed 1 means 1 frame per tile.

Animation speed 1 means 1 frame per tile.

light_animation optional :: RotatedAnimation

Must have the same frame count as animation.

Must have the same frame count as animation.

render_layer optional :: RenderLayer
tank_driving optional :: bool

If this car prototype uses tank controls to drive.

If this car prototype uses tank controls to drive.

has_belt_immunity optional :: bool

If this car is immune to movement by belts.

If this car is immune to movement by belts.

immune_to_tree_impacts optional :: bool

If this car gets damaged by driving over/against trees.

If this car gets damaged by driving over/against trees.

immune_to_rock_impacts optional :: bool

If this car gets damaged by driving over/against rocks.

If this car gets damaged by driving over/against rocks.

immune_to_cliff_impacts optional :: bool

If this car gets damaged by driving against cliffs.

If this car gets damaged by driving against cliffs.

turret_rotation_speed optional :: float
turret_return_timeout optional :: uint32

Timeout in ticks specifying how long the turret must be inactive to return to the default position.

Timeout in ticks specifying how long the turret must be inactive to return to the default position.

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.

CargoWagonPrototype - 'cargo-wagon'

inventory_size :: ItemStackIndex

Size of the inventory of the wagon. [...]

Size of the inventory of the wagon. [...]

CharacterCorpsePrototype - 'character-corpse'

time_to_live :: uint32
render_layer optional :: RenderLayer
pictures optional :: AnimationVariations

Mandatory if picture is not defined.

Mandatory if picture is not defined.

picture optional :: Animation

Mandatory if pictures is not defined.

Mandatory if pictures is not defined.

armor_picture_mapping optional :: dictionary[ItemID → int32]

Table of key value pairs, the keys are armor names and the values are numbers. [...]

Table of key value pairs, the keys are armor names and the values are numbers. [...]

CharacterPrototype - 'character'

mining_speed :: double
running_speed :: double
distance_per_frame :: double
maximum_corner_sliding_distance :: double
heartbeat :: Sound

The sound played when the character's health is low.

The sound played when the character's health is low.

eat :: Sound

The sound played when the character eats (fish for example).

The sound played when the character eats (fish for example).

inventory_size :: ItemStackIndex

Number of slots in the main inventory. [...]

Number of slots in the main inventory. [...]

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
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.

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.

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
enter_vehicle_distance optional :: double

Must be >= 0.

Must be >= 0.

tool_attack_distance optional :: double
respawn_time optional :: uint32

Time in seconds. [...]

Time in seconds. [...]

has_belt_immunity optional :: bool

Whether this character is moved by belts when standing on them.

Whether this character is moved by belts when standing on them.

character_corpse optional :: EntityID

Name of the character corpse that is spawned when this character dies.

Name of the character corpse that is spawned when this character dies.

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.

tool_attack_result optional :: Trigger

CliffPrototype - 'cliff'

orientations :: OrientedCliffPrototypeSet
grid_size :: Vector
grid_offset :: Vector
cliff_height optional :: float
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.

CombatRobotCountAchievementPrototype - 'combat-robot-count'

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 :: RotatedAnimation
shadow_idle :: RotatedAnimation
in_motion :: RotatedAnimation
shadow_in_motion :: RotatedAnimation
range_from_player optional :: double
friction optional :: double
destroy_action optional :: Trigger

Applied when the combat robot expires (runs out of time_to_live).

Applied when the combat robot expires (runs out of time_to_live).

follows_player optional :: bool
light optional :: LightDefinition

ConstantCombinatorPrototype - 'constant-combinator'

ConstructWithRobotsAchievementPrototype - 'construct-with-robots-achievement'

limited_to_one_game :: bool

If this is false, the player carries over their statistics from this achievement through all their saves.

If this is false, the player carries over their statistics from this achievement through all their saves.

amount optional :: uint32

This will trigger the achievement, if enough entities were placed using construction robots.

This will trigger the achievement, if enough entities were placed using construction robots.

more_than_manually optional :: bool

ContainerPrototype - 'container'

inventory_size :: ItemStackIndex

The number of slots in this container.

The number of slots in this container.

picture :: Sprite

The picture displayed for this entity.

The picture displayed for this entity.

inventory_type optional :: "with_bar" or "with_filters_and_bar"

Whether the inventory of this container can be filtered (like cargo wagons) or not.

Whether the inventory of this container can be filtered (like cargo wagons) or not.

enable_inventory_bar optional :: bool

If the inventory limiter (red X) is visible in the chest's GUI. [...]

If the inventory limiter (red X) is visible in the chest's GUI. [...]

scale_info_icons optional :: bool

If the icons of items shown in alt-mode should be scaled to the containers size.

If the icons of items shown in alt-mode should be scaled to the containers size.

circuit_wire_connection_point optional :: WireConnectionPoint

Defines how wires visually connect to this container.

Defines how wires visually connect to this container.

circuit_wire_max_distance optional :: double

The maximum circuit wire distance for this container.

The maximum circuit wire distance for this container.

draw_copper_wires optional :: bool
draw_circuit_wires optional :: bool
circuit_connector_sprites optional :: CircuitConnectorSprites

The pictures displayed for circuit connections to this container.

The pictures displayed for circuit connections to this container.

CopyPasteToolPrototype - 'copy-paste-tool'

cuts optional :: bool

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

remove_on_entity_placement optional :: bool
remove_on_tile_placement optional :: bool
final_render_layer optional :: RenderLayer
ground_patch_render_layer optional :: RenderLayer
animation_render_layer optional :: RenderLayer
splash_render_layer optional :: RenderLayer
animation_overlay_render_layer optional :: RenderLayer
animation_overlay_final_render_layer optional :: RenderLayer
shuffle_directions_at_frame optional :: uint8
use_tile_color_for_ground_patch_tint optional :: bool
ground_patch_fade_in_delay optional :: float
ground_patch_fade_in_speed optional :: float
ground_patch_fade_out_start 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. [...]

splash optional :: AnimationVariations
ground_patch optional :: AnimationVariations
ground_patch_higher optional :: AnimationVariations
ground_patch_fade_out_duration optional :: float
direction_shuffle optional :: array[array[uint16]]

An array of arrays of integers. [...]

An array of arrays of integers. [...]

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]

Can have off_when_no_fluid_recipe key that has a bool value. [...]

Can have off_when_no_fluid_recipe key that has a bool value. [...]

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

scale_entity_info_icon optional :: bool

Whether the "alt-mode icon" should be scaled to the size of the machine.

Whether the "alt-mode icon" should be scaled to the size of the machine.

show_recipe_icon optional :: bool

Whether the "alt-mode icon" should be drawn at all.

Whether the "alt-mode icon" should be drawn at all.

return_ingredients_on_change optional :: bool

Controls whether the ingredients of an in-progress recipe are destroyed when mining the machine/changing the recipe. [...]

Controls whether the ingredients of an in-progress recipe are destroyed when mining the machine/changing the recipe. [...]

animation optional :: Animation4Way

The animation played when crafting. [...]

The animation played when crafting. [...]

idle_animation optional :: Animation4Way

Idle animation must have the same frame count as animation. [...]

Idle animation must have the same frame count as animation. [...]

always_draw_idle_animation optional :: bool

Only loaded if idle_animation is defined.

Only loaded if idle_animation is defined.

default_recipe_tint optional :: DefaultRecipeTint
shift_animation_waypoints optional :: ShiftAnimationWaypoints

Only loaded if one of shift_animation_waypoint_stop_duration or shift_animation_transition_duration is not 0.

Only loaded if one of shift_animation_waypoint_stop_duration or shift_animation_transition_duration is not 0.

shift_animation_waypoint_stop_duration optional :: uint16

Only loaded if shift_animation_waypoints is defined.

Only loaded if shift_animation_waypoints is defined.

shift_animation_transition_duration optional :: uint16

Only loaded if shift_animation_waypoints is defined.

Only loaded if shift_animation_waypoints is defined.

status_colors optional :: StatusColors
entity_info_icon_shift optional :: Vector

Shift of the "alt-mode icon" relative to the machine's center.

Shift of the "alt-mode icon" relative to the machine's center.

draw_entity_info_icon_background optional :: bool

Whether the "alt-mode icon" should have a black background.

Whether the "alt-mode icon" should have a black background.

match_animation_speed_to_activity optional :: bool

Whether the speed of the animation and working visualization should be based on the machine's speed (boosted or slowed by modules).

Whether the speed of the animation and working visualization should be based on the machine's speed (boosted or slowed by modules).

show_recipe_icon_on_map optional :: bool

Whether the recipe icon should be shown on the map.

Whether the recipe icon should be shown on the map.

base_productivity optional :: float

Productivity bonus that this machine always has.

Productivity bonus that this machine always has.

module_specification optional :: ModuleSpecification

The number of module slots in this machine, and their icon positions.

The number of module slots in this machine, and their icon positions.

working_visualisations optional :: array[WorkingVisualisation]

Used to display different animations when the machine is running, for example tinted based on the current recipe. [...]

Used to display different animations when the machine is running, for example tinted based on the current recipe. [...]

CurvedRailPrototype - 'curved-rail'

bending_type optional :: "turn"

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

If this custom input is enabled. [...]

If this custom input is enabled. [...]

enabled_while_spectating optional :: bool
enabled_while_in_cutscene optional :: bool
include_selected_prototype optional :: bool

If true, the type and name of the currently selected prototype will be provided as "selected_prototype" in the raised Lua event. [...]

If true, the type and name of the currently selected prototype will be provided as "selected_prototype" in the raised Lua event. [...]

item_to_spawn optional :: ItemID

The item will be created when this input is pressed and action is set to "spawn-item". [...]

The item will be created when this input is pressed and action is set to "spawn-item". [...]

action optional :: "lua" or "spawn-item" or "toggle-personal-roboport" or "toggle-personal-logistic-requests" or "toggle-equipment-movement-bonus"

A Lua event is only raised if the action is "lua".

A Lua event is only raised if the action is "lua".

DamageType - 'damage-type'

hidden optional :: bool

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.

collision_box optional :: BoundingBox

Must contain the [0,0] point. [...]

Must contain the [0,0] point. [...]

render_layer optional :: RenderLayer
grows_through_rail_path optional :: bool
tile_layer optional :: int16

Mandatory if render_layer = "decals". [...]

Mandatory if render_layer = "decals". [...]

decal_overdraw_priority optional :: uint16

Loaded only if render_layer = "decals".

Loaded only if render_layer = "decals".

walking_sound optional :: Sound
trigger_effect optional :: TriggerEffect
autoplace optional :: AutoplaceSpecification
collision_mask optional :: CollisionMask

DeliverByRobotsAchievementPrototype - 'deliver-by-robots-achievement'

amount :: MaterialAmountType

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.

DontBuildEntityAchievementPrototype - 'dont-build-entity-achievement'

dont_build :: EntityID or array[EntityID]

This will disable the achievement, if this entity is placed. [...]

This will disable the achievement, if this entity is placed. [...]

amount optional :: uint32

DontCraftManuallyAchievementPrototype - 'dont-craft-manually-achievement'

amount :: MaterialAmountType

This will disable the achievement, if the player crafts more than this.

This will disable the achievement, if the player crafts more than this.

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

This will disable the achievement, if this entity is placed, and you have received any amount of power from it. [...]

This will disable the achievement, if this entity is placed, and you have received any amount of power from it. [...]

last_hour_only optional :: bool
minimum_energy_produced optional :: Energy

ElectricEnergyInterfacePrototype - 'electric-energy-interface'

energy_source :: ElectricEnergySource
energy_production optional :: Energy
energy_usage optional :: Energy
gui_mode optional :: "all" or "none" or "admins"
continuous_animation optional :: bool

Whether the electric energy interface animation always runs instead of being scaled to activity.

Whether the electric energy interface animation always runs instead of being scaled to activity.

render_layer optional :: RenderLayer
light optional :: LightDefinition

The light that this electric energy interface emits.

The light that this electric energy interface emits.

picture optional :: Sprite
pictures optional :: Sprite4Way

Only loaded if picture is not defined.

Only loaded if picture is not defined.

animation optional :: Animation

Only loaded if both picture and pictures are not defined.

Only loaded if both picture and pictures are not defined.

animations optional :: Animation4Way

Only loaded if picture, pictures, and animation are not defined.

Only loaded if picture, pictures, and animation are not defined.

ElectricPolePrototype - 'electric-pole'

pictures :: RotatedSprite
supply_area_distance :: double

The "radius" of this pole's supply area. [...]

The "radius" of this pole's supply area. [...]

connection_points :: array[WireConnectionPoint]
radius_visualisation_picture optional :: Sprite
active_picture optional :: Sprite

Drawn above the pictures when the electric pole is connected to an electric network.

Drawn above the pictures when the electric pole is connected to an electric network.

maximum_wire_distance optional :: double

The maximum distance between this pole and any other connected pole - if two poles are farther apart than this, they cannot be connected together directly. [...]

The maximum distance between this pole and any other connected pole - if two poles are farther apart than this, they cannot be connected together directly. [...]

draw_copper_wires optional :: bool
draw_circuit_wires optional :: bool
light optional :: LightDefinition

Drawn when the electric pole is connected to an electric network.

Drawn when the electric pole is connected to an electric network.

track_coverage_during_build_by_moving optional :: bool

EnemySpawnerPrototype - 'unit-spawner'

animations :: AnimationVariations
max_count_of_owned_units :: uint32

Count of enemies this spawner can sustain.

Count of enemies this spawner can sustain.

max_friends_around_to_spawn :: uint32

How many friendly units are required within the EnemySpawnerPrototype::spawning_radius of this spawner for it to stop producing more units.

How many friendly units are required within the EnemySpawnerPrototype::spawning_radius of this spawner for it to stop producing more units.

spawning_cooldown :: {double, double}

Ticks for cooldown after unit is spawned. [...]

Ticks for cooldown after unit is spawned. [...]

spawning_radius :: double

How far from the spawner can the units be spawned.

How far from the spawner can the units be spawned.

spawning_spacing :: double

What spaces should be between the spawned units.

What spaces should be between the spawned units.

max_richness_for_spawn_shift :: double

Max richness to determine spawn shift. [...]

Max richness to determine spawn shift. [...]

max_spawn_shift :: double

Caps how much richness can be added on top of evolution when spawning units. [...]

Caps how much richness can be added on top of evolution when spawning units. [...]

pollution_absorption_absolute :: double
pollution_absorption_proportional :: double
call_for_help_radius :: double
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
integration optional :: SpriteVariations
min_darkness_to_spawn optional :: float
max_darkness_to_spawn optional :: float
random_animation_offset optional :: bool
spawn_decorations_on_expansion optional :: bool

Whether spawn_decoration should be spawned when enemies expand.

Whether spawn_decoration should be spawned when enemies expand.

spawn_decoration optional :: CreateDecorativesTriggerEffectItem or 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. [...]

EntityGhostPrototype - 'entity-ghost'

deprecatedEntityParticlePrototype - 'particle'

No new properties

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

icon_mipmaps optional :: IconMipMapType

Icons of reduced size will be used at decreased scale.

Icons of reduced size will be used at decreased scale.

collision_box optional :: BoundingBox

Specification of the entity collision boundaries. [...]

Specification of the entity collision boundaries. [...]

collision_mask optional :: CollisionMask

Two entities can collide only if they share a layer from the collision mask.

Two entities can collide only if they share a layer from the collision mask.

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

Specification of space needed to see the whole entity in GUIs. [...]

Specification of space needed to see the whole entity in GUIs. [...]

sticker_box optional :: BoundingBox

Used to set the area of the entity that can have stickers on it, currently only used for units to specify the area where the green slow down stickers can appear.

Used to set the area of the entity that can have stickers on it, currently only used for units to specify the area where the green slow down stickers can appear.

hit_visualization_box optional :: BoundingBox

Where beams should hit the entity. [...]

Where beams should hit the entity. [...]

trigger_target_mask optional :: TriggerTargetMask
flags optional :: EntityPrototypeFlags
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.

subgroup optional :: ItemSubGroupID

The name of the subgroup this entity should be sorted into in the map editor building selection.

The name of the subgroup this entity should be sorted into in the map editor building selection.

allow_copy_paste optional :: bool
selectable_in_game optional :: bool
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 :: 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 :: float

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
vehicle_impact_sound optional :: Sound

When playing this sound, the volume is scaled by the speed of the vehicle when colliding with this entity.

When playing this sound, the volume is scaled by the speed of the vehicle when colliding with this entity.

open_sound optional :: Sound
close_sound optional :: Sound
radius_visualisation_specification optional :: RadiusVisualisationSpecification
build_base_evolution_requirement optional :: double
alert_icon_shift optional :: Vector
alert_icon_scale optional :: float
fast_replaceable_group optional :: string

This allows you to replace an entity that's already placed, with a different one in your inventory. [...]

This allows you to replace an entity that's already placed, with a different one in your inventory. [...]

next_upgrade optional :: EntityID

Name of the entity that will be automatically selected as the upgrade of this entity when using the upgrade planner without configuration. [...]

Name of the entity that will be automatically selected as the upgrade of this entity when using the upgrade planner without configuration. [...]

protected_from_tile_building optional :: bool

When this is true, this entity prototype should be included during tile collision checks with tiles that have TilePrototype::check_collision_with_entities set to true.

When this is true, this entity prototype should be included during tile collision checks with tiles that have TilePrototype::check_collision_with_entities set to true.

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

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

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
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
alert_when_damaged optional :: bool
hide_resistances optional :: bool

Whether the resistances of this entity should be hidden in the entity tooltip.

Whether the resistances of this entity should be hidden in the entity tooltip.

create_ghost_on_death optional :: bool
random_corpse_variation optional :: bool
integration_patch_render_layer optional :: RenderLayer
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

Sprite drawn on ground under the entity to make it feel more integrated into the ground.

Sprite drawn on ground under the entity to make it feel more integrated into the ground.

is_military_target optional :: bool

Whether this prototype should be a high priority target for enemy forces. [...]

Whether this prototype should be a high priority target for enemy forces. [...]

allow_run_time_change_of_is_military_target optional :: bool

If this is true, this entity's is_military_target property can be changed during runtime (on the entity, not on the prototype itself).

If this is true, this entity's is_military_target property can be changed during runtime (on the entity, not on the prototype itself).

EquipmentCategory - 'equipment-category'

No new properties

EquipmentGridPrototype - 'equipment-grid'

equipment_categories :: array[EquipmentCategoryID]

Only equipment with at least one of these categories can be inserted into the grid.

Only equipment with at least one of these categories can be inserted into the grid.

width :: uint32
height :: uint32
locked optional :: bool

Whether this locked from user interaction which means that the user cannot put equipment into or take equipment from this equipment grid.

Whether this locked from user interaction which means that the user cannot put equipment into or take equipment from this equipment grid.

EquipmentPrototype - abstract

sprite :: Sprite

The graphics to use when this equipment is shown inside an equipment grid.

The graphics to use when this equipment is shown inside an equipment grid.

shape :: EquipmentShape

How big this equipment should be in the grid and whether it should be one solid rectangle or of a custom shape.

How big this equipment should be in the grid and whether it should be one solid rectangle or of a custom shape.

categories :: array[EquipmentCategoryID]

Sets the categories of the equipment. [...]

Sets the categories of the equipment. [...]

energy_source :: ElectricEnergySource
take_result optional :: ItemID

Name of the item prototype that should be returned to the player when they remove this equipment from an equipment grid.

Name of the item prototype that should be returned to the player when they remove this equipment from an equipment grid.

background_color optional :: Color

The color that the background of this equipment should have when shown inside an equipment grid.

The color that the background of this equipment should have when shown inside an equipment grid.

background_border_color optional :: Color

The color that the border of the background of this equipment should have when shown inside an equipment grid.

The color that the border of the background of this equipment should have when shown inside an equipment grid.

grabbed_background_color optional :: Color

The color that the background of this equipment should have when held in the players hand and hovering over an equipment grid.

The color that the background of this equipment should have when held in the players hand and hovering over an equipment grid.

ExplosionPrototype - 'explosion'

animations :: AnimationVariations
sound optional :: Sound
smoke optional :: TrivialSmokeID

Mandatory if smoke_count > 0.

Mandatory if smoke_count > 0.

height optional :: float
smoke_slow_down_factor optional :: float
smoke_count optional :: uint16
rotate optional :: bool
beam optional :: bool
correct_rotation optional :: bool
scale_animation_speed optional :: bool
fade_in_duration optional :: uint8
fade_out_duration optional :: uint8
render_layer optional :: RenderLayer
scale_in_duration optional :: uint8
scale_out_duration optional :: uint8
scale_end optional :: float
scale_increment_per_tick optional :: float
light_intensity_factor_initial optional :: float

Silently clamped to be between 0 and 1.

Silently clamped to be between 0 and 1.

light_intensity_factor_final optional :: float

Silently clamped to be between 0 and 1.

Silently clamped to be between 0 and 1.

light_size_factor_initial optional :: float

Silently clamped to be between 0 and 1.

Silently clamped to be between 0 and 1.

light_size_factor_final optional :: float

Silently clamped to be between 0 and 1.

Silently clamped to be between 0 and 1.

light optional :: LightDefinition
light_intensity_peak_start_progress optional :: float
light_intensity_peak_end_progress optional :: float
light_size_peak_start_progress optional :: float
light_size_peak_end_progress optional :: float
scale_initial optional :: float
scale_initial_deviation optional :: float
scale optional :: float
scale_deviation optional :: float

FinishTheGameAchievementPrototype - 'finish-the-game-achievement'

until_second optional :: uint32

This lets the game know how long into a game, before you can no longer complete the achievement. [...]

This lets the game know how long into a game, before you can no longer complete the achievement. [...]

damage_per_tick :: DamagePrototype
spread_delay :: uint32
spread_delay_deviation :: uint32
render_layer optional :: RenderLayer
initial_render_layer optional :: RenderLayer
secondary_render_layer optional :: RenderLayer
small_tree_fire_pictures optional :: AnimationVariations
pictures optional :: AnimationVariations
smoke_source_pictures optional :: AnimationVariations
secondary_pictures optional :: AnimationVariations
burnt_patch_pictures optional :: SpriteVariations
secondary_picture_fade_out_start optional :: uint32
secondary_picture_fade_out_duration optional :: uint32
spawn_entity optional :: EntityID
smoke optional :: array[SmokeSource]
maximum_spread_count optional :: uint16
initial_flame_count optional :: uint8

Spawns this many secondary_pictures around the entity when it first spawns. [...]

Spawns this many secondary_pictures around the entity when it first spawns. [...]

uses_alternative_behavior optional :: bool

If false, then all animations loop. [...]

If false, then all animations loop. [...]

limit_overlapping_particles optional :: bool
tree_dying_factor optional :: float
fade_in_duration optional :: uint32
fade_out_duration optional :: uint32
initial_lifetime optional :: uint32
damage_multiplier_decrease_per_tick optional :: float
damage_multiplier_increase_per_added_fuel optional :: float
maximum_damage_multiplier optional :: float
lifetime_increase_by optional :: uint32
lifetime_increase_cooldown optional :: uint32
maximum_lifetime optional :: uint32
add_fuel_cooldown optional :: uint32
delay_between_initial_flames optional :: uint32
smoke_fade_in_duration optional :: uint32
smoke_fade_out_duration optional :: uint32
on_fuel_added_action optional :: Trigger
on_damage_tick_effect optional :: Trigger
light optional :: LightDefinition
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]

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

icon_mipmaps optional :: IconMipMapType

Icons of reduced size will be used at decreased scale.

Icons of reduced size will be used at decreased scale.

default_temperature :: double

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.

max_temperature optional :: double
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.

subgroup optional :: ItemSubGroupID

The name of the subgroup of this fluid. [...]

The name of the subgroup of this fluid. [...]

gas_temperature optional :: double

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.

hidden optional :: bool

Hides the fluid from the signal selection screen.

Hides the fluid from the signal selection screen.

auto_barrel optional :: bool

Whether the fluid should be included in the barrel recipes automatically generated by the base mod. [...]

Whether the fluid should be included in the barrel recipes automatically generated by the base mod. [...]

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 :: DamagePrototype
width optional :: float
particle_buffer_size optional :: uint32

Number of spawned child particles of the stream. [...]

Number of spawned child particles of the stream. [...]

particle_spawn_timeout optional :: uint16
particle_start_alpha optional :: float
particle_end_alpha optional :: float
particle_start_scale optional :: float
particle_alpha_per_part optional :: float
particle_scale_per_part optional :: float
particle_fade_out_threshold optional :: float

Value between 0 and 1.

Value between 0 and 1.

particle_loop_exit_threshold optional :: float

Value between 0 and 1.

Value between 0 and 1.

particle_loop_frame_count optional :: uint16

Will be set to 1 by the game if less than 1.

Will be set to 1 by the game if less than 1.

particle_fade_out_duration optional :: uint16

Will be set to 1 by the game if less than 1.

Will be set to 1 by the game if less than 1.

spine_animation optional :: Animation
particle optional :: Animation
shadow optional :: Animation
smoke_sources optional :: array[SmokeSource]

Smoke spawning is controlled by progress_to_create_smoke.

Smoke spawning is controlled by progress_to_create_smoke.

progress_to_create_smoke optional :: float

The point in the particles projectile arc to start spawning smoke. [...]

The point in the particles projectile arc to start spawning smoke. [...]

stream_light optional :: LightDefinition
ground_light optional :: LightDefinition
target_position_deviation optional :: double
oriented_particle optional :: bool
shadow_scale_enabled optional :: bool

FluidTurretPrototype - 'fluid-turret'

fluid_buffer_size :: float
fluid_buffer_input_flow :: float
activation_buffer_ratio :: float

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 :: double
tank_count optional :: uint8

Must be 1, 2 or 3.

Must be 1, 2 or 3.

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, in tiles/tick. [...]

The maximum flying speed of the robot, 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. [...]

FlyingTextPrototype - 'flying-text'

speed :: float

How fast the text flies up. [...]

How fast the text flies up. [...]

time_to_live :: uint32

Time in ticks this flying-text lasts.

Time in ticks this flying-text lasts.

text_alignment optional :: "left" or "center" or "right"

FontPrototype - 'font'

type :: "font"
name :: string

Name of the font.

Name of the font.

size :: int32

Size of the font.

Size of the font.

from :: string

The name of the fonts .ttf descriptor. [...]

The name of the fonts .ttf descriptor. [...]

spacing optional :: float
border optional :: bool

Whether the font has a border.

Whether the font has a border.

filtered optional :: bool
border_color optional :: Color

The color of the border, if enabled.

The color of the border, if enabled.

FuelCategory - 'fuel-category'

No new properties

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

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

The number of fluid units the generator uses per tick.

The number of fluid units the generator uses per tick.

maximum_temperature :: double

The maximum temperature to which the efficiency can increase. [...]

The maximum temperature to which the efficiency can increase. [...]

smoke optional :: array[SmokeSource]
burns_fluid optional :: bool

If set to true, the available power output is based on the FluidPrototype::fuel_value. [...]

If set to true, the available power output is based on the FluidPrototype::fuel_value. [...]

scale_fluid_usage optional :: bool

Scales the generator's fluid usage to its maximum power output. [...]

Scales the generator's fluid usage to its maximum power output. [...]

destroy_non_fuel_fluid optional :: bool

This property is used when burns_fluid is true and the fluid has a fuel_value of 0. [...]

This property is used when burns_fluid is true and the fluid has a fuel_value of 0. [...]

min_perceived_performance optional :: double

Animation runs at least this fast. [...]

Animation runs at least this fast. [...]

performance_to_sound_speedup optional :: double
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. [...]

GuiStyle - 'gui-style'

Custom properties :: stringStyleSpecification

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.

HeatInterfacePrototype - 'heat-interface'

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

HighlightBoxEntityPrototype - 'highlight-box'

No new properties

InfinityContainerPrototype - 'infinity-container'

erase_contents_when_mined :: bool
gui_mode optional :: "all" or "none" or "admins"

Controls which players can control what the chest spawns.

Controls which players can control what the chest spawns.

InfinityPipePrototype - 'infinity-pipe'

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

InserterPrototype - 'inserter'

extension_speed :: double
rotation_speed :: double
insert_position :: Vector
pickup_position :: Vector
platform_picture :: Sprite4Way
hand_base_picture :: Sprite
hand_open_picture :: Sprite
hand_closed_picture :: 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
stack optional :: bool

Whether this inserter is considered a stack inserter. [...]

Whether this inserter is considered a stack inserter. [...]

allow_custom_vectors optional :: bool

Whether pickup and insert position can be set run-time.

Whether pickup and insert position can be set run-time.

allow_burner_leech optional :: bool

Whether this burner inserter can fuel itself from the fuel inventory of the entity it is picking up items from.

Whether this burner inserter can fuel itself from the fuel inventory of the entity it is picking up items from.

draw_held_item optional :: bool

Whether the item that the inserter is holding should be drawn.

Whether the item that the inserter is holding should be drawn.

use_easter_egg optional :: bool

Whether the inserter should be able to fish fish.

Whether the inserter should be able to fish fish.

filter_count optional :: uint8

How many filters this inserter has. [...]

How many filters this inserter has. [...]

hand_base_shadow :: Sprite
hand_open_shadow :: Sprite
hand_closed_shadow :: Sprite
hand_size optional :: double

Used to determine how long the arm of the inserter is when drawing it. [...]

Used to determine how long the arm of the inserter is when drawing it. [...]

circuit_wire_max_distance optional :: double

The maximum circuit wire distance for this entity.

The maximum circuit wire distance for this entity.

draw_copper_wires optional :: bool
draw_circuit_wires optional :: bool
default_stack_control_input_signal optional :: SignalIDConnector
draw_inserter_arrow optional :: bool

Whether the yellow arrow that indicates the drop point of the inserter and the line that indicates the pickup position should be drawn.

Whether the yellow arrow that indicates the drop point of the inserter and the line that indicates the pickup position should be drawn.

chases_belt_items optional :: bool

Whether the inserter hand should move to the items it picks up from belts, leading to item chasing behaviour. [...]

Whether the inserter hand should move to the items it picks up from belts, leading to item chasing behaviour. [...]

stack_size_bonus optional :: uint8

Stack size bonus that is inherent to the prototype without having to be researched.

Stack size bonus that is inherent to the prototype without having to be researched.

circuit_wire_connection_points optional :: {WireConnectionPoint, WireConnectionPoint, WireConnectionPoint, WireConnectionPoint}
circuit_connector_sprites optional :: {CircuitConnectorSprites, CircuitConnectorSprites, CircuitConnectorSprites, CircuitConnectorSprites}

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

icon_mipmaps optional :: IconMipMapType

Icons of reduced size will be used at decreased scale.

Icons of reduced size will be used at decreased scale.

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

icon_mipmaps optional :: IconMipMapType

Icons of reduced size will be used at decreased scale. [...]

Icons of reduced size will be used at decreased scale. [...]

dark_background_icons optional :: array[IconData]

Inside IconData, the property for the file path is dark_background_icon instead of icon. [...]

Inside IconData, the property for the file path is dark_background_icon instead of icon. [...]

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

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

placed_as_equipment_result optional :: EquipmentID
subgroup optional :: ItemSubGroupID

The name of the subgroup this item should be sorted into in item selection GUIs like logistic requests. [...]

The name of the subgroup this item should be sorted into in item selection GUIs like logistic requests. [...]

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.

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.

default_request_amount optional :: ItemCountType
wire_count optional :: ItemCountType

The number of items needed to connect 2 entities with this as wire. [...]

The number of items needed to connect 2 entities with this as wire. [...]

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
fuel_top_speed_multiplier optional :: double
fuel_emissions_multiplier 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
rocket_launch_products optional :: array[ItemProductPrototype]
rocket_launch_product optional :: ItemProductPrototype

Only loaded if rocket_launch_products is not defined.

Only loaded if rocket_launch_products is not defined.

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]

Inside IconData, the property for the file path is icon_tintable_mask instead of icon. [...]

Inside IconData, the property for the file path is icon_tintable_mask instead of icon. [...]

icon_tintable_mask optional :: FileName

Path to the icon file. [...]

Path to the icon file. [...]

icon_tintables optional :: array[IconData]

Inside IconData, the property for the file path is icon_tintable instead of icon. [...]

Inside IconData, the property for the file path is icon_tintable instead of icon. [...]

icon_tintable optional :: FileName

Path to the icon file. [...]

Path to the icon file. [...]

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.

extends_inventory_by_default optional :: bool

When true, this item-with-inventory will extend the inventory it sits in by default. [...]

When true, this item-with-inventory will extend the inventory it sits in by default. [...]

insertion_priority_mode optional :: union

The insertion priority mode for this item. [...]

The insertion priority mode for this item. [...]

ItemWithLabelPrototype - 'item-with-label'

default_label_color optional :: Color

The default label color the item will use.

The default label color the item will use.

draw_label_for_cursor_render optional :: bool

If the item will draw its label when held in the cursor in place of the item count.

If the item will draw its label when held in the cursor in place of the item count.

ItemWithTagsPrototype - 'item-with-tags'

No new properties

KillAchievementPrototype - 'kill-achievement'

to_kill optional :: 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.

amount optional :: uint32

This is the amount of entity of the specified type the player needs to destroy to receive the achievement.

This is the amount of entity of the specified type the player needs to destroy to receive the achievement.

in_vehicle optional :: bool

This defines if the player needs to be in a vehicle.

This defines if the player needs to be in a vehicle.

personally optional :: bool

This defines to make sure you are the one driving, for instance, in a tank rather than an automated train.

This defines to make sure you are the one driving, for instance, in a tank rather than an automated train.

LabPrototype - 'lab'

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

The animation that plays when the lab is active.

The animation that plays when the lab is active.

off_animation :: Animation

The animation that plays when the lab is idle.

The animation that plays when the lab is idle.

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
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.

light optional :: LightDefinition
base_productivity optional :: float

Productivity bonus that this machine always has.

Productivity bonus that this machine always has.

entity_info_icon_shift optional :: Vector

Shift of the "alt-mode icon" relative to the lab's center.

Shift of the "alt-mode icon" relative to the lab's center.

module_specification optional :: ModuleSpecification

The number of module slots.

The number of module slots.

LampPrototype - 'lamp'

picture_on :: Sprite

The lamps graphics when it's on.

The lamps graphics when it's on.

picture_off :: 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_connection_point optional :: WireConnectionPoint

Defines how wires visually connect to this lamp.

Defines how wires visually connect to this lamp.

circuit_wire_max_distance optional :: double

The maximum circuit wire distance for this entity.

The maximum circuit wire distance for this entity.

draw_copper_wires optional :: bool
draw_circuit_wires optional :: bool
circuit_connector_sprites optional :: CircuitConnectorSprites

The pictures displayed for circuit connections to this lamp.

The pictures displayed for circuit connections to this lamp.

glow_size optional :: float
glow_color_intensity optional :: float
darkness_for_all_lamps_on optional :: float

darkness_for_all_lamps_on must be > darkness_for_all_lamps_off. [...]

darkness_for_all_lamps_on must be > darkness_for_all_lamps_off. [...]

darkness_for_all_lamps_off optional :: float

darkness_for_all_lamps_on must be > darkness_for_all_lamps_off. [...]

darkness_for_all_lamps_on must be > darkness_for_all_lamps_off. [...]

always_on optional :: bool

Whether the lamp should always be on.

Whether the lamp should always be on.

signal_to_color_mapping optional :: array[SignalColorMapping]
glow_render_mode optional :: "additive" or "multiplicative"

LandMinePrototype - 'land-mine'

picture_safe :: 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 :: Sprite

The sprite of the landmine of a friendly force when it is armed.

The sprite of the landmine of a friendly force when it is armed.

trigger_radius :: double
picture_set_enemy optional :: Sprite

The sprite of the landmine of an enemy force when it is armed.

The sprite of the landmine of an enemy force when it is armed.

timeout optional :: uint32

Time between placing and the landmine being armed, in ticks.

Time between placing and the landmine being armed, in ticks.

action optional :: Trigger
ammo_category optional :: AmmoCategoryID
force_die_on_attack optional :: bool

Force the landmine to kill itself when exploding.

Force the landmine to kill itself when exploding.

trigger_force optional :: ForceCondition
trigger_collision_mask optional :: CollisionMask

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.

deprecatedLeafParticlePrototype - 'leaf-particle'

No new properties

LinkedContainerPrototype - 'linked-container'

inventory_size :: ItemStackIndex

Must be > 0.

Must be > 0.

picture optional :: Sprite
inventory_type optional :: "with_bar" or "with_filters_and_bar"

Whether the inventory of this container can be filtered (like cargo wagons) or not.

Whether the inventory of this container can be filtered (like cargo wagons) or not.

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

Players that can access the GUI to change the link ID.

Players that can access the GUI to change the link ID.

scale_info_icons optional :: bool
circuit_wire_connection_point optional :: WireConnectionPoint

Defines how wires visually connect to this linked container.

Defines how wires visually connect to this linked container.

circuit_wire_max_distance optional :: double

The maximum circuit wire distance for this linked container.

The maximum circuit wire distance for this linked container.

draw_copper_wires optional :: bool
draw_circuit_wires optional :: bool
circuit_connector_sprites optional :: CircuitConnectorSprites

The pictures displayed for circuit connections to this linked container.

The pictures displayed for circuit connections to this linked container.

Loader1x1Prototype - 'loader-1x1'

No new properties

Loader1x2Prototype - 'loader'

No new properties

LoaderPrototype - abstract

structure :: LoaderStructure
filter_count :: uint8

How many item filters this loader has. [...]

How many item filters this loader has. [...]

structure_render_layer optional :: RenderLayer
container_distance optional :: double

The distance between the position of this loader and the tile of the loader's container target.

The distance between the position of this loader and the tile of the loader's container target.

allow_rail_interaction optional :: bool

Whether this loader can load and unload RollingStockPrototype.

Whether this loader can load and unload RollingStockPrototype.

allow_container_interaction optional :: bool

Whether this loader can load and unload stationary inventories such as containers and crafting machines.

Whether this loader can load and unload stationary inventories such as containers and crafting machines.

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

LocomotivePrototype - 'locomotive'

max_power :: Energy
reversing_power_modifier :: double
energy_source or burner :: BurnerEnergySource or VoidEnergySource

Must be a burner energy source when using "burner", otherwise it can also be a void energy source.

Must be a burner energy source when using "burner", otherwise it can also be a void energy source.

front_light optional :: LightDefinition
front_light_pictures optional :: RotatedSprite
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. [...]

render_not_in_network_icon optional :: bool

Whether the "no network" icon should be rendered on this entity if the entity is not within a logistics network.

Whether the "no network" icon should be rendered on this entity if the entity is not within a logistics network.

opened_duration optional :: uint8
animation optional :: Animation

Drawn when a robot brings/takes items from this container.

Drawn when a robot brings/takes items from this container.

landing_location_offset optional :: Vector

The offset from the center of this container where a robot visually brings/takes items.

The offset from the center of this container where a robot visually brings/takes items.

use_exact_mode optional :: bool

Whether logistic robots have to deliver the exact amount of items requested to this logistic container instead of over-delivering (within their cargo size).

Whether logistic robots have to deliver the exact amount of items requested to this logistic container instead of over-delivering (within their cargo size).

animation_sound optional :: Sound

Played when a robot brings/takes items from this container. [...]

Played when a robot brings/takes items from this container. [...]

LogisticRobotPrototype - 'logistic-robot'

idle_with_cargo optional :: RotatedAnimation

Only the first frame of the animation is drawn. [...]

Only the first frame of the animation is drawn. [...]

in_motion_with_cargo optional :: RotatedAnimation

Only the first frame of the animation is drawn. [...]

Only the first frame of the animation is drawn. [...]

shadow_idle_with_cargo optional :: RotatedAnimation

Only the first frame of the animation is drawn. [...]

Only the first frame of the animation is drawn. [...]

shadow_in_motion_with_cargo optional :: RotatedAnimation

Only the first frame of the animation is drawn. [...]

Only the first frame of the animation is drawn. [...]

MapGenPresets - 'map-gen-presets'

type :: "map-gen-presets"
name :: string

Name of the map gen presets. [...]

Name of the map gen presets. [...]

Custom properties :: stringMapGenPreset

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

MarketPrototype - 'market'

picture :: Sprite
allow_access_to_all_forces optional :: bool

Whether all forces are allowed to open this market.

Whether all forces are allowed to open this market.

MiningDrillPrototype - 'mining-drill'

vector_to_place_result :: Vector

The position where any item results are placed, when the mining drill is facing north (default direction). [...]

The position where any item results are placed, when the mining drill is facing north (default direction). [...]

resource_searching_radius :: double

The distance from the centre of the mining drill to search for resources in. [...]

The distance from the centre of the mining drill to search for resources in. [...]

energy_usage :: Energy

The amount of energy used by the drill while mining. [...]

The amount of energy used by the drill while mining. [...]

mining_speed :: double

The speed of this drill.

The speed of this drill.

energy_source :: EnergySource

The energy source of this mining drill.

The energy source of this mining drill.

resource_categories :: array[ResourceCategoryID]

The names of the ResourceCategory that can be mined by this drill. [...]

The names of the ResourceCategory that can be mined by this drill. [...]

output_fluid_box optional :: FluidBox
input_fluid_box optional :: FluidBox
animations optional :: Animation4Way

Only loaded if graphics_set is not defined.

Only loaded if graphics_set is not defined.

graphics_set optional :: MiningDrillGraphicsSet
wet_mining_graphics_set optional :: MiningDrillGraphicsSet
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.

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.

radius_visualisation_picture optional :: Sprite

The sprite used to show the range of the mining drill.

The sprite used to show the range of the mining drill.

circuit_wire_max_distance optional :: double

The maximum circuit wire distance for this entity.

The maximum circuit wire distance for this entity.

draw_copper_wires optional :: bool
draw_circuit_wires optional :: bool
base_render_layer optional :: RenderLayer
base_productivity optional :: float

Productivity bonus that this machine always has. [...]

Productivity bonus that this machine always has. [...]

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_wire_connection_points optional :: {WireConnectionPoint, WireConnectionPoint, WireConnectionPoint, WireConnectionPoint}

Mandatory if circuit_wire_max_distance > 0.

Mandatory if circuit_wire_max_distance > 0.

circuit_connector_sprites optional :: {CircuitConnectorSprites, CircuitConnectorSprites, CircuitConnectorSprites, CircuitConnectorSprites}

Mandatory if circuit_wire_max_distance > 0.

Mandatory if circuit_wire_max_distance > 0.

module_specification optional :: ModuleSpecification

deprecatedMiningToolPrototype - 'mining-tool'

No new properties

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 :: bool
limitation optional :: array[RecipeID]

Array of recipe names this module can be used on. [...]

Array of recipe names this module can be used on. [...]

limitation_blacklist optional :: array[RecipeID]

Array of recipe names this module can not be used on, implicitly allowing its use on all other recipes. [...]

Array of recipe names this module can not be used on, implicitly allowing its use on all other recipes. [...]

limitation_message_key optional :: string

The locale key of the message that is shown when the player attempts to use the module on a recipe it can't be used on. [...]

The locale key of the message that is shown when the player attempts to use the module on a recipe it can't be used on. [...]

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

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

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

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

NoiseLayer - 'noise-layer'

No new properties

OffshorePumpPrototype - 'offshore-pump'

fluid_box :: FluidBox
pumping_speed :: float

How many units of fluid are produced per tick. [...]

How many units of fluid are produced per tick. [...]

fluid :: FluidID

The name of the fluid that is produced by the pump.

The name of the fluid that is produced by the pump.

graphics_set optional :: OffshorePumpGraphicsSet
picture optional :: Animation4Way

Mandatory if graphics_set is not defined. [...]

Mandatory if graphics_set is not defined. [...]

min_perceived_performance optional :: float

Animation runs at least this fast.

Animation runs at least this fast.

fluid_box_tile_collision_test optional :: CollisionMask
adjacent_tile_collision_test optional :: CollisionMask

Tiles colliding with adjacent_tile_collision_box must collide with this collision mask (unless it's empty).

Tiles colliding with adjacent_tile_collision_box must collide with this collision mask (unless it's empty).

adjacent_tile_collision_mask optional :: CollisionMask

Tiles colliding with adjacent_tile_collision_box must NOT collide with this collision mask.

Tiles colliding with adjacent_tile_collision_box must NOT collide with this collision mask.

center_collision_mask optional :: CollisionMask

Tile at placement position must NOT collide with this collision mask.

Tile at placement position must NOT collide with this collision mask.

adjacent_tile_collision_box optional :: BoundingBox
placeable_position_visualization optional :: Sprite
remove_on_tile_collision optional :: bool
always_draw_fluid optional :: bool

If false, the offshore pump will not show fluid present (visually) before there is an output connected. [...]

If false, the offshore pump will not show fluid present (visually) before there is an output connected. [...]

check_bounding_box_collides_with_tiles optional :: bool

If not set (=default), the offshore pump does not collide with tiles if it has none of these collision masks: "water-tile", "ground-tile", "resource-layer", "player-layer", "item-layer", "doodad-layer". [...]

If not set (=default), the offshore pump does not collide with tiles if it has none of these collision masks: "water-tile", "ground-tile", "resource-layer", "player-layer", "item-layer", "doodad-layer". [...]

circuit_wire_max_distance optional :: double

The maximum circuit wire distance for this entity.

The maximum circuit wire distance for this entity.

draw_copper_wires optional :: bool
draw_circuit_wires optional :: bool
circuit_wire_connection_points optional :: {WireConnectionPoint, WireConnectionPoint, WireConnectionPoint, WireConnectionPoint}

Mandatory if circuit_wire_max_distance > 0.

Mandatory if circuit_wire_max_distance > 0.

circuit_connector_sprites optional :: {CircuitConnectorSprites, CircuitConnectorSprites, CircuitConnectorSprites, CircuitConnectorSprites}

Mandatory if circuit_wire_max_distance > 0.

Mandatory if circuit_wire_max_distance > 0.

ParticlePrototype - 'optimized-particle'

pictures :: AnimationVariations

Picture variation count and individual frame count must be equal to shadow variation count.

Picture variation count and individual frame count must be equal to shadow variation count.

life_time :: uint16

Can't be 1.

Can't be 1.

shadows optional :: AnimationVariations

Shadow variation variation count and individual frame count must be equal to picture variation count.

Shadow variation variation count and individual frame count must be equal to picture variation count.

draw_shadow_when_on_ground optional :: bool
regular_trigger_effect optional :: TriggerEffect
ended_in_water_trigger_effect optional :: TriggerEffect
ended_on_ground_trigger_effect optional :: TriggerEffect
render_layer optional :: RenderLayer
render_layer_when_on_ground optional :: RenderLayer
regular_trigger_effect_frequency optional :: uint32

Can't be 1.

Can't be 1.

movement_modifier_when_on_ground optional :: float
movement_modifier optional :: float
vertical_acceleration optional :: float

Has to be >= -0.01 and <= 0.01.

Has to be >= -0.01 and <= 0.01.

mining_particle_frame_speed optional :: float
fade_away_duration optional :: uint16

Defaults to life_time / 5, but at most 60. [...]

Defaults to life_time / 5, but at most 60. [...]

ParticleSourcePrototype - 'particle-source'

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

All graphics for this pipe.

All graphics for this pipe.

PipeToGroundPrototype - 'pipe-to-ground'

fluid_box :: FluidBox
pictures :: PipeToGroundPictures
draw_fluid_icon_override optional :: bool

Causes fluid icon to always be drawn, ignoring the usual pair requirement.

Causes fluid icon to always be drawn, ignoring the usual pair requirement.

PlayerDamagedAchievementPrototype - 'player-damaged-achievement'

minimum_damage :: float

This will trigger the achievement, if the amount of damage taken by the dealer, is more than this.

This will trigger the achievement, if the amount of damage taken by the dealer, is more than this.

should_survive :: bool

This sets the achievement to only trigger, if you survive the minimum amount of damage. [...]

This sets the achievement to only trigger, if you survive the minimum amount of damage. [...]

type_of_dealer optional :: string

This will trigger the achievement, if the player takes damage from this specific entity type.

This will trigger the achievement, if the player takes damage from this specific entity type.

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

If this is false, the player carries over their statistics from this achievement through all their saves.

If this is false, the player carries over their statistics from this achievement through all their saves.

item_product optional :: ItemID

Mandatory if fluid_product is not defined. [...]

Mandatory if fluid_product is not defined. [...]

fluid_product optional :: FluidID

Mandatory if item_product is not defined. [...]

Mandatory if item_product is not defined. [...]

ProducePerHourAchievementPrototype - 'produce-per-hour-achievement'

amount :: MaterialAmountType

This is how much the player has to craft in an hour, to receive the achievement.

This is how much the player has to craft in an hour, to receive the achievement.

item_product optional :: ItemID

Mandatory if fluid_product is not defined. [...]

Mandatory if fluid_product is not defined. [...]

fluid_product optional :: FluidID

Mandatory if item_product is not defined. [...]

Mandatory if item_product is not defined. [...]

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 :: AnimationVariations
rotatable optional :: bool

Whether the animation of the projectile is rotated to match the direction of travel.

Whether the animation of the projectile is rotated to match the direction of travel.

enable_drawing_with_mask optional :: bool
direction_only optional :: bool

Setting this to true can be used to disable projectile homing behaviour.

Setting this to true can be used to disable projectile homing behaviour.

hit_at_collision_position optional :: bool

When true the entity is hit at the position on its collision box the projectile first collides with. [...]

When true the entity is hit at the position on its collision box the projectile first collides with. [...]

force_condition optional :: ForceCondition
piercing_damage optional :: float

Whenever an entity is hit by the projectile, this number gets reduced by the health of the entity. [...]

Whenever an entity is hit by the projectile, this number gets reduced by the health of the entity. [...]

max_speed optional :: double

Must be greater than or equal to 0.

Must be greater than or equal to 0.

turn_speed optional :: float

Must be greater than or equal to 0.

Must be greater than or equal to 0.

speed_modifier optional :: Vector
height optional :: double
action optional :: Trigger

Executed when the projectile hits something.

Executed when the projectile hits something.

final_action optional :: Trigger

Executed when the projectile hits something, after action and only if the entity that was hit was destroyed. [...]

Executed when the projectile hits something, after action and only if the entity that was hit was destroyed. [...]

light optional :: LightDefinition
smoke optional :: array[SmokeSource]
hit_collision_mask optional :: CollisionMask
turning_speed_increases_exponentially_with_projectile_speed optional :: bool
shadow optional :: AnimationVariations

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

PumpPrototype - 'pump'

fluid_box :: FluidBox

The area of the entity where fluid inputs and outputs.

The area of the entity where fluid inputs and outputs.

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

The amount of fluid this pump transfers per tick.

The amount of fluid this pump transfers per tick.

animations :: Animation4Way

The animation for the pump.

The animation for the pump.

fluid_wagon_connector_speed optional :: double
fluid_wagon_connector_alignment_tolerance optional :: double
fluid_wagon_connector_frame_count optional :: uint8
fluid_animation optional :: Animation4Way
glass_pictures optional :: Sprite4Way
circuit_wire_max_distance optional :: double
draw_copper_wires optional :: bool
draw_circuit_wires optional :: bool
circuit_wire_connection_points optional :: {WireConnectionPoint, WireConnectionPoint, WireConnectionPoint, WireConnectionPoint}

Mandatory if circuit_wire_max_distance > 0.

Mandatory if circuit_wire_max_distance > 0.

circuit_connector_sprites optional :: {CircuitConnectorSprites, CircuitConnectorSprites, CircuitConnectorSprites, CircuitConnectorSprites}

Mandatory if circuit_wire_max_distance > 0.

Mandatory if circuit_wire_max_distance > 0.

fluid_wagon_connector_graphics optional :: FluidWagonConnectorGraphics

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 :: RotatedSprite
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.

radius_minimap_visualisation_color optional :: Color
rotation_speed optional :: double

RailChainSignalPrototype - 'rail-chain-signal'

selection_box_offsets :: array[Vector]

Array of 8 vectors.

Array of 8 vectors.

blue_light optional :: LightDefinition
default_blue_output_signal optional :: SignalIDConnector

RailPlannerPrototype - 'rail-planner'

straight_rail :: EntityID

The name of an entity of the type "straight-rail". [...]

The name of an entity of the type "straight-rail". [...]

curved_rail :: EntityID

The name of an entity of the type "curved-rail". [...]

The name of an entity of the type "curved-rail". [...]

RailPrototype - abstract

pictures :: RailPictureSet
walking_sound optional :: Sound

Sound played when a character walks over this rail.

Sound played when a character walks over this rail.

RailRemnantsPrototype - 'rail-remnants'

bending_type :: "straight" or "turn"
pictures :: RailPictureSet

animation :: RotatedAnimation
rail_piece optional :: Animation
green_light optional :: LightDefinition
orange_light optional :: LightDefinition
red_light optional :: LightDefinition
default_red_output_signal optional :: SignalIDConnector
default_orange_output_signal optional :: SignalIDConnector
default_green_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 :: bool
draw_circuit_wires optional :: bool
circuit_wire_connection_points optional :: array[WireConnectionPoint]

Mandatory if circuit_wire_max_distance > 0.

Mandatory if circuit_wire_max_distance > 0.

circuit_connector_sprites optional :: array[CircuitConnectorSprites]

Mandatory if circuit_wire_max_distance > 0.

Mandatory if circuit_wire_max_distance > 0.

RailSignalPrototype - 'rail-signal'

No new properties

ReactorPrototype - 'reactor'

working_light_picture :: Sprite
heat_buffer :: HeatBuffer

The energy output as heat.

The energy output as heat.

energy_source :: EnergySource

May not be a heat energy source. [...]

May not be a heat energy source. [...]

consumption :: Energy

How much energy this reactor can consume (from the input energy source) and then output as heat.

How much energy this reactor can consume (from the input energy source) and then output as heat.

connection_patches_connected optional :: SpriteVariations

If defined, number of variations must be at least equal to count of connections defined in heat_buffer. [...]

If defined, number of variations must be at least equal to count of connections defined in heat_buffer. [...]

connection_patches_disconnected optional :: SpriteVariations

If defined, number of variations must be at least equal to count of connections defined in heat_buffer. [...]

If defined, number of variations must be at least equal to count of connections defined in heat_buffer. [...]

heat_connection_patches_connected optional :: SpriteVariations

If defined, number of variations must be at least equal to count of connections defined in heat_buffer. [...]

If defined, number of variations must be at least equal to count of connections defined in heat_buffer. [...]

heat_connection_patches_disconnected optional :: SpriteVariations

If defined, number of variations must be at least equal to count of connections defined in heat_buffer. [...]

If defined, number of variations must be at least equal to count of connections defined in heat_buffer. [...]

lower_layer_picture optional :: Sprite
heat_lower_layer_picture optional :: Sprite
picture optional :: Sprite
light optional :: LightDefinition
meltdown_action optional :: Trigger

The action is triggered when the reactor dies (is destroyed) at over 90% of max temperature.

The action is triggered when the reactor dies (is destroyed) at over 90% of max temperature.

neighbour_bonus optional :: double
scale_energy_usage optional :: bool

When this is true, the reactor will stop consuming fuel/energy when the temperature has reached the maximum.

When this is true, the reactor will stop consuming fuel/energy when the temperature has reached the maximum.

use_fuel_glow_color optional :: bool

Whether the reactor should use fuel_glow_color from the fuel item prototype as light color and tint for working_light_picture. [...]

Whether the reactor should use fuel_glow_color from the fuel item prototype as light color and tint for working_light_picture. [...]

default_fuel_glow_color optional :: Color

When use_fuel_glow_color is true, this is the color used as working_light_picture tint for fuels that don't have glow color defined.

When use_fuel_glow_color is true, this is the color used as working_light_picture tint for fuels that don't have glow color defined.

RecipeCategory - 'recipe-category'

No new properties

RecipePrototype - 'recipe'

category optional :: RecipeCategoryID

The category of this recipe. [...]

The category of this recipe. [...]

subgroup optional :: ItemSubGroupID

The name of the subgroup of this recipe. [...]

The name of the subgroup of this recipe. [...]

crafting_machine_tint optional :: CraftingMachineTint

Used by CraftingMachinePrototype::working_visualisations to tint certain layers with the recipe color. [...]

Used by CraftingMachinePrototype::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. [...]

icon_mipmaps optional :: IconMipMapType

Icons of reduced size will be used at decreased scale.

Icons of reduced size will be used at decreased scale.

normal optional :: RecipeData or false

Can be set to false if the expensive property is defined. [...]

Can be set to false if the expensive property is defined. [...]

expensive optional :: RecipeData or false

Can be set to false if the normal property is defined. [...]

Can be set to false if the normal property is defined. [...]

ingredients optional :: array[IngredientPrototype]

A table containing ingredient names and counts. [...]

A table containing ingredient names and counts. [...]

results optional :: array[ProductPrototype]

A table containing result names and counts. [...]

A table containing result names and counts. [...]

result optional :: ItemID

The item created by this recipe. [...]

The item created by this recipe. [...]

result_count optional :: uint16

The number of items created by this recipe. [...]

The number of items created by this recipe. [...]

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

Only loaded if neither normal nor expensive are defined.

Only loaded if neither normal nor expensive are defined.

requester_paste_multiplier optional :: uint32

Only loaded if neither normal nor expensive are defined.

Only loaded if neither normal nor expensive are defined.

overload_multiplier optional :: uint32

Used to determine how many extra items are put into an assembling machine before it's considered "full enough". [...]

Used to determine how many extra items are put into an assembling machine before it's considered "full enough". [...]

allow_inserter_overload optional :: bool

Whether the recipe is allowed to have the extra inserter overload bonus applied (4 * stack inserter stack size). [...]

Whether the recipe is allowed to have the extra inserter overload bonus applied (4 * stack inserter stack size). [...]

enabled optional :: bool

This can be false to disable the recipe at the start of the game, or true to leave it enabled. [...]

This can be false to disable the recipe at the start of the game, or true to leave it enabled. [...]

hidden optional :: bool

Hides the recipe from crafting menus. [...]

Hides the recipe from crafting menus. [...]

hide_from_stats optional :: bool

Hides the recipe from item/fluid production statistics. [...]

Hides the recipe from item/fluid production statistics. [...]

hide_from_player_crafting optional :: bool

Hides the recipe from the player's crafting screen. [...]

Hides the recipe from the player's crafting screen. [...]

allow_decomposition optional :: bool

Whether this recipe is allowed to be broken down for the recipe tooltip "Total raw" calculations. [...]

Whether this recipe is allowed to be broken down for the recipe tooltip "Total raw" calculations. [...]

allow_as_intermediate optional :: bool

Whether the recipe can be used as an intermediate recipe in hand-crafting. [...]

Whether the recipe can be used as an intermediate recipe in hand-crafting. [...]

allow_intermediates optional :: bool

Whether the recipe is allowed to use intermediate recipes when hand-crafting. [...]

Whether the recipe is allowed to use intermediate recipes when hand-crafting. [...]

always_show_made_in optional :: bool

Whether the "Made in: " part of the tool-tip should always be present, and not only when the recipe can't be hand-crafted. [...]

Whether the "Made in: " part of the tool-tip should always be present, and not only when the recipe can't be hand-crafted. [...]

show_amount_in_title optional :: bool

Whether the recipe name should have the product amount in front of it. [...]

Whether the recipe name should have the product amount in front of it. [...]

always_show_products optional :: bool

Whether the products are always shown in the recipe tooltip. [...]

Whether the products are always shown in the recipe tooltip. [...]

unlock_results optional :: bool

Whether enabling this recipe unlocks its item products to show in selection lists (item filters, logistic requests, etc.). [...]

Whether enabling this recipe unlocks its item products to show in selection lists (item filters, logistic requests, etc.). [...]

RepairToolPrototype - 'repair-tool'

speed :: float
repair_result optional :: Trigger

This does nothing, it is never triggered.

This does nothing, it is never triggered.

ResearchAchievementPrototype - 'research-achievement'

technology optional :: TechnologyID

Mandatory if research_all is not defined. [...]

Mandatory if research_all is not defined. [...]

research_all optional :: bool

Mandatory if technology is not defined. [...]

Mandatory if technology is not defined. [...]

ResourceCategory - 'resource-category'

No new properties
stages :: AnimationVariations

Entity's graphics, using a graphic sheet, with variation and depletion. [...]

Entity's graphics, using a graphic sheet, with variation and depletion. [...]

stage_counts :: array[uint32]

Number of stages the animation has.

Number of stages the animation has.

infinite optional :: bool

If the ore is infinitely minable, or if it will eventually run out of resource.

If the ore is infinitely minable, or if it will eventually run out of resource.

highlight optional :: bool

If the resource should be highlighted when holding a mining drill that can mine it (holding a pumpjack highlights crude-oil in the base game).

If the resource should be highlighted when holding a mining drill that can mine it (holding a pumpjack highlights crude-oil in the base game).

randomize_visual_position optional :: bool

Whether there should be a slight offset to graphics of the resource. [...]

Whether there should be a slight offset to graphics of the resource. [...]

map_grid optional :: bool

Whether the resource should have a grid pattern on the map instead of a solid map color.

Whether the resource should have a grid pattern on the map instead of a solid map color.

minimum optional :: uint32

Must be not 0 when infinite = true.

Must be not 0 when infinite = true.

normal optional :: uint32

Must be not 0 when infinite = true.

Must be not 0 when infinite = true.

infinite_depletion_amount optional :: uint32

Every time an infinite-type resource "ticks" lower it's lowered by that amount. [...]

Every time an infinite-type resource "ticks" lower it's lowered by that amount. [...]

resource_patch_search_radius optional :: uint32

When hovering over this resource in the map view: How far to search for other resource patches of this type to display as one (summing amount, white outline).

When hovering over this resource in the map view: How far to search for other resource patches of this type to display as one (summing amount, white outline).

category optional :: ResourceCategoryID

The category for the resource. [...]

The category for the resource. [...]

walking_sound optional :: Sound

Sound played when the player walks over this resource.

Sound played when the player walks over this resource.

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 positive.

Must be positive.

cliff_removal_probability optional :: double

Must be positive.

Must be positive.

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 :: 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
draw_logistic_radius_visualization optional :: bool

Unused, as roboport equipment does not have a logistic radius that could be drawn.

Unused, as roboport equipment does not have a logistic radius that could be drawn.

draw_construction_radius_visualization optional :: bool
recharging_light optional :: LightDefinition

The light emitted when charging a robot.

The light emitted when charging a robot.

charging_station_count optional :: uint32

How many charging points this roboport has. [...]

How many charging points this roboport has. [...]

charging_distance optional :: float
charging_station_shift optional :: Vector
charging_threshold_distance optional :: float

Distance in tiles. [...]

Distance in tiles. [...]

robot_vertical_acceleration optional :: float
stationing_offset optional :: Vector

The offset from the center of the roboport at which robots will enter and exit.

The offset from the center of the roboport at which robots will enter and exit.

robot_limit optional :: ItemCountType

How many robots can exist in the network (cumulative).

How many robots can exist in the network (cumulative).

robots_shrink_when_entering_and_exiting optional :: bool
charging_offsets optional :: array[Vector]

The offsets from the center of the roboport at which robots will charge. [...]

The offsets from the center of the roboport at which robots will charge. [...]

spawn_minimum optional :: Energy

Minimum amount of energy that needs to available inside the roboport's buffer so that robots can be spawned.

Minimum amount of energy that needs to available inside the roboport's buffer so that robots can be spawned.

burner optional :: BurnerEnergySource

Add this is if the roboport should be fueled directly instead of using power from the equipment grid.

Add this is if the roboport should be fueled directly instead of using power from the equipment grid.

power optional :: Energy

Mandatory if burner is defined. [...]

Mandatory if burner is defined. [...]

RoboportPrototype - 'roboport'

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 :: Sprite
base_patch :: Sprite
base_animation :: Animation

The animation played when the roboport is idle.

The animation played when the roboport is idle.

door_animation_up :: Animation
door_animation_down :: Animation
request_to_open_door_timeout :: uint32
recharging_animation :: 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
circuit_wire_connection_point optional :: WireConnectionPoint
circuit_wire_max_distance optional :: double

The maximum circuit wire distance for this entity.

The maximum circuit wire distance for this entity.

draw_copper_wires optional :: bool
draw_circuit_wires optional :: bool
circuit_connector_sprites optional :: CircuitConnectorSprites
spawn_and_station_shadow_height_offset optional :: float
draw_logistic_radius_visualization optional :: bool
draw_construction_radius_visualization optional :: bool
recharging_light optional :: LightDefinition

The light emitted when charging a robot.

The light emitted when charging a robot.

charging_station_count optional :: uint32

How many charging points this roboport has. [...]

How many charging points this roboport has. [...]

charging_distance optional :: float
charging_station_shift optional :: Vector
charging_threshold_distance optional :: float

Unused.

Unused.

robot_vertical_acceleration optional :: float
stationing_offset optional :: Vector

The offset from the center of the roboport at which robots will enter and exit.

The offset from the center of the roboport at which robots will enter and exit.

robot_limit optional :: ItemCountType

Unused.

Unused.

robots_shrink_when_entering_and_exiting optional :: bool
charging_offsets optional :: array[Vector]

The offsets from the center of the roboport at which robots will charge. [...]

The offsets from the center of the roboport at which robots will charge. [...]

logistics_connection_distance optional :: float

Must be >= logistics_radius.

Must be >= logistics_radius.

max_payload_size :: ItemCountType
cargo_centered :: Vector
idle optional :: RotatedAnimation

Only the first frame of the animation is drawn. [...]

Only the first frame of the animation is drawn. [...]

in_motion optional :: RotatedAnimation

Only the first frame of the animation is drawn. [...]

Only the first frame of the animation is drawn. [...]

shadow_idle optional :: RotatedAnimation

Only the first frame of the animation is drawn. [...]

Only the first frame of the animation is drawn. [...]

shadow_in_motion optional :: RotatedAnimation

Only the first frame of the animation is drawn. [...]

Only the first frame of the animation is drawn. [...]

destroy_action optional :: Trigger

Applied when the robot expires (runs out of energy and FlyingRobotPrototype::speed_multiplier_when_out_of_energy is 0).

Applied when the robot expires (runs out of energy and FlyingRobotPrototype::speed_multiplier_when_out_of_energy is 0).

draw_cargo optional :: bool

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
arm_02_right_animation :: Animation
arm_01_back_animation :: Animation
arm_03_front_animation :: Animation
shadow_sprite :: Sprite
hole_sprite :: Sprite
hole_light_sprite :: Sprite
rocket_shadow_overlay_sprite :: Sprite
rocket_glow_overlay_sprite :: Sprite
door_back_sprite :: Sprite
door_front_sprite :: Sprite
base_day_sprite :: Sprite
base_front_sprite :: Sprite
red_lights_back_sprites :: 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 :: 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.

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

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.

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.

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.

flying_sound optional :: Sound

Played when switching into the engine_starting state.

Played when switching into the engine_starting state.

rocket_result_inventory_size optional :: ItemStackIndex

RocketSiloRocketShadowPrototype - 'rocket-silo-rocket-shadow'

No new properties
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 :: RotatedSprite
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. [...]

tie_distance optional :: double

In tiles. [...]

In tiles. [...]

back_light optional :: LightDefinition
stand_by_light optional :: LightDefinition
wheels optional :: RotatedSprite
horizontal_doors optional :: Animation
vertical_doors optional :: Animation
color optional :: Color
allow_manual_color optional :: bool
allow_robot_dispatch_in_automatic_mode optional :: bool

SelectionToolPrototype - 'selection-tool'

selection_mode :: SelectionModeFlags

A list of selection mode flags that define how the selection tool selects things in-game.

A list of selection mode flags that define how the selection tool selects things in-game.

alt_selection_mode :: SelectionModeFlags

A list of selection mode flags that define how the selection tool alt-selects things in-game.

A list of selection mode flags that define how the selection tool alt-selects things in-game.

always_include_tiles optional :: bool

If tiles should be included in the selection regardless of entities also being in the selection. [...]

If tiles should be included in the selection regardless of entities also being in the selection. [...]

selection_color :: Color

The color of the rectangle used when standard selection is done in-game.

The color of the rectangle used when standard selection is done in-game.

alt_selection_color :: Color

The color of the rectangle used when alt-selection is done in-game.

The color of the rectangle used when alt-selection is done in-game.

selection_cursor_box_type :: CursorBoxType

The type of cursor box used to render selection of entities/tiles when standard selecting.

The type of cursor box used to render selection of entities/tiles when standard selecting.

alt_selection_cursor_box_type :: CursorBoxType

The type of cursor box used to render selection of entities/tiles when alt selecting.

The type of cursor box used to render selection of entities/tiles when alt selecting.

reverse_selection_color optional :: Color
alt_reverse_selection_color optional :: Color
selection_count_button_color optional :: Color
alt_selection_count_button_color optional :: Color
reverse_selection_count_button_color optional :: Color
alt_reverse_selection_count_button_color optional :: Color
chart_selection_color optional :: Color
chart_alt_selection_color optional :: Color
chart_reverse_selection_color optional :: Color
chart_alt_reverse_selection_color optional :: Color
reverse_selection_mode optional :: SelectionModeFlags

A list of selection mode flags that define how the selection tool reverse-selects things in-game.

A list of selection mode flags that define how the selection tool reverse-selects things in-game.

alt_reverse_selection_mode optional :: SelectionModeFlags

A list of selection mode flags that define how the selection tool alt-reverse-selects things in-game (using SHIFT + Right mouse button).

A list of selection mode flags that define how the selection tool alt-reverse-selects things in-game (using SHIFT + Right mouse button).

reverse_selection_cursor_box_type optional :: CursorBoxType

The type of cursor box used to render selection of entities/tiles when reverse-selecting.

The type of cursor box used to render selection of entities/tiles when reverse-selecting.

alt_reverse_selection_cursor_box_type optional :: CursorBoxType

The type of cursor box used to render selection of entities/tiles when alt-reverse-selecting (using SHIFT + Right mouse button

The type of cursor box used to render selection of entities/tiles when alt-reverse-selecting (using SHIFT + Right mouse button

mouse_cursor optional :: MouseCursorID
entity_filters optional :: array[EntityID]
alt_entity_filters optional :: array[EntityID]
entity_type_filters optional :: array[string]
alt_entity_type_filters optional :: array[string]
tile_filters optional :: array[TileID]
alt_tile_filters optional :: array[TileID]
entity_filter_mode optional :: "whitelist" or "blacklist"
alt_entity_filter_mode optional :: "whitelist" or "blacklist"
tile_filter_mode optional :: "whitelist" or "blacklist"
alt_tile_filter_mode optional :: "whitelist" or "blacklist"
reverse_entity_filters optional :: array[EntityID]
alt_reverse_entity_filters optional :: array[EntityID]
reverse_entity_type_filters optional :: array[string]
alt_reverse_entity_type_filters optional :: array[string]
reverse_tile_filters optional :: array[TileID]
alt_reverse_tile_filters optional :: array[TileID]
reverse_entity_filter_mode optional :: "whitelist" or "blacklist"
alt_reverse_entity_filter_mode optional :: "whitelist" or "blacklist"
reverse_tile_filter_mode optional :: "whitelist" or "blacklist"
alt_reverse_tile_filter_mode optional :: "whitelist" or "blacklist"

ShortcutPrototype - 'shortcut'

action :: "toggle-alt-mode" or "undo" or "copy" or "cut" or "paste" or "import-string" or "toggle-personal-roboport" or "toggle-equipment-movement-bonus" or "spawn-item" or "lua"

If this is "lua", on_lua_shortcut is raised when the shortcut is clicked.

If this is "lua", on_lua_shortcut is raised when the shortcut is clicked.

icon :: Sprite

Scales to fit a 16x16-pixel square. [...]

Scales to fit a 16x16-pixel square. [...]

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

toggleable optional :: bool

Must be enabled for the Factorio API to be able to set the toggled state on the shortcut button, see LuaPlayer::set_shortcut_toggled.

Must be enabled for the Factorio API to be able to set the toggled state on the shortcut button, see LuaPlayer::set_shortcut_toggled.

associated_control_input optional :: string

Name of a custom input or vanilla control. [...]

Name of a custom input or vanilla control. [...]

small_icon optional :: Sprite

The icon used in the panel for visible shortcuts, when the shortcut is usable. [...]

The icon used in the panel for visible shortcuts, when the shortcut is usable. [...]

disabled_icon optional :: Sprite

The icon used when the shortcut is shown in the quickbar, and is not usable. [...]

The icon used when the shortcut is shown in the quickbar, and is not usable. [...]

disabled_small_icon optional :: Sprite

The icon used in the panel for visible shortcuts, when the shortcut is not usable. [...]

The icon used in the panel for visible shortcuts, when the shortcut is not usable. [...]

style optional :: "default" or "blue" or "red" or "green"

SimpleEntityPrototype - 'simple-entity'

count_as_rock_for_filtered_deconstruction optional :: bool

Whether this entity should be treated as a rock for the purpose of deconstruction and for CarPrototype::immune_to_rock_impacts.

Whether this entity should be treated as a rock for the purpose of deconstruction and for CarPrototype::immune_to_rock_impacts.

render_layer optional :: RenderLayer
secondary_draw_order optional :: int8

Used to determine render order for entities with the same render_layer in the same position. [...]

Used to determine render order for entities with the same render_layer in the same position. [...]

random_animation_offset optional :: bool
random_variation_on_create optional :: bool

Whether a random graphics variation is chosen when placing the entity/creating it via script/creating it via map generation. [...]

Whether a random graphics variation is chosen when placing the entity/creating it via script/creating it via map generation. [...]

pictures optional :: SpriteVariations

Takes priority over picture and animations.

Takes priority over picture and animations.

picture optional :: Sprite4Way

Takes priority over animations. [...]

Takes priority over animations. [...]

animations optional :: AnimationVariations

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 :: bool
random_variation_on_create optional :: bool

Whether a random graphics variation is chosen when placing the entity/creating it via script/creating it via map generation. [...]

Whether a random graphics variation is chosen when placing the entity/creating it via script/creating it via map generation. [...]

pictures optional :: SpriteVariations

Takes priority over picture and animations.

Takes priority over picture and animations.

picture optional :: Sprite4Way

Takes priority over animations.

Takes priority over animations.

animations optional :: AnimationVariations
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.

deprecatedSimpleSmokePrototype - 'smoke'

No new properties

SmokePrototype - abstract

animation :: Animation
cyclic optional :: bool
duration optional :: uint32

May not be 0 if cyclic is true.

May not be 0 if cyclic is true.

spread_duration optional :: uint32
fade_away_duration optional :: uint32

fade_in_duration + fade_away_duration must be <= duration.

fade_in_duration + fade_away_duration must be <= duration.

fade_in_duration optional :: uint32

fade_in_duration + fade_away_duration must be <= duration.

fade_in_duration + fade_away_duration must be <= duration.

start_scale optional :: double
end_scale optional :: double
color optional :: Color
affected_by_wind optional :: bool

Smoke always moves randomly unless movement_slow_down_factor is 0. [...]

Smoke always moves randomly unless movement_slow_down_factor is 0. [...]

show_when_smoke_off optional :: bool
render_layer optional :: RenderLayer
movement_slow_down_factor optional :: double

Value between 0 and 1, with 0 being no movement.

Value between 0 and 1, with 0 being no movement.

glow_fade_away_duration optional :: uint32
glow_animation optional :: Animation

SmokeWithTriggerPrototype - 'smoke-with-trigger'

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

SolarPanelEquipmentPrototype - 'solar-panel-equipment'

power :: Energy

How much power should be provided.

How much power should be provided.

SolarPanelPrototype - 'solar-panel'

energy_source :: ElectricEnergySource

Sets how this solar panel connects to the energy network. [...]

Sets how this solar panel connects to the energy network. [...]

picture :: SpriteVariations

The picture displayed for this solar panel.

The picture displayed for this solar panel.

production :: Energy

The maximum amount of power this solar panel can produce.

The maximum amount of power this solar panel can produce.

overlay optional :: SpriteVariations

Overlay has to be empty or have same number of variations as picture.

Overlay has to be empty or have same number of variations as picture.

SoundPrototype - 'sound'

type :: "sound"
name :: string

Name of the sound. [...]

Name of the sound. [...]

category optional :: SoundType
aggregation optional :: AggregationSpecification
allow_random_repeat optional :: bool
audible_distance_modifier optional :: double

Modifies how far a sound can be heard. [...]

Modifies how far a sound can be heard. [...]

game_controller_vibration_data optional :: GameControllerVibrationData
variations optional :: array[SoundDefinition]
filename optional :: FileName

Supported sound file formats are .ogg (Vorbis) and .wav. [...]

Supported sound file formats are .ogg (Vorbis) and .wav. [...]

volume optional :: float

Only loaded if variations is not defined.

Only loaded if variations is not defined.

preload optional :: bool

Only loaded if variations is not defined.

Only loaded if variations is not defined.

speed optional :: float

Speed must be >= 1 / 64. [...]

Speed must be >= 1 / 64. [...]

min_speed optional :: float

Must be >= 1 / 64. [...]

Must be >= 1 / 64. [...]

max_speed optional :: float

Must be >= min_speed. [...]

Must be >= min_speed. [...]

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

SpiderVehiclePrototype - 'spider-vehicle'

energy_source or burner :: BurnerEnergySource or VoidEnergySource

Must be a burner energy source when using "burner", otherwise it can also be a void energy source.

Must be a burner energy source when using "burner", otherwise it can also be a void energy source.

inventory_size :: ItemStackIndex
graphics_set :: SpiderVehicleGraphicsSet
spider_engine :: SpiderEnginePrototype
height :: float

The height of the spider affects the shooting height and the drawing of the graphics and lights.

The height of the spider affects the shooting height and the drawing of the graphics and lights.

chunk_exploration_radius :: uint32
movement_energy_consumption :: Energy
automatic_weapon_cycling :: bool
chain_shooting_cooldown_modifier :: float

This is applied whenever the spider shoots (manual and automatic targeting), automatic_weapon_cycling is true and the next gun in line (which is then selected) has ammo. [...]

This is applied whenever the spider shoots (manual and automatic targeting), automatic_weapon_cycling is true and the next gun in line (which is then selected) has ammo. [...]

torso_rotation_speed optional :: float

The orientation of the torso of the spider affects the shooting direction and the drawing of the graphics and lights.

The orientation of the torso of the spider affects the shooting direction and the drawing of the graphics and lights.

torso_bob_speed optional :: float

Cannot be negative.

Cannot be negative.

trash_inventory_size optional :: ItemStackIndex

If set to 0 then the spider will not have a Logistics tab.

If set to 0 then the spider will not have a Logistics tab.

guns optional :: array[ItemID]

The guns this spider vehicle uses.

The guns this spider vehicle uses.

SpidertronRemotePrototype - 'spidertron-remote'

icon_color_indicator_masks optional :: array[IconData]

Inside IconData, the property for the file path is icon_color_indicator_mask instead of icon. [...]

Inside IconData, the property for the file path is icon_color_indicator_mask instead of icon. [...]

icon_color_indicator_mask optional :: FileName

Path to the icon file. [...]

Path to the icon file. [...]

SplitterPrototype - 'splitter'

structure :: 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.

structure_animation_speed_coefficient optional :: double
structure_animation_movement_cooldown optional :: uint32

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

hr_version optional :: Sprite

Only loaded if layers is not defined. [...]

Only loaded if layers is not defined. [...]

slice or dice optional :: SpriteSizeType

Only loaded if layers is not defined. [...]

Only loaded if layers is not defined. [...]

slice_x or dice_x optional :: SpriteSizeType

Only loaded if layers is not defined. [...]

Only loaded if layers is not defined. [...]

slice_y or 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. [...]

scale optional :: double

Only loaded if layers is not defined. [...]

Only loaded if layers is not defined. [...]

draw_as_shadow optional :: bool

Only loaded if layers is not defined. [...]

Only loaded if layers is not defined. [...]

draw_as_glow optional :: bool

Only loaded if layers is not defined. [...]

Only loaded if layers is not defined. [...]

draw_as_light optional :: bool

Only loaded if layers is not defined. [...]

Only loaded if layers is not defined. [...]

mipmap_count optional :: uint8

Only loaded if layers is not defined. [...]

Only loaded if layers is not defined. [...]

apply_runtime_tint optional :: bool

Only loaded if layers is not defined.

Only loaded if layers is not defined.

tint optional :: Color

Only loaded if layers is not defined.

Only loaded if layers is not defined.

blend_mode optional :: BlendMode

Only loaded if layers is not defined.

Only loaded if layers is not defined.

load_in_minimal_mode optional :: bool

Only loaded if layers is not defined. [...]

Only loaded if layers is not defined. [...]

premul_alpha optional :: bool

Only loaded if layers is not defined. [...]

Only loaded if layers is not defined. [...]

generate_sdf optional :: bool

Only loaded if layers is not defined. [...]

Only loaded if layers is not defined. [...]

StickerPrototype - 'sticker'

duration_in_ticks :: uint32

Must be > 0.

Must be > 0.

animation optional :: Animation
damage_interval optional :: uint32

Interval between application of damage_per_tick, in ticks.

Interval between application of damage_per_tick, in ticks.

spread_fire_entity optional :: EntityID

If this is given, this sticker is considered a "fire sticker" for some functions, such as BaseAttackParameters::fire_penalty and EntityPrototypeFlags::not-flammable.

If this is given, this sticker is considered a "fire sticker" for some functions, such as BaseAttackParameters::fire_penalty and EntityPrototypeFlags::not-flammable.

fire_spread_cooldown optional :: uint8
fire_spread_radius optional :: float
stickers_per_square_meter optional :: float
force_visibility optional :: ForceCondition
single_particle optional :: bool
damage_per_tick optional :: DamagePrototype

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

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_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.

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 :: StorageTankPictures
flow_length_in_ticks :: uint32

Must be positive. [...]

Must be positive. [...]

two_direction_only optional :: bool
scale_info_icons optional :: bool

If the icons of fluids shown in alt-mode should be scaled to the storage tank's size.

If the icons of fluids shown in alt-mode should be scaled to the storage tank's size.

show_fluid_icon optional :: bool

Whether the "alt-mode icon" should be drawn at all.

Whether the "alt-mode icon" should be drawn at all.

circuit_wire_max_distance optional :: double
draw_copper_wires optional :: bool
draw_circuit_wires optional :: bool
circuit_wire_connection_points optional :: {WireConnectionPoint, WireConnectionPoint, WireConnectionPoint, WireConnectionPoint}

Mandatory if circuit_wire_max_distance > 0.

Mandatory if circuit_wire_max_distance > 0.

circuit_connector_sprites optional :: {CircuitConnectorSprites, CircuitConnectorSprites, CircuitConnectorSprites, CircuitConnectorSprites}

Mandatory if circuit_wire_max_distance > 0.

Mandatory if circuit_wire_max_distance > 0.

StraightRailPrototype - 'straight-rail'

bending_type optional :: "straight"

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

icon_mipmaps optional :: IconMipMapType

Icons of reduced size will be used at decreased scale.

Icons of reduced size will be used at decreased scale.

normal optional :: TechnologyData or false

Can be set to false if the expensive property is defined. [...]

Can be set to false if the expensive property is defined. [...]

expensive optional :: TechnologyData or false

Can be set to false if the normal property is defined. [...]

Can be set to false if the normal property is defined. [...]

upgrade optional :: bool

When set to true, and the technology contains several levels, only the relevant one is displayed in the technology screen. [...]

When set to true, and the technology contains several levels, only the relevant one is displayed in the technology screen. [...]

enabled optional :: bool

Only loaded if neither normal nor expensive are defined.

Only loaded if neither normal nor expensive are defined.

hidden optional :: bool

Hides the technology from the tech screen. [...]

Hides the technology from the tech screen. [...]

visible_when_disabled optional :: bool

Controls whether the technology is shown in the tech GUI when it is not enabled. [...]

Controls whether the technology is shown in the tech GUI when it is not enabled. [...]

ignore_tech_cost_multiplier optional :: bool

Controls whether the technology cost ignores the tech cost multiplier set in the DifficultySettings. [...]

Controls whether the technology cost ignores the tech cost multiplier set in the DifficultySettings. [...]

unit optional :: TechnologyUnit

Determines the cost in items and time of the technology. [...]

Determines the cost in items and time of the technology. [...]

max_level optional :: uint32 or "infinite"

"infinite" for infinite technologies, otherwise uint32. [...]

"infinite" for infinite technologies, otherwise uint32. [...]

prerequisites optional :: array[TechnologyID]

List of technologies needed to be researched before this one can be researched. [...]

List of technologies needed to be researched before this one can be researched. [...]

effects optional :: array[Modifier]

List of effects of the technology (applied when the technology is researched). [...]

List of effects of the technology (applied when the technology is researched). [...]

TileEffectDefinition - 'tile-effect'

type :: "tile-effect"
name :: string

Name of the tile-effect. [...]

Name of the tile-effect. [...]

specular_lightness :: Color
foam_color :: Color
foam_color_multiplier :: float
tick_scale :: float
animation_speed :: float
animation_scale :: float or {float, float}
dark_threshold :: float or {float, float}
reflection_threshold :: float or {float, float}
specular_threshold :: float or {float, float}
texture :: Sprite

Sprite size must be 512x512.

Sprite size must be 512x512.

near_zoom optional :: float
far_zoom optional :: float

TileGhostPrototype - 'tile-ghost'

No new properties

TilePrototype - 'tile'

collision_mask :: CollisionMask
layer :: uint8

Specifies transition drawing priority.

Specifies transition drawing priority.

variants :: TileTransitionsVariants

Graphics for this tile.

Graphics for this tile.

map_color :: Color
pollution_absorption_per_second :: double

Emissions absorbed per second by this tile. [...]

Emissions absorbed per second by this tile. [...]

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

icon_mipmaps optional :: IconMipMapType

Icons of reduced size will be used at decreased scale.

Icons of reduced size will be used at decreased scale.

transition_overlay_layer_offset optional :: int8
layer_group optional :: TileRenderLayer
draw_in_water_layer optional :: bool

Used only for the layer_group default, see above.

Used only for the layer_group default, see above.

transition_merges_with_tile optional :: TileID
effect_color optional :: Color
tint optional :: Color
walking_sound optional :: Sound
build_sound optional :: Sound or TileBuildSound

If this is loaded as one Sound, it is loaded as the "small" build sound.

If this is loaded as one Sound, it is loaded as the "small" build sound.

mined_sound optional :: Sound
walking_speed_modifier optional :: double
vehicle_friction_modifier optional :: double
decorative_removal_probability optional :: float
allowed_neighbors optional :: array[TileID]

Array of tile names that are allowed next to this one.

Array of tile names that are allowed next to this one.

needs_correction optional :: bool

Whether the tile needs tile correction logic applied when it's generated in the world, to prevent graphical artifacts. [...]

Whether the tile needs tile correction logic applied when it's generated in the world, to prevent graphical artifacts. [...]

minable optional :: MinableProperties

If you want the tile to not be mineable, don't specify the minable property. [...]

If you want the tile to not be mineable, don't specify the minable property. [...]

next_direction optional :: TileID
can_be_part_of_blueprint optional :: bool
effect optional :: string
trigger_effect optional :: TriggerEffect
scorch_mark_color optional :: Color
check_collision_with_entities optional :: bool

If set to true, the game will check for collisions with entities before building or mining the tile. [...]

If set to true, the game will check for collisions with entities before building or mining the tile. [...]

effect_color_secondary optional :: Color

Used by the pollution shader.

Used by the pollution shader.

effect_is_opaque optional :: bool
transitions optional :: array[TileTransitionsToTiles]

Extra transitions.

Extra transitions.

transitions_between_transitions optional :: array[TileTransitionsBetweenTransitions]
autoplace optional :: AutoplaceSpecification
placeable_by optional :: ItemToPlace or array[ItemToPlace]

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

Whether the tip title on the left in the tips and tricks GUI should use the "title_tip_item" style (semi bold font).

Whether the tip title on the left in the tips and tricks GUI should use the "title_tip_item" style (semi bold font).

trigger optional :: TipTrigger

Condition for when the tip notification should be shown to the player.

Condition for when the tip notification should be shown to the player.

skip_trigger optional :: TipTrigger

Condition for never showing the tip notification to the player.

Condition for never showing the tip notification to the player.

tutorial optional :: string
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

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

type :: "tips-and-tricks-item-category"
name :: string
order :: Order

Tips and trick categories are sorted by order, and then the tips and tips entries are sorted by their own order within those categories.

Tips and trick categories are sorted by order, and then the tips and tips entries are sorted by their own order within those categories.

ToolPrototype - 'tool'

durability optional :: double

The durability of this tool. [...]

The durability of this tool. [...]

durability_description_key optional :: string

May not be longer than 200 characters.

May not be longer than 200 characters.

durability_description_value optional :: string

May not be longer than 200 characters. [...]

May not be longer than 200 characters. [...]

infinite optional :: bool

Whether this tool has infinite durability. [...]

Whether this tool has infinite durability. [...]

TrainPathAchievementPrototype - 'train-path-achievement'

minimum_distance :: double

The achievement will trigger if a train path is longer than this.

The achievement will trigger if a train path is longer than this.

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
belt_animation_set optional :: TransportBeltAnimationSet

This is the preferred way to specify transport belt animations.

This is the preferred way to specify transport belt animations.

belt_horizontal optional :: Animation

Mandatory if belt_animation_set is not defined.

Mandatory if belt_animation_set is not defined.

belt_vertical optional :: Animation

Mandatory if belt_animation_set is not defined.

Mandatory if belt_animation_set is not defined.

ending_top optional :: Animation

Mandatory if belt_animation_set is not defined.

Mandatory if belt_animation_set is not defined.

ending_bottom optional :: Animation

Mandatory if belt_animation_set is not defined.

Mandatory if belt_animation_set is not defined.

ending_side optional :: Animation

Mandatory if belt_animation_set is not defined.

Mandatory if belt_animation_set is not defined.

starting_top optional :: Animation

Mandatory if belt_animation_set is not defined.

Mandatory if belt_animation_set is not defined.

starting_bottom optional :: Animation

Mandatory if belt_animation_set is not defined.

Mandatory if belt_animation_set is not defined.

starting_side optional :: Animation

Mandatory if belt_animation_set is not defined.

Mandatory if belt_animation_set is not defined.

ending_patch optional :: Sprite4Way

Mandatory if belt_animation_set is not defined.

Mandatory if belt_animation_set is not defined.

ends_with_stopper optional :: bool

TransportBeltPrototype - 'transport-belt'

connector_frame_sprites :: TransportBeltConnectorFrame
circuit_wire_max_distance optional :: double

The maximum circuit wire distance for this entity.

The maximum circuit wire distance for this entity.

draw_copper_wires optional :: bool
draw_circuit_wires optional :: bool
circuit_wire_connection_points optional :: array[WireConnectionPoint]

Defines how wires visually connect to this transport belt.

Defines how wires visually connect to this transport belt.

circuit_connector_sprites optional :: array[CircuitConnectorSprites]

The pictures displayed for circuit connections to this transport belt.

The pictures displayed for circuit connections to this transport belt.

animations optional :: RotatedAnimation

Mandatory if belt_animation_set is not defined. [...]

Mandatory if belt_animation_set is not defined. [...]

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]

Can't be empty.

Can't be empty.

colors optional :: array[Color]

Mandatory if variations is defined.

Mandatory if variations is defined.

TriggerTargetType - 'trigger-target-type'

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

TrivialSmokePrototype - 'trivial-smoke'

animation :: Animation
duration :: uint32

Can't be 0 - the smoke will never render.

Can't be 0 - the smoke will never render.

glow_animation optional :: Animation
color optional :: Color
start_scale optional :: float
end_scale optional :: float
movement_slow_down_factor optional :: double

Value between 0 and 1, with 1 being no slowdown and 0 being no movement.

Value between 0 and 1, with 1 being no slowdown and 0 being no movement.

spread_duration optional :: uint32
fade_away_duration optional :: uint32

fade_in_duration + fade_away_duration must be <= duration.

fade_in_duration + fade_away_duration must be <= duration.

fade_in_duration optional :: uint32

fade_in_duration + fade_away_duration must be <= duration.

fade_in_duration + fade_away_duration must be <= duration.

glow_fade_away_duration optional :: uint32
cyclic optional :: bool
affected_by_wind optional :: bool

Smoke always moves randomly unless movement_slow_down_factor is 0. [...]

Smoke always moves randomly unless movement_slow_down_factor is 0. [...]

show_when_smoke_off optional :: bool
render_layer optional :: RenderLayer

TurretPrototype - 'turret'

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 :: RotatedAnimation4Way
call_for_help_radius :: double
attack_target_mask optional :: TriggerTargetMask
ignore_target_mask optional :: TriggerTargetMask
shoot_in_prepare_state optional :: bool
turret_base_has_direction optional :: bool
random_animation_offset optional :: bool
secondary_animation optional :: bool

Whether the secondary (animation) speeds should always be used.

Whether the secondary (animation) speeds should always be used.

attack_from_start_frame optional :: bool
allow_turning_when_starting_attack optional :: bool
base_picture_secondary_draw_order optional :: uint8
gun_animation_secondary_draw_order optional :: uint8
base_picture_render_layer optional :: RenderLayer
gun_animation_render_layer optional :: RenderLayer
base_picture optional :: Animation4Way
preparing_animation optional :: RotatedAnimation4Way
prepared_animation optional :: RotatedAnimation4Way
prepared_alternative_animation optional :: RotatedAnimation4Way
starting_attack_animation optional :: RotatedAnimation4Way
attacking_animation optional :: RotatedAnimation4Way
energy_glow_animation optional :: RotatedAnimation4Way
ending_attack_animation optional :: RotatedAnimation4Way
folding_animation optional :: RotatedAnimation4Way
integration optional :: Sprite
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
rotation_speed 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

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

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_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_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

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

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

prepare_range optional :: double
alert_when_attacking optional :: bool
spawn_decorations_on_expansion optional :: bool

Whether spawn_decoration should be spawned when this turret is created through enemy expansion.

Whether spawn_decoration should be spawned when this turret is created through enemy expansion.

spawn_decoration optional :: CreateDecorativesTriggerEffectItem or 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. [...]

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.

UnitPrototype - 'unit'

run_animation :: RotatedAnimation
attack_parameters :: AttackParameters

Requires animation in attack_parameters. [...]

Requires animation in attack_parameters. [...]

movement_speed :: float

Movement speed of the unit in the world, in tiles per tick. [...]

Movement speed of the unit in the world, in tiles per tick. [...]

distance_per_frame :: float

How fast the run_animation frames are advanced. [...]

How fast the run_animation frames are advanced. [...]

pollution_to_join_attack :: float

The amount of pollution 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 amount of pollution that has to be absorbed by the unit's spawner before the unit will leave the spawner and attack the source of the pollution.

distraction_cooldown :: uint32
vision_distance :: double

Max is 100. [...]

Max is 100. [...]

rotation_speed optional :: float
dying_sound optional :: Sound

The sound file to play when entity dies.

The sound file to play when entity dies.

min_pursue_time optional :: uint32

In ticks.

In ticks.

has_belt_immunity optional :: bool

If the unit is immune to movement by belts.

If the unit is immune to movement by belts.

spawning_time_modifier optional :: double
max_pursue_distance optional :: double
radar_range optional :: uint32
ai_settings optional :: UnitAISettings
move_while_shooting optional :: bool
can_open_gates optional :: bool
affected_by_tiles optional :: bool
render_layer optional :: RenderLayer
light optional :: LightDefinition
walking_sound optional :: Sound
alternative_attacking_frame_sequence optional :: UnitAlternativeFrameSequence
running_sound_animation_positions optional :: array[float]

Only loaded if walking_sound is defined.

Only loaded if walking_sound is defined.

UpgradeItemPrototype - 'upgrade-item'

mapper_count optional :: ItemStackIndex

Can't be > 255.

Can't be > 255.

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
ghost_tint :: Color
tile_ghost_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
artillery_range_visualization_color :: Color
train_no_path_color :: Color
train_destination_full_color :: Color
chart :: ChartUtilityConstants

Chart = map + minimap.

Chart = map + minimap.

gui_remark_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
zoom_to_world_can_use_nightvision :: bool
zoom_to_world_effect_strength :: float
max_terrain_building_size :: uint8
small_area_size :: float
medium_area_size :: float
small_blueprint_area_size :: float
medium_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]
daytime_color_lookup :: DaytimeColorLookupTable
zoom_to_world_daytime_color_lookup :: DaytimeColorLookupTable
checkerboard_white :: Color
checkerboard_black :: Color
item_outline_color :: Color
item_outline_radius :: float
item_outline_inset :: float
item_outline_sharpness :: float
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
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 :: dictionary[string → SimulationDefinition]

The strings represent the names of the simulations.

The strings represent the names of the simulations.

main_menu_background_vignette_intensity :: float
main_menu_background_vignette_sharpness :: float
default_scorch_mark_color :: Color
train_button_hovered_tint :: Color
select_group_row_count :: uint8

Must be in range [1, 100].

Must be in range [1, 100].

select_slot_row_count :: uint32

Must be in range [1, 100].

Must be in range [1, 100].

inventory_width :: uint32

Must be in range [1, 100].

Must be in range [1, 100].

module_inventory_width :: uint32

Must be in range [1, 100].

Must be in range [1, 100].

tooltip_monitor_edge_border :: int32

Must be >= 1.

Must be >= 1.

normalised_achievement_icon_size :: uint32

Must be >= 1.

Must be >= 1.

tutorial_notice_icon_size :: uint32

Must be >= 1.

Must be >= 1.

flying_text_ttl :: uint32

Must be >= 1

Must be >= 1

bonus_gui_ordering :: BonusGuiOrdering

The base game uses more entries here that are applied via the ammo categories.

The base game uses more entries here that are applied via the ammo categories.

train_path_finding :: TrainPathFinderConstants
map_editor :: MapEditorConstants
color_filters :: array[ColorFilterData]
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. [...]

UtilitySounds - 'utility-sounds'

gui_click :: Sound
list_box_click :: Sound
build_small :: Sound
build_medium :: Sound
build_large :: Sound
cannot_build :: Sound
build_blueprint_small :: Sound
build_blueprint_medium :: Sound
build_blueprint_large :: Sound
deconstruct_small :: Sound
deconstruct_medium :: Sound
deconstruct_big :: Sound
deconstruct_robot :: Sound
rotated_small :: Sound
rotated_medium :: Sound
rotated_big :: Sound
axe_mining_ore :: 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
blueprint_selection_ended :: Sound
blueprint_selection_started :: Sound
deconstruction_selection_started :: Sound
deconstruction_selection_ended :: Sound
cancel_deconstruction_selection_started :: Sound
cancel_deconstruction_selection_ended :: Sound
upgrade_selection_started :: Sound
upgrade_selection_ended :: Sound
copy_activated :: Sound
cut_activated :: 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

UtilitySprites - 'utility-sprites'

cursor_box :: CursorBoxSpecification
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_white :: Sprite
close_black :: Sprite
close_map_preview :: Sprite
color_picker :: Sprite
change_recipe :: Sprite
dropdown :: Sprite
downloading :: Sprite
downloading_white :: Sprite
downloaded :: Sprite
downloaded_white :: Sprite
equipment_grid :: Sprite
expand_dots :: Sprite
expand_dots_white :: Sprite
export :: Sprite
import :: Sprite
map :: Sprite
map_exchange_string :: Sprite
missing_mod_icon :: Sprite
not_available :: Sprite
play :: Sprite
stop :: Sprite
preset :: Sprite
refresh :: Sprite
reset :: Sprite
reset_white :: Sprite
shuffle :: Sprite
station_name :: Sprite
search_black :: Sprite
search_white :: Sprite
sync_mods :: Sprite
trash :: Sprite
trash_white :: Sprite
copy :: Sprite
reassign :: Sprite
warning :: Sprite
warning_white :: Sprite
list_view :: Sprite
grid_view :: Sprite
reference_point :: Sprite
mouse_cursor :: Sprite
mod_dependency_arrow :: Sprite
add :: 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
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
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
electricity_icon_unplugged :: 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_too_far :: Sprite
rail_path_not_possible :: Sprite
indication_line :: Sprite
short_indication_line :: Sprite
short_indication_line_green :: Sprite
slot_icon_module :: Sprite
slot_icon_module_black :: Sprite
slot_icon_armor :: Sprite
slot_icon_armor_black :: Sprite
slot_icon_gun :: Sprite
slot_icon_gun_black :: Sprite
slot_icon_ammo :: Sprite
slot_icon_ammo_black :: Sprite
slot_icon_resource :: Sprite
slot_icon_resource_black :: Sprite
slot_icon_fuel :: Sprite
slot_icon_fuel_black :: Sprite
slot_icon_result :: Sprite
slot_icon_result_black :: Sprite
slot_icon_robot :: Sprite
slot_icon_robot_black :: Sprite
slot_icon_robot_material :: Sprite
slot_icon_robot_material_black :: Sprite
slot_icon_inserter_hand :: Sprite
slot_icon_inserter_hand_black :: 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
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
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
green_wire_hightlight :: Sprite
red_wire_hightlight :: Sprite
wire_shadow :: Sprite
and_or :: Sprite
left_arrow :: Sprite
right_arrow :: Sprite
down_arrow :: Sprite
enter :: Sprite
side_menu_blueprint_library_icon :: Sprite
side_menu_production_icon :: Sprite
side_menu_bonus_icon :: Sprite
side_menu_tutorials_icon :: Sprite
side_menu_train_icon :: Sprite
side_menu_achievements_icon :: Sprite
side_menu_menu_icon :: Sprite
side_menu_map_icon :: Sprite
side_menu_blueprint_library_hover_icon :: Sprite
side_menu_production_hover_icon :: Sprite
side_menu_bonus_hover_icon :: Sprite
side_menu_tutorials_hover_icon :: Sprite
side_menu_train_hover_icon :: Sprite
side_menu_achievements_hover_icon :: Sprite
side_menu_menu_hover_icon :: Sprite
side_menu_map_hover_icon :: Sprite
side_menu_technology_hover_icon :: Sprite
side_menu_logistic_network_hover_icon :: Sprite
circuit_network_panel_black :: Sprite
circuit_network_panel_white :: Sprite
logistic_network_panel_black :: Sprite
logistic_network_panel_white :: Sprite
rename_icon_small_black :: Sprite
rename_icon_small_white :: Sprite
rename_icon_normal :: Sprite
achievement_label_locked :: Sprite
achievement_label_unlocked_off :: Sprite
achievement_label_unlocked :: Sprite
achievement_label_failed :: Sprite
rail_signal_placement_indicator :: Sprite
train_stop_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
show_logistics_network_in_map_view :: Sprite
show_electric_network_in_map_view :: Sprite
show_turret_range_in_map_view :: Sprite
show_pollution_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_logistics_network_in_map_view_black :: Sprite
show_electric_network_in_map_view_black :: Sprite
show_turret_range_in_map_view_black :: Sprite
show_pollution_in_map_view_black :: Sprite
show_train_station_names_in_map_view_black :: Sprite
show_player_names_in_map_view_black :: Sprite
show_tags_in_map_view_black :: Sprite
show_worker_robots_in_map_view_black :: Sprite
show_rail_signal_states_in_map_view_black :: Sprite
show_recipe_icons_in_map_view_black :: 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_mask :: Sprite
favourite_server_icon :: Sprite
crafting_machine_recipe_not_unlocked :: Sprite
gps_map_icon :: Sprite
custom_tag_icon :: Sprite
underground_remove_belts :: Sprite
underground_remove_pipes :: Sprite
underground_pipe_connection :: Sprite
ghost_cursor :: Sprite
tile_ghost_cursor :: Sprite
cross_select :: Sprite
expand :: Sprite
expand_dark :: Sprite
collapse :: Sprite
collapse_dark :: Sprite
status_working :: Sprite
status_not_working :: Sprite
status_yellow :: Sprite
gradient :: Sprite
output_console_gradient :: Sprite
select_icon_black :: Sprite
select_icon_white :: Sprite
notification :: Sprite
alert_arrow :: Sprite
technology_black :: Sprite
technology_white :: 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
inserter_stack_size_bonus_modifier_icon :: Sprite
inserter_stack_size_bonus_modifier_constant optional :: Sprite
stack_inserter_capacity_bonus_modifier_icon :: Sprite
stack_inserter_capacity_bonus_modifier_constant optional :: Sprite
laboratory_speed_modifier_icon :: Sprite
laboratory_speed_modifier_constant optional :: Sprite
character_logistic_slots_modifier_icon :: Sprite
character_logistic_slots_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
ghost_time_to_live_modifier_icon :: Sprite
ghost_time_to_live_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
zoom_to_world_enabled_modifier_icon :: Sprite
zoom_to_world_enabled_modifier_constant optional :: Sprite
zoom_to_world_ghost_building_enabled_modifier_icon :: Sprite
zoom_to_world_ghost_building_enabled_modifier_constant optional :: Sprite
zoom_to_world_blueprint_enabled_modifier_icon :: Sprite
zoom_to_world_blueprint_enabled_modifier_constant optional :: Sprite
zoom_to_world_deconstruction_planner_enabled_modifier_icon :: Sprite
zoom_to_world_deconstruction_planner_enabled_modifier_constant optional :: Sprite
zoom_to_world_upgrade_planner_enabled_modifier_icon :: Sprite
zoom_to_world_upgrade_planner_enabled_modifier_constant optional :: Sprite
zoom_to_world_selection_tool_enabled_modifier_icon :: Sprite
zoom_to_world_selection_tool_enabled_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

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.

sound_minimum_speed optional :: double

Must be positive. [...]

Must be positive. [...]

sound_scaling_ratio optional :: double

Must be positive. [...]

Must be positive. [...]

stop_trigger_speed optional :: double
crash_trigger optional :: TriggerEffect
stop_trigger optional :: TriggerEffect
equipment_grid optional :: EquipmentGridID

The name of the EquipmentGridPrototype this vehicle has.

The name of the EquipmentGridPrototype this vehicle has.

minimap_representation optional :: Sprite

The sprite that represents this vehicle on the map/minimap.

The sprite that represents this vehicle on the map/minimap.

selected_minimap_representation optional :: Sprite

The sprite that represents this vehicle on the map/minimap when it is selected.

The sprite that represents this vehicle on the map/minimap when it is selected.

allow_passengers optional :: bool

Determines whether this vehicle accepts passengers. [...]

Determines whether this vehicle accepts passengers. [...]

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

icon_mipmaps optional :: IconMipMapType

Icons of reduced size will be used at decreased scale.

Icons of reduced size will be used at decreased scale.

subgroup optional :: ItemSubGroupID

The name of an ItemSubGroup.

The name of an ItemSubGroup.

WallPrototype - 'wall'

pictures :: 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_connection_point optional :: WireConnectionPoint
circuit_wire_max_distance optional :: double

The maximum circuit wire distance for this entity.

The maximum circuit wire distance for this entity.

draw_copper_wires optional :: bool
draw_circuit_wires optional :: bool
circuit_connector_sprites optional :: CircuitConnectorSprites
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

WindSound - 'wind-sound'

type :: "wind-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.

sound :: Sound

The sound file and volume.

The sound file and volume.

Prototypes

Types