[raiguard][2.1.8] Fluid is not shared evenly

Filcius
Burner Inserter
Burner Inserter
Posts: 17
Joined: Thu Mar 19, 2026 2:51 pm
Contact:

[raiguard][2.1.8] Fluid is not shared evenly

Post by Filcius »

I am not sure if this was intentional or not, but it is definitively not what I expected.

When many assemblers share the same pipe input, either through an external pipe or not, the priority seems to be given to the one closest to the fluid source.
In this scenario below, no science pack seems to be built.
In 2.0, the shared fluid was shared evenly and all assemblers would work intermittently and I would be able to craft some science pack. (tested on 2.0.77)
To reproduce this problem, I used this setup. It uses infinite resources, except for the tested fluid.
06-25-2026, 12-52-16.png
06-25-2026, 12-52-16.png (1.31 MiB) Viewed 3957 times
Last edited by Filcius on Thu Jun 25, 2026 8:15 pm, edited 1 time in total.
Rseding91
Factorio Staff
Factorio Staff
Posts: 17033
Joined: Wed Jun 11, 2014 5:23 am
Contact:

Re: [2.1.8] Fluid is not shared evenly

Post by Rseding91 »

Thanks for the report. This is simply how machines with pass-through fluid connections work in 2.1.
If you want to get ahold of me I'm almost always on Discord.
Filcius
Burner Inserter
Burner Inserter
Posts: 17
Joined: Thu Mar 19, 2026 2:51 pm
Contact:

Re: [2.1.8] Fluid is not shared evenly

Post by Filcius »

In the design to the right, I do not use the pass-thru mecanism. My expectation would be to work the same way than the non-pass-thru recipes, to make plastic for example from a shared pipeline.

Having the fluid not shared equally seems like an additional puzzle that I was not expected from the other "fluid is shared equally along the pipeline" design I am used to in other parts of my factory.

My idea that could fix this is to make the EM plant suck fluid like they did before, but make the pass-through fluid connection only accept valid fuel. It may have consequences I am not aware elsewhere, but I wanted to shared how the pass-through mechanism should works, based on my intuitions and expectations.
Rseding91
Factorio Staff
Factorio Staff
Posts: 17033
Joined: Wed Jun 11, 2014 5:23 am
Contact:

Re: [2.1.8] Fluid is not shared evenly

Post by Rseding91 »

I’ve forwarded this topic to the fluids person. But as far as I know, you don’t have to be actively using the pass through feature for it to be in effect. The way it works engine wise is every connection is bidirectional at all times.
If you want to get ahold of me I'm almost always on Discord.
User avatar
raiguard
Factorio Staff
Factorio Staff
Posts: 807
Joined: Wed Dec 13, 2017 8:29 pm
Contact:

Re: [2.1.8] Fluid is not shared evenly

Post by raiguard »

This was completely intentional and I thought it was a neat trade-off, but I have seen nothing but negative reactions to this, so I will look into solutions.

I should note, however, that even if I change EM plants to suck actively like directional connections, they won't be able to self-balance like directional connections do because they are operating directly on the segment, so the first machine to update will get the greatest share of fluid. There is literally nothing to be done about that.
Don't forget, you're here forever.
radical_larry
Long Handed Inserter
Long Handed Inserter
Posts: 95
Joined: Wed Dec 04, 2024 1:52 am
Contact:

Re: [raiguard][2.1.8] Fluid is not shared evenly

Post by radical_larry »

Would it be possible to allow all machines connected to one fluid source to take turns being the first to update? So they all rotate through a queue, first machine updates, then second, and so on, then the first machine gets sent to the end of the queue for the next tick. This would appear like even distribution, which I thought was one of the big selling points of the 2.0 fluid update.
ThatChapThere
Manual Inserter
Manual Inserter
Posts: 1
Joined: Thu Jun 25, 2026 10:48 pm
Contact:

