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

# Factorio Prototype Docs Version 2.0.77

# PrototypeBase - Prototype Docs

## PrototypeBase abstract

The abstract base for prototypes. PrototypeBase defines the common features of prototypes, such as localization and order.

Children GuiStyle - 'gui-style' Prototype - abstract AchievementPrototype - 'achievement' AchievementPrototypeWithCondition - abstract CompleteObjectiveAchievementPrototype - 'complete-objective-achievement' DontBuildEntityAchievementPrototype - 'dont-build-entity-achievement' DontCraftManuallyAchievementPrototype - 'dont-craft-manually-achievement' DontKillManuallyAchievementPrototype - 'dont-kill-manually-achievement' DontResearchBeforeResearchingAchievementPrototype - 'dont-research-before-researching-achievement' DontUseEntityInEnergyProductionAchievementPrototype - 'dont-use-entity-in-energy-production-achievement' BuildEntityAchievementPrototype - 'build-entity-achievement' ChangedSurfaceAchievementPrototype - 'change-surface-achievement' CombatRobotCountAchievementPrototype - 'combat-robot-count-achievement' ConstructWithRobotsAchievementPrototype - 'construct-with-robots-achievement' CreatePlatformAchievementPrototype - 'create-platform-achievement' DeconstructWithRobotsAchievementPrototype - 'deconstruct-with-robots-achievement' DeliverByRobotsAchievementPrototype - 'deliver-by-robots-achievement' DepleteResourceAchievementPrototype - 'deplete-resource-achievement' DestroyCliffAchievementPrototype - 'destroy-cliff-achievement' EquipArmorAchievementPrototype - 'equip-armor-achievement' GroupAttackAchievementPrototype - 'group-attack-achievement' KillAchievementPrototype - 'kill-achievement' ModuleTransferAchievementPrototype - 'module-transfer-achievement' PlaceEquipmentAchievementPrototype - 'place-equipment-achievement' PlayerDamagedAchievementPrototype - 'player-damaged-achievement' ProduceAchievementPrototype - 'produce-achievement' ProducePerHourAchievementPrototype - 'produce-per-hour-achievement' ResearchAchievementPrototype - 'research-achievement' ResearchWithSciencePackAchievementPrototype - 'research-with-science-pack-achievement' ShootAchievementPrototype - 'shoot-achievement' SpaceConnectionDistanceTraveledAchievementPrototype - 'space-connection-distance-traveled-achievement' TrainPathAchievementPrototype - 'train-path-achievement' UseEntityInEnergyProductionAchievementPrototype - 'use-entity-in-energy-production-achievement' UseItemAchievementPrototype - 'use-item-achievement' ActiveTriggerPrototype - abstract ChainActiveTriggerPrototype - 'chain-active-trigger' DelayedActiveTriggerPrototype - 'delayed-active-trigger' AirbornePollutantPrototype - 'airborne-pollutant' AmmoCategory - 'ammo-category' AsteroidChunkPrototype - 'asteroid-chunk' AutoplaceControl - 'autoplace-control' BurnerUsagePrototype - 'burner-usage' CollisionLayerPrototype - 'collision-layer' CustomEventPrototype - 'custom-event' CustomInputPrototype - 'custom-input' DamageType - 'damage-type' DecorativePrototype - 'optimized-decorative' EntityPrototype - abstract ArrowPrototype - 'arrow' ArtilleryFlarePrototype - 'artillery-flare' ArtilleryProjectilePrototype - 'artillery-projectile' BeamPrototype - 'beam' CharacterCorpsePrototype - 'character-corpse' CliffPrototype - 'cliff' CorpsePrototype - 'corpse' RailRemnantsPrototype - 'rail-remnants' DeconstructibleTileProxyPrototype - 'deconstructible-tile-proxy' EntityGhostPrototype - 'entity-ghost' EntityWithHealthPrototype - abstract EntityWithOwnerPrototype - abstract AccumulatorPrototype - 'accumulator' AgriculturalTowerPrototype - 'agricultural-tower' ArtilleryTurretPrototype - 'artillery-turret' AsteroidCollectorPrototype - 'asteroid-collector' AsteroidPrototype - 'asteroid' BeaconPrototype - 'beacon' BoilerPrototype - 'boiler' BurnerGeneratorPrototype - 'burner-generator' CargoBayPrototype - 'cargo-bay' CargoLandingPadPrototype - 'cargo-landing-pad' CargoPodPrototype - 'cargo-pod' CharacterPrototype - 'character' CombinatorPrototype - abstract ArithmeticCombinatorPrototype - 'arithmetic-combinator' DeciderCombinatorPrototype - 'decider-combinator' SelectorCombinatorPrototype - 'selector-combinator' ConstantCombinatorPrototype - 'constant-combinator' ContainerPrototype - 'container' LogisticContainerPrototype - 'logistic-container' InfinityContainerPrototype - 'infinity-container' TemporaryContainerPrototype - 'temporary-container' CraftingMachinePrototype - abstract AssemblingMachinePrototype - 'assembling-machine' RocketSiloPrototype - 'rocket-silo' FurnacePrototype - 'furnace' DisplayPanelPrototype - 'display-panel' ElectricEnergyInterfacePrototype - 'electric-energy-interface' ElectricPolePrototype - 'electric-pole' EnemySpawnerPrototype - 'unit-spawner' FlyingRobotPrototype - abstract CaptureRobotPrototype - 'capture-robot' CombatRobotPrototype - 'combat-robot' RobotWithLogisticInterfacePrototype - abstract ConstructionRobotPrototype - 'construction-robot' LogisticRobotPrototype - 'logistic-robot' FusionGeneratorPrototype - 'fusion-generator' FusionReactorPrototype - 'fusion-reactor' GatePrototype - 'gate' GeneratorPrototype - 'generator' HeatInterfacePrototype - 'heat-interface' HeatPipePrototype - 'heat-pipe' InserterPrototype - 'inserter' LabPrototype - 'lab' LampPrototype - 'lamp' LandMinePrototype - 'land-mine' LightningAttractorPrototype - 'lightning-attractor' LinkedContainerPrototype - 'linked-container' MarketPrototype - 'market' MiningDrillPrototype - 'mining-drill' OffshorePumpPrototype - 'offshore-pump' PipePrototype - 'pipe' InfinityPipePrototype - 'infinity-pipe' PipeToGroundPrototype - 'pipe-to-ground' PlayerPortPrototype - 'player-port' PowerSwitchPrototype - 'power-switch' ProgrammableSpeakerPrototype - 'programmable-speaker' ProxyContainerPrototype - 'proxy-container' PumpPrototype - 'pump' RadarPrototype - 'radar' RailPrototype - abstract CurvedRailAPrototype - 'curved-rail-a' ElevatedCurvedRailAPrototype - 'elevated-curved-rail-a' CurvedRailBPrototype - 'curved-rail-b' ElevatedCurvedRailBPrototype - 'elevated-curved-rail-b' HalfDiagonalRailPrototype - 'half-diagonal-rail' ElevatedHalfDiagonalRailPrototype - 'elevated-half-diagonal-rail' LegacyCurvedRailPrototype - 'legacy-curved-rail' LegacyStraightRailPrototype - 'legacy-straight-rail' RailRampPrototype - 'rail-ramp' StraightRailPrototype - 'straight-rail' ElevatedStraightRailPrototype - 'elevated-straight-rail' RailSignalBasePrototype - abstract RailChainSignalPrototype - 'rail-chain-signal' RailSignalPrototype - 'rail-signal' RailSupportPrototype - 'rail-support' ReactorPrototype - 'reactor' RoboportPrototype - 'roboport' SegmentPrototype - 'segment' SegmentedUnitPrototype - 'segmented-unit' SimpleEntityWithOwnerPrototype - 'simple-entity-with-owner' SimpleEntityWithForcePrototype - 'simple-entity-with-force' SolarPanelPrototype - 'solar-panel' SpacePlatformHubPrototype - 'space-platform-hub' SpiderLegPrototype - 'spider-leg' SpiderUnitPrototype - 'spider-unit' StorageTankPrototype - 'storage-tank' ThrusterPrototype - 'thruster' TrainStopPrototype - 'train-stop' TransportBeltConnectablePrototype - abstract LaneSplitterPrototype - 'lane-splitter' LinkedBeltPrototype - 'linked-belt' LoaderPrototype - abstract Loader1x1Prototype - 'loader-1x1' Loader1x2Prototype - 'loader' SplitterPrototype - 'splitter' TransportBeltPrototype - 'transport-belt' UndergroundBeltPrototype - 'underground-belt' TurretPrototype - 'turret' AmmoTurretPrototype - 'ammo-turret' ElectricTurretPrototype - 'electric-turret' FluidTurretPrototype - 'fluid-turret' UnitPrototype - 'unit' ValvePrototype - 'valve' VehiclePrototype - abstract CarPrototype - 'car' RollingStockPrototype - abstract ArtilleryWagonPrototype - 'artillery-wagon' CargoWagonPrototype - 'cargo-wagon' InfinityCargoWagonPrototype - 'infinity-cargo-wagon' FluidWagonPrototype - 'fluid-wagon' LocomotivePrototype - 'locomotive' SpiderVehiclePrototype - 'spider-vehicle' WallPrototype - 'wall' FishPrototype - 'fish' SimpleEntityPrototype - 'simple-entity' TreePrototype - 'tree' PlantPrototype - 'plant' ExplosionPrototype - 'explosion' FireFlamePrototype - 'fire' FluidStreamPrototype - 'stream' HighlightBoxEntityPrototype - 'highlight-box' ItemEntityPrototype - 'item-entity' ItemRequestProxyPrototype - 'item-request-proxy' LightningPrototype - 'lightning' ParticleSourcePrototype - 'particle-source' ProjectilePrototype - 'projectile' ResourceEntityPrototype - 'resource' RocketSiloRocketPrototype - 'rocket-silo-rocket' RocketSiloRocketShadowPrototype - 'rocket-silo-rocket-shadow' SmokePrototype - abstract SmokeWithTriggerPrototype - 'smoke-with-trigger' SpeechBubblePrototype - 'speech-bubble' StickerPrototype - 'sticker' TileGhostPrototype - 'tile-ghost' EquipmentCategory - 'equipment-category' EquipmentGridPrototype - 'equipment-grid' EquipmentPrototype - abstract ActiveDefenseEquipmentPrototype - 'active-defense-equipment' BatteryEquipmentPrototype - 'battery-equipment' BeltImmunityEquipmentPrototype - 'belt-immunity-equipment' EnergyShieldEquipmentPrototype - 'energy-shield-equipment' EquipmentGhostPrototype - 'equipment-ghost' GeneratorEquipmentPrototype - 'generator-equipment' InventoryBonusEquipmentPrototype - 'inventory-bonus-equipment' MovementBonusEquipmentPrototype - 'movement-bonus-equipment' NightVisionEquipmentPrototype - 'night-vision-equipment' RoboportEquipmentPrototype - 'roboport-equipment' SolarPanelEquipmentPrototype - 'solar-panel-equipment' FluidPrototype - 'fluid' FuelCategory - 'fuel-category' ItemGroup - 'item-group' ItemPrototype - 'item' AmmoItemPrototype - 'ammo' CapsulePrototype - 'capsule' GunPrototype - 'gun' ItemWithEntityDataPrototype - 'item-with-entity-data' ItemWithLabelPrototype - 'item-with-label' ItemWithInventoryPrototype - 'item-with-inventory' BlueprintBookPrototype - 'blueprint-book' ItemWithTagsPrototype - 'item-with-tags' SelectionToolPrototype - 'selection-tool' BlueprintItemPrototype - 'blueprint' CopyPasteToolPrototype - 'copy-paste-tool' DeconstructionItemPrototype - 'deconstruction-item' SpidertronRemotePrototype - 'spidertron-remote' UpgradeItemPrototype - 'upgrade-item' ModulePrototype - 'module' RailPlannerPrototype - 'rail-planner' SpacePlatformStarterPackPrototype - 'space-platform-starter-pack' ToolPrototype - 'tool' ArmorPrototype - 'armor' RepairToolPrototype - 'repair-tool' ItemSubGroup - 'item-subgroup' ModData - 'mod-data' ModuleCategory - 'module-category' NamedNoiseExpression - 'noise-expression' NamedNoiseFunction - 'noise-function' ParticlePrototype - 'optimized-particle' ProcessionLayerInheritanceGroup - 'procession-layer-inheritance-group' ProcessionPrototype - 'procession' QualityPrototype - 'quality' RecipeCategory - 'recipe-category' RecipePrototype - 'recipe' ResourceCategory - 'resource-category' ShortcutPrototype - 'shortcut' SpaceConnectionPrototype - 'space-connection' SpaceLocationPrototype - 'space-location' PlanetPrototype - 'planet' SurfacePropertyPrototype - 'surface-property' SurfacePrototype - 'surface' TechnologyPrototype - 'technology' TilePrototype - 'tile' TrivialSmokePrototype - 'trivial-smoke' VirtualSignalPrototype - 'virtual-signal' TipsAndTricksItem - 'tips-and-tricks-item' TutorialDefinition - 'tutorial' UtilityConstants - 'utility-constants' UtilitySounds - 'utility-sounds' UtilitySprites - 'utility-sprites'

