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

# Factorio Prototype Docs Version 2.0.77

# UpgradeItemPrototype - Prototype Docs

## UpgradeItemPrototype 'upgrade-item'

An upgrade planner.

For an entity to be allowed as an upgrade source, it must be minable, may not have "not-upgradable" flag set and may not be hidden. Additionally, the source entity's mining result must not be an item product that is hidden. Mining results with no item products are allowed.

For an entity to be allowed as an upgrade target, it must have least 1 item that builds it that isn't hidden.

For two entities to be upgrades of each other, the two entities must have the same fast replaceable group, the same collision box and the same collision mask. Additionally, underground belts cannot be upgraded to transport belts and vice versa.

For an entity to be automatically upgraded to another entity without configuring the upgrade planner, the next upgrade of the upgrade source entity must be set.

Inherits from SelectionToolPrototype « ItemWithLabelPrototype « ItemPrototype « Prototype « PrototypeBase

## Properties

- default
- sorted

No new properties

Inherited from SelectionToolPrototype

select[overridden] | :: SelectionModeData | The SelectionModeData::mode is hardcoded to `"upgrade"`. [...]
The SelectionModeData::mode is hardcoded to `"upgrade"`. [...]
alt_select[overridden] | :: SelectionModeData | The SelectionModeData::mode is hardcoded to `"cancel-upgrade"`. [...]
The SelectionModeData::mode is hardcoded to `"cancel-upgrade"`. [...]
super_forced_select optional | :: SelectionModeData |
reverse_select optional | :: SelectionModeData |
alt_reverse_select optional | :: SelectionModeData | Settings for how the selection tool alt-reverse-selects things in-game (using SHIFT + Right mouse button).
Settings for how the selection tool alt-reverse-selects things in-game (using SHIFT + Right mouse button).
always_include_tiles[overridden] optional | :: boolean | This property is hardcoded to `false`.
This property is hardcoded to `false`.
mouse_cursor optional | :: MouseCursorID |
skip_fog_of_war optional | :: boolean |

Inherited from ItemWithLabelPrototype

default_label_color optional | :: Color | The default label color the item will use.
The default label color the item will use.
draw_label_for_cursor_render[overridden] optional | :: boolean | If the item will draw its label when held in the cursor in place of the item count.
If the item will draw its label when held in the cursor in place of the item count.

Inherited from ItemPrototype