Re: [2.1.8] Fluid is not shared evenly

Post by ThatChapThere »

raiguard wrote: Thu Jun 25, 2026 9:56 pm they won't be able to self-balance like directional connections do because they are operating directly on the segment, so the first machine to update will get the greatest share of fluid. There is literally nothing to be done about that.
Can't the EM plant have two fluid buffers, one passthrough one that works exactly how it currently works in 2.1, and one for crafting that drains from that first one? That would actively drain the system while still keeping the drain balanced between machines.

Either way, making fluid inputs unbalanced seems worse than the problem trying to be solved here.
Filcius
Burner Inserter
Burner Inserter
Posts: 17
Joined: Thu Mar 19, 2026 2:51 pm
Contact:

Re: [raiguard][2.1.8] Fluid is not shared evenly

Post by Filcius »

I am not sure if it is necessary, but I wanted to add this to complement the case.

I made this test in 2.1.8 to test this behavior.

In the 3rd factory on the right, the Petroleum gas is shared equally. I think this is how the player will learn how the fluid works in a shared pipe.

The idea, is that the player may be used to this behavior in Nauvis. Unless there is a clear way to show or explain that the bidirectionnal throughput works differently, it may cause surprises and frustration.
Capture d’écran, le 2026-06-25 à 20.09.31.png
Capture d’écran, le 2026-06-25 à 20.09.31.png (1.3 MiB) Viewed 3724 times


Not sure if it helps, but I am adding this idea to the brainstorming of ideas. You may already tought about it, but I am joining it just in case. I don't know the exact consequence on other flows, though. My suggestion for changes are drawn in red on this diagram.
Capture d’écran, le 2026-06-25 à 20.13.25.png
Capture d’écran, le 2026-06-25 à 20.13.25.png (531.14 KiB) Viewed 3724 times
MindHawk
Burner Inserter
Burner Inserter
Posts: 8
Joined: Sun Nov 03, 2024 5:39 pm
Contact:

Re: [2.1.8] Fluid is not shared evenly

Post by MindHawk »

raiguard wrote: Thu Jun 25, 2026 9:56 pm I should note, however, that even if I change EM plants to suck actively like directional connections, they won't be able to self-balance like directional connections do because they are operating directly on the segment, so the first machine to update will get the greatest share of fluid. There is literally nothing to be done about that.
I'm not sure if this would produce other issues, but if the pipes on all connected sections of a bidirectional input were considered to be directly connected to each other, and the pipeline's actual connection to the machine worked the exact same way as a directional connection, wouldn't that solve this issue?
Basically, just connecting all of the bidirectional pipelines inputs with each other directly without having a part of the pipeline in the assembler itself and making the assembler's connection functionally directional.

That could introduce some issue depending on which other segment of the pipeline it grabs from (but other machines have this issue too, when you have multiple water directional water inputs on a chemplant, for example). It could also not make this connection if the fluids don't match what the machine's trying to pull out of that pipeline but shouldn't need to do that in this case?

Maybe this breaks down if it's just a machine's fluid output buffer plus a bunch of stacked bidirectionally chained EM plants without pipeline, but it seems like in that case each of those machines is in effect directly hooked up to that one fluid output buffer which doesn't seem like it'd be a problem?
06-26-2026, 02-44-48.png
06-26-2026, 02-44-48.png (101.82 KiB) Viewed 3703 times
AssaultRaven
Long Handed Inserter
Long Handed Inserter
Posts: 64
Joined: Sun Jun 08, 2014 4:00 am
Contact:

Re: [2.1.8] Fluid is not shared evenly

Post by AssaultRaven »

