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

# Factorio Prototype Docs Version 2.0.7

## DecorativePrototype 'optimized-decorative' changed

Simple decorative purpose objects on the map, they have no health and some of them are removed when the player builds over. Usually used for grass patches, roots, small plants etc.

Prototype limited to 65535 total instances.

Inherits from Prototype « PrototypeBase

## Properties

- default
- sorted

pictures | :: SpriteVariations | Must contain at least 1 picture.
Must contain at least 1 picture.
stateless_visualisation new optional | :: StatelessVisualisations | Can be defined only when decorative is not "decal" (see `render_layer`).
Can be defined only when decorative is not "decal" (see `render_layer`).
stateless_visualisation_variations new optional | :: array[StatelessVisualisations] | Only loaded if `stateless_visualisation` is not defined. [...]
Only loaded if `stateless_visualisation` is not defined. [...]
collision_box optional | :: BoundingBox | Must contain the [0,0] point. [...]
Must contain the [0,0] point. [...]
render_layer optional | :: RenderLayer | When "decals" render layer is used, the decorative is treated as decal. [...]
When "decals" render layer is used, the decorative is treated as decal. [...]
grows_through_rail_path optional | :: bool |
tile_layer optional | :: int16 | Mandatory if `render_layer` = "decals". [...]
Mandatory if `render_layer` = "decals". [...]
decal_overdraw_priority optional | :: uint16 | Loaded only if `render_layer` = "decals". [...]
Loaded only if `render_layer` = "decals". [...]
collision_mask changed optional | :: CollisionMaskConnector | Defaults to the mask from UtilityConstants::default_collision_masks when indexed by `"decorative"`.
Defaults to the mask from UtilityConstants::default_collision_masks when indexed by `"decorative"`.
walking_sound optional | :: Sound |
trigger_effect optional | :: TriggerEffect | Called by DestroyDecorativesTriggerEffectItem.
Called by DestroyDecorativesTriggerEffectItem.
minimal_separation new optional | :: double |
target_count new optional | :: uint16 |
placed_effect new optional | :: TriggerEffect |
autoplace optional | :: AutoplaceSpecification |

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. [...]

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

pictures | :: SpriteVariations | Must contain at least 1 picture.
Must contain at least 1 picture.
autoplace optional | :: AutoplaceSpecification |
collision_box optional | :: BoundingBox | Must contain the [0,0] point. [...]
Must contain the [0,0] point. [...]
collision_mask changed optional | :: CollisionMaskConnector | Defaults to the mask from UtilityConstants::default_collision_masks when indexed by `"decorative"`.
Defaults to the mask from UtilityConstants::default_collision_masks when indexed by `"decorative"`.
decal_overdraw_priority optional | :: uint16 | Loaded only if `render_layer` = "decals". [...]
Loaded only if `render_layer` = "decals". [...]
grows_through_rail_path optional | :: bool |
minimal_separation new optional | :: double |
placed_effect new optional | :: TriggerEffect |
render_layer optional | :: RenderLayer | When "decals" render layer is used, the decorative is treated as decal. [...]
When "decals" render layer is used, the decorative is treated as decal. [...]
stateless_visualisation new optional | :: StatelessVisualisations | Can be defined only when decorative is not "decal" (see `render_layer`).
Can be defined only when decorative is not "decal" (see `render_layer`).
stateless_visualisation_variations new optional | :: array[StatelessVisualisations] | Only loaded if `stateless_visualisation` is not defined. [...]
Only loaded if `stateless_visualisation` is not defined. [...]
target_count new optional | :: uint16 |
tile_layer optional | :: int16 | Mandatory if `render_layer` = "decals". [...]
Mandatory if `render_layer` = "decals". [...]
trigger_effect optional | :: TriggerEffect | Called by DestroyDecorativesTriggerEffectItem.
Called by DestroyDecorativesTriggerEffectItem.
walking_sound optional | :: Sound |

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. [...]

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 new optional | :: LocalisedString | Provides additional description used in factoriopedia.
Provides additional description used in factoriopedia.
factoriopedia_simulation new 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 new optional | :: bool |
hidden_in_factoriopedia new optional | :: bool |
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 new optional | :: bool | 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 new optional | :: ItemSubGroupID | The name of an ItemSubGroup.
The name of an ItemSubGroup.

## Properties

### pictures :: SpriteVariations

Must contain at least 1 picture.

### stateless_visualisation :: StatelessVisualisations optional new

Can be defined only when decorative is not "decal" (see `render_layer`).

### stateless_visualisation_variations :: array[StatelessVisualisations] optional new

Only loaded if `stateless_visualisation` is not defined. Can be defined only when decorative is not "decal" (see `render_layer`).

### collision_box :: BoundingBox optional

Must contain the [0,0] point. Max radius of the collision box is 8.

### render_layer :: RenderLayer optional

Default: `"decorative"`

When "decals" render layer is used, the decorative is treated as decal. That means it will be rendered within tile layers instead of normal sprite layers.

### grows_through_rail_path :: bool optional

Default: `false`

### tile_layer :: int16 optional

Default: `0`

Mandatory if `render_layer` = "decals". This int16 is converted to a RenderLayer internally.

### decal_overdraw_priority :: uint16 optional

Default: `0`

Loaded only if `render_layer` = "decals". When decoratives are being spawned by EnemySpawnerPrototype::spawn_decoration or TurretPrototype::spawn_decoration, decals with `decal_overdraw_priority` greater than 0 will be filtered such that they don't overlap too much. If two or more decals would overlap, only the one with the largest value of `decal_overdraw_priority` is placed.

### collision_mask :: CollisionMaskConnector optional changed

Defaults to the mask from UtilityConstants::default_collision_masks when indexed by `"decorative"`.

### walking_sound :: Sound optional

### trigger_effect :: TriggerEffect optional

Called by DestroyDecorativesTriggerEffectItem.

### minimal_separation :: double optional new

Default: `0.0`

### target_count :: uint16 optional new

Default: `0`

### placed_effect :: TriggerEffect optional new

### autoplace :: AutoplaceSpecification optional