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

# Factorio Runtime Docs Version 2.0.77

# LuaTechnologyPrototype - Runtime Docs

## Class LuaTechnologyPrototype extends LuaPrototypeBase

A Technology prototype.

Inherits from LuaPrototypeBase

## Members

enabled | :: R boolean | If this technology prototype is enabled by default (enabled at the beginning of a game).
If this technology prototype is enabled by default (enabled at the beginning of a game).
essential | :: R boolean | If this technology prototype is essential, meaning it is shown in the condensed technology graph.
If this technology prototype is essential, meaning it is shown in the condensed technology graph.
visible_when_disabled | :: R boolean | If this technology will be visible in the research GUI even though it is disabled.
If this technology will be visible in the research GUI even though it is disabled.
ignore_tech_cost_multiplier | :: R boolean | If this technology ignores the technology cost multiplier setting. [...]
If this technology ignores the technology cost multiplier setting. [...]
upgrade | :: R boolean | If the is technology prototype is an upgrade to some other technology.
If the is technology prototype is an upgrade to some other technology.
prerequisites | :: R dictionary[string → LuaTechnologyPrototype] | Prerequisites of this technology. [...]
Prerequisites of this technology. [...]
successors | :: R dictionary[string → LuaTechnologyPrototype] | Successors of this technology, i.e. [...]
Successors of this technology, i.e. [...]
research_unit_ingredients | :: R array[ResearchIngredient] | The types of ingredients that labs will require to research this technology.
The types of ingredients that labs will require to research this technology.
effects | :: R array[TechnologyModifier] | Effects applied when this technology is researched.
Effects applied when this technology is researched.
research_unit_count | :: R uint32 | The number of research units required for this technology. [...]
The number of research units required for this technology. [...]
research_unit_energy | :: R double | Amount of energy required to finish a unit of research.
Amount of energy required to finish a unit of research.
level | :: R uint32 | The level of this research.
The level of this research.
max_level | :: R uint32 | The max level of this research.
The max level of this research.
research_unit_count_formula | :: R MathExpression? | The count formula, if this research has any. [...]
The count formula, if this research has any. [...]
research_trigger | :: R ResearchTrigger? | The trigger that will research this technology if any.
The trigger that will research this technology if any.
allows_productivity | :: R boolean |
factoriopedia_alternative | :: R LuaTechnologyPrototype? | An alternative prototype that will be used to display info about this prototype in Factoriopedia.
An alternative prototype that will be used to display info about this prototype in Factoriopedia.
valid | :: R boolean | Is this object valid? [...]
Is this object valid? [...]
object_name | :: R string | The class name of this object. [...]
The class name of this object. [...]

Inherited from LuaPrototypeBase

type | :: R string | Type of this prototype.
Type of this prototype.
name | :: R string | Name of this prototype.
Name of this prototype.
order | :: R string | The string used to alphabetically sort these prototypes. [...]
The string used to alphabetically sort these prototypes. [...]
localised_name | :: R LocalisedString |
localised_description | :: R LocalisedString |
factoriopedia_description | :: R LocalisedString | Provides additional description used in factoriopedia.
Provides additional description used in factoriopedia.
group | :: R LuaGroup | Group of this prototype.
Group of this prototype.
subgroup | :: R LuaGroup | Subgroup of this prototype.
Subgroup of this prototype.
hidden | :: R boolean |
hidden_in_factoriopedia | :: R boolean |
parameter | :: R boolean |
custom_tooltip_fields | :: R array[CustomTooltipField]? | Extra description items in the tooltip and Factoriopedia.
Extra description items in the tooltip and Factoriopedia.

## Attributes

### enabled :: Read boolean

If this technology prototype is enabled by default (enabled at the beginning of a game).

### essential :: Read boolean

If this technology prototype is essential, meaning it is shown in the condensed technology graph.

### visible_when_disabled :: Read boolean

If this technology will be visible in the research GUI even though it is disabled.

### ignore_tech_cost_multiplier :: Read boolean

If this technology ignores the technology cost multiplier setting.

LuaTechnologyPrototype::research_unit_count will already take this setting into account.

### upgrade :: Read boolean

If the is technology prototype is an upgrade to some other technology.

### prerequisites :: Read dictionary[string → LuaTechnologyPrototype]

Prerequisites of this technology. The result maps technology name to the LuaTechnologyPrototype object.

### successors :: Read dictionary[string → LuaTechnologyPrototype]

Successors of this technology, i.e. technologies which have this technology as a prerequisite.

### research_unit_ingredients :: Read array[ResearchIngredient]

The types of ingredients that labs will require to research this technology.

### effects :: Read array[TechnologyModifier]

Effects applied when this technology is researched.

### research_unit_count :: Read uint32

The number of research units required for this technology.

This is multiplied by the current research cost multiplier, unless LuaTechnologyPrototype::ignore_tech_cost_multiplier is `true`.

### research_unit_energy :: Read double

Amount of energy required to finish a unit of research.

### level :: Read uint32

The level of this research.

### max_level :: Read uint32

The max level of this research.

### research_unit_count_formula :: Read MathExpression?

The count formula, if this research has any. See TechnologyUnit::count_formula for details.

### research_trigger :: Read ResearchTrigger?

The trigger that will research this technology if any.

### allows_productivity :: Read boolean

### factoriopedia_alternative :: Read LuaTechnologyPrototype?

An alternative prototype that will be used to display info about this prototype in Factoriopedia.

### valid :: Read boolean

Is this object valid? This Lua object holds a reference to an object within the game engine. It is possible that the game-engine object is removed whilst a mod still holds the corresponding Lua object. If that happens, the object becomes invalid, i.e. this attribute will be `false`. Mods are advised to check for object validity if any change to the game state might have occurred between the creation of the Lua object and its access.

### object_name :: Read string

The class name of this object. Available even when `valid` is false. For LuaStruct objects it may also be suffixed with a dotted path to a member of the struct.

Class used in

- LuaAchievementPrototype::technology
- LuaPrototypes::get_technology_filtered()
- LuaPrototypes::technology
- LuaRecipePrototype::alternative_unlock_methods
- LuaShortcutPrototype::technology_to_unlock
- LuaTechnology::prototype
- LuaTechnologyPrototype::prerequisites
- LuaTechnologyPrototype::successors
- LuaTechnologyPrototype::factoriopedia_alternative
- FactoriopediaID
- TechnologyID