Types/EnergySource

From Official Factorio Wiki
Revision as of 10:42, 21 September 2023 by BilkaBot (talk | contribs) (Updated styling of prototype doc migration note)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The prototype docs have moved to a new website with an improved format. This documentation page can now be found here: https://lua-api.factorio.com/latest/types/EnergySource.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 way the entity gets its energy.

type

Type: Types/string

Mandatory. Only valid values are "electric", "burner", "heat", "fluid" or "void", it specifies the type of the energy source to be used.

emissions_per_minute

Type: Types/double

Default: 0

Optional. The pollution an entity emits per minute at full energy consumption. emissions_per_minute is exactly the value that is shown in the entity tooltip.

render_no_power_icon

Type: Types/bool

Default: true

Optional. Whether to render the Electricity-icon-red.png icon on the entity if it is low on power. Also applies to Fuel-icon-red.png when using a burner energy source.

render_no_network_icon

Type: Types/bool

Default: true

Optional. Whether to render the Electricity-icon-unplugged.png icon on the entity if it is not connected to a electric network.

Electric energy source

buffer_capacity

Type: Types/Energy

Optional. How much energy the entity holds.

usage_priority

Type: Types/ElectricUsagePriority

Mandatory.

input_flow_limit

Type: Types/Energy

Default: max double

Optional. The rate at which energy can be taken, from the network, to refill the energy buffer. 0 means no transfer.

output_flow_limit

Type: Types/Energy

Default: max double

Optional. The rate at which energy can be provided, to the network, from the energy buffer. 0 means no transfer.

drain

Type: Types/Energy

Optional. How much energy (per second) will be continuously removed from the energy buffer. In game, this is shown in the tooltip as "Min. [Minimum] Consumption". Applied as a constant consumption-per-tick, even when the entity has the property active false.

Burner

fuel_inventory_size

Type: Types/ItemStackIndex

Mandatory.

burnt_inventory_size

Type: Types/ItemStackIndex

Default: 0

Optional.

smoke

Type: Types/table of Types/SmokeSource

Optional. Array of 1 or more smoke sources.

light_flicker

Type: Types/LightFlickeringDefinition

Optional.

effectivity

Type: Types/double

Default: 1

Optional. 1 means 100% effectivity. Must be greater than 0. Multiplier of the energy output.

fuel_category

Type: Types/string

Default: "chemical"

Optional. The energy source can be used with fuel from this fuel category. For a list of built-in categories, see Data.raw#fuel-category.

If fuel_categories is defined, fuel_category is ignored.

fuel_categories

Type: Types/table of Types/string

Optional. Same as above, only one of them can exist. For a list of built-in categories, see Data.raw#fuel-category.

Takes precedence over fuel_category.

Heat energy source

max_temperature

Type: Types/double

Mandatory. max_temperature must be >= default_temperature.

default_temperature

Type: Types/double

Default: 15

Optional.

specific_heat

Type: Types/Energy

Mandatory.

max_transfer

Type: Types/Energy

Mandatory.

min_temperature_gradient

Type: Types/double

Default: 1

Optional.

min_working_temperature

Type: Types/double

Default: 15

Optional. min_working_temperature must be >= default_temperature. min_working_temperature must be <= max_temperature.

minimum_glow_temperature

Type: Types/float

Default: 1

pipe_covers

Type: Types/Sprite4Way

Optional.

heat_pipe_covers

Type: Types/Sprite4Way

Optional.

heat_picture

Type: Types/Sprite4Way

Optional.

heat_glow

Type: Types/Sprite4Way

Optional.

connections

Type: Types/table of Types/HeatConnection

Optional. The table may only contain up to 32 connections.

Void energy source

Void is free energy, there are no additional entries required.

  energy_source = {type = "void"}

Fluid energy source

fluid_box

Type: Types/FluidBox

Mandatory. All standard fluid box configurations are acceptable, but the type must be "input" or "input-output" to function correctly. Scale_fluid_usage, fluid_usage_per_tick or a filter on the fluidbox must be set to be able to calculate the fluid usage of the energy source.

smoke

Type: Types/table of Types/SmokeSource

Optional. Array of 1 or more smoke sources.

light_flicker

Type: Types/LightFlickeringDefinition

Optional.

effectivity

Type: Types/double

Default: 1

Optional. 1 means 100% effectivity. Must be greater than 0. Multiplier of the energy output.

burns_fluid

Type: Types/bool

Default: false

Optional. If set to true, the energy source will calculate power based on the fluid's fuel_value entry, else it will calculate based on fluid temperature.

scale_fluid_usage

Type: Types/bool

Default: false

Optional. If set to true, the energy source will consume as much fluid as required to produce the desired power, if set to false it will consume as much as it is allowed to, wasting any excess.

destroy_non_fuel_fluid

Type: Types/bool

Default: true

Optional. This property is used when:

  • burns_fluid is true and the fluid has a fuel_value of 0
  • or burns_fluid is false and the fluid is at default temperature

In these cases, this property determines whether the fluid should be destroyed, meaning that the fluid is consumed at the rate of fluid_usage_per_tick, without producing any power.

fluid_usage_per_tick

Type: Types/double

Default: 0

Optional. The number of fluid units the energy source uses per tick. If used with scale_fluid_usage, this specifies the maximum. If this value is not set, scale_energy_usage = false and a fluid box filter is set, the game will attempt to calculate this value from the fluid box filter's fluid's fuel_value or heat_capacity and the entity's energy_usage. If burns_fluid is false, maximum_temperature will also be used. If the attempt of the game to calculate this value fails ( scale_energy_usage = false and a fluid box filter is set), then scale_energy_usage will be forced to true, to prevent the energy source from being an infinite fluid sink.[1]

maximum_temperature

Type: Types/double

Default: 0, meaning unlimited

If it is specified while scale_fluid_usage = false and fluid_usage_per_tick is not specified, the game will use this value to calculate fluid_usage_per_tick.

Prototype properties that use this type