Factorio.com|Forums|Wiki|Mod Portal|API Docs Prototype|Runtime|Auxiliary

# Factorio Runtime Docs Version 2.0.7

## Class LuaTechnologyPrototype extends LuaPrototypeBase changed

A Technology prototype.

## 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 new | :: 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 new | :: R dictionary[string → LuaTechnologyPrototype] | Successors of this technology, i.e. [...]
Successors of this technology, i.e. [...]
research_unit_ingredients changed | :: 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 uint | 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 uint | The level of this research.
The level of this research.
max_level | :: R uint | The max level of this research.
The max level of this research.
research_unit_count_formula changed | :: R MathExpression? | The count formula, if this research has any. [...]
The count formula, if this research has any. [...]
research_trigger new | :: R ResearchTrigger? | The trigger that will research this technology if any.
The trigger that will research this technology if any.
allows_productivity new | :: R boolean |
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 |
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 |

## Attributes

### enabled :: Read boolean

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

### essential :: Read boolean new

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] new

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

### research_unit_ingredients :: Read array[ResearchIngredient] changed

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 uint

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 uint

The level of this research.

### max_level :: Read uint

The max level of this research.

### research_unit_count_formula :: Read MathExpression?changed

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

### research_trigger :: Read ResearchTrigger?new

The trigger that will research this technology if any.

### allows_productivity :: Read boolean new

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