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

# Factorio Prototype Docs Version 2.0.7

## FluidEnergySource :: struct

Inherits from BaseEnergySource

## Properties

- default
- sorted

type | :: `"fluid"` |
fluid_box | :: FluidBox | All standard fluid box configurations are acceptable, but the type must be `"input"` or `"input-output"` to function correctly. [...]
All standard fluid box configurations are acceptable, but the type must be `"input"` or `"input-output"` to function correctly. [...]
smoke optional | :: array[SmokeSource] |
light_flicker optional | :: LightFlickeringDefinition |
effectivity optional | :: double | `1` means 100% effectivity. [...]
`1` means 100% effectivity. [...]
burns_fluid optional | :: bool | If set to `true`, the energy source will calculate power based on the fluid's `fuel_value`, else it will calculate based on fluid temperature.
If set to `true`, the energy source will calculate power based on the fluid's `fuel_value`, else it will calculate based on fluid temperature.
scale_fluid_usage optional | :: bool | If set to `true`, the energy source will consume as much fluid as required to produce the desired power, otherwise it will consume as much as it is allowed to, wasting any excess.
If set to `true`, the energy source will consume as much fluid as required to produce the desired power, otherwise it will consume as much as it is allowed to, wasting any excess.
destroy_non_fuel_fluid optional | :: bool | Property is only used when `burns_fluid` is `true` and the fluid has a fuel_value of `0`, or when `burns_fluid` is `false` and the fluid is at its `default_temperature`. [...]
Property is only used when `burns_fluid` is `true` and the fluid has a fuel_value of `0`, or when `burns_fluid` is `false` and the fluid is at its `default_temperature`. [...]
fluid_usage_per_tick optional | :: FluidAmount | The number of fluid units the energy source uses per tick. [...]
The number of fluid units the energy source uses per tick. [...]
maximum_temperature optional | :: float | `0` means unlimited maximum temperature. [...]
`0` means unlimited maximum temperature. [...]

Inherited from BaseEnergySource

emissions_per_minute optional | :: dictionary[AirbornePollutantID → double] | The pollution an entity emits per minute at full energy consumption. [...]
The pollution an entity emits per minute at full energy consumption. [...]
render_no_power_icon optional | :: bool | Whether to render the "no power" icon if the entity is low on power. [...]
Whether to render the "no power" icon if the entity is low on power. [...]
render_no_network_icon optional | :: bool | Whether to render the "no network" icon if the entity is not connected to an electric network.
Whether to render the "no network" icon if the entity is not connected to an electric network.

fluid_box | :: FluidBox | All standard fluid box configurations are acceptable, but the type must be `"input"` or `"input-output"` to function correctly. [...]
All standard fluid box configurations are acceptable, but the type must be `"input"` or `"input-output"` to function correctly. [...]
type | :: `"fluid"` |
burns_fluid optional | :: bool | If set to `true`, the energy source will calculate power based on the fluid's `fuel_value`, else it will calculate based on fluid temperature.
If set to `true`, the energy source will calculate power based on the fluid's `fuel_value`, else it will calculate based on fluid temperature.
destroy_non_fuel_fluid optional | :: bool | Property is only used when `burns_fluid` is `true` and the fluid has a fuel_value of `0`, or when `burns_fluid` is `false` and the fluid is at its `default_temperature`. [...]
Property is only used when `burns_fluid` is `true` and the fluid has a fuel_value of `0`, or when `burns_fluid` is `false` and the fluid is at its `default_temperature`. [...]
effectivity optional | :: double | `1` means 100% effectivity. [...]
`1` means 100% effectivity. [...]
fluid_usage_per_tick optional | :: FluidAmount | The number of fluid units the energy source uses per tick. [...]
The number of fluid units the energy source uses per tick. [...]
light_flicker optional | :: LightFlickeringDefinition |
maximum_temperature optional | :: float | `0` means unlimited maximum temperature. [...]
`0` means unlimited maximum temperature. [...]
scale_fluid_usage optional | :: bool | If set to `true`, the energy source will consume as much fluid as required to produce the desired power, otherwise it will consume as much as it is allowed to, wasting any excess.
If set to `true`, the energy source will consume as much fluid as required to produce the desired power, otherwise it will consume as much as it is allowed to, wasting any excess.
smoke optional | :: array[SmokeSource] |

Inherited from BaseEnergySource

emissions_per_minute optional | :: dictionary[AirbornePollutantID → double] | The pollution an entity emits per minute at full energy consumption. [...]
The pollution an entity emits per minute at full energy consumption. [...]
render_no_network_icon optional | :: bool | Whether to render the "no network" icon if the entity is not connected to an electric network.
Whether to render the "no network" icon if the entity is not connected to an electric network.
render_no_power_icon optional | :: bool | Whether to render the "no power" icon if the entity is low on power. [...]
Whether to render the "no power" icon if the entity is low on power. [...]

## Properties

### type :: `"fluid"`

### fluid_box :: FluidBox

All standard fluid box configurations are acceptable, but the type must be `"input"` or `"input-output"` to function correctly. `scale_fluid_usage = true`, `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 :: array[SmokeSource] optional

### light_flicker :: LightFlickeringDefinition optional

### effectivity :: double optional

Default: `1`

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

### burns_fluid :: bool optional

Default: `false`

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

### scale_fluid_usage :: bool optional

Default: `false`

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

### destroy_non_fuel_fluid :: bool optional

Default: `true`

Property is only used when `burns_fluid` is `true` and the fluid has a fuel_value of `0`, or when `burns_fluid` is `false` and the fluid is at its `default_temperature`.

In those 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 :: FluidAmount optional

Default: `0`

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` is `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` is `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. More context on the forums.

### maximum_temperature :: float optional

Default: `0`

`0` means unlimited maximum temperature. If this is non-zero while `scale_fluid_usage` is `false` and `fluid_usage_per_tick` is not specified, the game will use this value to calculate `fluid_usage_per_tick`. To do that, the filter on the `fluid_box` must be set.

Only loaded if `burns_fluid` is `false`.

Type used in

- EnergySource
- LoaderPrototype::energy_source