stack_size[overridden] | :: `1` | Count of items of the same name that can be stored in one inventory slot. [...]
Count of items of the same name that can be stored in one inventory slot. [...]
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. [...]
dark_background_icons optional | :: array[IconData] | Can't be an empty array.
Can't be an empty array.
dark_background_icon optional | :: FileName | If this is set, it is used to show items in alt-mode instead of the normal item icon. [...]
If this is set, it is used to show items in alt-mode instead of the normal item icon. [...]
dark_background_icon_size optional | :: SpriteSizeType | The size of the square icon, in pixels. [...]
The size of the square icon, in pixels. [...]
place_result optional | :: EntityID | Name of the EntityPrototype that can be built using this item. [...]
Name of the EntityPrototype that can be built using this item. [...]
place_as_equipment_result optional | :: EquipmentID |
fuel_category optional | :: FuelCategoryID | Must exist when a nonzero fuel_value is defined.
Must exist when a nonzero fuel_value is defined.
burnt_result optional | :: ItemID | The item that is the result when this item gets burned as fuel.
The item that is the result when this item gets burned as fuel.
spoil_result optional | :: ItemID |
plant_result optional | :: EntityID |
place_as_tile optional | :: PlaceAsTile |
pictures optional | :: SpriteVariations | Used to give the item multiple different icons so that they look less uniform on belts. [...]
Used to give the item multiple different icons so that they look less uniform on belts. [...]
flags optional | :: ItemPrototypeFlags | Specifies some properties of the item.
Specifies some properties of the item.
spoil_ticks optional | :: uint32 |
fuel_value optional | :: Energy | Amount of energy the item gives when used as fuel. [...]
Amount of energy the item gives when used as fuel. [...]
fuel_acceleration_multiplier optional | :: double | Must be 0 or positive.
Must be 0 or positive.
fuel_top_speed_multiplier optional | :: double | Must be 0 or positive.
Must be 0 or positive.
fuel_emissions_multiplier optional | :: double |
fuel_acceleration_multiplier_quality_bonus optional | :: double | Additional fuel acceleration multiplier per quality level. [...]
Additional fuel acceleration multiplier per quality level. [...]
fuel_top_speed_multiplier_quality_bonus optional | :: double | Additional fuel top speed multiplier per quality level. [...]
Additional fuel top speed multiplier per quality level. [...]
weight optional | :: Weight | The default weight is calculated automatically from recipes and falls back to UtilityConstants::default_item_weight. [...]
The default weight is calculated automatically from recipes and falls back to UtilityConstants::default_item_weight. [...]
ingredient_to_weight_coefficient optional | :: double |
fuel_glow_color optional | :: Color | Colors the glow of the burner energy source when this fuel is burned. [...]
Colors the glow of the burner energy source when this fuel is burned. [...]
open_sound optional | :: Sound |
close_sound optional | :: Sound |
pick_sound optional | :: Sound |
drop_sound optional | :: Sound |
inventory_move_sound optional | :: Sound |
default_import_location optional | :: SpaceLocationID |
color_hint optional | :: ColorHintSpecification | Only used by hidden setting, support may be limited.
Only used by hidden setting, support may be limited.
has_random_tint optional | :: boolean |
spoil_to_trigger_result optional | :: SpoilToTriggerResult |
destroyed_by_dropping_trigger optional | :: Trigger | The effect/trigger that happens when an item is destroyed by being dropped on a TilePrototype marked as destroying dropped items. [...]
The effect/trigger that happens when an item is destroyed by being dropped on a TilePrototype marked as destroying dropped items. [...]
rocket_launch_products optional | :: array[ItemProductPrototype] |
send_to_orbit_mode optional | :: SendToOrbitMode | The way this item works when we try to send it to the orbit on its own. [...]
The way this item works when we try to send it to the orbit on its own. [...]
moved_to_hub_when_building optional | :: boolean | Whether this item should be moved to the hub when space platform performs building, upgrade or deconstruction and is left with this item. [...]
Whether this item should be moved to the hub when space platform performs building, upgrade or deconstruction and is left with this item. [...]
random_tint_color optional | :: Color | Randomly tints item instances on belts and in the world. [...]
Randomly tints item instances on belts and in the world. [...]
spoil_level optional | :: uint8 | Used by Inserters with spoil priority. [...]
Used by Inserters with spoil priority. [...]
auto_recycle optional | :: boolean | Whether the item should be included in the self-recycling recipes automatically generated by the quality mod. [...]
Whether the item should be included in the self-recycling recipes automatically generated by the quality mod. [...]

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

No new properties

Inherited from SelectionToolPrototype

alt_select[overridden] | :: SelectionModeData | The SelectionModeData::mode is hardcoded to `"cancel-upgrade"`. [...]
The SelectionModeData::mode is hardcoded to `"cancel-upgrade"`. [...]
select[overridden] | :: SelectionModeData | The SelectionModeData::mode is hardcoded to `"upgrade"`. [...]
The SelectionModeData::mode is hardcoded to `"upgrade"`. [...]
alt_reverse_select optional | :: SelectionModeData | Settings for how the selection tool alt-reverse-selects things in-game (using SHIFT + Right mouse button).
Settings for how the selection tool alt-reverse-selects things in-game (using SHIFT + Right mouse button).
always_include_tiles[overridden] optional | :: boolean | This property is hardcoded to `false`.
This property is hardcoded to `false`.
mouse_cursor optional | :: MouseCursorID |
reverse_select optional | :: SelectionModeData |
skip_fog_of_war optional | :: boolean |
super_forced_select optional | :: SelectionModeData |

Inherited from ItemWithLabelPrototype

default_label_color optional | :: Color | The default label color the item will use.
The default label color the item will use.
draw_label_for_cursor_render[overridden] optional | :: boolean | If the item will draw its label when held in the cursor in place of the item count.
If the item will draw its label when held in the cursor in place of the item count.

Inherited from ItemPrototype

