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

# Factorio Prototype Docs Version 2.0.77

# QualityPrototype - Prototype Docs

## QualityPrototype 'quality'

One quality step. Its effects are specified by the level and the various multiplier and bonus properties. Properties ending in `_multiplier` are applied multiplicatively to their base property, properties ending in `_bonus` are applied additively.

Prototype limited to 255 total instances.

Inherits from Prototype « PrototypeBase

## Properties

- default
- sorted

draw_sprite_by_default optional | :: boolean |
color | :: Color |
level | :: uint32 | Requires Space Age to use level greater than `0`.
Requires Space Age to use level greater than `0`.
next optional | :: QualityID |
next_probability optional | :: double | The quality effect of the module is multiplied by this. [...]
The quality effect of the module is multiplied by this. [...]
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. [...]
beacon_power_usage_multiplier optional | :: float | Must be >= 0.
Must be >= 0.
mining_drill_resource_drain_multiplier optional | :: float | Must be in range `[0, 1]`.
Must be in range `[0, 1]`.
science_pack_drain_multiplier optional | :: float | Must be in range `[0, 1]`. [...]
Must be in range `[0, 1]`. [...]
default_multiplier optional | :: double | Must be >= 0.01.
Must be >= 0.01.
inserter_speed_multiplier optional | :: double | Must be >= 0.01.
Must be >= 0.01.
fluid_wagon_capacity_multiplier optional | :: double | Must be >= 0.01. [...]
Must be >= 0.01. [...]
inventory_size_multiplier optional | :: double | Must be >= 0.01.
Must be >= 0.01.
lab_research_speed_multiplier optional | :: double | Must be >= 0.01.
Must be >= 0.01.
crafting_machine_speed_multiplier optional | :: double | Must be >= 0.01. [...]
Must be >= 0.01. [...]
crafting_machine_energy_usage_multiplier optional | :: double | Must be >= 0.01. [...]
Must be >= 0.01. [...]
logistic_cell_charging_energy_multiplier optional | :: double | Must be >= 0.01.
Must be >= 0.01.
tool_durability_multiplier optional | :: double | Must be >= 0.01. [...]
Must be >= 0.01. [...]
accumulator_capacity_multiplier optional | :: double | Must be >= 0.01.
Must be >= 0.01.
flying_robot_max_energy_multiplier optional | :: double | Must be >= 0.01.
Must be >= 0.01.
range_multiplier optional | :: double | Must be within `[1, 3]`. [...]
Must be within `[1, 3]`. [...]
asteroid_collector_collection_radius_bonus optional | :: double | Must be >= 0. [...]
Must be >= 0. [...]
equipment_grid_width_bonus optional | :: int16 |
equipment_grid_height_bonus optional | :: int16 |
electric_pole_wire_reach_bonus optional | :: float | Must be >= 0.
Must be >= 0.
electric_pole_supply_area_distance_bonus optional | :: float | Must be >= 0.
Must be >= 0.
beacon_supply_area_distance_bonus optional | :: float | Only affects beacons with BeaconPrototype::quality_affects_supply_area_distance set. [...]
Only affects beacons with BeaconPrototype::quality_affects_supply_area_distance set. [...]
mining_drill_mining_radius_bonus optional | :: float | Only affects mining drills with MiningDrillPrototype::quality_affects_mining_radius set. [...]
Only affects mining drills with MiningDrillPrototype::quality_affects_mining_radius set. [...]
logistic_cell_charging_station_count_bonus optional | :: uint32 | Only affects roboports with RoboportPrototype::charging_station_count_affected_by_quality set. [...]
Only affects roboports with RoboportPrototype::charging_station_count_affected_by_quality set. [...]
beacon_module_slots_bonus optional | :: ItemStackIndex | Only affects beacons with BeaconPrototype::quality_affects_module_slots set.
Only affects beacons with BeaconPrototype::quality_affects_module_slots set.
crafting_machine_module_slots_bonus optional | :: ItemStackIndex | Only affects crafting machines with CraftingMachinePrototype::quality_affects_module_slots set. [...]
Only affects crafting machines with CraftingMachinePrototype::quality_affects_module_slots set. [...]
mining_drill_module_slots_bonus optional | :: ItemStackIndex | Only affects mining drills with MiningDrillPrototype::quality_affects_module_slots set.
Only affects mining drills with MiningDrillPrototype::quality_affects_module_slots set.
lab_module_slots_bonus optional | :: ItemStackIndex | Only affects labs with LabPrototype::quality_affects_module_slots set.
Only affects labs with LabPrototype::quality_affects_module_slots set.

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. [...]
custom_tooltip_fields optional | :: array[CustomTooltipField] | Allows to add extra description items to the tooltip and Factoriopedia.
Allows to add extra description items to the tooltip and Factoriopedia.

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_description optional | :: LocalisedString | Provides additional description used in factoriopedia.
Provides additional description used in factoriopedia.
subgroup optional | :: ItemSubGroupID | The name of an ItemSubGroup.
The name of an ItemSubGroup.
hidden optional | :: boolean |
hidden_in_factoriopedia optional | :: boolean |
parameter optional | :: boolean | 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_simulation 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.