raiguard wrote: Thu Jun 25, 2026 9:56 pmI should note, however, that even if I change EM plants to suck actively like directional connections, they won't be able to self-balance like directional connections do because they are operating directly on the segment, so the first machine to update will get the greatest share of fluid. There is literally nothing to be done about that.
I feel like the ideal would be to make it logically indistinguishable from a segment of straight pipe with an intake machine tapped off to one side, so that the pipeline buffer inside the machine is functionally just part of the pipe segment. I didn't examine pipe physics in detail during 2.0 but I feel like I never encountered a situation that contradicted that mental model. I did create a PWM platform thrust control system, which seemed to just work like I expected.

I don't know how to formalize what that behavior is, but I mean like, the fluid flow in these 3 setups should be mechanically indistinguishable, like if the pass-thru connection were just a pipe with the machine connection rotated 90 degrees vertically and put on top instead off to the side:

Image

Edit: Actually, now that I think about it isn't that just the old system? Isn't the so-called "double buffer" actually just the normal input buffer, and also there's a pipe? So yeah, wouldn't just bringing back the internal input buffer make it work like expected? The whole issue to begin with was the unfiltered pipe segment, but unless I'm misunderstanding something shouldn't the improved fluid mixing prevention already be enough to prevent that?

It does occur to me that removing the active sucking behavior from ALL fluid intakes would also make the system mechanically consistent, and you just need to put pumps in front of everything you want to have sucking power. But isn't that also a situation that the 2.0 fluid overhaul was meant to make unnecessary?

Edit Edit: Also does it actually matter if players can't see the contents of the pipe inside the machine? Isn't that visible via selecting the pipe segment it's part of, and can't it be drained along with that segment if it's pumped out? If not then the issue is that it's not acting enough like a normal pipe.
Zanju
Manual Inserter
Manual Inserter
Posts: 2
Joined: Tue Jun 23, 2026 3:36 pm
Contact:

Re: [raiguard][2.1.8] Fluid is not shared evenly

Post by Zanju »

People on Reddit seem to agree, so let me share the idea here:

The biggest issue is inconsistency between pass-through and input only machines, because them working differently is what is really confusing.

So, make input only machines act as part of the pipeline as well, just like pass-through machines:
- Consistency between pass-through and input only machines
- Pumps can be used to create "low pressure" storage and "high pressure" production area - IMHO this is great in giving more interesting structure to the fluid systems.
Friant
Manual Inserter
Manual Inserter
Posts: 4
Joined: Tue Nov 26, 2024 11:51 pm
Contact:

Re: [raiguard][2.1.8] Fluid is not shared evenly

Post by Friant »

Having read through this forum and the related thread on Reddit link, I would like to make a (possibly terribly-informed) suggestion.

