Prototype Prototypes
AccumulatorPrototype — Entity with energy source with specialised animation for charging/discharging. Used for the accumulator entity.
AchievementPrototype — This prototype definition is used for the in-game achievements.
AchievementPrototypeWithCondition
ActiveDefenseEquipmentPrototype — Used by discharge defense and personal laser defense.
ActiveTriggerPrototype — The abstract base of all active trigger prototypes. Active triggers are a special type of trigger delivery mechanism that function of a period of time and do not result in the creation or deletion of entities to function. They are intended to be short-lived objects associated with a surface and cannot be cancelled until they self-destruct. Active triggers support migrations and prototype changes, but require their own named prototype to function.
AgriculturalTowerPrototype
AirbornePollutantPrototype — A type of pollution that can spread throughout the chunks of a map.
AmbientSound — This prototype is used to make sound while playing the game. This includes the game's music, composed by Daniel James Taylor.
AmmoCategory — An ammo category. Each weapon has an ammo category, and can use any ammo with the same ammo category. Ammo categories can also be upgraded by technologies.
AmmoItemPrototype — Ammo used for a gun.
AmmoTurretPrototype — A turret that consumes ammo items.
AnimationPrototype — Specifies an animation that can be used with LuaRendering::draw_animation at runtime.
ArithmeticCombinatorPrototype — An arithmetic combinator.
ArmorPrototype — Armor to wear on your in-game character for defense and buffs.
ArrowPrototype — The arrows used for example in the campaign, they are literally just arrows.
ArtilleryFlarePrototype — The entity spawned by the artillery targeting remote.
ArtilleryProjectilePrototype — The projectile shot by artillery.
ArtilleryTurretPrototype — An artillery turret.
ArtilleryWagonPrototype — An artillery wagon.
AssemblingMachinePrototype — An assembling machine - like the assembling machines 1/2/3 in the game, but you can use your own recipe categories.
AsteroidChunkPrototype
AsteroidCollectorPrototype
AsteroidPrototype
AutoplaceControl — A setting in the map creation GUI. Used by the autoplace system.
BatteryEquipmentPrototype — Used by personal battery.
BeaconPrototype — Entity with the ability to transfer module effects to its neighboring entities.
BeamPrototype — Used as a laser beam.
BeltImmunityEquipmentPrototype — Used by belt immunity equipment.
BlueprintBookPrototype — A blueprint book.
BlueprintItemPrototype — A blueprint.
BoilerPrototype — A boiler. It heats fluid and optionally outputs it as a different fluid.
BuildEntityAchievementPrototype — This prototype is used for receiving an achievement when the player builds an entity.
BurnerGeneratorPrototype — An entity that produces power from a burner energy source.
BurnerUsagePrototype — Set of data affecting tooltips, looks of gui slots etc when burner is not supposed to be burning items but eating them.
CapsulePrototype — A capsule, for example a combat robot capsule or the raw fish.
CaptureRobotPrototype
CargoBayPrototype
CargoLandingPadPrototype
CargoPodPrototype
CargoWagonPrototype — A cargo wagon.
CarPrototype — Entity with specialized properties for acceleration, braking, and turning.
ChainActiveTriggerPrototype — Jumps between targets and applies a Trigger to them.
ChangedSurfaceAchievementPrototype — This prototype is used for receiving an achievement when the player changes to a surface.
CharacterCorpsePrototype — The corpse of a CharacterPrototype.
CharacterPrototype — Entity that you move around on the screen during the campaign and freeplay.
CliffPrototype — A cliff.
CollisionLayerPrototype — A collision layer. Used for collision masks.
CombatRobotCountAchievementPrototype — This prototype is used for receiving an achievement when the player has a certain robot follower count.
CombatRobotPrototype — A combat robot. Can attack enemies.
CombinatorPrototype — Abstract base type for decider and arithmetic combinators.
CompleteObjectiveAchievementPrototype
ConstantCombinatorPrototype — A constant combinator.
ConstructionRobotPrototype — A construction robot.
ConstructWithRobotsAchievementPrototype — This prototype is used for receiving an achievement when the player constructs enough entities with construction robots.
ContainerPrototype — A generic container, such as a chest. Cannot be rotated.
CopyPasteToolPrototype — A copy-paste or cut-paste tool.
CorpsePrototype — Used for corpses, for example the remnants when destroying buildings.
CraftingMachinePrototype — The abstract basis of the assembling machines and furnaces. Contains the properties that both of them have.
CreatePlatformAchievementPrototype — This prototype is used for receiving an achievement when the player creates a space platform.
CurvedRailAPrototype — A curved-A rail.
CurvedRailBPrototype — A curved-B rail.
CustomEventPrototype — Custom events share the same namespace as custom inputs and built-in events for subscribing to and raising them.
CustomInputPrototype — Used for custom keyboard shortcuts/key bindings in mods. The key associated with the custom input can be changed in the options. This means that key_sequence is simply the default key binding.
DamageType — A damage type. This is used in the damage system. A list of built-in damage types can be found here.
DeciderCombinatorPrototype — A decider combinator.
DeconstructibleTileProxyPrototype — Entity used to signify that the tile below it should be deconstructed.
DeconstructionItemPrototype — A deconstruction planner.
DeconstructWithRobotsAchievementPrototype — This prototype is used for receiving an achievement when the player deconstructs enough entities with construction robots.
DecorativePrototype — Simple decorative purpose objects on the map, they have no health and some of them are removed when the player builds over. Usually used for grass patches, roots, small plants etc.
DelayedActiveTriggerPrototype — Delays the delivery of triggered effect by some number of ticks.
DeliverByRobotsAchievementPrototype — This prototype is used for receiving an achievement, when the player requests and receives enough items using logistic robots.
DeliverCategory
DeliverImpactCombination
DepleteResourceAchievementPrototype — This prototype is used for receiving an achievement when a resource entity is depleted.
DestroyCliffAchievementPrototype
DisplayPanelPrototype — Entity that display a signal icon and some text, either configured directly in the entity or through the circuit network.
DontBuildEntityAchievementPrototype — This prototype is used for receiving an achievement when the player finishes the game without building a specific entity.
DontCraftManuallyAchievementPrototype — This prototype is used for receiving an achievement when the player finishes the game without crafting more than a set amount.
DontKillManuallyAchievementPrototype — This prototype is used for receiving an achievement when the player kill first entity using artillery.
DontResearchBeforeResearchingAchievementPrototype — This prototype is used for receiving an achievement when the player researches with a specific science pack before unlocking another.
DontUseEntityInEnergyProductionAchievementPrototype — This prototype is used for receiving an achievement when the player finishes the game without receiving energy from a specific energy source.
EditorControllerPrototype — Properties of the editor controller.
ElectricEnergyInterfacePrototype — Entity with electric energy source with that can have some of its values changed runtime. Useful for modding in energy consumers/producers.
ElectricPolePrototype — An electric pole - part of the electric system.
ElectricTurretPrototype — A turret that uses electricity as ammunition.
ElevatedCurvedRailAPrototype — An elevated curved-A rail.
ElevatedCurvedRailBPrototype — An elevated curved-B rail.
ElevatedHalfDiagonalRailPrototype — An elevated half diagonal rail.
ElevatedStraightRailPrototype — An elevated straight rail.
EnemySpawnerPrototype — Can spawn entities. Used for biter/spitter nests.
EnergyShieldEquipmentPrototype — Used by energy shield.
EntityGhostPrototype — The entity used for ghosts of entities. In-game, the inner entity (the entity this is a ghost of) is rendered with a UtilityConstants::ghost_tint.
EntityPrototype — Abstract base of all entities in the game. Entity is nearly everything that can be on the map (except tiles).
EntityWithHealthPrototype — Abstract base of all entities with health in the game.
EntityWithOwnerPrototype — Abstract base of all entities with a force in the game. These entities have a LuaEntity::unit_number during runtime. Can be high priority military targets.
EquipArmorAchievementPrototype — This prototype is used for receiving an achievement when the player equips armor.
EquipmentCategory — Defines a category to be available to equipment and equipment grids.
EquipmentGhostPrototype — The equipment used for ghosts of equipment.
EquipmentGridPrototype — The prototype of an equipment grid, for example the one used in a power armor.
EquipmentPrototype — Abstract base of all equipment modules. Equipment modules can be inserted into equipment grids.
ExplosionPrototype — Used to play an animation and a sound.
FireFlamePrototype — A fire.
FishPrototype — Entity that spawns in water tiles, which can be mined. Moves around unless deactivated with LuaEntity::active = false.
FluidPrototype — A fluid.
FluidStreamPrototype — Used for example for the handheld flamethrower.
FluidTurretPrototype — A turret that uses fluid as ammunition.
FluidWagonPrototype — A fluid wagon.
FlyingRobotPrototype — Abstract base for construction/logistics and combat robots.
FontPrototype — Fonts are used in all GUIs in the game.
FuelCategory — Each item which has a fuel_value must have a fuel category. The fuel categories are used to allow only certain fuels to be used in EnergySource.
FurnacePrototype — A furnace. Normal furnaces only process "smelting" category recipes, but you can make furnaces that process other recipe categories. The difference to assembling machines is that furnaces automatically choose their recipe based on input.
FusionGeneratorPrototype — Consumes a fluid to generate electricity and create another fluid.
FusionReactorPrototype — Fusion reactor. Consumes fluid, fuel and additional energy to produce other fluid. Kind of advanced boiler. Can also have neighbour bonus.
GatePrototype — A gate.
GeneratorEquipmentPrototype — Used by portable fusion reactor. Provides power in equipment grids. Can produce power for free or use a burner energy source.
GeneratorPrototype — An entity that produces power from fluids, for example a steam engine.
GodControllerPrototype — Properties of the god controller.
GroupAttackAchievementPrototype — This prototype is used for receiving an achievement when the player gets attacked due to pollution.
GuiStyle — The available GUI styles.
GunPrototype — A gun. A weapon to deal damage to entities.
HalfDiagonalRailPrototype — A half diagonal rail.
HeatInterfacePrototype — This entity produces or consumes heat. Its heat settings can be changed runtime.
HeatPipePrototype — A heat pipe.
HighlightBoxEntityPrototype — Used to attach graphics for cursor boxes to entities during runtime. HighlightBoxEntity can also be independent from entities so it is simply drawn somewhere in the world. See LuaSurface::create_entity for the available options for type "highlight-box".
ImpactCategory
InfinityCargoWagonPrototype — A cargo wagon that can spawn or void items at will.
InfinityContainerPrototype — A generic container, such as a chest, that can spawn or void items and interact with the logistics network.
InfinityPipePrototype — This entity produces or consumes fluids. Its fluid settings can be changed runtime.
InserterPrototype — An inserter.
InventoryBonusEquipmentPrototype
ItemEntityPrototype — The entity used for items on the ground.
ItemGroup — An item group. Item groups are the tabs shown above the list of craftable items in the player's inventory GUI. The built-in groups are "logistics", "production", "intermediate-products" and "combat" but mods can define their own.
ItemPrototype — Possible configuration for all items.
ItemRequestProxyPrototype — 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 — An item subgroup. Item subgroups are the rows in the recipe list in the player's inventory GUI. The subgroup of a prototype also determines its item group (tab in the recipe list).
ItemWithEntityDataPrototype — ItemWithEntityData saves data associated with the entity that it represents, for example the content of the equipment grid of a car.
ItemWithInventoryPrototype — The inventory allows setting player defined filters similar to cargo wagon inventories.
ItemWithLabelPrototype — Like a normal item but with the ability to have a colored label.
ItemWithTagsPrototype — Item type that can store any basic arbitrary Lua data, see LuaItemStack::tags.
KillAchievementPrototype — This prototype is used for receiving an achievement when the player destroys a certain amount of an entity, with a specific damage type.
LabPrototype — A lab. It consumes science packs to research technologies.
LampPrototype — A lamp to provide light, using energy.
LandMinePrototype — A land mine.
LaneSplitterPrototype
LegacyCurvedRailPrototype — A legacy curved rail.
LegacyStraightRailPrototype — A legacy straight rail.
LightningAttractorPrototype — Absorbs lightning and optionally converts it into electricity.
LightningPrototype — Lightning randomly hits entities on planets with lightning_properties.
LinkedBeltPrototype — A belt that can be connected to a belt anywhere else, including on a different surface. The linked belts have to be connected with console commands or runtime scripting in mods or scenarios. LuaEntity::connect_linked_belts and other runtime functions.
LinkedContainerPrototype — A container that shares its inventory with containers with the same link_id, which can be set via the GUI. The link IDs are per prototype and force, so only containers with the **same ID**, **same prototype name** and **same force** will share inventories.
Loader1x1Prototype — Continuously loads and unloads machines, as an alternative to inserters.
Loader1x2Prototype — Continuously loads and unloads machines, as an alternative to inserters.
LoaderPrototype — Continuously loads and unloads machines, as an alternative to inserters.
LocomotivePrototype — A locomotive.
LogisticContainerPrototype — A generic container, such as a chest, that interacts with the logistics network.
LogisticRobotPrototype — A logistic robot.
MapGenPresets — The available map gen presets.
MapSettings — The default map settings.
MarketPrototype — Offers can be added to a market and they are shown when opening the entity. Offers allow to spend items to get research bonuses or items.
MiningDrillPrototype — A mining drill for automatically extracting resources from resource entities. This prototype type is used by burner mining drill, electric mining drill and pumpjack in vanilla.
ModData — Block of arbitrary data set by mods in data stage.
ModuleCategory — A module category. The built-in categories can be found here. See ModulePrototype::category.
ModulePrototype — A module. They are used to affect the capabilities of existing machines, for example by increasing the crafting speed of a crafting machine.
ModuleTransferAchievementPrototype — This prototype is used for receiving an achievement when the player moves a module with the cursor.
MouseCursor — Used by SelectionToolPrototype::mouse_cursor.
MovementBonusEquipmentPrototype — Used by exoskeleton. Increases max speed of characters or acceleration of vehicles if they have this equipment in their grid.
NamedNoiseExpression — A NoiseExpression with a name. The base game uses named noise expressions to specify functions for many map properties to be used in map generation; e.g. the "elevation" expression is used to calculate elevation for every point on a map. For a list of the built-in named noise expressions, see data.raw.
NamedNoiseFunction — Named noise functions are defined in the same way as NamedNoiseExpression except that they also have parameters.
NightVisionEquipmentPrototype — Used by nightvision.
OffshorePumpPrototype — An offshore pump.
ParticlePrototype — An entity with a limited lifetime that can use trigger effects.
ParticleSourcePrototype — Creates particles.
PipePrototype — An entity to transport fluids over a distance and between machines.
PipeToGroundPrototype — A pipe to ground.
PlaceEquipmentAchievementPrototype
PlanetPrototype
PlantPrototype
PlayerDamagedAchievementPrototype — This prototype is used for receiving an achievement when the player receives damage.
PlayerPortPrototype — Deprecated in 2.0.
PowerSwitchPrototype — A power switch.
ProcessionLayerInheritanceGroup — Helps ProcessionLayers pass properties between subsequent transitions if they belong to the same group.
ProcessionPrototype — Describes the duration and visuals of a departure, arrival or an intermezzo while traveling between surfaces. Usually provided inside of a ProcessionSet.
ProduceAchievementPrototype — This prototype is used for receiving an achievement when the player produces more than the specified amount of items.
ProducePerHourAchievementPrototype — This prototype is used for receiving an achievement when the player crafts a specified item a certain amount, in an hour.
ProgrammableSpeakerPrototype — A programmable speaker.
ProjectilePrototype — Entity with limited lifetime that can hit other entities and has triggers when this happens.
Prototype
PrototypeBase — The abstract base for prototypes. PrototypeBase defines the common features of prototypes, such as localization and order.
ProxyContainerPrototype — A container that must be set to point at other entity and inventory index so it can forward all inventory interactions to the other entity.
PumpPrototype — The pump is used to transfer fluids between tanks, fluid wagons and pipes.
QualityPrototype — One quality step. Its effects are specified by the level and the various multiplier and bonus properties. Properties ending in _multiplier are applied multiplicatively to their base property, properties ending in _bonus are applied additively.
RadarPrototype — A radar.
RailChainSignalPrototype — A rail chain signal.
RailPlannerPrototype — A rail planner.
RailPrototype — The abstract base of all rail prototypes.
RailRampPrototype — A rail ramp.
RailRemnantsPrototype — Used for rail corpses.
RailSignalBasePrototype — The abstract base entity for both rail signals.
RailSignalPrototype — A rail signal.
RailSupportPrototype
ReactorPrototype — A reactor.
RecipeCategory — A recipe category. The built-in categories can be found here. See RecipePrototype::category. Recipe categories can be used to specify which machine can craft which recipes.
RecipePrototype — A recipe. It can be a crafting recipe, a smelting recipe, or a custom type of recipe, see RecipeCategory.
RemoteControllerPrototype — Properties of the remote controller.
RepairToolPrototype — A repair pack. Using the tool decreases durability to restore entity health.
ResearchAchievementPrototype — This prototype is used for receiving an achievement when the player completes a specific research.
ResearchWithSciencePackAchievementPrototype
ResourceCategory — A resource category. The built-in categories can be found here. See ResourceEntityPrototype::category.
ResourceEntityPrototype — A mineable/gatherable entity.
RoboportEquipmentPrototype — Used by personal roboport.
RoboportPrototype — A roboport.
RobotWithLogisticInterfacePrototype — The common properties of logistic and construction robots represented by an abstract prototype.
RocketSiloPrototype — A rocket silo.
RocketSiloRocketPrototype — The rocket inside the rocket silo.
RocketSiloRocketShadowPrototype — The shadow of the rocket inside the rocket silo.
RollingStockPrototype — The abstract base of all rolling stock.
SegmentedUnitPrototype — Entity composed of multiple segment entities that trail behind the head.
SegmentPrototype — Entity representing an individual segment in a SegmentedUnitPrototype
SelectionToolPrototype — Used in the base game as a base for the blueprint item and the deconstruction item.
SelectorCombinatorPrototype
ShootAchievementPrototype — This prototype is used for receiving an achievement when the player shoots certain ammo.
ShortcutPrototype — Definition for a shortcut button in the shortcut bar.
SimpleEntityPrototype — An extremely basic entity with no special functionality. Used for minable rocks. Cannot be rotated.
SimpleEntityWithForcePrototype — 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. Setting EntityWithOwnerPrototype::is_military_target to false will turn this off, which then makes this type equivalent to SimpleEntityWithOwnerPrototype.
SimpleEntityWithOwnerPrototype — Has a force, but unlike SimpleEntityWithForcePrototype it is only attacked if the biters get stuck on it (or if EntityWithOwnerPrototype::is_military_target set to true to make the two entity types equivalent).
SmokePrototype — Abstract entity that has an animation.
SmokeWithTriggerPrototype — An entity with animation and a trigger.
SolarPanelEquipmentPrototype — A portable solar panel.
SolarPanelPrototype — A solar panel.
SoundPrototype — Specifies a sound that can be used with SoundPath at runtime.
SpaceConnectionDistanceTraveledAchievementPrototype
SpaceConnectionPrototype
SpaceLocationPrototype — A space location, such as a planet or the solar system edge.
SpacePlatformHubPrototype
SpacePlatformStarterPackPrototype
SpectatorControllerPrototype — Properties of the spectator controller.
SpeechBubblePrototype — A speech bubble. It floats in the world and can display text.
SpiderLegPrototype — Used by SpiderLegSpecification for SpiderVehiclePrototype, also known as spidertron.
SpidertronRemotePrototype — The spidertron remote. This remote can only be used for entities of type SpiderVehiclePrototype.
SpiderUnitPrototype
SpiderVehiclePrototype — A spidertron.
SplitterPrototype — A splitter.
SpritePrototype — Specifies an image that can be used with SpritePath at runtime.
StickerPrototype — Entity that sticks to another entity, and damages/slows it. Stickers can only be attached to UnitPrototype, CharacterPrototype, CarPrototype and SpiderVehiclePrototype.
StorageTankPrototype — A storage tank.
StraightRailPrototype — A straight rail.
SurfacePropertyPrototype
SurfacePrototype
TechnologyPrototype — A technology.
TemporaryContainerPrototype
ThrusterPrototype — Consumes two fluids as fuel to produce thrust for a space platform.
TileEffectDefinition — Used to define the parameters for tile shaders.
TileGhostPrototype — The entity used for tile ghosts.
TilePrototype — A tile.
TipsAndTricksItem — A tips and tricks entry.
TipsAndTricksItemCategory — 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 — Items with a "durability". Used for science packs.
TrainPathAchievementPrototype — This prototype is used for receiving an achievement when the player has a specified train path length.
TrainStopPrototype — A train stop.
TransportBeltConnectablePrototype — Abstract class that anything that is a belt or can connect to belts uses.
TransportBeltPrototype — A transport belt.
TreePrototype — A tree.
TriggerTargetType — The base game always internally defines a "common" trigger target type. See Design discussion: Trigger target type.
TrivialSmokePrototype — Smoke, but it's not an entity for optimization purposes.
TurretPrototype — A turret that needs no extra ammunition. See the children for turrets that need some kind of ammunition.
TutorialDefinition — The definition of the tutorial to be used in the tips and tricks, see TipsAndTricksItem. The actual tutorial scripting code is defined in the tutorial scenario. The scenario must be placed in the tutorials folder in the mod.
UndergroundBeltPrototype — An underground belt.
UnitPrototype — Entity that moves around and attacks players, for example biters and spitters.
UpgradeItemPrototype — An upgrade planner.
UseEntityInEnergyProductionAchievementPrototype — This prototype is used for receiving an achievement when the player produces energy by entity.
UseItemAchievementPrototype — This prototype is used for receiving an achievement when the player uses a capsule.
UtilityConstants — Constants used by the game that are not specific to certain prototypes. See utility-constants.lua for the values used by the base game.
UtilitySounds — Sounds used by the game that are not specific to certain prototypes.
UtilitySprites — Sprites used by the game that are not specific to certain prototypes.
ValvePrototype — A passive device that provides limited control of fluid flow between pipelines.
VehiclePrototype — Abstract base of all vehicles.
VirtualSignalPrototype — A virtual signal.
WallPrototype — A wall.