Claim set · data/claims/factorio-production.yaml

Factorio's production mechanics (factorio-data 2.1.23, base mod)

Game: Factorio.

A resource's mining_time is the seconds one unit takes to mine at mining speed 1, so a miner yields mining speed ÷ mining time units per second before bonuses. The four common ores (iron, copper, coal, stone) take 1 second; uranium ore takes 2. factorio-production/mining-time-rule

About: Factorio Resource harvesting

Value
{
 "iron-ore": 1,
 "copper-ore": 1,
 "coal": 1,
 "stone": 1,
 "uranium-ore": 2
}
CodeFactorio Prototype API, version 2.1.23 (machine-readable JSON) · MinableProperties.mining_timeHow many seconds are required to mine this object at 1 mining speed.factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/resources.lua#L79-L82name = "iron-ore", … mining_time = 1,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/resources.lua#L132-L135name = "stone", … mining_time = 1,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/resources.lua#L160-L166mining_time = 2, result = "uranium-ore", fluid_amount = 10, required_fluid = "sulfuric-acid"Mining · Mining speed formula — cross-check; the wiki's formula for the electric drill (speed 0.5)(1 + Mining Speed Modifier) * .5 / Mining time = Production rate (in resource/sec)Checked by claude, 2026-10-26 — read the resource() helper and the iron-ore, copper-ore, coal and stone entries (each mining_time = 1, L82, L100, L118, L135) and uranium-ore's minable block (L160-L166) at the pinned commit; the API's MinableProperties text gives the unit

The electric mining drill mines at speed 0.5, so it yields 0.5 ore per second (30 a minute) from a 1-second ore, and 0.25 per second from uranium. It draws 90 kW, covers a 5×5 area (search radius 2.49 from its center), and has 3 module slots. factorio-production/electric-mining-drill

About: Factorio Resource harvesting