color | :: Color |
level | :: uint32 | Requires Space Age to use level greater than `0`.
Requires Space Age to use level greater than `0`.
accumulator_capacity_multiplier optional | :: double | Must be >= 0.01.
Must be >= 0.01.
asteroid_collector_collection_radius_bonus optional | :: double | Must be >= 0. [...]
Must be >= 0. [...]
beacon_module_slots_bonus optional | :: ItemStackIndex | Only affects beacons with BeaconPrototype::quality_affects_module_slots set.
Only affects beacons with BeaconPrototype::quality_affects_module_slots set.
beacon_power_usage_multiplier optional | :: float | Must be >= 0.
Must be >= 0.
beacon_supply_area_distance_bonus optional | :: float | Only affects beacons with BeaconPrototype::quality_affects_supply_area_distance set. [...]
Only affects beacons with BeaconPrototype::quality_affects_supply_area_distance set. [...]
crafting_machine_energy_usage_multiplier optional | :: double | Must be >= 0.01. [...]
Must be >= 0.01. [...]
crafting_machine_module_slots_bonus optional | :: ItemStackIndex | Only affects crafting machines with CraftingMachinePrototype::quality_affects_module_slots set. [...]
Only affects crafting machines with CraftingMachinePrototype::quality_affects_module_slots set. [...]
crafting_machine_speed_multiplier optional | :: double | Must be >= 0.01. [...]
Must be >= 0.01. [...]
default_multiplier optional | :: double | Must be >= 0.01.
Must be >= 0.01.
draw_sprite_by_default optional | :: boolean |
electric_pole_supply_area_distance_bonus optional | :: float | Must be >= 0.
Must be >= 0.
electric_pole_wire_reach_bonus optional | :: float | Must be >= 0.
Must be >= 0.
equipment_grid_height_bonus optional | :: int16 |
equipment_grid_width_bonus optional | :: int16 |
fluid_wagon_capacity_multiplier optional | :: double | Must be >= 0.01. [...]
Must be >= 0.01. [...]
flying_robot_max_energy_multiplier optional | :: double | Must be >= 0.01.
Must be >= 0.01.
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. [...]
icons optional | :: array[IconData] | Can't be an empty array.
Can't be an empty array.
inserter_speed_multiplier optional | :: double | Must be >= 0.01.
Must be >= 0.01.
inventory_size_multiplier optional | :: double | Must be >= 0.01.
Must be >= 0.01.
lab_module_slots_bonus optional | :: ItemStackIndex | Only affects labs with LabPrototype::quality_affects_module_slots set.
Only affects labs with LabPrototype::quality_affects_module_slots set.
lab_research_speed_multiplier optional | :: double | Must be >= 0.01.
Must be >= 0.01.
logistic_cell_charging_energy_multiplier optional | :: double | Must be >= 0.01.
Must be >= 0.01.
logistic_cell_charging_station_count_bonus optional | :: uint32 | Only affects roboports with RoboportPrototype::charging_station_count_affected_by_quality set. [...]
Only affects roboports with RoboportPrototype::charging_station_count_affected_by_quality set. [...]
mining_drill_mining_radius_bonus optional | :: float | Only affects mining drills with MiningDrillPrototype::quality_affects_mining_radius set. [...]
Only affects mining drills with MiningDrillPrototype::quality_affects_mining_radius set. [...]
mining_drill_module_slots_bonus optional | :: ItemStackIndex | Only affects mining drills with MiningDrillPrototype::quality_affects_module_slots set.
Only affects mining drills with MiningDrillPrototype::quality_affects_module_slots set.
mining_drill_resource_drain_multiplier optional | :: float | Must be in range `[0, 1]`.
Must be in range `[0, 1]`.
next optional | :: QualityID |
next_probability optional | :: double | The quality effect of the module is multiplied by this. [...]
The quality effect of the module is multiplied by this. [...]
range_multiplier optional | :: double | Must be within `[1, 3]`. [...]
Must be within `[1, 3]`. [...]
science_pack_drain_multiplier optional | :: float | Must be in range `[0, 1]`. [...]
Must be in range `[0, 1]`. [...]
tool_durability_multiplier optional | :: double | Must be >= 0.01. [...]
Must be >= 0.01. [...]

