Astro Colony

Astro Colony

View Stats:
GD 7 Apr, 2024 @ 9:59pm
Non-Blocking Push/Splitter
I look for a logic block which can push or split a belt but will not stop when the output side is full. I noticed push and split do wait when the output is full which is good for a lot of scenarios but not for all.

This is helpful to max-out parallel belt throughput and to deal with non-constant usage of split belts (when one side uses items faster then the other but changes [so even ratio is no option here].

If there is non can we get some. Or alternatively can we get a checkbox in the settings dialog of the existing block "Non-Blocking" which enables/disabled this behaviour.
< >
Showing 1-13 of 13 comments
AstroColony  [developer] 8 Apr, 2024 @ 6:50am 
You can use any container as a buffer, so it will always have room to push items :)

I will think if we should change behavior, skipping direction if is blocked by other resources.
GD 8 Apr, 2024 @ 6:53am 
Container is unsuitable because it collects endlessly and it is too bulky.

Do you know this 2x2 splitter from Factorio. Something like this a box 2x1x2 with 2 inputs and 2 output.

Or as I said a logic block which can be set to "continue/gnore output if blocked"
Last edited by GD; 8 Apr, 2024 @ 6:53am
umop-apisdn 8 Apr, 2024 @ 7:09pm 
Originally posted by GD:
Container is unsuitable because it collects endlessly and it is too bulky.

Do you know this 2x2 splitter from Factorio. Something like this a box 2x1x2 with 2 inputs and 2 output.

Or as I said a logic block which can be set to "continue/gnore output if blocked"

Containers already work like you describe; as far as I know, the only complaint of yours that they don't answer is their large size.

TL;DR: your "splitter, but only if it's not blocked" isn't a splitter; it's a multi-input/multi-output buffer, and containers fit that bill.
GD 8 Apr, 2024 @ 8:18pm 
Let me explain with an example.

You have a belt and split it 2 ways left and right. You place a Splitter on die T-Cross.

Now if the left side consumes items for some reason faster (not just production cycle something which is sometimes more sometimes less, e.g. bottleneck of co-resources) less than the right side you will notice that the Splitter at some point blocks the left side. The left side only gets an item when the right side does. This is what I want to solve.

That the splitter with this option just say "okay, right belt is full, but left has still space so lets put items on it".

Example 2: Pusher
Same for the Pusher. Imagine a straight line. You have a left-side leading to a consumer. You put a Pusher on the cross. You will notice no items will continue straight anymore all is pushed left and if there is no space left on the belt everything stops.

I only want an option to tell the Pusher "Hey Pusher, push as much as you want but if the push-direction is full let it continue straight.".
Last edited by GD; 8 Apr, 2024 @ 8:20pm
umop-apisdn 9 Apr, 2024 @ 6:24am 
Originally posted by GD:
Let me explain with an example.

You have a belt and split it 2 ways left and right. You place a Splitter on die T-Cross.

Now if the left side consumes items for some reason faster (not just production cycle something which is sometimes more sometimes less, e.g. bottleneck of co-resources) less than the right side you will notice that the Splitter at some point blocks the left side. The left side only gets an item when the right side does. This is what I want to solve.

That the splitter with this option just say "okay, right belt is full, but left has still space so lets put items on it".

At the risk of repeating myself:
Originally posted by umop-apisdn:
Containers already work like you describe; as far as I know, the only complaint of yours that they don't answer is their large size.
... by which I meant warehouses, of course. Try it, you might realize you like it.

I'd love a smaller container, mind you... and if we're adding new buildings, I'd rather have a smaller in-line multi-port container than yet another logic block.
Last edited by umop-apisdn; 9 Apr, 2024 @ 6:27am
GD 9 Apr, 2024 @ 6:34am 
I know what a container/warehouse is and used it thousand times already.

The problem above has nothing to do with warehouses but with behaviour of Splitter and Pusher under certain circumstances.

I cannot place a warehouse on the belt somewhere because it would endlessly pull resources I do that somewhere else I need the belt to be properly utilized so I can feed two or machines with the same belt.
Illuminia 9 Apr, 2024 @ 8:00am 
I've deleted my old save from about a year ago, so can't provide screenshots..... but you can use the logic system to emulate what you want using pushers.

I haven't worked a new game back up to that point yet, so I'm going based on memory from last year .... take with a grain of salt.

Let's say you have a straight conveyor running next to Carbon Reactors, and you want a Pusher in front of each reactor to push off sideways to a conveyor feeding into the Carbon Reactor. If not pushed off to any reactors, the belt continues to storage or other crafters.

You can use Inventory Sensor logic to watch how much Carbon is in the Reactor, and logic cable to connect it to the Pusher - this lets you DISABLE the pusher based on how much Carbon is in the Reactor.

Repeat that for each Carbon Reactor / Pusher combo.


Similar logic can/should work on anything else with an Inventory... did something similar with the Ice Breaker so that it would keep ~5 ice in a breaker for making oxygen, anything else split between farm and storage.
Last edited by Illuminia; 9 Apr, 2024 @ 8:01am
Jordon 23 Jun, 2024 @ 11:30pm 
I'm kind'a confused here.. is this still the current state? Putting storage on every direction of the splitter is not only horribly cumbersome but it also forces 100% of the resources to be consumed. This gap makes the logistics systems so much chunkier than every other "factory" game out there - the workarounds are painful.
Basic 29 Jun, 2024 @ 5:24pm 
Originally posted by umop-apisdn:
At the risk of repeating myself:
Originally posted by umop-apisdn:
Containers already work like you describe; as far as I know, the only complaint of yours that they don't answer is their large size.
... by which I meant warehouses, of course. Try it, you might realize you like it.

I've tried it. It doesn't do the job as it doesn't evenly distribute inputs to outputs.

One input, Three outputs and 90% of the resource goes to one output.

The physical size is a PITA but the capacity can be limited by using a pushed at the input and checking the inventory level to enable/disable it with logic blocks.

That way, at least it's only X resources wasted in the huge building, and you can still use backpressure as a signal.

But all of that is pointless if it doesn't balance outputs when they're not blocked.
DukeSatan 16 Jul, 2024 @ 3:03pm 
Maybe a bit late to bring this into the equation, I've just had the same issue, the right hand belt became blocked due to the container and further on machines all reaching there logic controlled limits.

I've got around it by adding a bypass pusher logic and belts to the overflow path just before the splitter and assigning a new logic controller to the same storage container with the same limit as the logic controller that turns the blocker logic off and clogs the belt.

This way the bypass pusher turns on when the blocker is off and vice versa, making the splitter do the work when the storage container gets low, but the bypass do the work when its full, this costs about 5-6 blocks extra, mostly in logic blocks.

Granted this will only really work for a two split and not for a three split set-up, but it does work and now my power system is back to 100% and not 50% operation.

Might help someone anyway

What would be ideal is if the splitter had an extra option to enable an overflow direction for each output, disabled by default so the user must enable for their own preference, its then similar to the bypass above without the need for extra blocks.

Either that or setting the ratio to 0 means overflow this way, but that might mess up some other options of ratios that others would like, but then an overflow negates the need for a ratio.... oh hum.
Star of Remphan 17 Jul, 2024 @ 8:46am 
I've run into this as well. Using a splitter like factorio or foundry would be nice. Even if it's just a 2-3 wide logic block between belts.
Last edited by Star of Remphan; 18 Jul, 2024 @ 4:58am
RiseOfDeath 30 Jul, 2024 @ 8:14am 
Just +1. I really need to have easy way to non-blocking split of belts. It's possible to do byy using buffer container, container reader, and other things, but it will be too big and complex
Last edited by RiseOfDeath; 30 Jul, 2024 @ 8:15am
CoW 3 Jan @ 11:35am 
Just +1. I really need to have easy way to non-blocking split of belts. It's possible to do byy using buffer container, container reader, and other things, but it will be too big and complex
< >
Showing 1-13 of 13 comments
Per page: 1530 50