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

# Factorio Prototype Docs Version 2.0.7

## ElementImageSetLayer :: struct or Sprite

How the sprites are laid out graphically when using a composition type element image set layer.
How the sprites are stretched when using a composition type element image set layer.

If this is loaded as a Sprite, it gets used as `center`.

## Properties

- default
- sorted

draw_type optional | :: `"inner"` or `"outer"` | Defines whether the border should be drawn inside the widget, which affects the padding and content size of the widget, or outside of the widget which doesn't affect size. [...]
Defines whether the border should be drawn inside the widget, which affects the padding and content size of the widget, or outside of the widget which doesn't affect size. [...]
type optional | :: `"none"` or `"composition"` |
tint optional | :: Color | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
center optional | :: Sprite | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
left optional | :: Sprite | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
left_top optional | :: Sprite | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
left_bottom optional | :: Sprite | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
right optional | :: Sprite | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
right_top optional | :: Sprite | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
right_bottom optional | :: Sprite | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
top optional | :: Sprite | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
bottom optional | :: Sprite | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
corner_size optional | :: uint16 or {uint16, uint16} | If this is a tuple, the first member of the tuple is width and the second is height. [...]
If this is a tuple, the first member of the tuple is width and the second is height. [...]
filename optional | :: FileName | Only loaded if `corner_size` is defined. [...]
Only loaded if `corner_size` is defined. [...]
position optional | :: MapPosition | Mandatory if `corner_size` is defined. [...]
Mandatory if `corner_size` is defined. [...]
load_in_minimal_mode optional | :: bool | Only loaded if `corner_size` is defined. [...]
Only loaded if `corner_size` is defined. [...]
top_width optional | :: SpriteSizeType | Only loaded if `corner_size` is defined. [...]
Only loaded if `corner_size` is defined. [...]
bottom_width optional | :: SpriteSizeType | Only loaded if `corner_size` is defined. [...]
Only loaded if `corner_size` is defined. [...]
left_height optional | :: SpriteSizeType | Only loaded if `corner_size` is defined. [...]
Only loaded if `corner_size` is defined. [...]
right_height optional | :: SpriteSizeType | Only loaded if `corner_size` is defined. [...]
Only loaded if `corner_size` is defined. [...]
center_width optional | :: SpriteSizeType | Only loaded if `corner_size` is defined. [...]
Only loaded if `corner_size` is defined. [...]
center_height optional | :: SpriteSizeType | Only loaded if `corner_size` is defined. [...]
Only loaded if `corner_size` is defined. [...]
scale optional | :: double | Only loaded if `corner_size` is defined. [...]
Only loaded if `corner_size` is defined. [...]
top_border optional | :: int32 | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
right_border optional | :: int32 | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
bottom_border optional | :: int32 | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
left_border optional | :: int32 | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
border optional | :: int32 | Sets `top_border`, `right_border`, `bottom_border` and `left_border`. [...]
Sets `top_border`, `right_border`, `bottom_border` and `left_border`. [...]
stretch_monolith_image_to_size optional | :: bool | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
left_tiling optional | :: bool | Tiling is used to make a side (not corner) texture repeat instead of being stretched.
Tiling is used to make a side (not corner) texture repeat instead of being stretched.
right_tiling optional | :: bool |
top_tiling optional | :: bool |
bottom_tiling optional | :: bool |
center_tiling_vertical optional | :: bool |
center_tiling_horizontal optional | :: bool |
overall_tiling_horizontal_size optional | :: uint16 | Overall tiling is used to make the overall texture repeat instead of being stretched.
Overall tiling is used to make the overall texture repeat instead of being stretched.
overall_tiling_horizontal_spacing optional | :: uint16 |
overall_tiling_horizontal_padding optional | :: uint16 |
overall_tiling_vertical_size optional | :: uint16 |
overall_tiling_vertical_spacing optional | :: uint16 |
overall_tiling_vertical_padding optional | :: uint16 |
custom_horizontal_tiling_sizes optional | :: array[uint32] |
opacity optional | :: double |
background_blur optional | :: bool |
background_blur_sigma optional | :: float |
top_outer_border_shift optional | :: int32 |
bottom_outer_border_shift optional | :: int32 |
right_outer_border_shift optional | :: int32 |
left_outer_border_shift optional | :: int32 |

