Cite as
Factorio Prototype API 2.1.23
Original
https://lua-api.factorio.com/2.1.23/prototype-api.json
sha256
03db6bfff8ab1dcf738a52f33331fb839e53dbafcc576492cd297f94a4ba99f2
Archived
https://web.archive.org/web/20261026221612/https://lua-api.factorio.com/2.1.23/prototype-api.json
Accessed
2026-10-26
Licence
© Wube Software, all rights reserved
Credit
Wube Software's modding documentation, version 2.1.23.
Notes
The whole prototype documentation in one JSON file, the same text as the HTML pages under lua-api.factorio.com/2.1.23/prototypes/. It gives the meaning and unit of the fields factorio-data sets (a belt's speed, a recipe's energy_required, a pole's supply_area_distance). Locators name the prototype or type and the property. Several fields (an inserter's rotation_speed, a reactor's neighbour_bonus) have no description in it.

Cited on

Claims (21)

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.MinableProperties.mining_timeCode
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.MinableProperties.fluid_amountCode
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.MiningDrillPrototype.resource_drain_rate_percentWiki
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.ResourceEntityPrototype.infinite_depletion_amountCode
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.RecipePrototype.energy_requiredCraftingMachinePrototype.crafting_speedPublisher
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.RecipePrototype.categoriesCode
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.BeaconPrototype.supply_area_distanceBeaconPrototype.distribution_effectivityBeaconPrototype.profileCode
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.TransportBeltConnectablePrototype.speedTransportBeltConnectablePrototype.speedCode
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.TransportBeltConnectablePrototype.speedPublisher
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.InserterPrototype.bulkCode
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.LabPrototype.inputsCode
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.TechnologyUnit.timePublisher
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.TechnologyPrototype.research_triggerCode
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.BoilerPrototype.target_temperatureCode
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.GeneratorPrototype.maximum_temperatureCode
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.ReactorPrototype.consumptionCode
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.GeneratorPrototype.maximum_temperatureCode
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.ElectricPolePrototype.supply_area_distanceElectricPolePrototype.maximum_wire_distanceCode
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.FluidBox.max_pipeline_extentCode
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.PumpPrototype.pumping_speedCode
In Minecraft the player crafts by laying out a recipe's pattern on a 2×2 or 3×3 grid; the crafter, a late addition, made automated crafting possible in the base game. In Factorio the player asks for an item by its recipe: handcrafting runs at crafting speed 1, a recipe's time is its seconds at that speed, missing parts that can be crafted are queued first, and the player can handcraft only the "crafting" and "hand-crafting" categories, which leaves out the furnaces' smelting recipes.RecipePrototype.energy_requiredWiki