I think that the decision Raiguard mentioned in the Reddit thread to have the machine pull from the entire pipeline is the right one as fluidboxes (? I think that's the technical term) are otherwise treated as monolithic objects that have a singular fluid level. I think moving the non-passthrough machines to the same system where they don't "suck" up fluids, but instead rely on the fluidbox being sufficiently filled to trigger the recipe would also be good to ensure a uniformity of behavior, though at the cost of having to make a big behavioral decision:

A. The fabrication buildings take fluid as they need it in the order they are updated, meaning that the buildings last in the update order might be starved.

B. The fabrication buildings wait until there is enough fluid to trigger every recipe pending, thus ensuring that no machine is starved of fluid at the cost of additional computational overhead.

Both have trade-offs, but I think I have a rough solution that would also fix another possible problem. This thread on Reddit link discusses some unintuitive behavior regarding storage tanks. Tanks IRL typically are filled above the pipeline, thus ensuring that the pipes stay full even if the tank is only partially filled and a consistent supply of fluid up until the fluid level is below the top of the pipe. Factorio tanks don't behave like this, instead acting effectively like a very large bit of pipe.

My suggestion is thus in two parts:

1. Make all buildings consuming fluids treat the entire pipeline as their buffer in one of the two ways described above.

2. Make it such that fluid tanks fill in two stages, one tracking the fill level of the pipe and the other collecting any excess fluid that the first stage can't accommodate (up to the limit of the tanks, that is). Then, as fluid is drained from the system, the excess can be drained first.

This might seem like it simply takes the double-buffer problem and pushes onto the tanks instead, but there is a fundamental difference. With the old system, each fabrication building had it's own double buffer. My suggestion would entail only two buffers for the entire fluidbox: the pipe level and the excess stored in tanks.

I hope this might be of some use to you. Like I said, it is possibly wildly uninformed. I just that this might be an approach that kills two birds with one stone.

Cheers, devs!
Bootstrap
Burner Inserter
Burner Inserter
Posts: 5
Joined: Tue Jun 19, 2018 2:30 am
Contact:

Re: [2.1.8] Fluid is not shared evenly

Post by Bootstrap »

raiguard wrote: Thu Jun 25, 2026 9:56 pm This was completely intentional and I thought it was a neat trade-off, but I have seen nothing but negative reactions to this, so I will look into solutions.

I should note, however, that even if I change EM plants to suck actively like directional connections, they won't be able to self-balance like directional connections do because they are operating directly on the segment, so the first machine to update will get the greatest share of fluid. There is literally nothing to be done about that.
I'm not concerned about how evenly the machines pull from a trickle of material, that was easy enough to work around in 1.x (but this change is reintroducing a minor problem from 1.0).
My main problem is that it's now possible to have 500 acid in a tank but be unable to craft blue circuits because that machine isn't actively pulling fluid and the "internal pipe" has less than 5. And that's only a tradeoff for blue circuits because I could give up faster crafting and more modules and inherent productivity for...not being punished for using a buffer (not a good or interesting trade, but it is a trade); every other example of this being an issue is forced by there only being one building that can craft the item and the only recipe forcing the use of a passthrough which won't let you craft if you have an arbitrarily low buffer.
Bootstrap
Burner Inserter
Burner Inserter
Posts: 5
Joined: Tue Jun 19, 2018 2:30 am
Contact:

Re: [2.1.8] Fluid is not shared evenly

Post by Bootstrap »

AssaultRaven wrote: Fri Jun 26, 2026 5:29 am It does occur to me that removing the active sucking behavior from ALL fluid intakes would also make the system mechanically consistent, and you just need to put pumps in front of everything you want to have sucking power. But isn't that also a situation that the 2.0 fluid overhaul was meant to make unnecessary?
You could, but sulfuric acid requires 100 water so that would only ever run when the pipes are perfectly topped off & acid neutralization would never run since you need more than 100 sulfuric acid to start the recipe. Unless the internal pipe's size was set to be huge, but that opens up a different set of issues more troublesome than just allowing sushi pipes to work with pass-through buildings...
vemusa
Burner Inserter
Burner Inserter
Posts: 13
Joined: Mon Jun 01, 2026 5:48 pm
Contact:

Re: [raiguard][2.1.8] Fluid is not shared evenly

Post by vemusa »

I want to add: fluid ports on machines shouldn't apply their filters to the entire pipeline.
A fluid port applying it's filter to the entire pipeline is analogous to a filtered inserter taking items from a belt applying it's filter to the entire belt lane, completely invalidating any dynamic fluid or sushi belt setup, including setups not relying on passing unfiltered fluid through bidirectional ports.
Filcius
Burner Inserter
Burner Inserter
Posts: 17
Joined: Thu Mar 19, 2026 2:51 pm
Contact:

Re: [raiguard][2.1.8] Fluid is not shared evenly

Post by Filcius »

vemusa wrote: Fri Jun 26, 2026 4:18 pm I want to add: fluid ports on machines shouldn't apply their filters to the entire pipeline.
A fluid port applying it's filter to the entire pipeline is analogous to a filtered inserter taking items from a belt applying it's filter to the entire belt lane, completely invalidating any dynamic fluid or sushi belt setup, including setups not relying on passing unfiltered fluid through bidirectional ports.
If the solution of the pipe with a filter is retained, it should only filter the portion of the pipe that is invisible and passing through the EM plant, keeping any invalid fluid to enter the EM plant. The idea, is that all 3 scenarios mentionned by AssaultRaven would behave the same. Like if there was a pipe running inside the middle EM plant. A filter may not be necessary, maybe the new fluid mixing prevention could work if it assumes that the EM plant has acid in it, even if it is empty. There would be a warning if another kind of fluid tries to enter the EM plant.
Image
Last edited by Filcius on Fri Jun 26, 2026 4:32 pm, edited 1 time in total.
Valeskas
Burner Inserter
Burner Inserter
Posts: 15
Joined: Fri Sep 16, 2016 4:59 pm
Contact:

Re: [raiguard][2.1.8] Fluid is not shared evenly

Post by Valeskas »

Personally, I liked old system more. It makes sense that passthrough port is just an embedded pipe accepting whatever fluid, but the machine only takes if it is the indicated one. Fully matches an external pipe setup mental model.
New system just breaks blueprints for me, and requires learning implementation details of passthrough pipes.

The only issue with the old system is the hidden pipe segment hiding some amount of fluid. I wonder if its easy to just make discontinuous pipeline without it, leaving everything else as it is.
Last edited by Valeskas on Fri Jun 26, 2026 5:53 pm, edited 6 times in total.
AssaultRaven
Long Handed Inserter
Long Handed Inserter
Posts: 64
Joined: Sun Jun 08, 2014 4:00 am
Contact:

Re: [2.1.8] Fluid is not shared evenly

Post by AssaultRaven »

AssaultRaven wrote: Fri Jun 26, 2026 5:29 am Edit Edit: Also does it actually matter if players can't see the contents of the pipe inside the machine? Isn't that visible via selecting the pipe segment it's part of, and can't it be drained along with that segment if it's pumped out? If not then the issue is that it's not acting enough like a normal pipe.
I figured I'd just check this, and yes, in 2.0.77 the internal pipe just gets counted as part of the normal pipe segment, and can be drained along with it, as shown with this 25k of water:
Images
This also demonstrates the unfiltered pipes, but aside from that this feels like the expected place to go looking for the fluid in the internal pipe segment? It's consistent with the mental model of the inside of the EM plant being a normal pipe plus a normal assembly machine.

Even if the new mixing prevention isn't enough by itself, I kind of feel like just accepting the existence of internal sushi pipes is a smaller cost to pay than sacrificing the simplicity and consistency of the 2.0 fluid overhaul.

Edit: I see on Reddit you consider it a "major issue" that the internal pipe contents aren't shown on the GUI, but I think most people aren't even thinking of the internal pipe as a second buffer in the same way that you are, but just as a normal pipe that happens to pass under the EM plant, no different than parts of a pipe segment that you can't click on because they pass behind an elevated rail support. The behavior shown in this post is consistent with that model.
Bananycus
Burner Inserter
Burner Inserter
Posts: 8
Joined: Tue Nov 19, 2024 12:24 am
Contact:

Re: [raiguard][2.1.8] Fluid is not shared evenly

Post by Bananycus »

I also liked the previous system more. To fix the invisible fluid problem, you could just make it visible instead of removing it.
alessandrouw
Burner Inserter
Burner Inserter
Posts: 11
Joined: Fri Jun 29, 2018 2:29 pm
Contact:

Re: [raiguard][2.1.8] Fluid is not shared evenly

Post by alessandrouw »

I'm no specialist here, but assuming a pump attached before the EM plants fix the issue, could you simulate in the code that each EM (or passthrough) has an built-in "pump" from the pipeline to the EM input? This would pick-up fluid from the pipeline without affecting the general pipeline pressure. Just tossing a troubleshooting idea here

Example:
EM Example.png
EM Example.png (17.83 KiB) Viewed 1276 times
Post Reply

Return to “Assigned”