Value
{
 "miningSpeed": 0.5,
 "orePerSecond": 0.5,
 "power": "90kW",
 "area": "5x5",
 "moduleSlots": 3
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/mining-drill.lua#L467-L468type = "mining-drill", name = "electric-mining-drill",factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/mining-drill.lua#L1749-L1759mining_speed = 0.5, … energy_usage = "90kW", resource_searching_radius = 2.49, … module_slots = 3,Factorio Prototype API 2.1.23: MiningDrillPrototype · resource_searching_radiusThis is 2.49 for electric mining drills (a 5x5 area) and 0.99 for burner mining drills (a 2x2 area).Checked by claude, 2026-10-26 — read the electric-mining-drill prototype, which opens at L467-L468 and sets its speed, power, radius and slots at L1749-L1759 after its graphics; ore per second is mining_speed ÷ mining_time (mining-time-rule)

Cited by: Factorio

The burner mining drill mines at speed 0.25 (0.25 ore per second from a 1-second ore, 15 a minute), burns chemical fuel at 150 kW, covers a 2×2 area (radius 0.99), and takes no beacon effects. factorio-production/burner-mining-drill

About: Factorio Resource harvesting

Value
{
 "miningSpeed": 0.25,
 "orePerSecond": 0.25,
 "power": "150kW",
 "area": "2x2"
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/mining-drill.lua#L1788-L1789type = "mining-drill", name = "burner-mining-drill",factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/mining-drill.lua#L1800-L1813mining_speed = 0.25, … allowed_effects = {}, -- no beacon effects on the burner drill … type = "burner", fuel_categories = {"chemical"},factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/mining-drill.lua#L1827energy_usage = "150kW",factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/mining-drill.lua#L1853resource_searching_radius = 0.99,Checked by claude, 2026-10-26 — read the burner-mining-drill prototype from L1788: mining_speed L1800, the empty allowed_effects with its comment L1809, the burner energy source L1810-L1813, energy_usage L1827 and the search radius L1853

Cited by: Factorio

The player mines by hand at mining speed 0.5, the electric drill's speed: 2 seconds for each unit of a 1-second ore before research bonuses. Uranium ore can't be mined by hand, since mining it uses a fluid. factorio-production/handmining

About: Factorio Resource harvesting

Value: 0.5 mining speed

Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L704-L705type = "character", name = "character",factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L976mining_speed = 0.5,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/mining-drill.lua#L1749 — the electric mining drill's speed, for comparisonmining_speed = 0.5,Factorio Prototype API, version 2.1.23 (machine-readable JSON) · MinableProperties.fluid_amountIf this is > 0, this object cannot be mined by hand.Mining · Mining by hand — cross-check; the wiki's hand-mining formula(1 + Force Modifier) * (1 + Character Modifier) * (Character mining speed) / Mining time = RateChecked by claude, 2026-10-26 — read the character prototype, which opens at L704-L705 and sets mining_speed = 0.5 at L976 after its light and graphics tables; uranium-ore's fluid_amount = 10 is at resources.lua L165

Cited by: Factorio

Ore patches run out: each unit a drill mines takes one unit from the tile it came from, and when every tile in a drill's area is empty the drill stops. Base drills drain at the default 100%; extra output from productivity bonuses doesn't come out of the patch. factorio-production/resource-depletion

About: Factorio Resource harvesting

WikiMining · Productivity and resource drainWhen the drill generates a non-productivity ore, it subtracts one ore from the patch.Mining · Drill typesWhen all resources in its mining area are exhausted, the drill will shutdown and an icon will appear on it.Mining · Productivity and resource drainbecause more ore is output than is removed from the patch, mining productivity extends the amount of ore generated from a patch.Factorio Prototype API, version 2.1.23 (machine-readable JSON) · MiningDrillPrototype.resource_drain_rate_percent — the field defaults to 100, and neither base drill sets it (mining-drill.lua)May not be `0` or larger than `100`.

How much ore a tile starts with comes from the map generator's noise expressions (resource-autoplace), not from a fixed number; that isn't covered here.

Cited by: Factorio

Crude oil is an infinite resource. A pumpjack (mining speed 1, one tile, 90 kW, 2 module slots) works in 1-second cycles on a resource whose base result is 10 crude oil; the oil pumped scales with the well's yield, which this set doesn't cover. Each cycle lowers the well's amount by 10, and the resource has a minimum of 60,000 against a normal of 300,000. factorio-production/crude-oil

About: Factorio Resource harvesting

Value
{
 "baseResult": 10,
 "cycleSeconds": 1,
 "depletion": 10,
 "minimum": 60000,
 "normal": 300000
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/resources.lua#L218-L242name = "crude-oil", … infinite = true, … minimum = 60000, normal = 300000, infinite_depletion_amount = 10, … mining_time = 1, … name = "crude-oil", amount = 10factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/mining-drill.lua#L1898-L1902energy_usage = "90kW", mining_speed = 1, resource_searching_radius = 0.49, vector_to_place_result = {0, 0}, module_slots = 2,Factorio Prototype API, version 2.1.23 (machine-readable JSON) · ResourceEntityPrototype.infinite_depletion_amountEvery time an infinite-type resource is decreased by mining, its current resource amount is lowered by this number.Mining · Infinite resources — the wiki's statement that output scales with yield; how yield is computed from the amount isn't givenThe output of the unmodified resource is the percentage yield of the tile currently used by the miner.Checked by claude, 2026-10-26 — read the crude-oil resource (L218-L242: infinite, minimum, normal, infinite_depletion_amount, and a minable result of 10 crude-oil per mining_time 1) and the pumpjack's power, speed, radius and slots (L1898-L1902)

The API documents minimum and normal only as non-zero for an infinite resource. The 10 per cycle is the base result; the wiki says output follows the well's percentage yield, and how that yield falls from the starting amount toward the floor isn't described in Wube's words read here.

Cited by: Factorio

Mining productivity research adds +10% to every mining drill's output per level: levels 1 to 3 cost 250, 500 and 1,000 units, and level 4 repeats without end at 2,500 × (level − 3) units, needing space science. factorio-production/mining-productivity

About: Factorio Tech tree

Value
{
 "perLevel": 0.1,
 "costs": [
  250,
  500,
  1000
 ],
 "infiniteFormula": "2500*(L - 3)"
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/technology.lua#L5224-L5236name = "mining-productivity-1", … type = "mining-drill-productivity-bonus", modifier = 0.1 … count = 250,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/technology.lua#L5300-L5324name = "mining-productivity-4", … modifier = 0.1 … prerequisites = {"mining-productivity-3", "space-science-pack"}, … count_formula = "2500*(L - 3)", … {"space-science-pack", 1} … max_level = "infinite",Checked by claude, 2026-10-26 — read mining-productivity-1 to -4 (L5224-L5330): each has one mining-drill-productivity-bonus effect of 0.1; counts 250, 500, 1000, then count_formula 2500*(L - 3) with max_level infinite and space science among its ingredients

A recipe's time (energy_required, 0.5 s when unset) is its seconds at crafting speed 1, and a machine divides it by its crafting speed: at speed 0.5 a 1-second recipe takes 2 seconds, at speed 2 half a second. factorio-production/crafting-speed-rule

About: Factorio Construction

Value
{
 "defaultRecipeSeconds": 0.5
}
PublisherFactorio Prototype API, version 2.1.23 (machine-readable JSON) · RecipePrototype.energy_requiredEquals the number of seconds it takes to craft at crafting speed `1`.Factorio Prototype API, version 2.1.23 (machine-readable JSON) · CraftingMachinePrototype.crafting_speed1 means that for example a 1 second long recipe take 1 second to craft. 0.5 means it takes 2 seconds, and 2 means it takes 0.5 seconds.Time · Crafting time — cross-check, and the player's speed (handcrafting)The player always crafts at speed 1 while assembling machines have different crafting speeds.

The API's JSON gives energy_required a default of 0.5; the gear, cable and circuit recipes leave it unset.

Cited by: Factorio

Three furnaces smelt: the stone furnace at crafting speed 1, and the steel and electric furnaces at 2. The stone and steel furnaces burn chemical fuel at 90 kW; the electric furnace draws 180 kW and has 2 module slots. An iron or copper plate (3.2 s) takes 3.2 s in a stone furnace and 1.6 s in the other two. factorio-production/furnaces

Value
{
 "stone-furnace": 1,
 "steel-furnace": 2,
 "electric-furnace": 2
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L1073-L1081crafting_categories = {"smelting"}, … energy_usage = "90kW", crafting_speed = 1, … type = "burner", fuel_categories = {"chemical"},factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L4858-L4866crafting_categories = {"smelting"}, … energy_usage = "90kW", crafting_speed = 2, … type = "burner", fuel_categories = {"chemical"},factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L4399-L4413module_slots = 2, … crafting_categories = {"smelting"}, … crafting_speed = 2, energy_usage = "180kW", … type = "electric",Checked by claude, 2026-10-26 — read the stone-furnace (from L1024), steel-furnace (from L4819) and electric-furnace (from L4379) prototypes: each has crafting_categories {smelting}; speeds 1, 2, 2; the two burner furnaces' fuel_categories {chemical}; times computed with crafting-speed-rule from the plate recipes (plate-recipes)

Cited by: Factorio, Production chain

Assembling machines 1, 2 and 3 craft at speeds 0.5, 0.75 and 1.25, drawing 75, 150 and 375 kW, with 0, 2 and 4 module slots. Machine 1 takes neither module nor beacon effects and can't craft recipes with fluids; machines 2 and 3 add the fluid category. factorio-production/assembling-machines

About: Factorio Construction

Value
{
 "assembling-machine-1": 0.5,
 "assembling-machine-2": 0.75,
 "assembling-machine-3": 1.25
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L3189-L3201crafting_categories = {"crafting", "advanced-crafting"}, crafting_speed = 0.5, … energy_usage = "75kW", … effect_receiver = {uses_module_effects = false, uses_beacon_effects = false, uses_surface_effects = true},factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L3338-L3348crafting_categories = {"crafting", "advanced-crafting", "crafting-with-fluid"}, crafting_speed = 0.75, … energy_usage = "150kW", module_slots = 2,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L5567-L5576crafting_categories = {"crafting", "advanced-crafting", "crafting-with-fluid"}, crafting_speed = 1.25, … energy_usage = "375kW", module_slots = 4,Checked by claude, 2026-10-26 — read assembling-machine-1 (from L3163: categories crafting and advanced-crafting, speed 0.5, 75kW, effect_receiver with uses_module_effects and uses_beacon_effects false, no module_slots), -2 (from L3257) and -3 (from L5486), which add crafting-with-fluid

Cited by: Factorio, Production chain

Smelting turns 1 iron or copper ore into 1 plate in 3.2 seconds, and 5 iron plates into 1 steel plate in 16 seconds. Smelting recipes run only in furnaces. factorio-production/plate-recipes

Value
{
 "iron-plate": 3.2,
 "copper-plate": 3.2,
 "steel-plate": 16
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/recipe.lua#L1442-L1458name = "copper-plate", categories = {"smelting"}, … energy_required = 3.2, ingredients = {{type = "item", name = "copper-ore", amount = 1}}, results = {{type="item", name="copper-plate", amount=1}}, … name = "iron-plate", categories = {"smelting"}, … energy_required = 3.2, ingredients = {{type = "item", name = "iron-ore", amount = 1}}, …factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/recipe.lua#L1473-L1480name = "steel-plate", categories = {"smelting"}, … enabled = false, energy_required = 16, ingredients = {{type = "item", name = "iron-plate", amount = 5}}, results = {{type="item", name="steel-plate", amount=1}},Checked by claude, 2026-10-26 — read the copper-plate, iron-plate and steel-plate recipes: categories {smelting}, which only the three furnaces list (furnaces); steel-plate is enabled = false until researched

Cited by: Factorio, Production chain

The core intermediates: a gear is 2 iron plates (0.5 s); copper cable is 1 copper plate for 2 cables (0.5 s); an electronic circuit is 1 iron plate and 3 cables (0.5 s); an advanced circuit is 2 electronic circuits, 2 plastic bars and 4 cables (6 s); a processing unit is 20 electronic circuits, 2 advanced circuits and 5 sulfuric acid (10 s, so only a machine that takes fluids can make it). factorio-production/intermediate-recipes

Value
{
 "iron-gear-wheel": 0.5,
 "copper-cable": 0.5,
 "electronic-circuit": 0.5,
 "advanced-circuit": 6,
 "processing-unit": 10
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/recipe.lua#L765-L780name = "iron-gear-wheel", ingredients = {{type = "item", name = "iron-plate", amount = 2}}, results = {{type="item", name="iron-gear-wheel", amount=1}}, … name = "electronic-circuit", … {type = "item", name = "iron-plate", amount = 1}, {type = "item", name = "copper-cable", amount = 3} … results = {{type="item", name="electronic-circuit", amount=1}},factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/recipe.lua#L883-L887name = "copper-cable", … ingredients = {{type = "item", name = "copper-plate", amount = 1}}, results = {{type="item", name="copper-cable", amount=2}},factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/recipe.lua#L2094-L2119name = "advanced-circuit", … energy_required = 6, … {type = "item", name = "electronic-circuit", amount = 2}, {type = "item", name = "plastic-bar", amount = 2}, {type = "item", name = "copper-cable", amount = 4} … results = {{type="item", name="advanced-circuit", amount=1}}, … name = "processing-unit", categories = {"crafting-with-fluid"}, …Checked by claude, 2026-10-26 — read the iron-gear-wheel, electronic-circuit, copper-cable, advanced-circuit and processing-unit recipes; the first three set no energy_required, so take the 0.5 s default (crafting-speed-rule); processing-unit's categories are {crafting-with-fluid}

Cited by: Factorio, Production chain

Science packs: automation (red) is 1 copper plate and 1 gear in 5 s; logistic (green) is 1 inserter and 1 transport belt in 6 s; military makes 2 from a piercing magazine, a grenade and 2 walls in 10 s; chemical (blue) makes 2 from 2 engine units, 3 advanced circuits and 1 sulfur in 24 s; production (purple) makes 3 from an electric furnace, a productivity module and 30 rails in 21 s; utility (yellow) makes 3 from 3 low density structures, 2 processing units and a flying robot frame in 21 s. Space science packs aren't crafted: a rocket launched with a satellite returns 1,000. factorio-production/science-pack-recipes

About: Factorio Tech tree

Value
{
 "automation": 5,
 "logistic": 6,
 "military": 10,
 "chemical": 24,
 "production": 21,
 "utility": 21,
 "spacePerSatellite": 1000
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/recipe.lua#L1002-L1034name = "automation-science-pack", … energy_required = 5, … {type = "item", name = "copper-plate", amount = 1}, {type = "item", name = "iron-gear-wheel", amount = 1} … results = {{type="item", name="automation-science-pack", amount=1}}, … name = "logistic-science-pack", … energy_required = 6, …factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/recipe.lua#L1963-L2035name = "chemical-science-pack", … energy_required = 24, … {type = "item", name = "engine-unit", amount = 2}, {type = "item", name = "advanced-circuit", amount = 3}, {type = "item", name = "sulfur", amount = 1} … results = {{type="item", name="chemical-science-pack", amount=2}}, … name = "military-science-pack", … …factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/item.lua#L2110rocket_launch_products = {{type = "item", name = "space-science-pack", amount = 1000}},Checked by claude, 2026-10-26 — read the six science-pack recipes (results amounts 1, 1, 2, 2, 3, 3) and the satellite item's rocket_launch_products (item.lua L2110)

Cited by: Factorio

The player can craft by hand only recipes in the "crafting" category (and the hand-only "hand-crafting" one): nothing smelted, nothing with a fluid, and none of the advanced-crafting recipes such as the engine unit. factorio-production/handcrafting

About: Factorio Construction

Value
[
 "crafting",
 "hand-crafting"
]
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L715crafting_categories = {"crafting", "hand-crafting"},Factorio Prototype API, version 2.1.23 (machine-readable JSON) · RecipePrototype.categoriesThe base `"crafting"` category can not contain recipes with fluid ingredients or products.Checked by claude, 2026-10-26 — read the character's crafting_categories {crafting, hand-crafting} at L715; recipe.lua puts smelting recipes in {smelting}, engine-unit in {advanced-crafting} and fluid recipes in chemistry, oil-processing or crafting-with-fluid

Cited by: Factorio

The player always crafts at speed 1. Asking for an item whose parts are missing but craftable queues those parts first (chain-crafting), which assembling machines don't do. factorio-production/handcrafting-speed

About: Factorio Construction

Value: 1 crafting speed

WikiTime · Crafting timeThe player always crafts at speed 1 while assembling machines have different crafting speeds.Crafting · Manual craftingMaterials that you don't have but you can craft will be highlighted in orange text, and will be chain-crafted to reach the product you selected.Crafting · Automated craftingAssembly machines cannot automatically chain-craft like the player.

The official wiki's words; the character's crafting speed wasn't found in the base data read here.

Cited by: Factorio, Production chain

Modules come in three kinds of three tiers. Speed modules add +20%, +30% and +50% speed for +50%, +60% and +70% energy; efficiency modules cut energy by 30%, 40% and 50%; productivity modules add +4%, +6% and +10% productivity, at −5%, −10% and −15% speed, +40%, +60% and +80% energy, and +5%, +7% and +10% pollution. factorio-production/modules

Value
{
 "speed": {
  "speed": [
   0.2,
   0.3,
   0.5
  ],
  "consumption": [
   0.5,
   0.6,
   0.7
  ]
 },
 "efficiency": {
  "consumption": [
   -0.3,
   -0.4,
   -0.5
  ]
 },
 "productivity": {
  "productivity": [
   0.04,
   0.06,
   0.1
  ],
  "speed": [
   -0.05,
   -0.1,
   -0.15
  ],
  "consumption": [
   0.4,
   0.6,
   0.8
  ],
  "pollution": [
   0.05,
   0.07,
   0.1
  ]
 }
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/item.lua#L2556effect = {speed = 0.2, consumption = 0.5, quality = -0.01},factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/item.lua#L2580effect = {speed = 0.3, consumption = 0.6, quality = -0.015},factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/item.lua#L2604effect = {speed = 0.5, consumption = 0.7, quality = -0.025},factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/item.lua#L2628effect = {consumption = -0.3},factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/item.lua#L2652effect = {consumption = -0.4},factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/item.lua#L2676effect = {consumption = -0.5},factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/item.lua#L2700-L2706effect = { productivity = 0.04, consumption = 0.4, pollution = 0.05, speed = -0.05 }factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/item.lua#L2723-L2729effect = { productivity = 0.06, consumption = 0.6, pollution = 0.07, speed = -0.1 }factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/item.lua#L2746-L2752effect = { productivity = 0.1, consumption = 0.8, pollution = 0.1, speed = -0.15 }Checked by claude, 2026-10-26 — read the nine module items from speed-module (L2543) to productivity-module-3 (L2733) and each one's effect table

The speed modules also carry a quality penalty (−0.01, −0.015, −0.025), which matters only with the quality mod; base 2.1.23 has no quality tiers to lose.

Cited by: Factorio

Productivity adds bonus output on top of the work done: at +10%, every ten crafts give an eleventh free. A machine's effects can't push productivity below −80%. A recipe accepts it only if it sets allow_productivity, as iron plate does. factorio-production/productivity

Value
{
 "minimumProductivity": -0.8
}
CodeFactorio Prototype API 2.1.23: Effect · productivityMultiplied against work completed, adds to the bonus results of operating. E.g. an extra crafted recipe or immediate research bonus.Factorio Prototype API 2.1.23: Effect · productivityThe minimum possible sum defaults to -80%factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/recipe.lua#L1452-L1458name = "iron-plate", … ingredients = {{type = "item", name = "iron-ore", amount = 1}}, … allow_productivity = trueChecked by claude, 2026-10-26 — read the iron-plate recipe (L1452-L1458) with allow_productivity = true; the API lists RecipePrototype.allow_productivity with a default of false

The eleventh craft is the API's rule worked through: bonus results are productivity × work completed. Which kinds of recipe allow productivity in base isn't stated here; a count would need a reproducible probe.

Cited by: Factorio

A beacon (480 kW, 2 module slots) passes its modules' effects at 1.5× to machines up to 3 tiles away, but each machine scales what it receives by the number of beacons reaching it: × 1, 0.7071, 0.5773, 0.5 for one to four beacons (1 ÷ √n), down to 0.1 at a hundred. factorio-production/beacons

Value
{
 "distributionEffectivity": 1.5,
 "profile": [
  1,
  0.7071,
  0.5773,
  0.5
 ],
 "power": "480kW",
 "moduleSlots": 2
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L7796supply_area_distance = 3,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L7814-L7819energy_usage = "480kW", distribution_effectivity = 1.5, distribution_effectivity_bonus_per_quality_level = 0.2, profile = {1,0.7071,0.5773,0.5,…,0.1}, beacon_counter = "same_type", module_slots = 2,Factorio Prototype API, version 2.1.23 (machine-readable JSON) · BeaconPrototype.supply_area_distanceThe maximum distance that this beacon can supply its neighbors with its module's effects.Factorio Prototype API, version 2.1.23 (machine-readable JSON) · BeaconPrototype.distribution_effectivityThe multiplier of the module's effects, when shared between neighbors.Factorio Prototype API, version 2.1.23 (machine-readable JSON) · BeaconPrototype.profileExtra multiplier applied to the effects received from beacon by the effect receiver based on amount of beacons that are in range of that effect receiver.Checked by claude, 2026-10-26 — read the beacon prototype from L7775: supply_area_distance 3, energy_usage 480kW, distribution_effectivity 1.5, a 100-entry profile from 1 to 0.1 whose entries are 1/√n to four places, beacon_counter same_type, module_slots 2; the API gives supply_area_distance as the maximum distance the beacon supplies its neighbours

Cited by: Factorio

The transport belt, fast transport belt and express transport belt move items at 0.03125, 0.0625 and 0.09375 tiles per tick: 1.875, 3.75 and 5.625 tiles per second. Each carries 15, 30 and 45 items per second, 7.5, 15 and 22.5 on each of its two lanes. factorio-production/belt-speeds

About: Factorio Transport belt

Value
{
 "transport-belt": 15,
 "fast-transport-belt": 30,
 "express-transport-belt": 45
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/transport-belts.lua#L180speed = 0.03125,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/transport-belts.lua#L216speed = 0.0625,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/transport-belts.lua#L252speed = 0.09375,Factorio Prototype API, version 2.1.23 (machine-readable JSON) · TransportBeltConnectablePrototype.speedThe speed of the belt: `speed × 480 = x Items/second`.Factorio Prototype API, version 2.1.23 (machine-readable JSON) · TransportBeltConnectablePrototype.speedThe raw value is expressed as the number of tiles traveled by each item on the belt per tickChecked by claude, 2026-10-26 — read the speed of transport-belt (prototype from L151), fast-transport-belt (L187) and express-transport-belt (L223); items per second are speed × 480 and tiles per second speed × 60, both by the API's note

Cited by: Factorio

A belt has two lanes that move independently, each holding 4 items per tile whatever the item, so a full straight belt tile holds 8. Since 0.17 the spacing is 8 pixels in a 32-pixel tile, which gave the basic belt 15 items per second; before it was 9 pixels and 13.33 items per second. factorio-production/belt-lanes

About: Factorio Transport belt

Value
{
 "lanes": 2,
 "itemsPerTilePerLane": 4
}
PublisherFactorio Prototype API, version 2.1.23 (machine-readable JSON) · TransportBeltConnectablePrototype.speed4 items/lane × 2 lanes/belt × 60 ticks/secondFriday Facts #276 - Belt item spacing & Script rendering · Belt item spacingWith a spacing of 8 pixels, belts now always fit exactly 8 items (4 on each side)Friday Facts #276 - Belt item spacing & Script rendering · Belt item spacingOne suggestion that came up was to adjust the belt throughput from its unfriendly 13.33 items/s.Transport belts/Physics · Definitions — cross-check, current to 2026Belts have two parallel lanes, and the density and speed of each lane is constant and independent of the other one, regardless of twists and turns.

FFF

Cited by: Factorio

Belts compress themselves: anything that puts an item on a belt (an inserter, a splitter, a side-loading belt, a drill) can use any gap wider than the standard spacing, squeezing the items for a moment until the belt opens the gap to full size, so a belt fills without holes before it backs up. Wube made this automatic in 0.16.25. factorio-production/belt-compression

About: Factorio Transport belt

Dev blogFriday Facts #231 - Belt compression & Crash log uploading · Belt compressionwhenever there is any gap bigger than the standard distance between items on a belt, item can be inserted there and for a (usually) brief moment, the items are squashed together closer than usual.Friday Facts #231 - Belt compression & Crash log uploading · Belt compressionThe result is, that the same setup in 0.16.25+ results in perfectly compressed beltTransport belts/Physics · Definitions — cross-check, current to 2026That means belts naturally become fully compressed before items start to back up.

Cited by: Factorio

Underground belts run at their tier's belt speed and have a max_distance of 5, 7 and 9 tiles for the basic, fast and express tiers; the basic one passes under up to 4 tiles between its entrance and exit. factorio-production/underground-belts

About: Factorio Transport belt

Value
{
 "underground-belt": 5,
 "fast-underground-belt": 7,
 "express-underground-belt": 9
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/transport-belts.lua#L268max_distance = 5,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/transport-belts.lua#L394max_distance = 7,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/transport-belts.lua#L515max_distance = 9,Underground belt · introductionThe underground belt has a maximum underground distance of 4 squares.Checked by claude, 2026-10-26 — read max_distance and speed of underground-belt (from L260; speed L306), fast-underground-belt (L386; L431) and express-underground-belt (L507; L560); the speeds equal the matching belts'. The API leaves max_distance undescribed, so the 4-tile gap is the wiki's

Cited by: Factorio

A splitter moves items at the same speed as its belt tier: 0.03125, 0.0625 and 0.09375 tiles per tick for the splitter, fast splitter and express splitter. factorio-production/splitters

About: Factorio Transport belt

Value
{
 "splitter": 0.03125,
 "fast-splitter": 0.0625,
 "express-splitter": 0.09375
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/transport-belts.lua#L659speed = 0.03125,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/transport-belts.lua#L772speed = 0.0625,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/transport-belts.lua#L883speed = 0.09375,Checked by claude, 2026-10-26 — read the speed of splitter (from L636), fast-splitter (L748) and express-splitter (L860): equal to the three belts' speeds

A splitter takes two belts in and sends two out, dividing items evenly and keeping each item in its lane; when one output backs up, everything goes to the other. Either input and either output can be given priority, and a filter sends one item type to one side and everything else to the other. factorio-production/splitter-routing

About: Factorio Transport belt

WikiBelt transport system · Splitters, MechanicsIf one of the outputs is fully backed-up and the splitter cannot split evenly, it will put all input on its other output.Belt transport system · Splitters, MechanicsSplitters preserve the lanes of the items, by moving through the splitter an item on the right lane will not be moved to the left lane, and vice versa.Belt transport system · Splitters, PriorityA splitter where the input priority has been set will first try to consume the specified input side, and will only consume the other input once there is a gap on the prioritized input belt.Belt transport system · Splitters, FilterAll items of the set type will be redirected to that specific output and all other items are directed to the other output.

The routing rules are the official wiki's. The API's LuaEntity entries name splitter_input_priority, splitter_output_priority and splitter_filter without describing how a splitter routes.

Cited by: Factorio

Belts carry whatever walks on them, the player included, so running along a belt adds its speed and running against it takes it away; biters and spitters ride belts too. factorio-production/belts-move-the-player

About: Factorio Transport belt

WikiBelt transport system · Belt tricksRunning on a belt will increase or decrease the movement speed of the player accordingly to the belts speed.Belt transport system · Belt tricksAdditionally, biters and spitters can be moved.

Cited by: Factorio

In the base game a belt carries one item per slot. The engine allows up to 4 per slot (a utility constant), but only Space Age's research raises the belt stack size; base 2.1.23 has no technology that does. factorio-production/belt-stacking-not-in-base

About: Factorio Transport belt

Value
{
 "maxBeltStackSize": 4
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · core/prototypes/utility-constants.lua#L615max_belt_stack_size = 4,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · space-age/prototypes/technology.lua#L1206type = "belt-stack-size-bonus",Checked by claude, 2026-10-26 — searched base/prototypes/technology.lua for belt-stack-size-bonus: no match; the effect appears in space-age/prototypes/technology.lua (L1206, L1236, L1267). LuaForce.belt_stack_size_bonus in the runtime API is the force's bonus

Cited by: Factorio

Inserters turn at a fixed rotation_speed: burner 0.013, inserter 0.014, long-handed 0.02, fast and bulk 0.04. The wiki gives the unit as turns per tick. factorio-production/inserter-speeds

Value
{
 "burner-inserter": 0.013,
 "inserter": 0.014,
 "long-handed-inserter": 0.02,
 "fast-inserter": 0.04,
 "bulk-inserter": 0.04
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L2651-L2652extension_speed = 0.035, rotation_speed = 0.013,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L2329-L2330extension_speed = 0.035, rotation_speed = 0.014,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L2532-L2533extension_speed = 0.05, rotation_speed = 0.02,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L2434-L2435extension_speed = 0.1, rotation_speed = 0.04,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L5611-L5612extension_speed = 0.1, rotation_speed = 0.04,Inserters · Inserter speed — the unit; the API leaves rotation_speed undescribedRotation-speed (turns per tick)Checked by claude, 2026-10-26 — read extension_speed and rotation_speed of burner-inserter (prototype from L2614), inserter (L2304), long-handed-inserter (L2510), fast-inserter (L2407) and bulk-inserter (L5582)

The values are T3; the unit is the wiki's.

The wiki measures a full swing (pick up, drop, return) at 76 ticks for the burner inserter, 70 for the inserter, 48 for the long-handed inserter and 24 for the fast and bulk inserters: about 0.79, 0.86, 1.25 and 2.5 swings a second. factorio-production/inserter-swing-times

Value
{
 "burner-inserter": 76,
 "inserter": 70,
 "long-handed-inserter": 48,
 "fast-inserter": 24,
 "bulk-inserter": 24
}
WikiInserters · Inserter speedThe speeds per tick come directly from the factorio-data…while the other values have been verified empirically in game.Inserters · Inserter throughput, Chest to chestArm cycles per second (ticks per cycle)…0.79 (76 ticks)…0.86 (70 ticks)Inserters · Rotation speedIf the rotation speed of an inserter would result in an odd number of ticks per full turn, the actual number of ticks per full turn for this inserter is truncated to be the next lowest even number.

The wiki's in-game measurements (its speed table gives 76, 70, 48 and 24 ticks per full turn). The long-handed inserter's 0.02 would give 50 ticks a turn, but the wiki measured 48 and puts the difference down to rounding in the engine.

Cited by: Factorio

Ordinary inserters pick up from the tile behind them and drop on the tile in front; the long-handed inserter reaches one tile further at both ends, picking up two tiles away and dropping two tiles away. factorio-production/inserter-reach

Value
{
 "pickup": {
  "inserter": 1,
  "long-handed-inserter": 2
 },
 "drop": {
  "inserter": 1.2,
  "long-handed-inserter": 2.2
 }
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L2387-L2388pickup_position = {0, -1}, insert_position = {0, 1.2},factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L2528-L2529pickup_position = {0, -2}, insert_position = {0, 2.2},Checked by claude, 2026-10-26 — read pickup_position and insert_position of inserter (L2387-L2388: {0, -1} and {0, 1.2}) and long-handed-inserter (L2528-L2529: {0, -2} and {0, 2.2}); burner, fast and bulk inserters repeat the inserter's positions (L2708-L2709, L2424-L2425, L5601-L5602)

Cited by: Factorio, Production chain

An inserter's energy cost has two fields, energy_per_movement and energy_per_rotation, and in base each inserter sets both to the same value: 50 kJ for the burner inserter (drawn from fuel), 5 kJ for the inserter and the long-handed inserter, 7 kJ for the fast inserter and 20 kJ for the bulk inserter (electricity). The electric ones also drain 0.4, 0.4, 0.5 and 1 kW while idle. factorio-production/inserter-energy

Value
{
 "burner-inserter": {
  "energy_per_movement": "50kJ",
  "energy_per_rotation": "50kJ"
 },
 "inserter": {
  "energy_per_movement": "5kJ",
  "energy_per_rotation": "5kJ",
  "drain": "0.4kW"
 },
 "long-handed-inserter": {
  "energy_per_movement": "5kJ",
  "energy_per_rotation": "5kJ",
  "drain": "0.4kW"
 },
 "fast-inserter": {
  "energy_per_movement": "7kJ",
  "energy_per_rotation": "7kJ",
  "drain": "0.5kW"
 },
 "bulk-inserter": {
  "energy_per_movement": "20kJ",
  "energy_per_rotation": "20kJ",
  "drain": "1kW"
 }
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L2631-L2632energy_per_movement = "50kJ", energy_per_rotation = "50kJ",factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L2321-L2327energy_per_movement = "5kJ", energy_per_rotation = "5kJ", … drain = "0.4kW"factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L2530-L2541energy_per_movement = "5kJ", energy_per_rotation = "5kJ", … drain = "0.4kW"factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L2426-L2432energy_per_movement = "7kJ", energy_per_rotation = "7kJ", … drain = "0.5kW"factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L5603-L5609energy_per_movement = "20kJ", energy_per_rotation = "20kJ", … drain = "1kW"Checked by claude, 2026-10-26 — read energy_per_movement, energy_per_rotation and the energy source of each of the five inserters; the burner inserter's source is a burner on chemical fuel (L2633-L2639)

How the engine charges the two fields over a swing isn't described in Wube's words read here, so no total per swing is given.

An inserter carries one item per swing until Inserter capacity bonus 2 raises it to 2 and bonus 7 to 3. The bulk inserter carries 2 once researched (its own technology adds one), then 3, 4, 5, 6, 8, 10 and 12 with capacity bonus 1 to 7. Base 2.1.23 has no stack inserter, which belongs to Space Age. factorio-production/inserter-capacity

About: Factorio Tech tree

Value
{
 "inserter": [
  1,
  2,
  3
 ],
 "bulk-inserter": [
  2,
  3,
  4,
  5,
  6,
  8,
  10,
  12
 ]
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/technology.lua#L1708-L1710{ type = "bulk-inserter-capacity-bonus", modifier = 1factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/technology.lua#L1734modifier = 1 -- result of 3factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/technology.lua#L1757-L1762type = "inserter-stack-size-bonus", modifier = 1 -- result of 2 }, { type = "bulk-inserter-capacity-bonus", modifier = 1 -- result of 4factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/technology.lua#L1786modifier = 1 -- result of 5factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/technology.lua#L1811modifier = 1 -- result of 6factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/technology.lua#L1837modifier = 2 -- result of 8factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/technology.lua#L1863modifier = 2 -- result of 10factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/technology.lua#L1888-L1893type = "inserter-stack-size-bonus", modifier = 1 -- result of 3 }, { type = "bulk-inserter-capacity-bonus", modifier = 2 -- result of 12Factorio Prototype API, version 2.1.23 (machine-readable JSON) · InserterPrototype.bulkWhether this inserter is considered a bulk inserter.Checked by claude, 2026-10-26 — read the bulk-inserter technology (L1697-L1724, whose bulk-inserter-capacity-bonus is 1) and inserter-capacity-bonus-1 to -7 (L1727-L1907): only bonus 2 and 7 raise inserter-stack-size-bonus; Wube's comments beside each modifier give the totals ('-- result of 3' and so on). The bulk-inserter entity sets bulk = true (entities.lua L5585)

The modifiers are code; the starting hand sizes of 1 come from the totals in Wube's comments, since the engine holds the base value.

Cited by: Factorio

By default an inserter drops onto the far lane of a belt that crosses in front of it, and it picks up from the near lane first. Wube's FFF #442 describes the drop arrow shifting to the side the inserter will drop to, and flipping the inserter to change that side. Since 2.1.7, an inserter dropping onto a splitter always feeds the splitter's input side. factorio-production/inserter-belt-lanes

About: Factorio Transport belt

WikiInserters · Inserters and transport beltsIf the belt is perpendicular to the inserter, inserters prefer taking items from the nearest lane.Inserters · Inserters and transport beltsInserters place the item on the furthest lane.Friday Facts #442 - Flip, Flow, and Fresh Paint · Drop lane indication on perpendicular beltsIf you pay close attention, you might also notice that the drop arrow shifts subtly to the side, so that you know which side of the belt the machine will drop to.Friday Facts #442 - Flip, Flow, and Fresh Paint · Drop lane indication on perpendicular beltsSo using the flip hotkey it is possible to adjust which side of the belt a machine will drop to.Friday Facts #442 - Flip, Flow, and Fresh Paint · Drop lane indication on perpendicular beltsinserters will now always drop to the input sides of splitters.factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · changelog.txt#L665 — in the 2.1.7 entry, which begins at changelog.txt L597- Inserters dropping items onto splitter always insert on the input lines.Checked by claude, 2026-10-26 — read the 2.1.7 changelog line on splitter drops (L665, under the Version 2.1.7 header at L597); the drop arrow and flipping are FFF #442's words, with no version given

The plain-belt lane rules are the wiki's (T1). The drop arrow and lane flipping are FFF

Cited by: Factorio

Inserters don't fill a crafting machine's whole input: it takes ingredients for as many crafts as it finishes in 1.166 seconds (the longest swing of a base inserter) plus one, at least 2 and at most 100 crafts' worth. The rest stays on the belt for the next machine. factorio-production/machine-insertion-limit

Value
{
 "overloadSeconds": 1.166,
 "minimumMultiplier": 2,
 "maximumMultiplier": 100
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · core/prototypes/utility-constants.lua#L409-L413-- 1.166 is a magic number representing the maximum number of seconds it takes for a base game inserter to do one cycle. -- the calculated overload multiplier is the number of crafts we can complete during one inserter full swing + 1 dynamic_recipe_overload_factor = 1.166, minimum_recipe_overload_multiplier = 2, maximum_recipe_overload_multiplier = 100,Checked by claude, 2026-10-26 — read dynamic_recipe_overload_factor, minimum_recipe_overload_multiplier and maximum_recipe_overload_multiplier and Wube's two comment lines above them in core's utility constants

Cited by: Factorio, Production chain

An inserter stops feeding fuel to a boiler that holds 5 or more items of it. factorio-production/boiler-fuel-limit

Value: 5 fuel items

WikiInserters · Insertion limitsFor example, if a boiler has 5 or more items of fuel in it, an inserter will not insert additional fuel.

The official wiki's rule; no constant for it was found in the base or core data read here.

A lab researches at speed 1, draws 60 kW, has 2 module slots, and accepts all seven science packs: automation, logistic, military, chemical, production, utility and space. A technology needing a pack the lab doesn't list can't be researched in it. factorio-production/labs

About: Factorio Tech tree

Value
{
 "researchingSpeed": 1,
 "power": "60kW",
 "moduleSlots": 2,
 "packs": 7
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L3988-L4000energy_usage = "60kW", researching_speed = 1, … "automation-science-pack", "logistic-science-pack", "military-science-pack", "chemical-science-pack", "production-science-pack", "utility-science-pack", "space-science-pack" … module_slots = 2,Factorio Prototype API, version 2.1.23 (machine-readable JSON) · LabPrototype.inputsA list of the names of science packs that can be used in this lab.Checked by claude, 2026-10-26 — read the lab prototype (from L3880): energy_usage 60kW, researching_speed 1, the seven inputs, module_slots 2

Cited by: Factorio

A technology costs a number of units, each needing one set of its science packs and a set time; at lab speed 1 a unit's time is its seconds, so labs working together divide the total. Only one technology is researched at a time per force, though progress on a switched-away technology is kept. factorio-production/research-time-rule

About: Factorio Tech tree

PublisherFactorio Prototype API, version 2.1.23 (machine-readable JSON) · TechnologyUnit.timeHow much time one unit takes to research. In a lab with a crafting speed of `1`, it corresponds to the number of seconds.Research · MechanicsEach unit has a time and a science pack cost. When research is in progress, labs with the required amount of science packs for one unit will consume the amount and contribute towards research progress.Research · MechanicsIn singleplayer games, only one technology can be researched at a time.Research · Mechanicsif another research is in progress, that progress will be saved.

The unit rule is Wube's (API); one research at a time and kept progress are the wiki's (T1).

Cited by: Factorio

Six levels of lab research speed add +20%, +30%, +40%, +50%, +50% and +60% to every lab, +250% in all. factorio-production/research-speed-research

About: Factorio Tech tree

Value
[
 0.2,
 0.3,
 0.4,
 0.5,
 0.5,
 0.6
]
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/technology.lua#L2309-L2310type = "laboratory-speed", modifier = 0.2factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/technology.lua#L2333-L2334type = "laboratory-speed", modifier = 0.3factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/technology.lua#L3625-L3626type = "laboratory-speed", modifier = 0.4factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/technology.lua#L3650-L3651type = "laboratory-speed", modifier = 0.5factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/technology.lua#L3675-L3676type = "laboratory-speed", modifier = 0.5factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/technology.lua#L3701-L3702type = "laboratory-speed", modifier = 0.6Checked by claude, 2026-10-26 — read the laboratory-speed effect of research-speed-1 (from L2304), -2 (L2328), -3 (L3620), -4 (L3645), -5 (L3670) and -6 (L3696)

Seven technologies are unlocked by doing something rather than by labs: Steam power by crafting 50 iron plates, Electronics by crafting 10 copper plates, Automation science pack by crafting a lab, Steel axe by crafting 50 steel plates, Oil processing by mining crude oil, Uranium processing by mining uranium ore, and Space science pack by launching a satellite. Steam power and Electronics need nothing before them, so the tree starts from these two. factorio-production/trigger-technologies

About: Factorio Tech tree

Value
{
 "steam-power": "craft 50 iron-plate",
 "electronics": "craft 10 copper-plate",
 "automation-science-pack": "craft lab",
 "steel-axe": "craft 50 steel-plate",
 "oil-processing": "mine crude-oil",
 "uranium-processing": "mine uranium-ore",
 "space-science-pack": "launch satellite"
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/technology.lua#L45-L50research_trigger = { type = "craft-item", item = "iron-plate", count = 50 }factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/technology.lua#L80-L85research_trigger = { type = "craft-item", item = "copper-plate", count = 10 }factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/technology.lua#L100-L105prerequisites = {"steam-power", "electronics"}, research_trigger = { type = "craft-item", item = "lab" }factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/technology.lua#L2018-L2023research_trigger = { type = "craft-item", item = "steel-plate", count = 50 }factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/technology.lua#L4627-L4631research_trigger = { type = "mine-entity", entities = {"crude-oil"} }factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/technology.lua#L5119-L5123research_trigger = { type = "mine-entity", entities = {"uranium-ore"} }factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/technology.lua#L2705-L2710research_trigger = { type = "send-item-to-orbit", item = "satellite" }, prerequisites = {"rocket-silo"}Factorio Prototype API, version 2.1.23 (machine-readable JSON) · TechnologyPrototype.research_triggerMandatory if `unit` is not defined.Checked by claude, 2026-10-26 — read all seven research_trigger blocks in base/prototypes/technology.lua (the only seven in the file) and their technologies: steam-power (L19) and electronics (L54) have no prerequisites; a Lua loader over the file finds no other technology without them

Cited by: Factorio

The base mod's technology.lua in 2.1.23 defines 196 technologies (Space Age adds more, not counted here). Sorted by the most advanced science pack each needs, 15 need automation packs only, 60 reach logistic, 54 chemical, 17 production, 34 utility and 9 space, and 7 are trigger technologies; 64 of them also need military packs. Nine of these are infinite, repeating at a rising cost, among them mining productivity and the weapon damage upgrades. factorio-production/tech-tree-shape

About: Factorio Tech tree

Value
{
 "total": 196,
 "byTopPack": {
  "automation": 15,
  "logistic": 60,
  "chemical": 54,
  "production": 17,
  "utility": 34,
  "space": 9,
  "trigger": 7
 },
 "withMilitary": 64,
 "infinite": 9
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/technology.lua#L5300-L5324name = "mining-productivity-4", … max_level = "infinite",Checked by claude, 2026-10-26 — loaded base/prototypes/technology.lua (the only base or core file defining technologies) with a Lua stub of data:extend that collects every prototype, since a few entries are built in loops (193 literal type = "technology" lines, 196 entries). Counting rule: count the entries with type = "technology"; for each entry with a unit, take the highest of its unit.ingredients in the order automation < logistic < chemical < production < utility < space, with military set aside and counted separately when present; an entry with no unit is a trigger technology; count max_level = "infinite". mining-productivity-4 (L5300-L5324) is one of the nine infinite ones

The nine infinite technologies are physical-projectile-damage-7, stronger-explosives-7, refined-flammables-7, laser-weapons-damage-7, artillery-shell-range-1, artillery-shell-speed-1, follower-robot-count-5, worker-robots-speed-6 and mining-productivity-4.

Cited by: Factorio

The Rocket silo technology costs 1,000 units of the five packs from automation to utility at 60 seconds each and needs eight technologies first. A rocket takes 100 rocket parts (each 10 processing units, 10 low density structures and 10 rocket fuel, 3 s); launching one with a satellite returns 1,000 space science packs and unlocks the Space science pack technology, which leads to the infinite technologies. factorio-production/rocket-silo-goal

About: Factorio Tech tree

Value
{
 "units": 1000,
 "unitSeconds": 60,
 "rocketParts": 100,
 "spacePacksPerSatellite": 1000
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/technology.lua#L3592-L3615prerequisites = … "concrete", "rocket-fuel", "electric-energy-accumulators", "solar-energy", "utility-science-pack", "speed-module-3", "productivity-module-3", "radar" … count = 1000, …factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L6115rocket_parts_required = 100,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/recipe.lua#L2471-L2484name = "rocket-part", energy_required = 3, … categories = {"rocket-building"}, … {type = "item", name = "processing-unit", amount = 10}, {type = "item", name = "low-density-structure", amount = 10}, {type = "item", name = "rocket-fuel", amount = 10} … results = {{type="item", name="rocket-part", amount=1}},factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/item.lua#L2110rocket_launch_products = {{type = "item", name = "space-science-pack", amount = 1000}},Checked by claude, 2026-10-26 — read the rocket-silo technology (from L3569: eight prerequisites, count 1000, five packs, time 60), the silo entity's rocket_parts_required (L6115), the rocket-part recipe and the satellite's rocket_launch_products; space-science-pack's trigger is launching a satellite (trigger-technologies)

Cited by: Factorio

A boiler burns chemical fuel at 1.8 MW and heats water to 165 °C steam. With water's heat capacity 2 kJ and steam's 0.2 kJ per unit per degree, one unit of water becomes ten of steam: a boiler takes 6 water and gives 60 steam per second. factorio-production/boiler

Value
{
 "power": "1.8MW",
 "steamTemperature": 165,
 "waterPerSecond": 6,
 "steamPerSecond": 60
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L1257target_temperature = 165,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L1281-L1286energy_consumption = "1.8MW", … type = "burner", fuel_categories = {"chemical"}, effectivity = 1,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/fluid.lua#L28-L32name = "water", subgroup = "fluid", default_temperature = 15, max_temperature = 100, heat_capacity = "2kJ",factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/fluid.lua#L40-L44name = "steam", subgroup = "fluid", default_temperature = 15, max_temperature = 500, heat_capacity = "0.2kJ",Factorio Prototype API, version 2.1.23 (machine-readable JSON) · BoilerPrototype.target_temperatureThe boiler heats the input fluid to exactly this temperature and moves the fluid to the output fluid box.Power production · Steam power — cross-checkOne boiler consumes 6 units of water to produce 60 units of steam per secondChecked by claude, 2026-10-26 — read the boiler (from L1229: target_temperature 165, energy_consumption 1.8MW, a burner source on chemical fuel with effectivity 1) and the water and steam fluids. Computed: 1.8 MW ÷ ((165 − 15) °C × 0.2 kJ) = 60 steam/s, and ÷ (150 × 2 kJ) = 6 water/s; the wiki gives the same 6 and 60

Cited by: Factorio, Power network

A steam engine uses 0.5 units of steam a tick (30 a second) and gets full value from steam up to 165 °C, so it gives at most (165 − 15) × 0.5 × 0.2 kJ = 15 kJ a tick: 900 kW. One boiler (1.8 MW) feeds exactly two engines. factorio-production/steam-engine

Value
{
 "steamPerTick": 0.5,
 "maxPower": "900kW",
 "enginesPerBoiler": 2
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L1778-L1780effectivity = 1, fluid_usage_per_tick = 0.5, maximum_temperature = 165,Factorio Prototype API, version 2.1.23 (machine-readable JSON) · GeneratorPrototype.maximum_temperatureThen, the max power output is `(min(fluid_max_temp, maximum_temperature) - fluid_default_temp) × fluid_usage_per_tick × fluid_heat_capacity × effectivity`Power production · Steam power — cross-checkOne steam engine consumes 900kW (0.9MW) of energy stored in steam, so each boiler can supply 2 steam enginesChecked by claude, 2026-10-26 — read the steam-engine (from L1770: effectivity 1, fluid_usage_per_tick 0.5, maximum_temperature 165) and computed the API's formula with steam's default temperature 15 and heat capacity 0.2kJ (fluid.lua L42, L44): 150 × 0.5 × 0.2 kJ × 60 = 900 kW; 1.8 MW ÷ 0.9 MW = 2

Cited by: Factorio, Power network

An offshore pump draws 20 units of water a tick, 1,200 a second, needing no power source of its own (a void energy source): enough water for 200 boilers and 400 steam engines. factorio-production/offshore-pump

Value
{
 "perTick": 20,
 "perSecond": 1200,
 "boilers": 200
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L1967-L1972type = "void" … energy_usage = "60kW", pumping_speed = 20,Power production · Steam power — cross-checkone offshore pump produces 1200 water per second, so each offshore pump produces enough water to supply 200 boilersChecked by claude, 2026-10-26 — read the offshore-pump (from L1924): energy_source type void, energy_usage 60kW, pumping_speed 20; 20 × 60 = 1200 per second, ÷ 6 water per boiler (boiler) = 200

Cited by: Factorio

A solar panel gives up to 60 kW. Nauvis's day lasts 7 minutes (25,200 ticks). Wube's comment marks the phases: full output for half of it, a fall over the next fifth (dusk), nothing for a tenth (night), and a rise over a fifth (dawn). The wiki says the fall and rise are linear, which gives an average of 70%, the 42 kW per panel the wiki states. factorio-production/solar-panel

About: Factorio Time of day

Value
{
 "peak": "60kW",
 "average": "42kW",
 "dayTicks": 25200
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L5356production = "60kW",factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/planet/planet.lua#L28-L31surface_properties = { ["day-night-cycle"] = 7 * minute },factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · core/lualib/util.lua#L903-L904second = 60 minute = 60 * secondfactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · core/prototypes/utility-constants.lua#L492-L496-- Should be based on the default day/night times, ie -- sun starts to set at 0.25 -- sun fully set at 0.45 -- sun starts to rise at 0.55 -- sun fully risen at 0.75Time · DaysAn in-game day on Nauvis lasts 25200 ticks or 7 in-game minutes.Solar panel · MechanicsGenerated power will increase/decrease linearly during dawn and dusk, and no power is produced at night.Solar panel · MechanicsOn Nauvis, one solar panel produces 17640 kJ per cycle, or an average of 42 kW over a day/night cycle.Checked by claude, 2026-10-26 — read the solar panel's production (L5356), Nauvis's day-night-cycle of 7 * minute (planet.lua L28-L31) with util.lua's minute = 60 * second and second = 60 ticks, and Wube's comment on the default day phases (sun sets 0.25 to 0.45, rises 0.55 to 0.75). With the wiki's linear fall and rise, the average is 0.5 + 0.2 × 0.5 + 0.2 × 0.5 = 0.7 of 60 kW, the wiki's 42 kW

The data gives only the phase boundaries, in a comment beside the colour lookup rather than a value the engine reads; the linear ramps are the wiki's (T1). The Power production page's solar section still uses a 25,000-tick day.

Cited by: Factorio, Power network

An accumulator stores 5 MJ and charges or discharges at up to 300 kW. Since a solar panel's night and twilight leave a gap to fill, the wiki's Solar panel page puts the need at about 0.85 (0.84672) accumulators per panel on Nauvis. factorio-production/accumulator

Value
{
 "capacity": "5MJ",
 "flow": "300kW"
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L5391-L5394buffer_capacity = "5MJ", usage_priority = "tertiary", input_flow_limit = "300kW", output_flow_limit = "300kW"Solar panel · Solar panels and accumulators — the wiki's ratio, not checked hererequires 0.84672 ≈ 0.85 accumulators to sustain a constant power output through the night.Checked by claude, 2026-10-26 — read the accumulator's energy source (from L5376): buffer_capacity 5MJ, input and output flow limits 300kW

The capacity and flow are T3; the ratio is the wiki's (T1). The wiki's Power production page gives 0.84, worked on the old 25,000-tick day.

Cited by: Factorio

A nuclear reactor turns a uranium fuel cell (8 GJ, 200 seconds at full power) into 40 MW of heat, plus 100% for each adjacent reactor that is also fuelled: two side by side make 160 MW between them. It holds heat up to 1,000 °C at 10 MJ per degree. factorio-production/nuclear-reactor

Value
{
 "consumption": "40MW",
 "neighbourBonus": 1,
 "fuelCell": "8GJ",
 "maxTemperature": 1000
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L8971-L8972consumption = "40MW", neighbour_bonus = 1,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L9053-L9054max_temperature = 1000, specific_heat = "10MJ",factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/item.lua#L2310-L2311burnt_result = "depleted-uranium-fuel-cell", fuel_value = "8GJ",Factorio Prototype API, version 2.1.23 (machine-readable JSON) · ReactorPrototype.consumptionHow much energy this reactor can consume (from the input energy source) and then output as heat.Nuclear reactor · Neighbour bonusReactors receive a bonus for adjacent operating reactors, which increases their effective thermal output by 100% per each such link.Nuclear reactor · Neighbour bonusBoth reactors are fueled.Checked by claude, 2026-10-26 — read the nuclear-reactor (from L8963: consumption 40MW, neighbour_bonus 1, a heat buffer of max 1000 and specific_heat 10MJ) and the uranium fuel cell's fuel_value 8GJ; 8 GJ ÷ 40 MW = 200 s. The API leaves neighbour_bonus undescribed, so the rule is the wiki's

The values are T3; what neighbour_bonus = 1 means (+100% per fuelled neighbour) is the wiki's (T1).

Cited by: Factorio

A heat exchanger takes up to 10 MW from heat pipes at 500 °C or more and makes 500 °C steam; a steam turbine uses 1 unit of steam a tick and gets full value up to 500 °C, so it gives (500 − 15) × 1 × 0.2 kJ × 60 = 5.82 MW. A lone reactor feeds 4 exchangers, and each neighbour bonus 4 more. factorio-production/heat-exchanger-and-turbine

Value
{
 "exchanger": "10MW",
 "turbine": "5.82MW",
 "exchangersPerReactor": 4
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L9359target_temperature = 500,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L9383-L9390energy_consumption = "10MW", … type = "heat", max_temperature = 1000, … min_working_temperature = 500,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L9661-L9663effectivity = 1, fluid_usage_per_tick = 1, maximum_temperature = 500,Factorio Prototype API, version 2.1.23 (machine-readable JSON) · GeneratorPrototype.maximum_temperatureThen, the max power output is `(min(fluid_max_temp, maximum_temperature) - fluid_default_temp) × fluid_usage_per_tick × fluid_heat_capacity × effectivity`Power production · Nuclear powerA reactor without neighbor bonus needs 4 heat exchangers so that all its heat gets consumed. For each 100% neighbor bonus, the reactor needs 4 more heat exchangers.factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · changelog.txt#L674- Reduced steam's max temperature to 500 degrees, as that is the highest temperature that can be produced in Space Age.Checked by claude, 2026-10-26 — read the heat-exchanger (from L9331: target_temperature 500, energy_consumption 10MW, heat source with min_working_temperature 500) and the steam-turbine (from L9653: effectivity 1, fluid_usage_per_tick 1, maximum_temperature 500); computed the API's formula with steam at default 15 °C and 0.2 kJ; 40 MW ÷ 10 MW = 4 exchangers per reactor. 2.1.7's changelog lowered steam's maximum to 500 °C

Cited by: Factorio

Electric poles power machines in a square around them and link to other poles within their wire reach: small pole 5×5 area and 7.5 tiles, medium pole 7×7 and 9, big pole 4×4 and 32, substation 18×18 and 18. factorio-production/electric-poles

Value
{
 "small-electric-pole": {
  "area": 5,
  "reach": 7.5
 },
 "medium-electric-pole": {
  "area": 7,
  "reach": 9
 },
 "big-electric-pole": {
  "area": 4,
  "reach": 32
 },
 "substation": {
  "area": 18,
  "reach": 18
 }
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L1655-L1656maximum_wire_distance = 7.5, supply_area_distance = 2.5,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L4705-L4706maximum_wire_distance = 9, supply_area_distance = 3.5,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L4570-L4571maximum_wire_distance = 32, supply_area_distance = 2,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L7646-L7647maximum_wire_distance = 18, supply_area_distance = 9,Factorio Prototype API, version 2.1.23 (machine-readable JSON) · ElectricPolePrototype.supply_area_distanceIf this is 3.5, the pole will have a 7x7 supply area.Factorio Prototype API, version 2.1.23 (machine-readable JSON) · ElectricPolePrototype.maximum_wire_distanceCorresponds to "wire reach" in the item tooltip.Checked by claude, 2026-10-26 — read maximum_wire_distance and supply_area_distance of small-electric-pole (from L1643), medium-electric-pole (L4685), big-electric-pole (L4550) and substation (L7627); the area is twice supply_area_distance, by the API

Cited by: Factorio, Power network

Wube's FFF #416 and #430 (2024) describe 2.0's fluids: connected pipes, underground pipes and storage tanks form one segment holding one fluid, and a pump splits one segment from the next. Fluid put into a segment is available at once anywhere along it: there is no flow from pipe to pipe, so pipe length and junctions no longer cut throughput as they did in 1.x. Each transfer is capped at 100 units (6,000 a second) and scaled by how full the source and the sink are, so a machine pushing in slows as the segment fills. These rules are the posts'; they weren't re-checked against 2.1.23. factorio-production/fluid-segments

Value
{
 "maxPerTransfer": 100,
 "maxPerSecond": 6000
}
Dev blogFriday Facts #416 - Fluids 2.0 · Fluids 2.0Pipes, underground pipes, and storage tanks are merged into fluid "segments".Friday Facts #416 - Fluids 2.0 · Fluids 2.0There is no longer a realistic fluid "flow" through pipes; fluid pushed to a segment will be immediately available at any point along a segment.Friday Facts #416 - Fluids 2.0 · Fluids 2.0In the old system, throughput would get worse as pipes got longer.Friday Facts #416 - Fluids 2.0 · Fluids 2.0In the new system, junctions are entirely unimportant; a segment only cares about the machines connected to it.Friday Facts #430 - Drowning in Fluids · Pipeline extentsYou can split a pipeline using a pump.Friday Facts #430 - Drowning in Fluids · Algorithm tweaksOutput rate used to be unlimited, but it is now inversely proportional to the fullness ratio of the sink.Friday Facts #430 - Drowning in Fluids · Algorithm tweaksthere is a hardcoded limit of 100 fluid per flow operation (6000/s).Friday Facts #430 - Drowning in Fluids · Algorithm tweaksThis limit is multiplied with the fullness ratios of the source and sink to produce the actual flow value

FFF

Cited by: Factorio, Fluid network

In 2.1.23 a pipeline's extent is limited by default_pipeline_extent = 320, which a fluidbox can override; a pipeline takes the smallest extent of its parts. The data doesn't say how the extent is measured. When Wube introduced the limit in 2024, FFF #430 described it as a 250 × 250 tile area whose overrun stops all flow until pumps split the pipeline. factorio-production/pipeline-extent

Value: 320 default_pipeline_extent

Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · core/prototypes/utility-constants.lua#L560default_pipeline_extent = 320, -- Can be overridden on a per-fluidbox basisFactorio Prototype API, version 2.1.23 (machine-readable JSON) · FluidBox.max_pipeline_extentThe max extent that a pipeline with this fluidbox can span. A given pipeline's extent is calculated as the min extent of all the fluidboxes that comprise it.Friday Facts #430 - Drowning in Fluids · Pipeline extentsPipelines are constrained to a 250x250 tile area, and exceeding this limit will cause all flow through the pipeline to cease.Friday Facts #430 - Drowning in Fluids · Pipeline extentsYou can split a pipeline using a pump.Checked by claude, 2026-10-26 — read default_pipeline_extent = 320 in core's utility constants, with Wube's comment that a fluidbox can override it; no base fluidbox read here sets max_pipeline_extent (searched entities.lua)

FFF

Cited by: Factorio, Fluid network

A pipe and an underground pipe each hold 100 units and a storage tank 25,000. An underground pipe pair has a max_underground_distance of 10. A pump moves 20 units a tick (1,200 a second) for 29 kW, a tenth of its earlier rate: Wube cut it in 2024 when pipelines gained their extent limit. factorio-production/pipes-and-pumps

Value
{
 "pipeVolume": 100,
 "storageTank": 25000,
 "undergroundDistance": 10,
 "pumpPerTick": 20
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L2766volume = 100,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L3026volume = 100,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L3035max_underground_distance = 10,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L7094volume = 25000,factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L7255-L7256energy_usage = "29kW", pumping_speed = 20,Factorio Prototype API, version 2.1.23 (machine-readable JSON) · PumpPrototype.pumping_speedThe amount of fluid this pump transfers per tick.Friday Facts #430 - Drowning in Fluids · Balance tweaksPumps have been nerfed to 1200/s (10x decrease), but this can be increased with quality.Checked by claude, 2026-10-26 — read the fluid_box volumes of pipe (from L2741), pipe-to-ground (from L2999, with its underground connection's max_underground_distance at L3035), storage-tank (from L7080) and the pump's energy_usage and pumping_speed (from L7200); 20 × 60 = 1200 per second, the figure FFF #430 gives

Cited by: Factorio, Fluid network

Water turns into ten times its volume of steam: Wube cut the water a boiler or heat exchanger needs tenfold in 2024 without changing any machine's power, so fluid wagons and barrels can carry a power plant's water. factorio-production/water-to-steam

Dev blogFriday Facts #430 - Drowning in Fluids · Balance tweaksthey just consume 10x less water to make the same amount of Steam.factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/fluid.lua#L32heat_capacity = "2kJ",factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/fluid.lua#L44heat_capacity = "0.2kJ",

In 2.1.23 the 1:10 follows from the heat capacities (water 2 kJ, steam 0.2 kJ per unit per degree); see boiler.

An oil refinery (crafting speed 1, 420 kW, 3 module slots) runs three 5-second recipes: basic oil processing turns 100 crude oil into 45 petroleum gas; advanced oil processing turns 100 crude oil and 50 water into 25 heavy oil, 45 light oil and 55 petroleum gas; coal liquefaction turns 10 coal, 25 heavy oil and 50 steam into 90 heavy oil, 20 light oil and 10 petroleum gas. factorio-production/oil-refining

Value
{
 "basic-oil-processing": {
  "in": {
   "crude-oil": 100
  },
  "out": {
   "petroleum-gas": 45
  },
  "seconds": 5
 },
 "advanced-oil-processing": {
  "in": {
   "crude-oil": 100,
   "water": 50
  },
  "out": {
   "heavy-oil": 25,
   "light-oil": 45,
   "petroleum-gas": 55
  },
  "seconds": 5
 },
 "coal-liquefaction": {
  "in": {
   "coal": 10,
   "heavy-oil": 25,
   "steam": 50
  },
  "out": {
   "heavy-oil": 90,
   "light-oil": 20,
   "petroleum-gas": 10
  },
  "seconds": 5
 }
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L8403-L8413module_slots = 3, … crafting_categories = {"oil-processing"}, crafting_speed = 1, … energy_usage = "420kW",factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/recipe.lua#L153-L229name = "basic-oil-processing", … energy_required = 5, … {type = "fluid", name = "crude-oil", amount = 100, fluidbox_index = 2} … {type = "fluid", name = "petroleum-gas", amount = 45, fluidbox_index = 3} … name = "advanced-oil-processing", … energy_required = 5, … …Checked by claude, 2026-10-26 — read the oil-refinery (from L8383: categories {oil-processing}, speed 1, 420kW, 3 slots) and the three oil-processing recipes, each energy_required 5

Coal liquefaction marks 25 of its 90 heavy oil ignored_by_productivity, the 25 it takes back in, so productivity bonuses add only to the net 65.

Cited by: Factorio, Production chain

A chemical plant (crafting speed 1, 210 kW, 3 module slots) cracks oil downward in 2-second recipes: 40 heavy oil and 30 water into 30 light oil, and 30 light oil and 30 water into 20 petroleum gas. Its other base recipes include plastic (20 petroleum gas and 1 coal into 2 bars), sulfur (30 petroleum gas and 30 water into 2), sulfuric acid (5 sulfur, 1 iron plate and 100 water into 50) and lubricant (10 heavy oil into 10), each in 1 second. factorio-production/cracking-and-chemistry

Value
{
 "heavy-oil-cracking": {
  "in": {
   "heavy-oil": 40,
   "water": 30
  },
  "out": {
   "light-oil": 30
  },
  "seconds": 2
 },
 "light-oil-cracking": {
  "in": {
   "light-oil": 30,
   "water": 30
  },
  "out": {
   "petroleum-gas": 20
  },
  "seconds": 2
 }
}
Codefactorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/entity/entities.lua#L8849-L8857crafting_speed = 1, … energy_usage = "210kW", crafting_categories = {"chemistry"},factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/recipe.lua#L234-L344name = "heavy-oil-cracking", … energy_required = 2, … {type = "fluid", name = "water", amount = 30}, {type = "fluid", name = "heavy-oil", amount = 40} … {type = "fluid", name = "light-oil", amount = 30} … name = "light-oil-cracking", … energy_required = 2, …factorio-data: Factorio's Lua prototype definitions, version 2.1.23 · base/prototypes/recipe.lua#L433-L481name = "sulfur", … energy_required = 1, … {type = "fluid", name = "water", amount = 30}, {type = "fluid", name = "petroleum-gas", amount = 30} … {type = "item", name = "sulfur", amount = 2} … name = "lubricant", … energy_required = 1, …Checked by claude, 2026-10-26 — read the chemical-plant (from L8553: module_slots 3 at L8568, speed 1, 210kW, categories {chemistry}) and the heavy-oil-cracking, light-oil-cracking, sulfuric-acid, plastic-bar, sulfur and lubricant recipes

Cited by: Factorio, Production chain