background_blur optional | :: bool |
background_blur_sigma optional | :: float |
border optional | :: int32 | Sets `top_border`, `right_border`, `bottom_border` and `left_border`. [...]
Sets `top_border`, `right_border`, `bottom_border` and `left_border`. [...]
bottom optional | :: Sprite | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
bottom_border optional | :: int32 | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
bottom_outer_border_shift optional | :: int32 |
bottom_tiling optional | :: bool |
bottom_width optional | :: SpriteSizeType | Only loaded if `corner_size` is defined. [...]
Only loaded if `corner_size` is defined. [...]
center optional | :: Sprite | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
center_height optional | :: SpriteSizeType | Only loaded if `corner_size` is defined. [...]
Only loaded if `corner_size` is defined. [...]
center_tiling_horizontal optional | :: bool |
center_tiling_vertical optional | :: bool |
center_width optional | :: SpriteSizeType | Only loaded if `corner_size` is defined. [...]
Only loaded if `corner_size` is defined. [...]
corner_size optional | :: uint16 or {uint16, uint16} | If this is a tuple, the first member of the tuple is width and the second is height. [...]
If this is a tuple, the first member of the tuple is width and the second is height. [...]
custom_horizontal_tiling_sizes optional | :: array[uint32] |
draw_type optional | :: `"inner"` or `"outer"` | Defines whether the border should be drawn inside the widget, which affects the padding and content size of the widget, or outside of the widget which doesn't affect size. [...]
Defines whether the border should be drawn inside the widget, which affects the padding and content size of the widget, or outside of the widget which doesn't affect size. [...]
filename optional | :: FileName | Only loaded if `corner_size` is defined. [...]
Only loaded if `corner_size` is defined. [...]
left optional | :: Sprite | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
left_border optional | :: int32 | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
left_bottom optional | :: Sprite | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
left_height optional | :: SpriteSizeType | Only loaded if `corner_size` is defined. [...]
Only loaded if `corner_size` is defined. [...]
left_outer_border_shift optional | :: int32 |
left_tiling optional | :: bool | Tiling is used to make a side (not corner) texture repeat instead of being stretched.
Tiling is used to make a side (not corner) texture repeat instead of being stretched.
left_top optional | :: Sprite | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
load_in_minimal_mode optional | :: bool | Only loaded if `corner_size` is defined. [...]
Only loaded if `corner_size` is defined. [...]
opacity optional | :: double |
overall_tiling_horizontal_padding optional | :: uint16 |
overall_tiling_horizontal_size optional | :: uint16 | Overall tiling is used to make the overall texture repeat instead of being stretched.
Overall tiling is used to make the overall texture repeat instead of being stretched.
overall_tiling_horizontal_spacing optional | :: uint16 |
overall_tiling_vertical_padding optional | :: uint16 |
overall_tiling_vertical_size optional | :: uint16 |
overall_tiling_vertical_spacing optional | :: uint16 |
position optional | :: MapPosition | Mandatory if `corner_size` is defined. [...]
Mandatory if `corner_size` is defined. [...]
right optional | :: Sprite | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
right_border optional | :: int32 | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
right_bottom optional | :: Sprite | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
right_height optional | :: SpriteSizeType | Only loaded if `corner_size` is defined. [...]
Only loaded if `corner_size` is defined. [...]
right_outer_border_shift optional | :: int32 |
right_tiling optional | :: bool |
right_top optional | :: Sprite | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
scale optional | :: double | Only loaded if `corner_size` is defined. [...]
Only loaded if `corner_size` is defined. [...]
stretch_monolith_image_to_size optional | :: bool | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
tint optional | :: Color | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
top optional | :: Sprite | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
top_border optional | :: int32 | Only loaded if `type` is `"composition"`.
Only loaded if `type` is `"composition"`.
top_outer_border_shift optional | :: int32 |
top_tiling optional | :: bool |
top_width optional | :: SpriteSizeType | Only loaded if `corner_size` is defined. [...]
Only loaded if `corner_size` is defined. [...]
type optional | :: `"none"` or `"composition"` |

## Properties

### draw_type :: `"inner"` or `"outer"` optional

Default: `"inner"`

Defines whether the border should be drawn inside the widget, which affects the padding and content size of the widget, or outside of the widget which doesn't affect size. The outer draw type is most commonly used for shadows, glows and insets.

### type :: `"none"` or `"composition"` optional

Default: `"none"` if this has no other properties, otherwise `"composition"`

### tint :: Color optional

Default: `{r=1, g=1, b=1, a=1}`

Only loaded if `type` is `"composition"`.

### center :: Sprite optional

Only loaded if `type` is `"composition"`.

### left :: Sprite optional

Only loaded if `type` is `"composition"`.

### left_top :: Sprite optional

Only loaded if `type` is `"composition"`.

