Factorio Prototype DocsVersion 2.0.28

TechnologyPrototype 'technology' changedExample code

Inherits from Prototype « PrototypeBase

Properties

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

The size of the square icon, in pixels. [...]

upgrade optional :: bool

When set to true, and the technology contains several levels, only the relevant one is displayed in the technology screen.

When set to true, and the technology contains several levels, only the relevant one is displayed in the technology screen.

enabled optional :: bool
essentialnew optional :: bool

Whether the technology should be shown in the technology tree GUI when "Show only essential technologies" is enabled.

Whether the technology should be shown in the technology tree GUI when "Show only essential technologies" is enabled.

visible_when_disabled optional :: bool

Controls whether the technology is shown in the tech GUI when it is not enabled.

Controls whether the technology is shown in the tech GUI when it is not enabled.

ignore_tech_cost_multiplier optional :: bool

Controls whether the technology cost ignores the tech cost multiplier set in the DifficultySettings. [...]

Controls whether the technology cost ignores the tech cost multiplier set in the DifficultySettings. [...]

allows_productivitynew optional :: bool
research_triggernew optional :: TechnologyTrigger

Mandatory if unit is not defined.

Mandatory if unit is not defined.

unit optional :: TechnologyUnit

Determines the cost in items and time of the technology. [...]

Determines the cost in items and time of the technology. [...]

max_level optional :: uint32 or "infinite"

"infinite" for infinite technologies, otherwise uint32. [...]

"infinite" for infinite technologies, otherwise uint32. [...]

prerequisites optional :: array[TechnologyID]

List of technologies needed to be researched before this one can be researched.

List of technologies needed to be researched before this one can be researched.

effects optional :: array[Modifier]

List of effects of the technology (applied when the technology is researched).

List of effects of the technology (applied when the technology is researched).

Inherited from Prototype
factoriopedia_alternative optional :: string

The ID type corresponding to the prototype that inherits from this. [...]

The ID type corresponding to the prototype that inherits from this. [...]

Inherited from PrototypeBase
type :: string

Specifies the kind of prototype this is. [...]

Specifies the kind of prototype this is. [...]

name[overridden] :: 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_descriptionnew optional :: LocalisedString

Provides additional description used in factoriopedia.

Provides additional description used in factoriopedia.

subgroupnew optional :: ItemSubGroupID

The name of an ItemSubGroup.

The name of an ItemSubGroup.

hiddennew optional :: bool
hidden_in_factoriopedianew optional :: bool
parameternew optional :: bool

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

Properties

icons :: array[IconData] optional

Can't be an empty array.

icon :: FileName optional

Path to the icon file.

Mandatory if icons is not defined.

icon_size :: SpriteSizeType optional

Default: 64

The size of the square icon, in pixels. E.g. 32 for a 32px by 32px icon. Must be larger than 0.

The base game uses 256px icons for technologies.

Only loaded if icons is not defined.

upgrade :: bool optional

Default: false

When set to true, and the technology contains several levels, only the relevant one is displayed in the technology screen.

Example

{
  type = "technology",
  name = "physical-projectile-damage-2",
  [...]
  upgrade = true
}

enabled :: bool optional

Default: true

essential :: bool optional new

Default: false

Whether the technology should be shown in the technology tree GUI when "Show only essential technologies" is enabled.

visible_when_disabled :: bool optional

Default: false

Controls whether the technology is shown in the tech GUI when it is not enabled.

ignore_tech_cost_multiplier :: bool optional

Default: false

Controls whether the technology cost ignores the tech cost multiplier set in the DifficultySettings. E.g. 4 for the default expensive difficulty.

allows_productivity :: bool optional new

Default: true

research_trigger :: TechnologyTrigger optional new

Mandatory if unit is not defined.

unit :: TechnologyUnit optional

Determines the cost in items and time of the technology.

Mandatory if research_trigger is not defined.

max_level :: uint32 or "infinite" optional

"infinite" for infinite technologies, otherwise uint32.

Defaults to the same level as the technology, which is 0 for non-upgrades, and the level of the upgrade for upgrades.

prerequisites :: array[TechnologyID] optional

List of technologies needed to be researched before this one can be researched.

Example

prerequisites = {"explosives", "military-2"}

effects :: array[Modifier] optional

List of effects of the technology (applied when the technology is researched).

Example

{
  {
    type  = "unlock-recipe",
    recipe = "land-mine"
  }
}

Overridden Properties

name :: string

If this name ends with -<number>, that number is ignored for localization purposes. E.g. if the name is technology-3, the game looks for the technology-name.technology localization. The technology tree will also show the number on the technology icon.

Example

{
  type = "technology",
  name = "steel-processing",
  icon_size = 256,
  icon = "__base__/graphics/technology/steel-processing.png",
  effects =
  {
    {
      type = "unlock-recipe",
      recipe = "steel-plate"
    },
    {
      type = "unlock-recipe",
      recipe = "steel-chest"
    }
  },
  unit =
  {
    count = 50,
    ingredients = {{"automation-science-pack", 1}},
    time = 5
  },
  order = "c-a"
}

Prototypes

Types

Defines