## Properties

- default
- sorted

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

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

## Properties

### type :: string

Specifies the kind of prototype this is.

For a list of all possible types, see the prototype overview.

### name :: string

Unique textual identification of the prototype. May only contain alphanumeric characters, dashes and underscores. May not exceed a length of 200 characters.

For a list of all names used in vanilla, see data.raw.

### order :: Order optional

Default: `""`

Used to order prototypes in inventory, recipes and GUIs. May not exceed a length of 200 characters.

### localised_name :: LocalisedString optional

Overwrites the name set in the locale file. Can be used to easily set a procedurally-generated name because the LocalisedString format allows to insert parameters into the name directly from the Lua script.

### localised_description :: LocalisedString optional

Overwrites the description set in the locale file. The description is usually shown in the tooltip of the prototype.

### factoriopedia_description :: LocalisedString optional

Provides additional description used in factoriopedia.

### subgroup :: ItemSubGroupID optional

The name of an ItemSubGroup.

### hidden :: boolean optional

Default: `false`

### hidden_in_factoriopedia :: boolean optional

Default: Value of `hidden`

### parameter :: boolean optional

Default: `false`

Whether the prototype is a special type which can be used to parametrize blueprints and doesn't have other function.

### factoriopedia_simulation :: SimulationDefinition optional

The simulation shown when looking at this prototype in the Factoriopedia GUI.