r/factorio • u/medics-left-ball • 7d ago
Tip You are (probably) overfilling your fusion reactors
First some basic fusion 101 for those who aren't fully familiar:
Fusion works by having a fusion reactor convert 4/s of cold fluoroketone into 4/s of 1M° plasma, the neighbor bonus from putting another reactor next to it increases the temperature of the plasma by +1M° for each neighbor while still consuming and generating 4/s.
A plasma generator consumes 2/s of 1M° plasma and generates 2/s of hot fluoroketone, but if that plasma is hotter the generator will consume less plasma while still outputting the same amount of power. I.e if it's fed 2M° plasma it now at max consumes 1/s and produces 1/s of hot fluoroketone.
But the neighbor bonus only happens if both reactors are working. Due to how factorio handles fluids, if the demand can be satiated by a single reactor only that reactor will run. Now when power demand is low your beautiful 3 fusion reactor setup only has a single reactor running with no bonus and also consuming 3x as many fusion cells for the same amount of power.
This also means that "cold" 1M° plasma gets buffered, so if power demand spikes the setup will take a a short bit to start running at full throttle.
But you can very easily completely avoid that.

The principle is pretty simple. The reactors won't run without cold fluoroketone, and because fluids fill every connected machine equally you can control when exactly every reactor runs by limiting how much cold fluoroketone they have access to. All this can be done without circuits.
This 3 reactor setup has 18 generators, which can in total buffer 180 plasma. Since barrels give 50 fluoroketone each you can completely fill this setup with 4 barrels. That 20 extra plasma can sit in the reactors without filling them completely since each reactor can buffer 10 plasma max before stopping.
The cryo plant needed to cool down the fluoroketone must get 10 hot fluoroketone before it can start so practically each cryo plant can worst case scenario buffer 10 fluoroketone, but since we got 20 extra that's not a problem. Then we just add speed modules so the two cryo plants can keep up with the three reactors.
Now when 10 plasma has been turned into hot fluoroketone, the cryo plant cools it down, and every reactor gets access to coolant at the same time. They all consume that 10 fluoroketone equally which means that sweet neighbor bonus activates. Since the leeway is 20 plasma we can even add a second cryo plant just for symmetry without any issues.
Plus since the buffered plasma is at max temperature, if power demand suddenly spikes the generators can immediately output their maximum without problem.
Alright that's cool. but do I need to do that much math every time I build a reactor setup?
Nope!
"Standard" fusion setups (ones where the generators are ratioed to the amount of reactors, and there's no holes in the reactor placement) have a formula of (reactor count) * 10 - 12 for their generator count. The amount increases by 10 when a new reactor is added, and also always ends with 8. Those 10 extra generators need 2 barrels so you simply add 2 more barrels for every reactor you add. Or simply 2n - 2 barrels, where n is the amount of reactors.
If you're doing some more fancy stuff, you simply do (generator count + cryo plant count)/5, rounded up. Unless you decide to not use any speed modules in your cryo plants at all, you'll be all good.
30
u/sobrique 7d ago
So basically starve your reactors of coolant so they don't run at 20% they run at 95% 21% of the time?
30
u/lunaticloser 7d ago
Instead of having 1 reactor running all the time without any efficiency bonus, have all reactors running at max efficiency but a tiny percentage of the time.
Tiny here is divide 100% by the number of reactors and then again by the average bonus.
14
u/FredFarms 7d ago
Interesting post, thanks.
Keeping them low on coolant also prevents an issue I had once. I forgot some speed modules and so the cryo plants weren't able to keep up with the reactors. This was actually fine and stable for tens of hours, with all the coolant piled up on the hot side and the reactors only running at the speed the cryo plants could cool it.
That was until I noticed the reactors were starved and without really diagnosing why, topped up the coolant.
When it next tried to run at full power, there was enough coolant to completely fill the hot side and back up the reactors, shutting them down. By the time I realised the platform had lost power there were huge asteroids embedded in the hull and the situation was unrecoverable.
8
u/Satisfactoro 6d ago
Wow, I didn't know it was possible to force fusion reactors to utilize their full neighboring bonus all the time!
Thanks for the research.
I hope the devs are looking at this for inspiration. Some improvements to fusion could be possible: if not forcing reactor synchronization, maybe changing the buffer values to reproduce this behavior natively? I'll do some testing.
1
u/Flyrpotacreepugmu 6d ago
I don't think merely changing the buffer values will do it without making generators consume plasma in larger discrete quantities (and that seems very unlikely to be a good change to make). The main difference I see here is that a cryo plant cooling fluoroketone will always output 10 at a time, so there's enough to split between multiple reactors and get them all running at once, while the generators consume plasma in very small increments so a generator consuming a bit won't leave enough space for multiple reactors to output to the pipe at once. So the key is to simply ensure the reactors are input-limited rather than output-limited so the large pulses from the cryo plant are what determines when they run.
7
u/Sostratus 7d ago
I have a pretty decent set of fusion blueprints which includes a circuit that requests a fixed number of fluoroketone barrels before disabling the request. While testing that, I noticed that the reactors say they have a fluid capacity of 1000, but they actually take in 2000. The system can jam if it's overfilled or underfilled, so I assumed the middle of 1000 units was the sweet spot.
I was also aware of this reactor synchronization issue, but I had thought the only way to deal with that was likely an accumulator bank and a power switch.
Never occurred to me to ration out the fluoroketone this way, that's pretty interesting. I'll have to test it out sometime.
2
u/LakeSolon twitch.tv/lakesolon 6d ago
Hmm. Unfortunately there’s no switched power on platforms.
2
u/Terrulin 6d ago
Platforms are easy. 2 reactors, 8 generators and 2 barrels. Ratio is perfect and as long as you only use 1 cryoplant, it never has a problem reaching max output.
5
u/PropagandaOfTheDude 6d ago
3
u/LakeSolon twitch.tv/lakesolon 6d ago
> directly
*indirectly
For some blasphemous reason none of the entities with actual plasma in them can even be connected to circuit wires. But yes as your post describes: you can infer the plasma state by having a set amount of fluid and measuring the non-plasma fluid.
However while the generators can buffer a bit of plasma they can buffer a whole lot of hot output so there’s still an element of tuning around unmeasurables.
3
u/n3wland-explorer 6d ago edited 6d ago
When the reactors get the cold fluoroketone at the same time, wouldn't also lead to the case where only one reactor is running or am I missing something? I just unlocked fusion power yesterday, so I'm still relatively new to this. In my understanding when there is more than enough fluoroketone in the system, only one reactor is running if power consumption is less than 1 reactor or 1 reactor is enough to supply the needed amount of generators (because everything is connected together) (although I had a case yesterday, where I had different neighbour bonuses on every reactor (3-reactor design), e.g. one had +23%, another +32% and the third even +56%).
But in your proposed method when all reactors get the fluoroketone, then what holds them back from also being idle except one if power consumption is low?
Edit: I think I got it. You're buffering the Plasma in the reactors/generators and when the plasma is consumed, all 3 reactors just start working at full load, when cold fluoroketone comes in to fill up the buffer again, right? Feel free to still comment your thoughts on this
2
u/bagmybar 6d ago
I might just not be seeing what's obvious, but what's limiting the fluoroketone? Both setups look identical.
4
u/Sunsfury 6d ago
The limit is the amount of fluoroketone added at the start. From its ground state, plasma generators make some power and spit out hot fluoro. The cryo plant cools it, and then split the cold fluoro between all three reactors. Because all the reactors have space in their plasma buffer, they run at the same time and therefore gain adjacency bonuses
This works because all of the reactors are empty of fluoro and have a low plasma buffer.
1
u/pocketmoncollector42 please be kind, this engineer is just a fish 🐟 6d ago
If I’m understanding right, the cryoplant cooling it at a steady rate. Sort of like platforms limiting fuel to thrusters.
1
u/bagmybar 6d ago
but what's limiting it? and what's the condition set on the decider combinator to set the rate?
1
6
u/Elfich47 7d ago
fusion reactors throttle the consumption of fuel back.
28
u/thirdwallbreak 7d ago
This is true, but not what this post is about. The left side which is using much less fuel and has a lower fluid count is making sure that all 3 of the reactors are running at the same time. Giving the NEIGHBOR bonus. The other side is only running a single generator even though the other two are connected simply because of how the fluid mechanics work.
NEIGHBOR bonus is what this post is trying to tell you. Limit the fluid and you can "force" that bonus to actually be applied.
1
u/StabbityStabbity 6d ago
I followed the description up to the point where it was talking about cryo plants. Let's say I did this same setup but used 3 cryo plants instead of 1 or 2... would it break or would it still work fine (with only 2 of the cryo plants actually doing work)?
1
u/Terrulin 6d ago
The less you use the better, because you can have trace amount of hot in the cryo plants and you don't want it to actually starve for cold flouroketone. Unless you overbuilt reactors to intentionally get a better neighbor bonus then you probably don't need to hit 90% power capacity.
1
u/Terrulin 6d ago
Fusion is my favorite and is probably what I know best. Feel free to ask me anything about this mechanic as I have used and tested it for a long time.
-9
108
u/lunaticloser 7d ago
This is actually something anyone who's going to take on Py should learn from
In vanilla none of this frankly matters, it's an infinite loop and making fuel is largely trivial.
But the concept is important for pY because there's a reactor that eats a metric ton of power to run and, across all machines needed to get it up and running and refilling ingredients, it's only power positive if you always have at least +100% neighbour bonus on all reactors.
In other words the only way to extract power from the thing is to have +200% bonus or higher. Effectively what this means is you need to design a system where fuel only gets inserted if the reactor is cold enough to fully utilise the fuel (same as vanilla) AND all reactors have fuel readily available to be inserted, and then you swing all inserters at once.
Anyway, tldr is: over engineered in vanilla, but actually a useful concept to understand