In other languages: Deutsch Français 日本語 Polski Русский Українська 简体中文

Lab: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(→‎Production requirements: improved (IMO :p ) formatting of math; minor other changes; also see <!-- --> comment)
(transformed formulas using LaTeX)
 
(13 intermediate revisions by 7 users not shown)
Line 4: Line 4:
'''Labs''' are buildings that perform [[research]] for [[technologies]] by consuming [[science pack]]s. Use of a lab is required to progress in Factorio.
'''Labs''' are buildings that perform [[research]] for [[technologies]] by consuming [[science pack]]s. Use of a lab is required to progress in Factorio.


The player can only research one technology at a time, but can use multiple labs for faster results. The speed bonus of labs when [[Lab research speed (research)|Lab research speed]] is researched and modules are present can be calculated using this formula: <code>research_bonus × module_bonus = speed_bonus</code>; the percentage bonuses have to be converted to decimals (e.g. +140% = 2.4) before the formula is used.
When [[productivity module]]s are used in labs, the productivity bonus is directly calculated and applied each [[Time#Ticks|tick]] so the productivity bar is simply cosmetic. This means that it does not matter that the productivity bar resets when the research is changed, no productivity bonus is lost. [https://forums.factorio.com/26860]
 
The player can only research one technology at a time, but can use multiple labs for faster results. The speed bonus of labs when [[lab research speed (research)|lab research speed]] is researched and modules are present can be calculated using this formula: <code>research_bonus × module_bonus = speed_bonus</code>; the percentage bonuses have to be converted to decimals (e.g. +140% = 2.4) before the formula is used.
 
[[Inserters]] can insert and remove science packs from labs. This allows chaining multiple labs together with inserters, each inserter taking science packs, as needed, from one lab and placing it into the next.


When [[productivity module]]s are used in labs, the productivity bonus is directly calculated and applied each [[game-tick|tick]] so the productivity bar is simply cosmetic. This means that it does not matter that the productivity bar resets when the research is changed, no productivity bonus is lost. [https://forums.factorio.com/26860]


==Production requirements==
==Production requirements==
Calculating the number of science packs needed per second is straightforward:
Calculating the number of science packs needed per second is straightforward:
* <code>ERS = 1 + B(r) ÷ 100</code>
* <math>ERS = \left( 1 + \frac{B \left[ r \right] }{100} \right) \times \left( 1 + \frac{M \left[ r \right] }{100} \right) </math>
* <code>ACT = T(r) ÷ ERS</code>
* <math>ACT = \frac{T \left[ r \right] }{ERS}</math>
* <code>PPS = N ÷ ACT</code>
* <math>PPS = \frac{N}{ACT}</math>


Where:
Where:
*'''''ERS''''' is "effective lab research speed"
*'''''ERS''''' is "effective lab research speed"
*'''''B(r)''''' is the Lab Research Speed bonus as reported by the game, in percent
*'''''B[r]''''' is the Lab Research Speed bonus as reported by the game, in percent
*'''''M[r]''''' is the sum of all module speed effects (Speed modules - positive; Productivity modules - negative), in percent
*'''''ACT''''' is "adjusted cycle time"
*'''''ACT''''' is "adjusted cycle time"
*'''''T(r)''''' is the research cycle time as displayed in the research screen
*'''''T[r]''''' is the research cycle time as displayed in the research screen
*'''''PPS''''' is "packs per second"
*'''''PPS''''' is "packs per second"
*'''''N''''' is the number of labs available.
*'''''N''''' is the number of labs available.


Thus, for a 10-lab setup, researching Nuclear Power (30 second cycle time) with Lab Research Speed 4 (140% bonus), the calculation is:
Thus, for a 10-lab setup, researching Nuclear Power (30 second cycle time) with Lab Research Speed 4 (140% bonus) and no module effects, the calculation is:
*<code>ELRS =  1 + (140 ÷ 100) = 2.4</code>
*<math>ERS =  1 + \frac{140}{100} = 2.4</math>
*<code>ACT = 30 ÷ 2.4         = 12.5 s</code>
*<math>ACT = \frac{30}{2.4}      = 12.5 s</math>
*<code>PPS = 10 ÷ 12.5       = 0.8</code>
*<math>PPS = \frac{10}{12.5}      = 0.8</math>


This means 0.8 science packs per second, of each type, would need to be produced to continuously supply the labs.
This means 0.8 science packs per second, of each type, would need to be produced to continuously supply the labs.


=== Equation simplification ===
=== Equation simplification ===
The above calculations can be combined into one equation, provided all labs have the same ''B(r)'':
Assuming all labs have the same ''B[r]'' (which they always will unless they are affected by different module configurations), the above calculations can be combined into one equation:
<!--


Comment (invisible on page):
* <math>PPS = \frac{N}{T \left[ r \right] } \times \left( 1 + \frac{B \left[ r \right] }{100} \right) \times \left( 1 + \frac{M \left[ r \right] }{100} \right)</math>
Does a situation ever occur where they wouldn't? Not AFAIK in single player. Non-shared research in multiplayer? If not, the tail of the sentence probably doesn't need to be here; or else the fact it's always true should be added if the sentence is kept for rigor.


-->
Thus for the numerical example:
* <code>PPS = N × (1 + [B(r) ÷ 100]) ÷ T(r)</code>
* <math>PPS = 10 \times \left( 1 + \frac{140}{100} \right) \times \frac{1}{30} = \frac{10}{30} \times \left( 1 + 1.4 \right) = \frac{1}{3} \times 2.4 = \frac{2.4}{3} = 0.8</math> packs per second


Thus for the numerical example:
If trying to find the amount of labs needed to consume a given amount of packs per second, use the following rearrangement:
* <code>PPS = 10 × (1 + [140 ÷ 100]) ÷ 30</code> = <code>(10 ÷ 30) × (1 + 1.4)</code> = <code> (1 ÷ 3) × 2.4</code> = <code> 2.4 ÷ 3</code> = <code>0.8</code> packs per second
* <math>N = \left( \left( 1 + \frac{B \left[ r \right]}{100} \right) \times \left(1 + \frac{M \left[ r \right]}{100} \right) \times \frac{1}{T[r] \times PPS} \right)^{-1}</math>


== History ==
== History ==
{{history|0.15.12|
* Lab speed info in the description contains the researched speed bonus as well.}}


{{history|0.12.6|
{{history|0.12.6|
Line 55: Line 59:
{{history|0.7.2|
{{history|0.7.2|
* Changed the recipe of Lab to require 4 transport belts, down from 5.}}
* Changed the recipe of Lab to require 4 transport belts, down from 5.}}
{{history|0.7.0|
* Added support for modules to labs.}}


{{history|0.6.0|
{{history|0.6.0|
* New graphics.}}
* New graphics.
* Labs are dedicated to backers (displayed in entity info).}}


{{history|0.2.7|
{{history|0.2.7|

Latest revision as of 12:14, 7 November 2024

Lab.png
Lab

Lab entity anim.gif

Recipe

Time.png
2
+
Electronic circuit.png
10
+
Iron gear wheel.png
10
+
Transport belt.png
4
Lab.png
1

Total raw

Time.png
21.5
+
Copper plate.png
15
+
Iron plate.png
36

Map color

Health

Quality normal.png 150
Quality uncommon.png 195 Quality rare.png 240
Quality epic.png 285 Quality legendary.png 375

Stack size

10

Dimensions

3×3

Energy consumption

60 kW (electric)

Mining time

0.2

Speed

Quality normal.png 1
Quality uncommon.png 1.3 Quality rare.png 1.6
Quality epic.png 1.9 Quality legendary.png 2.5

Module slots

2 slots

Prototype type

lab

Internal name

lab

Required technologies

Electronics (research).png

Boosting technologies

Lab research speed (research).png

Produced by

Assembling machine 1.png
Assembling machine 2.png
Assembling machine 3.png
Player.png
Science packs put into the front lab will be passed to labs behind it.

Labs are buildings that perform research for technologies by consuming science packs. Use of a lab is required to progress in Factorio.

When productivity modules are used in labs, the productivity bonus is directly calculated and applied each tick so the productivity bar is simply cosmetic. This means that it does not matter that the productivity bar resets when the research is changed, no productivity bonus is lost. [1]

The player can only research one technology at a time, but can use multiple labs for faster results. The speed bonus of labs when lab research speed is researched and modules are present can be calculated using this formula: research_bonus × module_bonus = speed_bonus; the percentage bonuses have to be converted to decimals (e.g. +140% = 2.4) before the formula is used.

Inserters can insert and remove science packs from labs. This allows chaining multiple labs together with inserters, each inserter taking science packs, as needed, from one lab and placing it into the next.


Production requirements

Calculating the number of science packs needed per second is straightforward:

Where:

  • ERS is "effective lab research speed"
  • B[r] is the Lab Research Speed bonus as reported by the game, in percent
  • M[r] is the sum of all module speed effects (Speed modules - positive; Productivity modules - negative), in percent
  • ACT is "adjusted cycle time"
  • T[r] is the research cycle time as displayed in the research screen
  • PPS is "packs per second"
  • N is the number of labs available.

Thus, for a 10-lab setup, researching Nuclear Power (30 second cycle time) with Lab Research Speed 4 (140% bonus) and no module effects, the calculation is:

This means 0.8 science packs per second, of each type, would need to be produced to continuously supply the labs.

Equation simplification

Assuming all labs have the same B[r] (which they always will unless they are affected by different module configurations), the above calculations can be combined into one equation:

Thus for the numerical example:

  • packs per second

If trying to find the amount of labs needed to consume a given amount of packs per second, use the following rearrangement:

History

  • 0.15.12:
    • Lab speed info in the description contains the researched speed bonus as well.
  • 0.12.6:
    • The research speed of a lab is now not dependent on its electricity consumption, and can be scripted.
  • 0.12.0:
    • Lab research is now continuous; Science packs now have progress bars.
  • 0.9.2:
    • Labs are now named after early access backers when built from blueprints.
  • 0.7.2:
    • Changed the recipe of Lab to require 4 transport belts, down from 5.
  • 0.7.0:
    • Added support for modules to labs.
  • 0.6.0:
    • New graphics.
    • Labs are dedicated to backers (displayed in entity info).
  • 0.2.7:
    • Contents of the Lab is now shown in the entity info.

See also