Prototype definitions: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(made more clear which prototypes don't inherit from Prototype)
(Linked to overview page)
(17 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Languages}}__NOTOC__
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].
== Warning ==
 
This is work in progress of description of the prototype specification possibilities. The list is currently updated to version 0.16, however the individual pages are not guaranteed to be up to date.
: '''See [[prototype overview]] for a full overview of all prototypes and their properties.'''
== Basics ==
 
* Prototype objects are specified in lua script called data.lua in the root of every mod (base game works as mod as well)
== Prototype hierachy ==
* Individual objects are usually sorted into different groups in the prototypes folder.
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.
== Prototypes ==
 
* [[Prototype/AmbientSound]] '''ambient-sound'''
* [[Prototype/Animation]] '''animation'''
* [[Prototype/EditorController]] '''editor-controller'''
* [[Prototype/Font]] '''font'''
* [[Prototype/Font]] '''font'''
* [[Prototype/GuiStyle]] '''gui-style'''
* [[Prototype/GodController]] '''god-controller'''
* [[Prototype/MapGenPresets]] '''map-gen-presets'''
* [[Prototype/MapGenPresets]] '''map-gen-presets'''
* [[Prototype/MapSettings]] '''map-settings'''
* [[Prototype/MapSettings]] '''map-settings'''
* [[Prototype/Tutorial]] '''tutorial'''
* [[Prototype/MouseCursor]] '''mouse-cursor'''
* [[Prototype/Sound]] '''sound'''
* [[Prototype/SpectatorController]] '''spectator-controller'''
* [[Prototype/Sprite]] '''sprite'''
* [[Prototype/TriggerTargetType]] '''trigger-target-type'''
* [[Prototype/UtilityConstants]] '''utility-constants'''
* [[Prototype/UtilityConstants]] '''utility-constants'''
* [[Prototype/UtilitySounds]] '''utility-sounds'''
* [[Prototype/UtilitySounds]] '''utility-sounds'''
* [[Prototype/UtilitySprites]] '''utility-sprites'''
* [[Prototype/WindSound]] '''wind-sound'''
* [[Prototype]] <abstract>
* [[PrototypeBase]] <abstract>
<div class="factorio-list">
<div class="factorio-list">
:* [[Prototype/Achievement]] '''achievement'''
:* [[Prototype/Achievement]] '''achievement'''
Line 27: Line 34:
:** [[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 33: Line 40:
:** [[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'''
Line 53: Line 59:
:*** [[Prototype/Beacon]] '''beacon'''
:*** [[Prototype/Beacon]] '''beacon'''
:*** [[Prototype/Boiler]] '''boiler'''
:*** [[Prototype/Boiler]] '''boiler'''
:*** [[Prototype/Character]] '''player'''
:*** [[Prototype/Character]] '''character'''
:*** [[Prototype/Combinator]] <abstract>
:*** [[Prototype/Combinator]] <abstract>
:**** [[Prototype/ArithmeticCombinator]] '''arithmetic-combinator'''
:**** [[Prototype/ArithmeticCombinator]] '''arithmetic-combinator'''
Line 76: Line 82:
:*** [[Prototype/Gate]] '''gate'''
:*** [[Prototype/Gate]] '''gate'''
:*** [[Prototype/Generator]] '''generator'''
:*** [[Prototype/Generator]] '''generator'''
:*** [[Prototype/HeatInterface]] '''heat-interface'''
:*** [[Prototype/HeatPipe]] '''heat-pipe'''
:*** [[Prototype/HeatPipe]] '''heat-pipe'''
:*** [[Prototype/Inserter]] '''inserter'''
:*** [[Prototype/Inserter]] '''inserter'''
Line 85: Line 92:
:*** [[Prototype/OffshorePump]] '''offshore-pump'''
:*** [[Prototype/OffshorePump]] '''offshore-pump'''
:*** [[Prototype/Pipe]] '''pipe'''
:*** [[Prototype/Pipe]] '''pipe'''
:**** [[Prototype/InfinityPipe]] '''infinity-pipe'''
:*** [[Prototype/PipeToGround]] '''pipe-to-ground'''
:*** [[Prototype/PipeToGround]] '''pipe-to-ground'''
:*** [[Prototype/PlayerPort]] '''player-port'''
:*** [[Prototype/PlayerPort]] '''player-port'''
Line 101: Line 109:
:*** [[Prototype/SimpleEntity]] '''simple-entity'''
:*** [[Prototype/SimpleEntity]] '''simple-entity'''
:*** [[Prototype/SimpleEntityWithOwner]] '''simple-entity-with-owner'''
:*** [[Prototype/SimpleEntityWithOwner]] '''simple-entity-with-owner'''
:**** [[Prototype/SimpleEntityWtihForce]] '''simple-entity-with-force'''
:*** [[Prototype/SimpleEntityWithForce]] '''simple-entity-with-force'''
:*** [[Prototype/SolarPanel]] '''solar-panel'''
:*** [[Prototype/SolarPanel]] '''solar-panel'''
:*** [[Prototype/StorageTank]] '''storage-tank'''
:*** [[Prototype/StorageTank]] '''storage-tank'''
Line 129: Line 137:
:** [[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/LegacyDecorative]] '''decorative''' probably exists for migration
:** [[Prototype/LegacyDecorative]] '''decorative''' (for migration, cannot be used)
:** [[Prototype/Particle]] '''particle'''
:** [[Prototype/Particle]] '''particle'''
:*** [[Prototype/ArtilleryFlare]] '''artillery-flare'''
:*** [[Prototype/ArtilleryFlare]] '''artillery-flare'''
Line 141: Line 150:
:** [[Prototype/RocketSiloRocketShadow]] '''rocket-silo-rocket-shadow'''
:** [[Prototype/RocketSiloRocketShadow]] '''rocket-silo-rocket-shadow'''
:** [[Prototype/Smoke]] <abstract>
:** [[Prototype/Smoke]] <abstract>
:*** [[Prototype/SimpleSmoke]] '''smoke'''
:*** [[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 159: Line 169:
:* [[Prototype/Fluid]] '''fluid'''
:* [[Prototype/Fluid]] '''fluid'''
:* [[Prototype/FuelCategory]] '''fuel-category'''
:* [[Prototype/FuelCategory]] '''fuel-category'''
:* [[Prototype/GuiStyle]] '''gui-style'''
:* [[Prototype/Item]] '''item'''
:* [[Prototype/Item]] '''item'''
:** [[Prototype/AmmoItem]] '''ammo'''
:** [[Prototype/AmmoItem]] '''ammo'''
Line 170: Line 181:
:*** [[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/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'''
Line 183: Line 196:
:* [[Prototype/NoiseLayer]] '''noise-layer'''
:* [[Prototype/NoiseLayer]] '''noise-layer'''
:* [[Prototype/Decorative]] '''optimized-decorative'''
:* [[Prototype/Decorative]] '''optimized-decorative'''
:* [[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/TrivialSmoke]] '''trivial-smoke'''
:* [[Prototype/TrivialSmoke]] '''trivial-smoke'''
:* [[Prototype/Tutorial]] '''tutorial'''
:* [[Prototype/UtilitySprites]] '''utility-sprites'''
:* [[Prototype/VirtualSignal]] '''virtual-signal'''
:* [[Prototype/VirtualSignal]] '''virtual-signal'''
</div>
</div>

Revision as of 19:07, 8 August 2019

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