Factorio Prototype DocsVersion 1.1.99

Prototypes

Prototypes are used as templates for the machines, recipes, and more in the game engine. They consist of a set of properties, noting that 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.

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's 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 consumes electricity as ammo.

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 consumes fluid as ammo.

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'
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'
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, e.g.

The size of the square icon, in pixels, e.g.

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
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 module effects that are allowed to be used on this machine.

Sets the module 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, e.g.

The size of the square icon, in pixels, e.g.

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, e.g.

The size of the square icon, in pixels, e.g.

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 value of this property may not be an empty string.

The value of this property may not be an empty string.

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

FluidWagonPrototype - 'fluid-wagon'

capacity :: double
tank_count optional :: uint8

Must be 1, 2 or 3.

Must be 1, 2 or 3.

speed :: double
max_speed optional :: double

The maximum speed of the robot.

The maximum speed of the robot.

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 does it cost to move 1 tile.

How much does it cost to move 1 tile.

energy_per_tick optional :: Energy
min_to_charge optional :: float

The robot will go to charge when it has less energy than this.

The robot will go to charge when it has less energy than this.

max_to_charge optional :: float

If the robot has more energy than this, it does not need to charge before stationing.

If the robot has more energy 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, e.g.

The size of the square icon, in pixels, e.g.

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, e.g.

The size of the square icon, in pixels, e.g.

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

Path to the icon file.

Path to the icon file.

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

Empty text of subgroup is not allowed.

Empty text of subgroup is not allowed.

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

Used to give the item multiple different icons so that they look less uniform on belts etc.

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

Mandatory when fuel_acceleration_multiplier, fuel_top_speed_multiplier or fuel_emissions_multiplier or fuel_glow_color are used.

Mandatory when fuel_acceleration_multiplier, fuel_top_speed_multiplier or fuel_emissions_multiplier or fuel_glow_color are used.

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 module effects that are allowed to be used on this lab.

Sets the module 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
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
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

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

Controls which category of machines can craft this recipe.

Controls which category of machines can craft this recipe.

subgroup optional :: ItemSubGroupID

The subgroup of this recipe.

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, e.g.

The size of the square icon, in pixels, e.g.

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, e.g.

Whether the recipe name should have the product amount in front of it, e.g.

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<