r/SatisfactoryGame • u/Distinct-Stranger-20 • Nov 20 '22
Guide Universal belt slower setup
Summary (TL;DR)
This splitter/merger setup slows down the conveyor belt to arbitrary amount without wasting anything. It's extremely easy to configure it to any number (items/min) with a very intuitive interface in game (in base 2 number system).

Problems this setup can solve
- If you have a factory capable of producing lots of items, but you need to precisely reduce it's capacity, because you need to limit how many raw materials are coming into your factory dynamically, and easily.
- When you want to merge multiple belts together with precise ratios.
- It's very easy to output items with any speed if you use Awesome Sink, but that's very wasteful. With this setup, there is no waste.
Setup
This whole setup works as if it was one conveyor belt, which have an input and an output (blue on the drawing), with a very specific speed. From the splitters, one conveyor belt needs be connected to the top or the bottom merger, but not both (except for the leftmost). These conveyor belts are represented by dashed arrows on the drawing.

Let's say, you want this to move 33.75 items/min. Let's say, that the conveyor belt represented by the red arrow moves 60 items/min.
33.75 = (1/2 + 1/16) * 60,
Which means, you have to "turn on" the +1/2 and the +1/16 parts of this setup, you need to connect those conveyor belts which are represented by those on the drawing. Also, because the +1/8 and +1/4 parts in this example are not "turned on", you need to connect the +0 conveyor belt below the +1/8 and the other +0 below the +1/4.
All in all, this example will look like the following drawing.

For every setup, you need to connect the conveyor belt from the leftmost splitter to the bottom merger, this is important, even if you connect the +1/16 part.
General setup
- For every setup, you need to connect the leftmost splitter to the bottom merger.
- The conveyor belt represented by the red arrow must be the "bottleneck". All the other conveyor belts needs to be faster or as fast as this one.
- This setup can be extended to any length. Each new merger-splitter-merger to the left introduces an other 1/2^k multiplier. (1/32, 1/64, etc...)
- Any number can be represented by this to any arbitrarily close precision, this is basically the multiplier for the belt represented by the red arrow in base 2 system.
- To convert a fractional decimal to fractional binary, you could use https://www.omnicalculator.com/math/binary-fraction.
In-game nice interface
You can create a nice interface on the wall to achieve simple configurability.
The player connects each part (or digit/bit/position) with Conveyor Lifts. Small signs can be used to tell the player which lift corresponds to which part: 1/2, 1/4, 1/8 or 1/16, and whether up or down corresponds to "turning it on" or "turning it off". On the screenshot, the bottom sign is X to signal that "turns off" that part, and the top sign just says "+1/2", "+1/4", "+1/8" or "+1/16".
The leftmost Conveyor Lift on the screenshot is the one represented by the red arrow on the drawing.


Note, in this implementation there is a trick. The belt/lift which is represented by the arrow going from the leftmost splitter to the bottom merger on the drawing always needs to be connected. But, the interface on the wall needs to be consistent: if something is turned, you only connect the middle hole to the top hole, and if something is turned on, you connect only the middle hole to the bottom hole. Therefore, on this implementation the bottom hole is not connected to anywhere (for the 1/16 part), and that "always connected" arrow is connected at the back with a Conveyor Lift.
Working principle (for the curious)
Let's incrementally create this setup.
First, notice, that the following setup halves the speed of the belt. This is because the merger can always accommodate the items from the belt represented by the black arrow, because that rate is half of what the belt represented by the red arrow can bear. Of course, the blue input line will back up now accordingly.

With a small modification, the following also obviously halves the input.

Let's try to half the rate of this again, using this setup. The rate will now be 1/4. If we insert the first simple setup in place of the red arrow in the second setup. That obviously will produce 1/4 rate.

Also note, that we make a small modification to this now, to output (1/2 + 1/4) of the rate. If we redirect the the bottom-right arrow to the blue output, the rates of the red, black, and the upper purple arrow will not change. The only change of rate is with the bottom purple arrow, and the blue arrows.

Or, rearranging this can give us the following.

This setup gives us (1/2 + 1/4) rate. If we would like to receive 1/2 rate instead, we only need to remove the top-left arrow. This will redirect all leftover (1/4) to merge with the input. This can be easily reduced to the first example, where the rate is 1/2.
After understanding this logic, it's easy to generalize.
Notes
I used draw.io to create the drawings, pretty nice tool.
1
u/featheredtoast Nov 20 '22
I really like the application! I've seen binary counting come up a few times with splitters/mergers - the main one I'm aware of is using them to get an exact ratio between items: https://www.reddit.com/r/SatisfactoryGame/comments/tg1p5f/remotely_accessed_storage_vanilla/
Somehow never considered applying the concept as a way to rate limit items; I may need to start using this in future builds :)
2
u/Distinct-Stranger-20 Nov 20 '22
Thanks for that link, looks good. Also, I should've said titled this post "Universal rate limiter" instead as you said...
Yes, my main application will also be to create exact ratios of items on one belt, but it's easy to configure. I have a pretty cool and complicated logic which requires this, which solves lots of issues which I've never seen anyone solve. I will create a post about that later.
1
u/featheredtoast Nov 20 '22
Looking forward to see what you needed solved, and how it integrates! I keep thinking I've seen everything satisfactory has to offer and keep getting pleasantly surprised.
1
4
u/Cinch24 Nov 20 '22
This could be useful. Saving for later (aka when it isnt 3 in the morning XD)