Prototype definitions: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(→‎Prototypes: added missing type)
m (no)
 
(40 intermediate revisions by 4 users not shown)
Line 1: Line 1:
== Warning ==
Prototypes are used to specify what items, entities, technologies (etc) exist in the game and what their properties are. Prototypes are created and modified in the [http://lua-api.factorio.com/latest/Data-Lifecycle.html data phase].<br>
This is work in progress of description of the prototype specification possibilities. The list is currenlty updated to version 0.15, however the individual pages are not guaranteed to be up to date.
See [[Tutorial:Mod settings]] for the settings stage documentation and [https://lua-api.factorio.com/latest lua-api.factorio.com] for the runtime API documentation.
== Basics ==
 
* Prototype objects are specified in lua script called data.lua in the root of every mod (base game works as mod as well)
: '''See [[prototype overview]] for a full overview of all prototypes and their properties.'''
* Individual objects are usually sorted into different groups in the prototypes folder.
 
== Prototypes ==
== Prototype hierachy ==
<div class="factorio-list">
This is a list of all available prototype types and their inheritance structure.<br>Each point lists the link to the prototype page which is named after the class in the code, and the string that is used as the type name. Prototypes that have the type name <code><abstract></code> cannot be directly created, they simple exist as classes that multiple prototypes can inherit properties from.
<div class="prototype-tree-root">
* [[Prototype/AmbientSound]] '''ambient-sound'''
* [[Prototype/Animation]] '''animation'''
* [[Prototype/EditorController]] '''editor-controller'''
* [[Prototype/Font]] '''font'''
* [[Prototype/GodController]] '''god-controller'''
* [[Prototype/MapGenPresets]] '''map-gen-presets'''
* [[Prototype/MapSettings]] '''map-settings'''
* [[Prototype/MouseCursor]] '''mouse-cursor'''
* [[Prototype/Sound]] '''sound'''
* [[Prototype/SpectatorController]] '''spectator-controller'''
* [[Prototype/Sprite]] '''sprite'''
* [[Prototype/TileEffect]] '''tile-effect'''
* [[Prototype/TipsAndTricksItemCategory]] '''tips-and-tricks-item-category'''
* [[Prototype/TriggerTargetType]] '''trigger-target-type'''
* [[Prototype/WindSound]] '''wind-sound'''
* [[PrototypeBase]] <abstract>
</div><div class="prototype-tree">
* [[Prototype/Achievement]] '''achievement'''
* [[Prototype/Achievement]] '''achievement'''
** [[Prototype/BuildEntityAchievement]] '''build-entity-achievement'''
** [[Prototype/BuildEntityAchievement]] '''build-entity-achievement'''
** [[Prototype/CombatRobotCount]] '''combat-robot-count'''
** [[Prototype/CombatRobotCountAchievement]] '''combat-robot-count'''
** [[Prototype/ConstructWithRobotsAchievement]] '''construct-with-robots-achievement'''
** [[Prototype/ConstructWithRobotsAchievement]] '''construct-with-robots-achievement'''
** [[Prototype/DeconstructWithRobotsAchievement]] '''deconstruct-with-robots-achievement'''
** [[Prototype/DeconstructWithRobotsAchievement]] '''deconstruct-with-robots-achievement'''
Line 17: Line 35:
** [[Prototype/FinishTheGameAchievement]] '''finish-the-game-achievement'''
** [[Prototype/FinishTheGameAchievement]] '''finish-the-game-achievement'''
** [[Prototype/GroupAttackAchievement]] '''group-attack-achievement'''
** [[Prototype/GroupAttackAchievement]] '''group-attack-achievement'''
** [[Prototype/KillAchievement]] '''kill-achievement '''
** [[Prototype/KillAchievement]] '''kill-achievement'''
** [[Prototype/PlayerDamagedAchievement]] '''player-damaged-achievement'''
** [[Prototype/PlayerDamagedAchievement]] '''player-damaged-achievement'''
** [[Prototype/ProduceAchievement]] '''produce-achievement'''
** [[Prototype/ProduceAchievement]] '''produce-achievement'''
Line 23: Line 41:
** [[Prototype/ResearchAchievement]] '''research-achievement'''
** [[Prototype/ResearchAchievement]] '''research-achievement'''
** [[Prototype/TrainPathAchievement]] '''train-path-achievement'''
** [[Prototype/TrainPathAchievement]] '''train-path-achievement'''
* [[Prototype/AmbientSound]] '''ambient-sound'''
* [[Prototype/AmmoCategory]] '''ammo-category'''
* [[Prototype/AmmoCategory]] '''ammo-category'''
* [[Prototype/AutoplaceControl]] '''autoplace-control'''
* [[Prototype/AutoplaceControl]] '''autoplace-control'''
* [[Prototype/CustomInput]] '''custom-input'''
* [[Prototype/DamageType]] '''damage-type'''
* [[Prototype/DamageType]] '''damage-type'''
* [[Prototype/Decorative]] '''optimized-decorative'''
* [[Prototype/Entity]] <abstract>
* [[Prototype/Entity]] <abstract>
** [[Prototype/Arrow]] '''arrow'''
** [[Prototype/Arrow]] '''arrow'''
** [[Prototype/ArtilleryFlare]] '''artillery-flare'''
** [[Prototype/ArtilleryProjectile]] '''artillery-projectile'''
** [[Prototype/Beam]] '''beam'''
** [[Prototype/Beam]] '''beam'''
** [[Prototype/CharacterCorpse]] '''character-corpse'''
** [[Prototype/CharacterCorpse]] '''character-corpse'''
** [[Prototype/Cliff]] '''cliff'''
** [[Prototype/Corpse]] '''corpse'''
** [[Prototype/Corpse]] '''corpse'''
*** [[Prototype/RailRemnants]] '''rail-remnants'''
*** [[Prototype/RailRemnants]] '''rail-remnants'''
** [[Prototype/DeconstructibleTileProxy]] '''deconstructible-tile-proxy'''
** [[Prototype/DeconstructibleTileProxy]] '''deconstructible-tile-proxy'''
** [[Prototype/EntityGhost]] '''entity-ghost'''
** [[Prototype/EntityGhost]] '''entity-ghost'''
** [[Prototype/EntityParticle]] '''particle''' (for migration, cannot be used)
*** [[Prototype/LeafParticle]] '''leaf-particle''' (for migration, cannot be used)
** [[Prototype/EntityWithHealth]] <abstract>
** [[Prototype/EntityWithHealth]] <abstract>
*** [[Prototype/Accumulator]] '''accumulator'''
*** [[Prototype/EntityWithOwner]] <abstract>
*** [[Prototype/Beacon]] '''beacon'''
**** [[Prototype/Accumulator]] '''accumulator'''
*** [[Prototype/Boiler]] '''boiler'''
**** [[Prototype/ArtilleryTurret]] '''artillery-turret'''
*** [[Prototype/Character]] '''player'''
**** [[Prototype/Beacon]] '''beacon'''
*** [[Prototype/Combinator]] <abstract>
**** [[Prototype/Boiler]] '''boiler'''
**** [[Prototype/ArithmeticCombinator]] '''arithmetic-combinator'''
**** [[Prototype/BurnerGenerator]] '''burner-generator'''
**** [[Prototype/DeciderCombinator]] '''decider-combinator'''
**** [[Prototype/Character]] '''character'''
*** [[Prototype/ConstantCombinator]] '''constant-combinator'''
**** [[Prototype/Combinator]] <abstract>
*** [[Prototype/Container]] '''container'''
***** [[Prototype/ArithmeticCombinator]] '''arithmetic-combinator'''
**** [[Prototype/LegacySmartContainer]] '''smart-container''' (unused in the base-game, but exists for migration)
***** [[Prototype/DeciderCombinator]] '''decider-combinator'''
**** [[Prototype/LogisticContainer]] '''logistic-container'''
**** [[Prototype/ConstantCombinator]] '''constant-combinator'''
*** [[Prototype/CraftingMachine]] <abstract>
**** [[Prototype/Container]] '''container'''
**** [[Prototype/AssemblingMachine]] '''assembling-machine'''
***** [[Prototype/LogisticContainer]] '''logistic-container'''
***** [[Prototype/RocketSilo]] '''rocket-silo'''
****** [[Prototype/InfinityContainer]] '''infinity-container'''
**** [[Prototype/Furnace]] '''furnace'''
**** [[Prototype/CraftingMachine]] <abstract>
*** [[Prototype/ElectricEnergyInterface]] '''electric-energy-interface'''
***** [[Prototype/AssemblingMachine]] '''assembling-machine'''
*** [[Prototype/ElectricPole]] '''electric-pole'''
****** [[Prototype/RocketSilo]] '''rocket-silo'''
*** [[Prototype/EnemySpawner]] '''unit-spawner'''
***** [[Prototype/Furnace]] '''furnace'''
**** [[Prototype/ElectricEnergyInterface]] '''electric-energy-interface'''
**** [[Prototype/ElectricPole]] '''electric-pole'''
**** [[Prototype/EnemySpawner]] '''unit-spawner'''
**** [[Prototype/FlyingRobot]] <abstract>
***** [[Prototype/CombatRobot]] '''combat-robot'''
***** [[Prototype/RobotWithLogisticInterface]] <abstract>
****** [[Prototype/ConstructionRobot]] '''construction-robot'''
****** [[Prototype/LogisticRobot]] '''logistic-robot'''
**** [[Prototype/Gate]] '''gate'''
**** [[Prototype/Generator]] '''generator'''
**** [[Prototype/HeatInterface]] '''heat-interface'''
**** [[Prototype/HeatPipe]] '''heat-pipe'''
**** [[Prototype/Inserter]] '''inserter'''
**** [[Prototype/Lab]] '''lab'''
**** [[Prototype/Lamp]] '''lamp'''
**** [[Prototype/LandMine]] '''land-mine'''
**** [[Prototype/LinkedContainer]] '''linked-container'''
**** [[Prototype/Market]] '''market'''
**** [[Prototype/MiningDrill]] '''mining-drill'''
**** [[Prototype/OffshorePump]] '''offshore-pump'''
**** [[Prototype/Pipe]] '''pipe'''
***** [[Prototype/InfinityPipe]] '''infinity-pipe'''
**** [[Prototype/PipeToGround]] '''pipe-to-ground'''
**** [[Prototype/PlayerPort]] '''player-port'''
**** [[Prototype/PowerSwitch]] '''power-switch'''
**** [[Prototype/ProgrammableSpeaker]] '''programmable-speaker'''
**** [[Prototype/Pump]] '''pump'''
**** [[Prototype/Radar]] '''radar'''
**** [[Prototype/Rail]] <abstract>
***** [[Prototype/CurvedRail]] '''curved-rail'''
***** [[Prototype/StraightRail]] '''straight-rail'''
**** [[Prototype/RailSignalBase]] <abstract>
***** [[Prototype/RailChainSignal]] '''rail-chain-signal'''
***** [[Prototype/RailSignal]] '''rail-signal'''
**** [[Prototype/Reactor]] '''reactor'''
**** [[Prototype/Roboport]] '''roboport'''
**** [[Prototype/SimpleEntityWithOwner]] '''simple-entity-with-owner'''
***** [[Prototype/SimpleEntityWithForce]] '''simple-entity-with-force'''
**** [[Prototype/SolarPanel]] '''solar-panel'''
**** [[Prototype/StorageTank]] '''storage-tank'''
**** [[Prototype/TrainStop]] '''train-stop'''
**** [[Prototype/TransportBeltConnectable]] <abstract>
***** [[Prototype/LinkedBelt]] '''linked-belt'''
***** [[Prototype/Loader1x1]] '''loader-1x1'''
***** [[Prototype/Loader1x2]] '''loader'''
***** [[Prototype/Splitter]] '''splitter'''
***** [[Prototype/TransportBelt]] '''transport-belt'''
***** [[Prototype/UndergroundBelt]] '''underground-belt'''
**** [[Prototype/Turret]] '''turret'''
***** [[Prototype/AmmoTurret]] '''ammo-turret'''
***** [[Prototype/ElectricTurret]] '''electric-turret'''
***** [[Prototype/FluidTurret]] '''fluid-turret'''
**** [[Prototype/Unit]] '''unit'''
**** [[Prototype/Vehicle]] <abstract>
***** [[Prototype/Car]] '''car'''
***** [[Prototype/RollingStock]] <abstract>
****** [[Prototype/ArtilleryWagon]] '''artillery-wagon'''
****** [[Prototype/CargoWagon]] '''cargo-wagon'''
****** [[Prototype/FluidWagon]] '''fluid-wagon'''
****** [[Prototype/Locomotive]] '''locomotive'''
***** [[Prototype/SpiderVehicle]] '''spider-vehicle'''
**** [[Prototype/Wall]] '''wall'''
*** [[Prototype/Fish]] '''fish'''
*** [[Prototype/Fish]] '''fish'''
*** [[Prototype/FlyingRobot]] <abstract>
**** [[Prototype/CombatRobot]] '''combat-robot'''
**** [[Prototype/RobotWithLogisticInterface]] <abstract>
***** [[Prototype/ConstructionRobot]] '''construction-robot'''
***** [[Prototype/LogisticRobot]] '''logistic-robot'''
*** [[Prototype/Gate]] '''gate'''
*** [[Prototype/Generator]] '''generator'''
*** [[Prototype/HeatPipe]] '''heat-pipe'''
*** [[Prototype/Inserter]] '''inserter'''
*** [[Prototype/Lab]] '''lab'''
*** [[Prototype/Lamp]] '''lamp'''
*** [[Prototype/LandMine]] '''land-mine'''
*** [[Prototype/LegacyRocketDefense]] '''rocket-defense''' (unused in the base-game, but exists for migration)
*** [[Prototype/Market]] '''market'''
*** [[Prototype/MiningDrill]] '''mining-drill'''
*** [[Prototype/OffshorePump]] '''offshore-pump'''
*** [[Prototype/Pipe]] '''pipe'''
*** [[Prototype/PipeToGround]] '''pipe-to-ground'''
*** [[Prototype/PlayerPort]] '''player-port'''
*** [[Prototype/PowerSwitch]] '''power-switch'''
*** [[Prototype/ProgrammableSpeaker]] '''programmable-speaker'''
*** [[Prototype/Pump]] '''pump'''
*** [[Prototype/Radar]] '''radar'''
*** [[Prototype/Rail]] <abstract>
**** [[Prototype/CurvedRail]] '''curved-rail'''
**** [[Prototype/StraightRail]] '''straight-rail'''
*** [[Prototype/RailSignalBase]] <abstract>
**** [[Prototype/RailChainSignal]] '''rail-chain-signal'''
**** [[Prototype/RailSignal]] '''rail-signal'''
*** [[Prototype/Reactor]] '''reactor'''
*** [[Prototype/Roboport]] '''roboport'''
*** [[Prototype/SimpleEntity]] '''simple-entity'''
*** [[Prototype/SimpleEntity]] '''simple-entity'''
*** [[Prototype/SimpleEntityWithOwner]] '''simple-entity-with-owner'''
*** [[Prototype/SpiderLeg]] '''spider-leg'''
**** [[Prototype/SimpleEntityWtihForce]] '''simple-entity-with-force'''
*** [[Prototype/SolarPanel]] '''solar-panel'''
*** [[Prototype/StorageTank]] '''storage-tank'''
*** [[Prototype/TrainStop]] '''train-stop'''
*** [[Prototype/TransportBeltConnectable]] <abstract>
**** [[Prototype/Loader]] '''loader'''
**** [[Prototype/Splitter]] '''splitter'''
**** [[Prototype/TransportBelt]] '''transport-belt'''
**** [[Prototype/UndergroundBelt]] '''underground-belt'''
*** [[Prototype/Tree]] '''tree'''
*** [[Prototype/Tree]] '''tree'''
*** [[Prototype/Turret]] '''turret'''
**** [[Prototype/AmmoTurret]] '''ammo-turret'''
**** [[Prototype/ElectricTurret]] '''electric-turret'''
**** [[Prototype/FluidTurret]] '''fluid-turret'''
*** [[Prototype/Unit]] '''unit'''
*** [[Prototype/Vehicle]] <abstract>
**** [[Prototype/Car]] '''car'''
**** [[Prototype/RollingStock]] <abstract>
***** [[Prototype/CargoWagon]] '''cargo-wagon'''
***** [[Prototype/FluidWagon]] '''fluid-wagon'''
***** [[Prototype/Locomotive]] '''locomotive'''
*** [[Prototype/Wall]] '''wall'''
** [[Prototype/Explosion]] '''explosion'''
** [[Prototype/Explosion]] '''explosion'''
*** [[Prototype/FlameThrowerExplosion]] '''flame-thrower-explosion'''
*** [[Prototype/FlameThrowerExplosion]] '''flame-thrower-explosion'''
Line 115: Line 149:
** [[Prototype/FluidStream]] '''stream'''
** [[Prototype/FluidStream]] '''stream'''
** [[Prototype/FlyingText]] '''flying-text'''
** [[Prototype/FlyingText]] '''flying-text'''
** [[Prototype/HighlightBoxEntity]] '''highlight-box'''
** [[Prototype/ItemEntity]] '''item-entity'''
** [[Prototype/ItemEntity]] '''item-entity'''
** [[Prototype/ItemRequestProxy]] '''item-request-proxy'''
** [[Prototype/ItemRequestProxy]] '''item-request-proxy'''
** [[Prototype/LeagacyDecorative]] '''???''' probably exists for migration
** [[Prototype/Particle]] '''particle'''
*** [[Prototype/LeafParticle]] '''leaf-particle'''
** [[Prototype/ParticleSource]] '''particle-source'''
** [[Prototype/ParticleSource]] '''particle-source'''
** [[Prototype/Projectile]] '''projectile'''
** [[Prototype/Projectile]] '''projectile'''
Line 125: Line 157:
** [[Prototype/RocketSiloRocket]] '''rocket-silo-rocket'''
** [[Prototype/RocketSiloRocket]] '''rocket-silo-rocket'''
** [[Prototype/RocketSiloRocketShadow]] '''rocket-silo-rocket-shadow'''
** [[Prototype/RocketSiloRocketShadow]] '''rocket-silo-rocket-shadow'''
** [[Prototype/Smoke]] '''smoke'''
** [[Prototype/Smoke]] <abstract>
*** [[Prototype/SimpleSmoke]] '''???''' seems to be unsused in base game
*** [[Prototype/SimpleSmoke]] '''smoke''' (for migration, cannot be used)
*** [[Prototype/SmokeWithTrigger]] '''smoke-with-trigger'''
*** [[Prototype/SmokeWithTrigger]] '''smoke-with-trigger'''
** [[Prototype/SpeechBubble]] '''speech-bubble'''
** [[Prototype/Sticker]] '''sticker'''
** [[Prototype/Sticker]] '''sticker'''
** [[Prototype/TileGhost]] '''tile-ghost'''
** [[Prototype/TileGhost]] '''tile-ghost'''
Line 143: Line 176:
* [[Prototype/EquipmentGrid]] '''equipment-grid'''
* [[Prototype/EquipmentGrid]] '''equipment-grid'''
* [[Prototype/Fluid]] '''fluid'''
* [[Prototype/Fluid]] '''fluid'''
* [[Prototype/Font]] '''font'''
* [[Prototype/FuelCategory]] '''fuel-category'''
* [[Prototype/FuelCategory]] '''fuel-category'''
* [[Prototype/GuiStyle]] '''gui-style'''
* [[Prototype/GuiStyle]] '''gui-style'''
Line 157: Line 189:
*** [[Prototype/SelectionTool]] '''selection-tool'''
*** [[Prototype/SelectionTool]] '''selection-tool'''
**** [[Prototype/BlueprintItem]] '''blueprint'''
**** [[Prototype/BlueprintItem]] '''blueprint'''
**** [[Prototype/CopyPasteTool]] '''copy-paste-tool'''
**** [[Prototype/DeconstructionItem]] '''deconstruction-item'''
**** [[Prototype/DeconstructionItem]] '''deconstruction-item'''
**** [[Prototype/UpgradeItem]] '''upgrade-item'''
** [[Prototype/Module]] '''module'''
** [[Prototype/Module]] '''module'''
** [[Prototype/RailPlanner]] '''rail-planner'''
** [[Prototype/RailPlanner]] '''rail-planner'''
** [[Prototype/SpidertronRemote]] '''spidertron-remote'''
** [[Prototype/Tool]] '''tool'''
** [[Prototype/Tool]] '''tool'''
*** [[Prototype/Armor]] '''armor'''
*** [[Prototype/Armor]] '''armor'''
*** [[Prototype/MiningTool]] '''mining-tool'''
*** [[Prototype/MiningTool]] '''mining-tool''' (for migration, cannot be used)
*** [[Prototype/RepairTool]] '''repair-tool'''
*** [[Prototype/RepairTool]] '''repair-tool'''
* [[Prototype/ItemGroup]] '''item-group'''
* [[Prototype/ItemGroup]] '''item-group'''
* [[Prototype/ItemSubgroup]] '''item-subgroup'''
* [[Prototype/ItemSubGroup]] '''item-subgroup'''
* [[Prototype/MapGenPresets]] '''map-gen-presets'''
* [[Prototype/MapSettings]] '''map-settings'''
* [[Prototype/ModuleCategory]] '''module-category'''
* [[Prototype/ModuleCategory]] '''module-category'''
* [[Prototype/NamedNoiseExpression]] '''noise-expression'''
* [[Prototype/NoiseLayer]] '''noise-layer'''
* [[Prototype/NoiseLayer]] '''noise-layer'''
* [[Prototype/OptimizedDecorative]] '''optimized-decorative'''
* [[Prototype/Particle]] '''optimized-particle'''
* [[Prototype/RailCategory]] '''rail-category'''
* [[Prototype/Recipe]] '''recipe'''
* [[Prototype/Recipe]] '''recipe'''
* [[Prototype/RecipeCategory]] '''recipe-category'''
* [[Prototype/RecipeCategory]] '''recipe-category'''
* [[Prototype/ResourceCategory]] '''resource-category'''
* [[Prototype/ResourceCategory]] '''resource-category'''
* [[Prototype/Shortcut]] '''shortcut'''
* [[Prototype/Technology]] '''technology'''
* [[Prototype/Technology]] '''technology'''
* [[Prototype/Tile]] '''tile'''
* [[Prototype/Tile]] '''tile'''
* [[Prototype/TipsAndTricksItem]] '''tips-and-tricks-item'''
* [[Prototype/TrivialSmoke]] '''trivial-smoke'''
* [[Prototype/Tutorial]] '''tutorial'''
* [[Prototype/Tutorial]] '''tutorial'''
* [[Prototype/UtilityConstants]] '''utility-constants'''
* [[Prototype/UtilityConstants]] '''utility-constants'''

Latest revision as of 20:59, 21 January 2022

Prototypes are used to specify what items, entities, technologies (etc) exist in the game and what their properties are. Prototypes are created and modified in the data phase.
See Tutorial:Mod settings for the settings stage documentation and lua-api.factorio.com for the runtime API documentation.

See prototype overview for a full overview of all prototypes and their properties.

Prototype hierachy

This is a list of all available prototype types and their inheritance structure.
Each point lists the link to the prototype page which is named after the class in the code, and the string that is used as the type name. Prototypes that have the type name <abstract> cannot be directly created, they simple exist as classes that multiple prototypes can inherit properties from.