Types/IconSpecification
The prototype docs have moved to a new website with an improved format. This documentation can now be found here: https://lua-api.factorio.com/latest/index-prototype.html
This wiki page is no longer updated and will be removed at some point in the future, so please update your browser bookmarks or other links that sent you here. If you'd like to contribute to the new docs, you can leave your feedback on the forums.
Basics
Specifies the icon of an entity/item/technology/recipe etc. The properties are specified directly in the prototype, not in another sub-property.
Either icons
and optionally icon_size
, or both icon
and icon_size
have to be specified. If both icons
and icon
are defined, icon
is ignored.
Prototype properties: Option 1
icons
Type: Types/table of Types/IconData
Can't be an empty table. See Types/IconData#Notes for further notes on icon layering and its behaviour.
icon_size
Type: Types/SpriteSizeType
Mandatory if icon_size
is not specified inside all instances of Types/IconData inside icons
. The size of the square icon, in pixels, e.g. 32 for a 32px by 32px icon.
icon_mipmaps
Type: Types/uint8
Default: 0
Icons of reduced size will be used at decreased scale. 0 or 1 mipmaps is a single image. The file must contain 1/2 size images with a geometric-ratio, for each mipmap level. Each next level is aligned to the upper-left corner. Example sequence: 128x128@(0,0), 64x64@(128,0), 32x32@(196,0) is 3 mipmaps.
See also Factorio Friday Facts #291 about the visual effects of icon mipmaps.
Prototype properties: Option 2
icon
Type: Types/FileName
Path to the icon file.
icon_size
Type: Types/SpriteSizeType
Mandatory. The size of the square icon, in pixels, e.g. 32 for a 32px by 32px icon.
icon_mipmaps
Type: Types/uint8
Default: 0
Icons of reduced size will be used at decreased scale. 0 or 1 mipmaps is a single image. The file must contain 1/2 size images with a geometric-ratio, for each mipmap level. Each next level is aligned to the upper-left corner. Example sequence: 128x128@(0,0), 64x64@(128,0), 32x32@(196,0) is 3 mipmaps.
See also Factorio Friday Facts #291 about the visual effects of icon mipmaps.
Examples
Simple icon with size:
icon = "__base__/graphics/icons/fluid/heavy-oil.png",
icon_size = 32,
Layered icon, size defined outside of layers:
icon_size = 32,
icons = {
{
icon = "__base__/graphics/icons/fluid/barreling/empty-barrel.png"
},
{
icon = "__base__/graphics/icons/fluid/barreling/barrel-side-mask.png",
tint = { a = 0.75, b = 0, g = 0, r = 0 }
},
{
icon = "__base__/graphics/icons/fluid/barreling/barrel-hoop-top-mask.png",
tint = { a = 0.75, b = 0.5, g = 0.5, r = 0.5 }
}
}
Layered icon, size defined per layer:
icons = {
{
icon = "__base__/graphics/icons/fluid/barreling/barrel-empty.png",
icon_size = 32
},
{
icon = "__base__/graphics/icons/fluid/barreling/barrel-empty-side-mask.png",
icon_size = 32,
tint = { a = 0.75, b = 0, g = 0, r = 0 }
},
{
icon = "__base__/graphics/icons/fluid/barreling/barrel-empty-top-mask.png",
icon_size = 32,
tint = { a = 0.75, b = 0.5, g = 0.5, r = 0.5 }
},
{
icon = "__base__/graphics/icons/fluid/crude-oil.png",
icon_size = 32,
scale = 0.5,
shift = {7, 8 }
}
}