6

I was trying to ratio-out a small iron plate making factory. I used this calculator which indicated that I need 0.7 electric mining drills in order to feed 1 stone furnace:

calculator showing 0.7 drills needed

This is equivalent to saying I need a mining drill running at 70 percent speed to feed 1 stone furnace (you can't reduce the speed of anything in Factorio though). A stock electric mining drill can harvest 0.5 items a second (or 1 item every 2 seconds, or 30 items a minute). A stone furnace can smelt a single iron ore in 3.2 seconds, thus 18.75 iron ore a minute. But, "0.7" electric mining drills means it should harvest 21 ore a minute, yet this calculator says 18.75. If I did my math right, I should only need .625 of an electric mining drill since 18.75/30 = 0.625 items a minute.

Are belts being factored in somehow? The calculator also shows belts, but I am not understanding how they are being factored in exactly (if at all). The yellow belts can move 900 items a minute (15 a second).

calculator showing the items/belts/factories

Note: I am ignoring the coal portion of this. It shouldn't matter anyway for my question.

Why do I need 0.7 electric mining drills instead of 0.625 to feed 1 stone furnace in order to make iron plates?

2 Answers 2

5

The code for rounding can be found here.

I've reproduced the significant portion below.

toDecimal: function(maxDigits, roundingFactor) {
    if (maxDigits == null) {
        maxDigits = 3
    }
    if (roundingFactor == null) {
        roundingFactor = new Rational(bigInt(5), bigInt(10).pow(maxDigits+1))
    }

    var sign = ""
    var x = this
    if (x.less(zero)) {
        sign = "-"
        x = zero.sub(x)
    }
    x = x.add(roundingFactor)

With maxDigits equal to 1, roundingFactor will be set to 0.05, unless otherwise specified. After adding the roundingFactor, the value 0.625 becomes 0.675, so it will be 0.7 rounded to one decimal place.

If you expand the decimal places to 3 in the settings, it produces the correct answer: Calculator Settings

Calculator Output

I speculate1 that this is done so that the calculator will always show you more than what is needed if a perfect ratio is not available. If the factory said that 0.6 would work, you would find that 60% uptime is insufficient to feed your design, which is not good.

For what it's worth, you can have 0.7 of a miner. According to the wiki, when enough electricity is not available machine slow down to only consume what is possible. An underfed miner could work at 70% capacity.

Additionally, you may intentionally set up a duty cycle with circuit conditions.

Both of these cases are exceptionally rare and questionably useful, but the calculator is not opinioned on how you should solve (or benefit from) non-integer quantities of machines. There are possibly use cases that may benefit from a machine working only part of the time.

More likely what this is useful for is to tell you how much the machines will be working. Your single furnace will be running 100% of the time. The miner will not be able to be on 100% of the time, it's output will eventually back up. So this calculator tells you that you only need one miner, but it will only be on 62.5% of the time, which will effect how much power you need to build.

This is the same result, but analyzed from the opposite end of the problem.

At the end of the day, it makes sense for the calculator to just tell you the truth without putting you in a spot where you will make mistakes, while not forcing an opinion on what you should think about non-integer values.


1 I could be wrong on this, I didn't write the code and I don't see any comments that clear up the intent.

4
  • You're right about if not enough power is being made machines slow down, but that's not really controllable as far as I am aware - but it seems like the only reason 0.7 is displayed is purely because of the way this calculator works.
    – Timmy Jim
    Commented Nov 21, 2022 at 19:41
  • @TimmyJim I don't know why you would, but it's certainly possible. An electric mining drill needs 90kWh, a single solar panel supplies 60kWh at full daylight. Running at 66% is trivially possible. If you really cared, you could set up a circuit-based clock with a power switch to connect it only a portion of the time. Again, this is quite silly and probably shouldn't be done, but it certainly can be.
    – TechnoSam
    Commented Nov 21, 2022 at 19:47
  • @TimmyJim Alternatively, it shows the duty cycle that will be imposed by the weakest link. Here, the furnace will be working 100% of the time. But a fully powered miner produces more than it can consume. So the miner will only be on 62.5% of the time, consequently drawing only 62.5% of the power that it otherwise would. That certainly effects how much power your factory needs to operate, so it is a useful metric to include. (I've updated my answer to include this)
    – TechnoSam
    Commented Nov 21, 2022 at 20:08
  • In satisfactory, you can run machines at lower speeds to reduce the amount of power they consume. It's useful to save power when say you only need .5 of a smelter to create enough iron ingots for something. Different game obviously, but if a similar system existed in this game, it could be useful.
    – Timmy Jim
    Commented Nov 21, 2022 at 20:49
3

Seems the calculator rounds up the required drills. If you ask for 8 factories (0.625 * 8 = 5) it correctly shows you need 5 drills for that.

enter image description here

4
  • Maybe. Another calculator I found also showed 0.7. I don't get why it would round though...
    – Timmy Jim
    Commented Nov 20, 2022 at 13:08
  • 3
    @TimmyJim probably because it does not matter. You cannot build either 0.625 or 0.7 drills. You will have to use 1 drill instead. Number after decimal points are only useful to see that it is not a perfect ratio and as a basis for ballpark assumption on potential changes to the ratio. Commented Nov 20, 2022 at 13:30
  • 1
    @Revolver_Ocelot it be weird to round .625 up to .7, but I suppose it could be doing a "ceiling" type rounding where It always rounds to the next tenth, but only in cases of when its below 1.
    – Timmy Jim
    Commented Nov 20, 2022 at 14:57
  • @TimmyJim Rounding up makes sense to me - if it was possible to set a drill to operate at reduced capacity, then running at 0.6 would produce too little ore to keep the furnace running constantly, while 0.7 would keep it running with a bit left over.
    – Player One
    Commented Nov 20, 2022 at 23:37

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .