Factorio Prototype DocsVersion 1.1.107

TechnologyData :: struct

Used when defining a TechnologyPrototype that uses difficulty. For a technology without difficulty, these same properties are defined on the prototype itself.

Properties

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
hidden optional :: bool

Hides the technology from the tech screen.

Hides the technology from the tech screen.

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

unit :: 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).

Properties

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

hidden :: bool optional

Default: false

Hides the technology from the tech screen.

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.

unit :: TechnologyUnit

Determines the cost in items and time of the technology.

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"
  }
}

Prototypes

Types