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

# Factorio Runtime Docs Version 2.0.7

## Class LuaTechnology changed

One research item.

## Members

reload() |  | Reload this technology from its prototype.
Reload this technology from its prototype.
research_recursive() new |  | Research this technology and all of its prerequisities recursively
Research this technology and all of its prerequisities recursively
force | :: R LuaForce | The force this technology belongs to.
The force this technology belongs to.
name | :: R string | Name of this technology.
Name of this technology.
localised_name | :: R LocalisedString | Localised name of this technology.
Localised name of this technology.
localised_description | :: R LocalisedString |
prototype | :: R LuaTechnologyPrototype | The prototype of this technology.
The prototype of this technology.
enabled | :: RW boolean | Can this technology be researched?
Can this technology be researched?
visible_when_disabled | :: RW 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.
upgrade | :: R boolean | Is this an upgrade-type research?
Is this an upgrade-type research?
researched | :: RW boolean | Has this technology been researched? [...]
Has this technology been researched? [...]
prerequisites | :: R dictionary[string → LuaTechnology] | Prerequisites of this technology. [...]
Prerequisites of this technology. [...]
successors new | :: R dictionary[string → LuaTechnology] | Successors of this technology, i.e. [...]
Successors of this technology, i.e. [...]
research_unit_ingredients | :: R array[Ingredient] | The types of ingredients that labs will require to research this technology.
The types of ingredients that labs will require to research this technology.
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.
order | :: R string | The string used to alphabetically sort these prototypes. [...]
The string used to alphabetically sort these prototypes. [...]
level | :: RW uint | The current level of this technology. [...]
The current level of this technology. [...]
research_unit_count_formula changed | :: R MathExpression? | The count formula, if this research has any. [...]
The count formula, if this research has any. [...]
saved_progress new | :: RW double | Saved technology progress fraction as a value in range `[0, 1)`. [...]
Saved technology progress fraction as a value in range `[0, 1)`. [...]
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. [...]

## Methods

### reload()

Reload this technology from its prototype.

### research_recursive() new

Research this technology and all of its prerequisities recursively

## Attributes

### force :: Read LuaForce

The force this technology belongs to.

### name :: Read string

Name of this technology.

### localised_name :: Read LocalisedString

Localised name of this technology.

### localised_description :: Read LocalisedString

### prototype :: Read LuaTechnologyPrototype

The prototype of this technology.

### enabled :: Read|Write boolean

Can this technology be researched?

### visible_when_disabled :: Read|Write boolean

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

### upgrade :: Read boolean

Is this an upgrade-type research?

### researched :: Read|Write boolean

Has this technology been researched? Switching from `false` to `true` will trigger the technology advancement perks; switching from `true` to `false` will reverse them.

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

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

### successors :: Read dictionary[string → LuaTechnology] new

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

### research_unit_ingredients :: Read array[Ingredient]

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

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

### order :: Read string

The string used to alphabetically sort these prototypes. It is a simple string that has no additional semantic meaning.

### level :: Read|Write uint

The current level of this technology. For level-based technology writing to this is the same as researching the technology to the previous level. Writing the level will set LuaTechnology::enabled to `true`.

### research_unit_count_formula :: Read MathExpression?changed

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

### saved_progress :: Read|Write double new

Saved technology progress fraction as a value in range `[0, 1)`. 0 means there is no saved progress.

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