stack_size[overridden] | :: `1` | Count of items of the same name that can be stored in one inventory slot. [...]
Count of items of the same name that can be stored in one inventory slot. [...]
auto_recycle optional | :: boolean | Whether the item should be included in the self-recycling recipes automatically generated by the quality mod. [...]
Whether the item should be included in the self-recycling recipes automatically generated by the quality mod. [...]
burnt_result optional | :: ItemID | The item that is the result when this item gets burned as fuel.
The item that is the result when this item gets burned as fuel.
close_sound optional | :: Sound |
color_hint optional | :: ColorHintSpecification | Only used by hidden setting, support may be limited.
Only used by hidden setting, support may be limited.
dark_background_icon optional | :: FileName | If this is set, it is used to show items in alt-mode instead of the normal item icon. [...]
If this is set, it is used to show items in alt-mode instead of the normal item icon. [...]
dark_background_icon_size optional | :: SpriteSizeType | The size of the square icon, in pixels. [...]
The size of the square icon, in pixels. [...]
dark_background_icons optional | :: array[IconData] | Can't be an empty array.
Can't be an empty array.
default_import_location optional | :: SpaceLocationID |
destroyed_by_dropping_trigger optional | :: Trigger | The effect/trigger that happens when an item is destroyed by being dropped on a TilePrototype marked as destroying dropped items. [...]
The effect/trigger that happens when an item is destroyed by being dropped on a TilePrototype marked as destroying dropped items. [...]
drop_sound optional | :: Sound |
flags optional | :: ItemPrototypeFlags | Specifies some properties of the item.
Specifies some properties of the item.
fuel_acceleration_multiplier optional | :: double | Must be 0 or positive.
Must be 0 or positive.
fuel_acceleration_multiplier_quality_bonus optional | :: double | Additional fuel acceleration multiplier per quality level. [...]
Additional fuel acceleration multiplier per quality level. [...]
fuel_category optional | :: FuelCategoryID | Must exist when a nonzero fuel_value is defined.
Must exist when a nonzero fuel_value is defined.
fuel_emissions_multiplier optional | :: double |
fuel_glow_color optional | :: Color | Colors the glow of the burner energy source when this fuel is burned. [...]
Colors the glow of the burner energy source when this fuel is burned. [...]
fuel_top_speed_multiplier optional | :: double | Must be 0 or positive.
Must be 0 or positive.
fuel_top_speed_multiplier_quality_bonus optional | :: double | Additional fuel top speed multiplier per quality level. [...]
Additional fuel top speed multiplier per quality level. [...]
fuel_value optional | :: Energy | Amount of energy the item gives when used as fuel. [...]
Amount of energy the item gives when used as fuel. [...]
has_random_tint optional | :: boolean |
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.
ingredient_to_weight_coefficient optional | :: double |
inventory_move_sound optional | :: Sound |
moved_to_hub_when_building optional | :: boolean | Whether this item should be moved to the hub when space platform performs building, upgrade or deconstruction and is left with this item. [...]
Whether this item should be moved to the hub when space platform performs building, upgrade or deconstruction and is left with this item. [...]
open_sound optional | :: Sound |
pick_sound optional | :: Sound |
pictures optional | :: SpriteVariations | Used to give the item multiple different icons so that they look less uniform on belts. [...]
Used to give the item multiple different icons so that they look less uniform on belts. [...]
place_as_equipment_result optional | :: EquipmentID |
place_as_tile optional | :: PlaceAsTile |
place_result optional | :: EntityID | Name of the EntityPrototype that can be built using this item. [...]
Name of the EntityPrototype that can be built using this item. [...]
plant_result optional | :: EntityID |
random_tint_color optional | :: Color | Randomly tints item instances on belts and in the world. [...]
Randomly tints item instances on belts and in the world. [...]
rocket_launch_products optional | :: array[ItemProductPrototype] |
send_to_orbit_mode optional | :: SendToOrbitMode | The way this item works when we try to send it to the orbit on its own. [...]
The way this item works when we try to send it to the orbit on its own. [...]
spoil_level optional | :: uint8 | Used by Inserters with spoil priority. [...]
Used by Inserters with spoil priority. [...]
spoil_result optional | :: ItemID |
spoil_ticks optional | :: uint32 |
spoil_to_trigger_result optional | :: SpoilToTriggerResult |
weight optional | :: Weight | The default weight is calculated automatically from recipes and falls back to UtilityConstants::default_item_weight. [...]
The default weight is calculated automatically from recipes and falls back to UtilityConstants::default_item_weight. [...]

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

## Overridden Properties

### stack_size :: `1`

Count of items of the same name that can be stored in one inventory slot. Must be 1 when the `"not-stackable"` flag is set.

#### Example

    stack_size = 1

### draw_label_for_cursor_render :: boolean optional

Default: `true`

If the item will draw its label when held in the cursor in place of the item count.

### select :: SelectionModeData

The SelectionModeData::mode is hardcoded to `"upgrade"`.

The filters are parsed, but then ignored and forced to be empty.

### alt_select :: SelectionModeData

The SelectionModeData::mode is hardcoded to `"cancel-upgrade"`.

The filters are parsed, but then ignored and forced to be empty.

### always_include_tiles :: boolean optional

Default: `false`

This property is hardcoded to `false`.