Inherited from Prototype

custom_tooltip_fields optional | :: array[CustomTooltipField] | Allows to add extra description items to the tooltip and Factoriopedia.
Allows to add extra description items to the tooltip and Factoriopedia.
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

name[overridden] | :: string | Unique textual identification of the prototype. [...]
Unique textual identification of the prototype. [...]
type | :: string | Specifies the kind of prototype this is. [...]
Specifies the kind of prototype this is. [...]
factoriopedia_description optional | :: LocalisedString | Provides additional description used in factoriopedia.
Provides additional description used in factoriopedia.
factoriopedia_simulation 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.
hidden optional | :: boolean |
hidden_in_factoriopedia optional | :: boolean |
localised_description optional | :: LocalisedString | Overwrites the description set in the locale file. [...]
Overwrites the description set in the locale file. [...]
localised_name optional | :: LocalisedString | Overwrites the name set in the locale file. [...]
Overwrites the name set in the locale file. [...]
order optional | :: Order | Used to order prototypes in inventory, recipes and GUIs. [...]
Used to order prototypes in inventory, recipes and GUIs. [...]
parameter optional | :: boolean | 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.
subgroup optional | :: ItemSubGroupID | The name of an ItemSubGroup.
The name of an ItemSubGroup.

## Properties

### draw_sprite_by_default :: boolean optional

Default: `true`

### color :: Color

### level :: uint32

Requires Space Age to use level greater than `0`.

### next :: QualityID optional

### next_probability :: double optional

Default: `0`

The quality effect of the module is multiplied by this. For example, if a module's quality effect is 0.2 and the current quality's next_probability is 0.1, then the chance to get the next quality item is 2%.

Must be in range [0, 1.0].

### icons :: array[IconData] optional

Can't be an empty array.

### icon :: FileName optional

Path to the icon file.