### left_bottom :: Sprite optional

Only loaded if `type` is `"composition"`.

### right :: Sprite optional

Only loaded if `type` is `"composition"`.

### right_top :: Sprite optional

Only loaded if `type` is `"composition"`.

### right_bottom :: Sprite optional

Only loaded if `type` is `"composition"`.

### top :: Sprite optional

Only loaded if `type` is `"composition"`.

### bottom :: Sprite optional

Only loaded if `type` is `"composition"`.

### corner_size :: uint16 or {uint16, uint16} optional

In base game, the corner size is 8 and the sides are 1px long and 8px wide.

If this is a tuple, the first member of the tuple is width and the second is height. Otherwise the size is both width and height.

Only loaded if `type` is `"composition"`.

#### Example

    {
      -- How an ElementImageSet is loaded which has only one layer, which uses the corner_size shown in the diagram
      base = {position = {0, 17}, corner_size = 8}
    }

### filename :: FileName optional

Default: The `default_tileset` set in GuiStyle

Only loaded if `corner_size` is defined. Only loaded if `type` is `"composition"`.

### position :: MapPosition optional

Mandatory if `corner_size` is defined. Only loaded if `type` is `"composition"`.

### load_in_minimal_mode :: bool optional

Default: `true`

Only loaded if `corner_size` is defined. Only loaded if `type` is `"composition"`.

### top_width :: SpriteSizeType optional

Default: `1`

Only loaded if `corner_size` is defined. Only loaded if `type` is `"composition"`.

### bottom_width :: SpriteSizeType optional

Default: `1`

Only loaded if `corner_size` is defined. Only loaded if `type` is `"composition"`.

### left_height :: SpriteSizeType optional

Default: `1`

Only loaded if `corner_size` is defined. Only loaded if `type` is `"composition"`.

### right_height :: SpriteSizeType optional

Default: `1`

Only loaded if `corner_size` is defined. Only loaded if `type` is `"composition"`.

### center_width :: SpriteSizeType optional

Default: `1`

Only loaded if `corner_size` is defined. Only loaded if `type` is `"composition"`.

### center_height :: SpriteSizeType optional

Default: `1`

Only loaded if `corner_size` is defined. Only loaded if `type` is `"composition"`.

### scale :: double optional

Default: `1`

Only loaded if `corner_size` is defined. Only loaded if `type` is `"composition"`.

### top_border :: int32 optional

Only loaded if `type` is `"composition"`.

### right_border :: int32 optional

Only loaded if `type` is `"composition"`.

### bottom_border :: int32 optional

Only loaded if `type` is `"composition"`.

### left_border :: int32 optional

Only loaded if `type` is `"composition"`.

### border :: int32 optional

Sets `top_border`, `right_border`, `bottom_border` and `left_border`.

Only loaded if `corner_size` is not defined. Only loaded if `type` is `"composition"`.

### stretch_monolith_image_to_size :: bool optional

Default: `true`

Only loaded if `type` is `"composition"`.

### left_tiling :: bool optional

Default: `false`

Tiling is used to make a side (not corner) texture repeat instead of being stretched.

### right_tiling :: bool optional

Default: `false`

### top_tiling :: bool optional

Default: `false`

### bottom_tiling :: bool optional

Default: `false`

### center_tiling_vertical :: bool optional

Default: `false`

### center_tiling_horizontal :: bool optional

Default: `false`

### overall_tiling_horizontal_size :: uint16 optional

Default: `0`

Overall tiling is used to make the overall texture repeat instead of being stretched.

### overall_tiling_horizontal_spacing :: uint16 optional

Default: `0`

### overall_tiling_horizontal_padding :: uint16 optional

Default: `0`

### overall_tiling_vertical_size :: uint16 optional

Default: `0`

### overall_tiling_vertical_spacing :: uint16 optional

Default: `0`

### overall_tiling_vertical_padding :: uint16 optional

Default: `0`

### custom_horizontal_tiling_sizes :: array[uint32] optional

### opacity :: double optional

Default: `1`

### background_blur :: bool optional

Default: `false`

### background_blur_sigma :: float optional

Default: `4` if `background_blur` is `true`

### top_outer_border_shift :: int32 optional

Default: `0`

### bottom_outer_border_shift :: int32 optional

Default: `0`

### right_outer_border_shift :: int32 optional

Default: `0`

### left_outer_border_shift :: int32 optional

Default: `0`

Type used in

- ElementImageSet
- ElementImageSet::base
- ElementImageSet::shadow
- ElementImageSet::glow