Only loaded, and 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`.

Only loaded if `icons` is not defined.

### beacon_power_usage_multiplier :: float optional

Default: `1`

Must be >= 0.

### mining_drill_resource_drain_multiplier :: float optional

Default: `1`

Must be in range `[0, 1]`.

### science_pack_drain_multiplier :: float optional

Default: `1`

Must be in range `[0, 1]`.

Only affects labs with LabPrototype::uses_quality_drain_modifier set.

### default_multiplier :: double optional

Default: 1 + 0.3 * `level`

Must be >= 0.01.

### inserter_speed_multiplier :: double optional

Default: Value of `default_multiplier`

Must be >= 0.01.

### fluid_wagon_capacity_multiplier :: double optional

Default: Value of `default_multiplier`

Must be >= 0.01.

Only affects fluid wagons with FluidWagonPrototype::quality_affects_capacity set.

### inventory_size_multiplier :: double optional

Default: Value of `default_multiplier`

Must be >= 0.01.

### lab_research_speed_multiplier :: double optional

Default: Value of `default_multiplier`

Must be >= 0.01.

### crafting_machine_speed_multiplier :: double optional

Default: Value of `default_multiplier`

Must be >= 0.01.

Will be ignored by crafting machines with CraftingMachinePrototype::crafting_speed_quality_multiplier set.

### crafting_machine_energy_usage_multiplier :: double optional

Default: `1`

Must be >= 0.01.

Only affects crafting machines with CraftingMachinePrototype::quality_affects_energy_usage set.

Will be ignored by crafting machines with CraftingMachinePrototype::energy_usage_quality_multiplier set.

### logistic_cell_charging_energy_multiplier :: double optional

Default: Value of `default_multiplier`

Must be >= 0.01.

### tool_durability_multiplier :: double optional

Default: 1 + `level`

Must be >= 0.01.

Affects the durability of tool items like science packs, repair tools and armor.

### accumulator_capacity_multiplier :: double optional

Default: 1 + `level`

Must be >= 0.01.

### flying_robot_max_energy_multiplier :: double optional

Default: 1 + `level`

Must be >= 0.01.

### range_multiplier :: double optional

Default: min(1 + 0.1 * `level`, 3)

Must be within `[1, 3]`.

Affects the range of attack parameters, e.g. those used by combat robots, units, guns and turrets.

### asteroid_collector_collection_radius_bonus :: double optional

Default: Value of `level`

Must be >= 0.

Performance warning: the navigation has to pre-calculate ranges for the highest tier collector possible, so you should keep this collection radius within reasonable values.

### equipment_grid_width_bonus :: int16 optional

Default: Value of `level`

### equipment_grid_height_bonus :: int16 optional

Default: Value of `level`

### electric_pole_wire_reach_bonus :: float optional

Default: 2 * `level`

Must be >= 0.

### electric_pole_supply_area_distance_bonus :: float optional

Default: Value of `level`

Must be >= 0.

### beacon_supply_area_distance_bonus :: float optional

Default: clamp(`level`, 0, 64)

Only affects beacons with BeaconPrototype::quality_affects_supply_area_distance set.

Must be >= 0 and <= 64.

### mining_drill_mining_radius_bonus :: float optional

Default: Value of `level`

Only affects mining drills with MiningDrillPrototype::quality_affects_mining_radius set.

Must be >= 0.

### logistic_cell_charging_station_count_bonus :: uint32 optional

Default: Value of `level`

Only affects roboports with RoboportPrototype::charging_station_count_affected_by_quality set.

Only affects roboport equipment with RoboportEquipmentPrototype::charging_station_count_affected_by_quality set.

### beacon_module_slots_bonus :: ItemStackIndex optional

Default: Value of `level`

Only affects beacons with BeaconPrototype::quality_affects_module_slots set.

### crafting_machine_module_slots_bonus :: ItemStackIndex optional

Default: Value of `level`

Only affects crafting machines with CraftingMachinePrototype::quality_affects_module_slots set.

Will be ignored by crafting machines with CraftingMachinePrototype::module_slots_quality_bonus set.

### mining_drill_module_slots_bonus :: ItemStackIndex optional

Default: Value of `level`

Only affects mining drills with MiningDrillPrototype::quality_affects_module_slots set.

### lab_module_slots_bonus :: ItemStackIndex optional

Default: Value of `level`

Only affects labs with LabPrototype::quality_affects_module_slots set.

## Overridden Properties

### name :: string

Unique textual identification of the prototype. May only contain alphanumeric characters, dashes and underscores. May not exceed a length of 200 characters.

Requires Space Age to create prototypes with name other than `normal` or `quality-unknown`.