These sorts of patterns are called design patterns in the programming context and maybe we could create the same concept for factorio with similar names. Design patterns in programming can give you patterns to follow for many sizes of abstractions. In factorio we could adopt the generic name or we could easily differentiate them as the size is closely related to what you're making. For example we could have belt patterns for those widgets, factory patterns for how you arrange groups of assemblers and other processing machines along with belts, and factory layouts/architecture for the whole architecture of the base. Anyway just an observation and a suggestion of a programmer. Nice video BTW, I think I'll use some of those widgets in my base more consciously.
@@othergames563CC focuses on small modules that are designed to do only one task. So I think uncle Bob would be against a bus design at all. I think he'd go for an atomic railway cel factory where every step is loaded into rails. Let's call it the RVB: railway virtual bus. So we'll end up with a 5 to 1 ratio of rail and station to assemblers and belts.
These widgets feel more like higher order functions. In the context of functional programming, belts are morphisms, so a belt widget takes a morphism and returns another morphism. This can also be applied to factories as well, factories are higher order functions too. Clean architecture can easily be applied to factorio though you need trains. Let's do a SOLID analysis: S: Can factories follow the single responsability principle? Yes, they can be modularized so that they only have one reason to be modified, e.g upgrade them with beacons. O: Can factories follow the open closed principle? Yes, though you need trains to do it. You can create a blueprint for your factory and have the same name for the train stop L: Can factories follow the Liskov substitution principle? In vanilla you don't even have to worry about this, in SA you also don't have to worry too much, though you have to keep quality setups independent of each other. I: Can factories follow the Interface segregation principle? Again, no need to worry D: Can factories follow the dependency inversion principle? Yes, though, you'd need to use buffer chests instead of normal chests at the train stops so that you could use bots too.
You have just given me a great number of ideas to solve problems I was dealing with yesterday while playing a SE+K2 playthrough using city blocks. I'm not used to have the space constrained that way and this video would be time saving jajaja
No offense, but the last widgets you showed really are just 1 to 2^n belt balancers. If you want to split into a non-power-of-2, just use a 1 to N balancer...
Whether you call them "widgets" or "balancers" they have their particular properties and use cases. With noting is that the two lane-balancers/scramblers shown are not true balancers unless the input is unsaturated. If the input belts are saturated, then they act more as lane-swappers. You can turn them into true lane-balancers by forcing them to lane-swap, and then using two more splitters to split and then merge the belt so half gets swapped and the other half stays unchanged. If there's only one input belt though, neither version will be able to output a compressed belt unless the input is already compressed on both lanes (or the output belt has lower throughput than the input). For this reason, they're mainly useful either just to be able to pull from either lane, or when given two belts as input to act as a 2-1 lane balancer (which is also a sort of 4-2 balancer). Then there are "universal balancers" which can act as any kind of smaller balancer, and "universal _lane_ balancers" which pretty much mix as thoroughly as one could possibly ask for. Universal balancers however are ultimately just a meme and are pretty much useless except for looking cool.
This reminds me of a lane-balancer I've build. It might be the same type as the one you describe, but (at least for me) it's difficult to understand what a design look like from words... It takes one belt as input, and also one as output. It's acts as a balancer for that belt, just like the standard balancer, but with one improvement: The input-belt always gets balanced. The reason simpel balancers don't do this, is because with sideloading: the futhest lane gets proirity. So as you said: they act like lane-swappers. My change is this: Split the belt in two and sideload both on separate belts, keep sideload priority in mind. Then sideload one of those single-lane belts to change the lane (if neccesary) so that both single-lane-belts use the same lane-side. Then finally: combine those lanes with a splitter, and use one output as the main output, and the other output gets sideloaded onto the empty lane of the output. But words can be not so great at describing this. So Imma try to draw it :) (S is a spliter) . -----------V Input --> S -^- S -V ,, S -V- S ------> Output . --------> I
I just started playing Factorio recently. I appreciate this video greatly. I have a suggestion, when you go through a list of design's like this, it would be helpful if the video had chapters for each design. I have been addicted to this game for a couple of weeks now and subscribed to your channel.
I think you can get non 2^n numbers of assemblers/centrifuges have even numbers of items if you redirect unused channels back to the input. My line of reasoning goes like this: If you want 7 assemblers and route the 8th conveyor into the input each assembler gets 1/8th on the first pass with 1/8 getting split around sending 1/64 of the original input to each one which also gets sent round again. As this tends towards infinity the output of each assembler tends towards 1/7. A similar thing can be done with 1/6 by routing 2 of the final outputs (by excluding a splitter) back round.
not scrambler... they're usually called lane-balancers. and the T splitter that you weren't sure was useful is actually one of the most useful splitters you showcased (except with a small change...it only uses TWO splitters instead of 3, that top splitter is removed, and you pull two seperate resources down and then side load using the splitters..... it's useful in large mall builds (particularly for pulling a full line each of green and red circuits, and splitting off two lines with each line having a single lane for each circuit type. ...also useful for builds where multiple resources are needed by the crafting speed/consumption speed doesn't necessitate a full line of that resource. (early batteries, and red circuits come to mind). One of the "widgets" i use often in early game is what i call the pulse-controlled consumption balancer...it's basically a lane balancer that pulls from a main bus that has a faster belt speed and ensures balanced consumption from that bus while splitting/side-loading as the situation demands. The OTHER way the t splitter is useful is if the top splitter (and belts leading into it are RED. converting a single red line into two lines of yellow circuits that are balanced while being side loaded respectively. It's...a rare usecase, but can be useful in some circumstances.... if only a single resource type is being loaded on that red belt it isn't really useful, but if mixed resources are on the belt, it's an effective way to sort while also splitting.
the t splitter he was talking about that you are saying can be used for combining resources on to belts? He is saying that it can be used as a one to lane balancer splitter all in one widget. he covered its ability to be used for multiple resources earlier in the vod.
@@DavidSmith-cr7mb right, you can do that, but if you don't set the input belts and first splitter to RED, you'll get compression issues (unless consumption is low)
I don't use balancers: Here's a J-Scrambler - a very well known 1-to-1 balancer. Here's a way to take a belt of barrels, and then output it to 2 or more belts in a balan... equal way. Just because you designed your own balancers and don't call them balancers doesn't mean you don't use them.
HA!! Interesting point. When I hear 'belt balancer' what I see in my mind's eye is a configuration of dozens and dozens of things, mostly splitters. Using your analogy, a widget but for more than one (or possibly two) belts. It could be argued that this is a 'definition' thing, in that, once you define something then some things either want to squeeze in or squeeze out of that definition... I'm being mischievous. I don't think either of us are wrong here. EDIT Ultimately a splitter is a belt balancer.
His J-scrambler isn't a balancer though, and neither is his T-scrambler. The J-scrambler only works if input comes from one of the two sides of the belt. And the T-scrambler simply swaps the sides of the input when the belt is already compacted. To get an actual balancer, you need to use undergrounds to block off one half of the belt at a time. Therefore, I'd consider "widgets" to actually be a more apt name than balancers in this scenario
@@sweetcornwhiskey It is a balancer. It takes the input, and balances the output to both sides of the belt. That's a 1-to-1 Output Balancer. It doesn't only work with one side, if you have (for example) 2/3rds of a lane input on one side, and 1/3rd of a lane input on the other side you'd get a balanced 1/2 a lane output on both sides. ie, it takes an unbalanced input and gives a balanced output. Type "1-to-1 lane balancer factorio" into google and you'll find this design. Using undergrounds to limit the input to a specific lane of the belt at a time can give you a 'balanced input' balancer but that's just a more specific constraint to a balancer. Not all balancers are balanced input - and I would say the vast majority are not.
If you don't mind a bit of circuitry, my favorite balancing method for a bunch of chests (mainly addressing your last widget, but with no space footprint effectively) is what I'd just call "the grid" (since you get a grid of red and green wire in block storage) you just have a row of chests, and arms feeding into or out of them. Wires go from each chest to their arm(s) in one color (I typically use green), and across all chests and arms in the other (red for me). You then divide the total chest contents (red wire) by -(number of chests), and add a small offset with a constant combinator, and feed that signal to the arms (red wire again). Since you divided by the negative of the number of chests, it's 0 if it has the average number of items. give the constant combinator a negative value of the item and set the arms to active on (item < 0) for inputs or positive value and (item > 0) for outputs and it keeps them all pretty close to in sync
I didn't realize this was an entire group of things ^^ In my bases I naturally ended up using a few of these but... Thanks for sharing this collection, it'll solve so much of the spaghetti I had to do!
i really only use balancers to unload trains evenly. wagon -> buffer -> balancer -> factory. that makes it so if theres uneven resource distribution the train wont get stuck at the station because one of the wagons is feeding into something consuming resources very slowly while other parts of the factory are starving. with a balancer you can set trains to simply depart when empty and not worry about it 'reverse clogging'
a really useful widget that i feel you omitted here is the input-balanced lane balancer (or "scrambler" as you call them) - they use underground belt sideloading combined with a splitter to get each lane of an input belt onto its own belt, swap one of the belts' lanes (e.g. they take the belt containing the left lane and move it to the right lane of the same belt), use another splitter as a 2-2 balancer, then take the now balanced half belts and dump one into the empty lane of the other, creating a widget whose output lanes are "blind" to the input lanes, meaning that they take evenly from both. this is highly beneficial in setups where either the production or consumption is uneven, as it can prevent situations where the output belt isn't full while some of the producers still have full buffers (for example: furnace stacks where one side cannot keep up with demand while the other side is fully backed up and not doing anything, or mining outposts where one side of the belt has more miners, meaning the other side takes a lot longer to fill the belt while the first one isn't doing anything). it essentially "rotates" the imbalance 90°, meaning that a 1 lane shortage across X amount of belts will be turned into a 2 lane shortage across 0.5*X belts - which is very helpful when your furnace stack for instance is less than X belts long.
Love your style. Also, the issue you referred to where a lane ends up with resources on one side not being used up is almost never an issue because it only happens when assemblers are on one side of a belt and there isn’t enough assemblers to consume more than half of a belt of throughput. The inserters will always grab from one side of the belt if there is resources on that side and if you’re producing too much of that resource one side will just back up because it’s not needed. You could add more assemblers anywhere on your bus to consume more of that resource and the stopped lane would fire back and start being consumed
Isn't "scrambler" basically a 2to2 balancer but for belt sides? Inserters prefer taking items from the belt side that is further from them, so placing machines on both sides of the belt should fix issues with uneven consumption.
Love the style of live-building things. Suggestion, if you could use the hotbar instead of opening the inventory it would interrupt the flow even less.
interesting! I love balancers because I buffer smaller ore patches into chests, so belt balancers help make sure the buffering happens at an even rate and the ore patch is evenly mined out.
the 'narrower centreline' at 5:30 is so simple that im embarrassed i didnt think of it myself, i would mostly use it on a half/half belt where im pulling one resource off to one side but the result is the same, that i now have the option of 3 wide vs 3 tall on my plate of spaghetti
For the last thing: e.g. koravex, you can directly use circuits, can't you? If the chests are connected anyway for counting, you can also connect the inserters. Then compute the average over all chests and only enable the inserters if it is less or equal. Then they will synchronize and wait for the "slowest" chest to fill. I use it for even filling buffer chests on train stations without using splitters
I do use circuits but I obviously do it differently from you. I use them to calculate the ratio of u-238 and u-235 and if it is above what I need for nuclear fuel then it tells the inserters to start sending stuff to koverex. I'm guessing you do the same just on the input inserter to the box instead of the output inserter to the box.
@theotherbigfoot Sure an it's completely fine how you do it. Just a comment, if you use them anyway, putting them on the other side makes the splitting obsolete and saves tons of space, since this particular splitting takes quite an amount of space (compared to other shown widgets)
Regarding your distributor - While it might be against your sense of aesthetics, you can transform it into any number of destinations by simply routing the excess ends back into the input feed with some priority splitters.
I don't use balancers either, in modded gameplay anyway. Generally I didn't use them at all in vanilla when I was playing through it so long ago either. My "balancers" are actually warehouses and storehouses using the Loader mods. Whether it is a min-loader or a regular 2 tile one which takes no power, they are so much more efficient overall then the base game ones and take up *way* less space. Plus I can store stuff in them too as an added bonus and create buffers really easily.
There is a reson to use the edge approach vs centerline. It's less demand on time and resources. Not much, but in an early game approach for things like gotlap and tins, it makes a difference for tbose still near the time marks.
Wanted to touch on "Aesthetics" as it is unfortunately an important concept, even though it's definitely not critical since most factory builders tend to work solo. "Aesthetics" of an automation layout game where the troubleshooting is visual and expansion or enhancements being applied in place need to work around easily-identified factory functions you've put there previously. Experienced players will recognize this as things that they feel look "appealing". So, if you are a newer player, and you don't quite know what looks good yet, just remember that it's first about maintainability and ease of identification. If you're not sure what you're looking for there yet, you need to gain experience as this will be different for everyone, and you will definitely develop, and then continue to develop, a personal style of your own as you continue building things out. Since you probably won't work with a team, you won't super need to worry about your aesthetic senses unless it's actually causing you grief.
Does anyone noticed that scrambler doesn't work? Well it works if saturation of coming belt is uneven, but it won't help if consumption of the materials is uneven and one side of the belt gets empty) To solve this situation there is other scrambler, not so compact though.
I wish you had shown the belts in use more. I like the idea from what I did understand but I don't understand what it really does cause all I really saw was empty belts the whole time.
Take a like for your widgets 🎉 Practice your basics, fellow engineers. Whether you're heading into the hype for the new expansion later this year as an experianced spaghetti chef or tackling a modpack like SE/K2 or even Pyanodon (especially Py....😅), they'll serve you well.
I'm using your mixing widget in my actual factory in one of my builds, and I kinda discovered a major flaw, correct me if I'm wrong: The way you set it up, it can happen - especially if you have more input than you need - that only one side of the input belt gets used. Like, I have a full belt of gears, but only the left side of that belt flows on the mixed belt. That generates a massive inbalance further up the line, which can only be sorted by a lane balancer. Have you never encountered such a problem in your own factory, or am I missing something?
You will have to correct me if I'm wrong also, but it sounds like you are inputting 45 gears into a mixing widget and outputting that onto two belts but only on one side? Which should be what it is designed to do. I might need a screenshot
I feel like I gotta unsubscribe from you, I'm only 150 hours into the game and seeing this kind of stuff just feels like cheating to me, lol. Seriously damn good work and thanks for the presentation mate!
After 1200+ hours of factorio, I don't understand people who have not figured out yet that a main bus is just a bad idea that doesn't scale. You NEED a many-to-many-network for throughput.
What if you weren't looking to scale? What if you were to build a single factory, from day 1, that had the precise amount of production to achieve a particular SPM without ever needing to scale?
A main bus is simply a set of belts that feeds a specific cluster of your factory that can be replicated N times to create N clusters for N different functions. The advantage is that instead of singles lanes of Ore, you have multiple lanes, so you can create way bigger clusters with bigger purposes that just creating a single belt of green circuit. How getting ride of a "multi-belts" concept might help in scalability?
Can't you just use circuits instead for the last one? At smaller scales a belt solution is neat but it seems to quickly get big while you could just use circuits to calculate the average that is stored and then only enable inserters if their own box contains less than or equal to the average. To speed it up a little by allowing a bit of unevenness you can add a little to the average before sending it back to the inserters.
I tried this this exact circuit network with barrels. What happens is that the circuit network does the calculation and then a tick later the inserter is enabled. Sometimes the inserter is disabled during that tick by the average changing. At peak throughput the inserters are constantly hesitating and/or changing their mind. There might be a way that is possible but I couldn't find it. That conveyor widget thing does the job without me even having to think about it.
I think adding just 1 to the average should alleviate the issue. Any inserters that then are hesitating are ones that already are above average so it doesn't matter if they are hesitant and might even lead to a better spread
@@tekbox7909 I don't think it will. Whatever value is chosen as the trigger for the inserters, whether it be the average or the average plus something, will be the value the inserters dance around. I think. I can't say I tried everything with circuits and barrels but I did try a lot.
If you want a technical answer it's because we can guarantee a flow rate on a conveyor belt regardless of the distance it needs to travel, which isn't the case for a pipe. If you want my answer.... for funzies
@@theotherbigfoot Nothing wrong with that, you do balance things just not redundantly like most people. In your previous video on this topic you seem to have a hard time understanding trains. If we reduce your issue it does come down to a lack of understanding in how to buffer for and time train inputs appropriately. I don't believe I was mistaken there.
@@zipzap8937 I'm pretty happy with my understanding of factorio's trains. The way I do it sounds like it is different from the way you do it but it works just fine for me.
@@theotherbigfoot May I suggest a public Google Drive folder? That link should fit, and then the Drive contains files with the blueprint strings in them.
Mostly, I think your real argument against belt balancers comes down to aesthetics. You've got a very particular style you prefer, a style that doesn't blend nicely with the large number of assorted underground belts and splitters needed to properly balance a large number of belts. You've broken up everything into clearly decipherable pieces which can be easily assembled together and managed as blocks. I find it funny that you say you don't use balancers, but you basically re-invented a worse concept of a balancer at 10:25. That problem of only being able to split belts by a power of two is solved by very common belt balancers. Balancers with those basic 1 to 2^X ratios are literally just the ones you're using. Balancers with odd ratios involve belt loops to evenly distribute items, but they do solve that problem of being able to handle non-trivial splitter distributions. Go look at a 1:6 belt balancer, and it looks like it would fit your style quite nicely. That little 1:3 loop might be a very effective "widget" to add to your toolkit, since you can expand it to meet probably 90% of your needs without resorting to using a belt balancer blueprint book. A 1:6 balancer is just a 1:3 splitter with splitters on all the outputs. I've tried to reverse engineer the math used to create belt balancers. On some levels, it's simple graph theory. On another level, it's incredibly convoluted to produce a nontrivial working balancer from scratch, if you don't have some custom tool like a SAT solver to help you work out the equations. Doing the math yourself is tricky, because too many splitters can unbalance your ratios, and it's difficult to hold all the simultaneous possible paths in your head while placing splitters. But the broader theory still applies. Inside many of the crazy large 12:12 balancers, you can see one or two smaller basic 3:3 loops that helps divide things up evenly. In fact, any balancer with nonoptimal ratios can be assembled by combining a power of two balancer with one or more splitter loops. I ended up going down the rabbit hole of SAT solvers for belt balancers because I made some odd choices in my early factories. Mostly, it came down to the uneven lane consumption of iron/copper for circuit production, and my nice looking but impossible to easily balance 1:3 trains I arbitrarily picked. That, and unevenly depleting mines. It's frustratingly common to have trains get stuck at mines because two train cars are full, but the other one is empty. That, and unloading trains sometimes caused half my furnace stacks to run dry, because the trains weren't loading the furnaces evenly, and I wasn't consuming evenly from the furnaces. Which is how I ended up learning about the value of properly balancing your inputs and outputs. Not being able to load or unload my trains evenly caused tons of problems in my factory, which is why I started to lean on proper balancers for train stations. One of the major parts of Factorio is how impactful the technologies are. Single technology upgrades like rail signals used to be what entire games were designed around in the late 90s (transportation tycoon). The circuit upgrade alone has just as many intricoes as a Zacktronics game, and bots and later spidertrons completely change the way the game can be played at a fundamental level, moving your entire capability to solve problems from a micro scale to a macro scale. With that in mind, it's completely possible to complete the game with only burner inserters. None of those technologies are required to beat the game, so it's understandable that many people don't even engage with entire mechanics in Factorio, while other people build full rendering engines out of circuit networks. I definitely think there's a middle ground between "write your own software to generate belt balancers and only stamp blueprints from the book" and "I only use a single unmixed belt for each input and output resource because logistics is hard". I think there's a place for nice blueprints in Factorio. Mostly because blueprinting designs is a major part of the late game, especially with bots and all the new blueprint mode upgrades coming in 2.0. Expanding a factory becomes dramatically easier once you've got bots to start constructing things, and bots need blueprints to work. The only question is how much you take inspiration from other players, and how much you develop yourself. Personally, I don't directly rip other people's blueprints. I find joy in building things myself. However, I do constantly look at other people's blueprints for inspiration, which led me to create a highly effective and custom train unloading design. I've also started creating more specific blueprints like furnace stacks that don't buffer huge resources in the furnaces, since a properly ratio'd furnace stack can't clear buffered resources without the mines running dry, so buffered resources are just wasted pollution. Which led me to using some blueprints for a small set of balancers I need for train stops and mines. I don't want to just open up a book and stamp random balancers everywhere, but I also don't have my own SAT solver on hand.
You make some interesting points. The aesthetics thing, that isn't unreasonable. I DO have a particular style and the big chunky balancers are not pleasing to me. But I think it might be more than that and you go into it; the mathes. A big reason why I enjoy factorio is because the game requires a grip on the mathematics of the situation. Number of assembly machines, capacity of a conveyor belt etc. The idea of trying to mathematically analyse a belt balancer to calculate precisely whether it is balancing correctly or not, as you point out, is a challenging task. Then do that for multiple belt balancers. Because I would want to build my own. I wouldn't want to rely on other people's work. In my minds eye I'm thinking spreadsheets. And how many would I need to build? How many situations would I need to account for? All of that sounds like work to me and I play factorio to not do work. Even if sometimes it doesn't feel like that. I guess my solution to this is to micro-manage the situation. Instead of having potentially dozens of huge belt balancers in my tool box, I have a small selection of little balancers to address each conveyor belt individually. I don't need to bundle together a huge number of conveyor belts because each one has been specifically targeted at a particular recipe. I don't make 180 copper and then try and balance that through my factory. I make 4 belts of 45 copper, 3 of which will go to blue, red and green circuits, and one which will go to low density structure. No balancing required.
I saw what you did with some of the widgets and I must say this video is like 10 years out of date and you should build good widgets if your going to try and fuck up the community, I 've seen enough to wish I had never seen one of your videos ever. If only I could blacklist you just as easy as I can subscribe you. Pout.
These sorts of patterns are called design patterns in the programming context and maybe we could create the same concept for factorio with similar names. Design patterns in programming can give you patterns to follow for many sizes of abstractions. In factorio we could adopt the generic name or we could easily differentiate them as the size is closely related to what you're making. For example we could have belt patterns for those widgets, factory patterns for how you arrange groups of assemblers and other processing machines along with belts, and factory layouts/architecture for the whole architecture of the base. Anyway just an observation and a suggestion of a programmer.
Nice video BTW, I think I'll use some of those widgets in my base more consciously.
Hehe, and what would constitute Uncle Bob's Clean Architecture and Clean Code then?
@@othergames563CC focuses on small modules that are designed to do only one task. So I think uncle Bob would be against a bus design at all. I think he'd go for an atomic railway cel factory where every step is loaded into rails. Let's call it the RVB: railway virtual bus.
So we'll end up with a 5 to 1 ratio of rail and station to assemblers and belts.
These widgets feel more like higher order functions. In the context of functional programming, belts are morphisms, so a belt widget takes a morphism and returns another morphism.
This can also be applied to factories as well, factories are higher order functions too.
Clean architecture can easily be applied to factorio though you need trains. Let's do a SOLID analysis:
S: Can factories follow the single responsability principle? Yes, they can be modularized so that they only have one reason to be modified, e.g upgrade them with beacons.
O: Can factories follow the open closed principle? Yes, though you need trains to do it. You can create a blueprint for your factory and have the same name for the train stop
L: Can factories follow the Liskov substitution principle? In vanilla you don't even have to worry about this, in SA you also don't have to worry too much, though you have to keep quality setups independent of each other.
I: Can factories follow the Interface segregation principle? Again, no need to worry
D: Can factories follow the dependency inversion principle? Yes, though, you'd need to use buffer chests instead of normal chests at the train stops so that you could use bots too.
You have just given me a great number of ideas to solve problems I was dealing with yesterday while playing a SE+K2 playthrough using city blocks. I'm not used to have the space constrained that way and this video would be time saving jajaja
No offense, but the last widgets you showed really are just 1 to 2^n belt balancers. If you want to split into a non-power-of-2, just use a 1 to N balancer...
And the scramblers are lane-balancers (but not input balanced).
I feel like all balancers are widgets, but not all widgets are balancers. I'm glad to have a name now for all the others. 🙂
Whether you call them "widgets" or "balancers" they have their particular properties and use cases.
With noting is that the two lane-balancers/scramblers shown are not true balancers unless the input is unsaturated. If the input belts are saturated, then they act more as lane-swappers. You can turn them into true lane-balancers by forcing them to lane-swap, and then using two more splitters to split and then merge the belt so half gets swapped and the other half stays unchanged. If there's only one input belt though, neither version will be able to output a compressed belt unless the input is already compressed on both lanes (or the output belt has lower throughput than the input). For this reason, they're mainly useful either just to be able to pull from either lane, or when given two belts as input to act as a 2-1 lane balancer (which is also a sort of 4-2 balancer).
Then there are "universal balancers" which can act as any kind of smaller balancer, and "universal _lane_ balancers" which pretty much mix as thoroughly as one could possibly ask for. Universal balancers however are ultimately just a meme and are pretty much useless except for looking cool.
This reminds me of a lane-balancer I've build. It might be the same type as the one you describe, but (at least for me) it's difficult to understand what a design look like from words...
It takes one belt as input, and also one as output. It's acts as a balancer for that belt, just like the standard balancer, but with one improvement: The input-belt always gets balanced. The reason simpel balancers don't do this, is because with sideloading: the futhest lane gets proirity. So as you said: they act like lane-swappers.
My change is this: Split the belt in two and sideload both on separate belts, keep sideload priority in mind. Then sideload one of those single-lane belts to change the lane (if neccesary) so that both single-lane-belts use the same lane-side. Then finally: combine those lanes with a splitter, and use one output as the main output, and the other output gets sideloaded onto the empty lane of the output.
But words can be not so great at describing this. So Imma try to draw it :)
(S is a spliter)
. -----------V
Input --> S -^- S -V
,, S -V- S ------> Output
. --------> I
You are the most underrated Factorio youtuber i know😁
so true
His opinion on balancers is terrible.
Yeah, it's cool right from the start.
I just started playing Factorio recently. I appreciate this video greatly. I have a suggestion, when you go through a list of design's like this, it would be helpful if the video had chapters for each design. I have been addicted to this game for a couple of weeks now and subscribed to your channel.
I've been awaiting this one since your balancers video - thanks for your efforts!
I think you can get non 2^n numbers of assemblers/centrifuges have even numbers of items if you redirect unused channels back to the input. My line of reasoning goes like this: If you want 7 assemblers and route the 8th conveyor into the input each assembler gets 1/8th on the first pass with 1/8 getting split around sending 1/64 of the original input to each one which also gets sent round again. As this tends towards infinity the output of each assembler tends towards 1/7. A similar thing can be done with 1/6 by routing 2 of the final outputs (by excluding a splitter) back round.
For a while I thought factorio had been completely swept by the meta, these underrated videos might give the meta a run for its money! Keep it up!
Pray tell, what is the factorio meta?
@@theotherbigfoot Everyone uses the same blueprints.
@@Peri_Dovis Who is that "everyone" you're talking about?
@@maximvoronin1569 everyone
@@Peri_Dovis I afraid I'm not acquainted with that "everyone" person myself.
not scrambler... they're usually called lane-balancers.
and the T splitter that you weren't sure was useful is actually one of the most useful splitters you showcased (except with a small change...it only uses TWO splitters instead of 3, that top splitter is removed, and you pull two seperate resources down and then side load using the splitters..... it's useful in large mall builds (particularly for pulling a full line each of green and red circuits, and splitting off two lines with each line having a single lane for each circuit type.
...also useful for builds where multiple resources are needed by the crafting speed/consumption speed doesn't necessitate a full line of that resource. (early batteries, and red circuits come to mind).
One of the "widgets" i use often in early game is what i call the pulse-controlled consumption balancer...it's basically a lane balancer that pulls from a main bus that has a faster belt speed and ensures balanced consumption from that bus while splitting/side-loading as the situation demands.
The OTHER way the t splitter is useful is if the top splitter (and belts leading into it are RED. converting a single red line into two lines of yellow circuits that are balanced while being side loaded respectively. It's...a rare usecase, but can be useful in some circumstances.... if only a single resource type is being loaded on that red belt it isn't really useful, but if mixed resources are on the belt, it's an effective way to sort while also splitting.
the t splitter he was talking about that you are saying can be used for combining resources on to belts? He is saying that it can be used as a one to lane balancer splitter all in one widget.
he covered its ability to be used for multiple resources earlier in the vod.
@@DavidSmith-cr7mb right, you can do that, but if you don't set the input belts and first splitter to RED, you'll get compression issues (unless consumption is low)
Very digestable format for explaining belts, good stuff
I don't use balancers:
Here's a J-Scrambler - a very well known 1-to-1 balancer.
Here's a way to take a belt of barrels, and then output it to 2 or more belts in a balan... equal way.
Just because you designed your own balancers and don't call them balancers doesn't mean you don't use them.
HA!! Interesting point. When I hear 'belt balancer' what I see in my mind's eye is a configuration of dozens and dozens of things, mostly splitters. Using your analogy, a widget but for more than one (or possibly two) belts.
It could be argued that this is a 'definition' thing, in that, once you define something then some things either want to squeeze in or squeeze out of that definition...
I'm being mischievous. I don't think either of us are wrong here. EDIT Ultimately a splitter is a belt balancer.
His J-scrambler isn't a balancer though, and neither is his T-scrambler. The J-scrambler only works if input comes from one of the two sides of the belt. And the T-scrambler simply swaps the sides of the input when the belt is already compacted. To get an actual balancer, you need to use undergrounds to block off one half of the belt at a time. Therefore, I'd consider "widgets" to actually be a more apt name than balancers in this scenario
@@sweetcornwhiskey It is a balancer. It takes the input, and balances the output to both sides of the belt. That's a 1-to-1 Output Balancer. It doesn't only work with one side, if you have (for example) 2/3rds of a lane input on one side, and 1/3rd of a lane input on the other side you'd get a balanced 1/2 a lane output on both sides. ie, it takes an unbalanced input and gives a balanced output. Type "1-to-1 lane balancer factorio" into google and you'll find this design. Using undergrounds to limit the input to a specific lane of the belt at a time can give you a 'balanced input' balancer but that's just a more specific constraint to a balancer. Not all balancers are balanced input - and I would say the vast majority are not.
@@sweetcornwhiskey What he calls 'scramblers' the rest of the community calls 'lane balancers'.
@@macdjord The point of my comment here was that these designs are NOT lane balancers. They do not balance lanes.
This is very cool. I like using elegantly designed little segments to compose larger and richer factories.
If you don't mind a bit of circuitry, my favorite balancing method for a bunch of chests (mainly addressing your last widget, but with no space footprint effectively) is what I'd just call "the grid" (since you get a grid of red and green wire in block storage)
you just have a row of chests, and arms feeding into or out of them. Wires go from each chest to their arm(s) in one color (I typically use green), and across all chests and arms in the other (red for me). You then divide the total chest contents (red wire) by -(number of chests), and add a small offset with a constant combinator, and feed that signal to the arms (red wire again). Since you divided by the negative of the number of chests, it's 0 if it has the average number of items. give the constant combinator a negative value of the item and set the arms to active on (item < 0) for inputs or positive value and (item > 0) for outputs and it keeps them all pretty close to in sync
I didn't realize this was an entire group of things ^^ In my bases I naturally ended up using a few of these but... Thanks for sharing this collection, it'll solve so much of the spaghetti I had to do!
i really only use balancers to unload trains evenly. wagon -> buffer -> balancer -> factory. that makes it so if theres uneven resource distribution the train wont get stuck at the station because one of the wagons is feeding into something consuming resources very slowly while other parts of the factory are starving. with a balancer you can set trains to simply depart when empty and not worry about it 'reverse clogging'
11:03 the most badass use of extra belts. art, good job
10:44 These are just balancers 😅
a really useful widget that i feel you omitted here is the input-balanced lane balancer (or "scrambler" as you call them) - they use underground belt sideloading combined with a splitter to get each lane of an input belt onto its own belt, swap one of the belts' lanes (e.g. they take the belt containing the left lane and move it to the right lane of the same belt), use another splitter as a 2-2 balancer, then take the now balanced half belts and dump one into the empty lane of the other, creating a widget whose output lanes are "blind" to the input lanes, meaning that they take evenly from both.
this is highly beneficial in setups where either the production or consumption is uneven, as it can prevent situations where the output belt isn't full while some of the producers still have full buffers (for example: furnace stacks where one side cannot keep up with demand while the other side is fully backed up and not doing anything, or mining outposts where one side of the belt has more miners, meaning the other side takes a lot longer to fill the belt while the first one isn't doing anything). it essentially "rotates" the imbalance 90°, meaning that a 1 lane shortage across X amount of belts will be turned into a 2 lane shortage across 0.5*X belts - which is very helpful when your furnace stack for instance is less than X belts long.
*Flow routers don't act like balancers even when the inputs are saturated.
Love your style. Also, the issue you referred to where a lane ends up with resources on one side not being used up is almost never an issue because it only happens when assemblers are on one side of a belt and there isn’t enough assemblers to consume more than half of a belt of throughput. The inserters will always grab from one side of the belt if there is resources on that side and if you’re producing too much of that resource one side will just back up because it’s not needed. You could add more assemblers anywhere on your bus to consume more of that resource and the stopped lane would fire back and start being consumed
honestly it happens all the time if you're sideloading from a full belt, as the far side gets drawn from preferentially
Came here from the balancer video because I really liked the idea of a 'widget'.
0:38 I started hearing the King of the Hill theme haha
I dont even play factorio, but i do like listning to you talk abotu these widgets
Isn't "scrambler" basically a 2to2 balancer but for belt sides? Inserters prefer taking items from the belt side that is further from them, so placing machines on both sides of the belt should fix issues with uneven consumption.
Yes. They're usually called lane balancers.
the 2^n problem is solved by routing all overflow back to the input. need 5? build 8 and route 3 back to the input.
Love the style of live-building things. Suggestion, if you could use the hotbar instead of opening the inventory it would interrupt the flow even less.
The mixing widget, exactly what I was looking for
interesting! I love balancers because I buffer smaller ore patches into chests, so belt balancers help make sure the buffering happens at an even rate and the ore patch is evenly mined out.
the 'narrower centreline' at 5:30 is so simple that im embarrassed i didnt think of it myself, i would mostly use it on a half/half belt where im pulling one resource off to one side but the result is the same, that i now have the option of 3 wide vs 3 tall on my plate of spaghetti
YE BOIIIIIIIIIIIIIIIIIIIIIIIII I HAVE BEEN WAITED FOR THIS VIDEO FOR TOO LONG
"TJ Scrambler"
Although I usually call those lane balancers
For the last thing: e.g. koravex, you can directly use circuits, can't you? If the chests are connected anyway for counting, you can also connect the inserters.
Then compute the average over all chests and only enable the inserters if it is less or equal. Then they will synchronize and wait for the "slowest" chest to fill.
I use it for even filling buffer chests on train stations without using splitters
I do use circuits but I obviously do it differently from you. I use them to calculate the ratio of u-238 and u-235 and if it is above what I need for nuclear fuel then it tells the inserters to start sending stuff to koverex. I'm guessing you do the same just on the input inserter to the box instead of the output inserter to the box.
@theotherbigfoot Sure an it's completely fine how you do it. Just a comment, if you use them anyway, putting them on the other side makes the splitting obsolete and saves tons of space, since this particular splitting takes quite an amount of space (compared to other shown widgets)
The past tense of squeezed is squoozed
Regarding your distributor - While it might be against your sense of aesthetics, you can transform it into any number of destinations by simply routing the excess ends back into the input feed with some priority splitters.
I don't use balancers either, in modded gameplay anyway. Generally I didn't use them at all in vanilla when I was playing through it so long ago either. My "balancers" are actually warehouses and storehouses using the Loader mods. Whether it is a min-loader or a regular 2 tile one which takes no power, they are so much more efficient overall then the base game ones and take up *way* less space. Plus I can store stuff in them too as an added bonus and create buffers really easily.
Widget is a great term for this.
More factorio videos please! This was very helpful.
There is a reson to use the edge approach vs centerline. It's less demand on time and resources. Not much, but in an early game approach for things like gotlap and tins, it makes a difference for tbose still near the time marks.
Thanks for the widgets 😁😁😁, a lot of great designs I can learn from this 😁😁😁
Wanted to touch on "Aesthetics" as it is unfortunately an important concept, even though it's definitely not critical since most factory builders tend to work solo.
"Aesthetics" of an automation layout game where the troubleshooting is visual and expansion or enhancements being applied in place need to work around easily-identified factory functions you've put there previously. Experienced players will recognize this as things that they feel look "appealing".
So, if you are a newer player, and you don't quite know what looks good yet, just remember that it's first about maintainability and ease of identification. If you're not sure what you're looking for there yet, you need to gain experience as this will be different for everyone, and you will definitely develop, and then continue to develop, a personal style of your own as you continue building things out. Since you probably won't work with a team, you won't super need to worry about your aesthetic senses unless it's actually causing you grief.
*For the t-balancer you can just connect the input to other splitter input, and it will look a bit better.*
at 10:45: this is a reverse belt balancer, and you can get non-2^n balancers with feedback loops and suchlike in the same way IIRC
I heard that feedback loops are bad for performance on megabases
Does anyone noticed that scrambler doesn't work? Well it works if saturation of coming belt is uneven, but it won't help if consumption of the materials is uneven and one side of the belt gets empty) To solve this situation there is other scrambler, not so compact though.
Extremely interesting video
damn i have like 550 hours in factorio but ive not really thought of the bottleneck in using the first approach you showed without your mixer.
10:00 This is the use case for belt balancers~ 🎵❤
A fellow barrel enjoyer! love it.
Well, if you haven't already seen it ruclips.net/video/5eFVsBc0HKk/видео.html
3:48 o_O use underground pipes, they're less in the way and less cpu consuming for big bases
Cheers for this man!
really appreciate this vid! pure inspiration!
Try This:
Input -> Splitter (1) -> Scrambler -> (1) Splitter -> Output
. (2) -> Belt -> (2)
This channel... is great
been waiting for this for so long
also, was the belt balancers being left out intentional?
Thanks Bigfoot. Very cool
Nick Knowles plays Factorio.
I wish you had shown the belts in use more. I like the idea from what I did understand but I don't understand what it really does cause all I really saw was empty belts the whole time.
Totally fair. I will keep this in mind for later videos.
I want a book of these widgets along with balancers
www.dropbox.com/scl/fi/197641yjn9fjbawfbb9vw/WidgetsBPB.txt?rlkey=foxzhutfbihkz2wvfig9z2rbu&st=tx6atflr&dl=0
It's called balancers.
Take a like for your widgets 🎉
Practice your basics, fellow engineers. Whether you're heading into the hype for the new expansion later this year as an experianced spaghetti chef or tackling a modpack like SE/K2 or even Pyanodon (especially Py....😅), they'll serve you well.
I'm using your mixing widget in my actual factory in one of my builds, and I kinda discovered a major flaw, correct me if I'm wrong:
The way you set it up, it can happen - especially if you have more input than you need - that only one side of the input belt gets used. Like, I have a full belt of gears, but only the left side of that belt flows on the mixed belt. That generates a massive inbalance further up the line, which can only be sorted by a lane balancer.
Have you never encountered such a problem in your own factory, or am I missing something?
You will have to correct me if I'm wrong also, but it sounds like you are inputting 45 gears into a mixing widget and outputting that onto two belts but only on one side? Which should be what it is designed to do.
I might need a screenshot
Heh, beginning is coreectly misleading )) i expect it to be about circuts monitors of supply etc.
I feel like I gotta unsubscribe from you, I'm only 150 hours into the game and seeing this kind of stuff just feels like cheating to me, lol. Seriously damn good work and thanks for the presentation mate!
You are the most non-user of balancers Factorio youtuber i know😁
After 1200+ hours of factorio, I don't understand people who have not figured out yet that a main bus is just a bad idea that doesn't scale. You NEED a many-to-many-network for throughput.
What if you weren't looking to scale? What if you were to build a single factory, from day 1, that had the precise amount of production to achieve a particular SPM without ever needing to scale?
Or just trying to launch a rocket as fast as possible.
A main bus is simply a set of belts that feeds a specific cluster of your factory that can be replicated N times to create N clusters for N different functions. The advantage is that instead of singles lanes of Ore, you have multiple lanes, so you can create way bigger clusters with bigger purposes that just creating a single belt of green circuit. How getting ride of a "multi-belts" concept might help in scalability?
Can't you just use circuits instead for the last one? At smaller scales a belt solution is neat but it seems to quickly get big while you could just use circuits to calculate the average that is stored and then only enable inserters if their own box contains less than or equal to the average. To speed it up a little by allowing a bit of unevenness you can add a little to the average before sending it back to the inserters.
I tried this this exact circuit network with barrels. What happens is that the circuit network does the calculation and then a tick later the inserter is enabled. Sometimes the inserter is disabled during that tick by the average changing. At peak throughput the inserters are constantly hesitating and/or changing their mind. There might be a way that is possible but I couldn't find it. That conveyor widget thing does the job without me even having to think about it.
I think adding just 1 to the average should alleviate the issue. Any inserters that then are hesitating are ones that already are above average so it doesn't matter if they are hesitant and might even lead to a better spread
@@tekbox7909 I don't think it will. Whatever value is chosen as the trigger for the inserters, whether it be the average or the average plus something, will be the value the inserters dance around.
I think. I can't say I tried everything with circuits and barrels but I did try a lot.
Call the one you dont have a name for yet the ankh, in the configuration you used it looked like 1 upside down
Super helpfull, thanks 4 making a Book
T junction looks more like a psi.
Wait why don’t you use belt balancers?
What's the use of barreling liquids ?
If you want a technical answer it's because we can guarantee a flow rate on a conveyor belt regardless of the distance it needs to travel, which isn't the case for a pipe.
If you want my answer.... for funzies
balancers or widgets ... they are all the same... they are, spltters! nyhehehehe
Good tips!
Aren't you the guy that doesn't understand the concept of buffering in a logistics system?
I'm the guy who doesn't use belt balancers if that's what you mean
@@theotherbigfoot Nothing wrong with that, you do balance things just not redundantly like most people. In your previous video on this topic you seem to have a hard time understanding trains. If we reduce your issue it does come down to a lack of understanding in how to buffer for and time train inputs appropriately. I don't believe I was mistaken there.
@@zipzap8937 I'm pretty happy with my understanding of factorio's trains. The way I do it sounds like it is different from the way you do it but it works just fine for me.
Belt widget meta gooooooooo!
2:40 how is iron ore getting to the Underground outlet of that widget?
He uses modded underground belts with a much greater reach than vanilla ones.
Blueprint book pls!
I don't want to accidentally botch the belt type
I've tried. It won't fit in the video description and the blueprint website just refuses.
@@theotherbigfoot May I suggest a public Google Drive folder? That link should fit, and then the Drive contains files with the blueprint strings in them.
@@darkehartplays www.dropbox.com/scl/fi/jd8rjgav1gv86yzidcdvf/Widgets.txt?rlkey=nu17u0ety73jdwb0ud6a5mosl&dl=0
Bosh
@@theotherbigfoot Sry I cannot import blueprint, it keeps saying input is invalid.
@@arzx6545 same
thk you friend
Blueprint string is not correct btw
Just updated it.
@@theotherbigfoot Thanks for that ;)
fwiw I like the "widget" terminology
Mostly, I think your real argument against belt balancers comes down to aesthetics. You've got a very particular style you prefer, a style that doesn't blend nicely with the large number of assorted underground belts and splitters needed to properly balance a large number of belts. You've broken up everything into clearly decipherable pieces which can be easily assembled together and managed as blocks.
I find it funny that you say you don't use balancers, but you basically re-invented a worse concept of a balancer at 10:25. That problem of only being able to split belts by a power of two is solved by very common belt balancers. Balancers with those basic 1 to 2^X ratios are literally just the ones you're using. Balancers with odd ratios involve belt loops to evenly distribute items, but they do solve that problem of being able to handle non-trivial splitter distributions. Go look at a 1:6 belt balancer, and it looks like it would fit your style quite nicely. That little 1:3 loop might be a very effective "widget" to add to your toolkit, since you can expand it to meet probably 90% of your needs without resorting to using a belt balancer blueprint book. A 1:6 balancer is just a 1:3 splitter with splitters on all the outputs.
I've tried to reverse engineer the math used to create belt balancers. On some levels, it's simple graph theory. On another level, it's incredibly convoluted to produce a nontrivial working balancer from scratch, if you don't have some custom tool like a SAT solver to help you work out the equations. Doing the math yourself is tricky, because too many splitters can unbalance your ratios, and it's difficult to hold all the simultaneous possible paths in your head while placing splitters. But the broader theory still applies. Inside many of the crazy large 12:12 balancers, you can see one or two smaller basic 3:3 loops that helps divide things up evenly. In fact, any balancer with nonoptimal ratios can be assembled by combining a power of two balancer with one or more splitter loops.
I ended up going down the rabbit hole of SAT solvers for belt balancers because I made some odd choices in my early factories. Mostly, it came down to the uneven lane consumption of iron/copper for circuit production, and my nice looking but impossible to easily balance 1:3 trains I arbitrarily picked. That, and unevenly depleting mines. It's frustratingly common to have trains get stuck at mines because two train cars are full, but the other one is empty. That, and unloading trains sometimes caused half my furnace stacks to run dry, because the trains weren't loading the furnaces evenly, and I wasn't consuming evenly from the furnaces. Which is how I ended up learning about the value of properly balancing your inputs and outputs. Not being able to load or unload my trains evenly caused tons of problems in my factory, which is why I started to lean on proper balancers for train stations.
One of the major parts of Factorio is how impactful the technologies are. Single technology upgrades like rail signals used to be what entire games were designed around in the late 90s (transportation tycoon). The circuit upgrade alone has just as many intricoes as a Zacktronics game, and bots and later spidertrons completely change the way the game can be played at a fundamental level, moving your entire capability to solve problems from a micro scale to a macro scale. With that in mind, it's completely possible to complete the game with only burner inserters. None of those technologies are required to beat the game, so it's understandable that many people don't even engage with entire mechanics in Factorio, while other people build full rendering engines out of circuit networks.
I definitely think there's a middle ground between "write your own software to generate belt balancers and only stamp blueprints from the book" and "I only use a single unmixed belt for each input and output resource because logistics is hard". I think there's a place for nice blueprints in Factorio. Mostly because blueprinting designs is a major part of the late game, especially with bots and all the new blueprint mode upgrades coming in 2.0. Expanding a factory becomes dramatically easier once you've got bots to start constructing things, and bots need blueprints to work. The only question is how much you take inspiration from other players, and how much you develop yourself.
Personally, I don't directly rip other people's blueprints. I find joy in building things myself. However, I do constantly look at other people's blueprints for inspiration, which led me to create a highly effective and custom train unloading design. I've also started creating more specific blueprints like furnace stacks that don't buffer huge resources in the furnaces, since a properly ratio'd furnace stack can't clear buffered resources without the mines running dry, so buffered resources are just wasted pollution. Which led me to using some blueprints for a small set of balancers I need for train stops and mines. I don't want to just open up a book and stamp random balancers everywhere, but I also don't have my own SAT solver on hand.
You make some interesting points.
The aesthetics thing, that isn't unreasonable. I DO have a particular style and the big chunky balancers are not pleasing to me. But I think it might be more than that and you go into it; the mathes.
A big reason why I enjoy factorio is because the game requires a grip on the mathematics of the situation. Number of assembly machines, capacity of a conveyor belt etc. The idea of trying to mathematically analyse a belt balancer to calculate precisely whether it is balancing correctly or not, as you point out, is a challenging task. Then do that for multiple belt balancers.
Because I would want to build my own. I wouldn't want to rely on other people's work. In my minds eye I'm thinking spreadsheets. And how many would I need to build? How many situations would I need to account for? All of that sounds like work to me and I play factorio to not do work. Even if sometimes it doesn't feel like that.
I guess my solution to this is to micro-manage the situation. Instead of having potentially dozens of huge belt balancers in my tool box, I have a small selection of little balancers to address each conveyor belt individually. I don't need to bundle together a huge number of conveyor belts because each one has been specifically targeted at a particular recipe. I don't make 180 copper and then try and balance that through my factory. I make 4 belts of 45 copper, 3 of which will go to blue, red and green circuits, and one which will go to low density structure. No balancing required.
I saw what you did with some of the widgets and I must say this video is like 10 years out of date and you should build good widgets if your going to try and fuck up the community, I
've seen enough to wish I had never seen one of your videos ever. If only I could blacklist you just as easy as I can subscribe you. Pout.
489 likes vs 11 dislikes. I'm guessing you're in the group of 11.
No one dislikes it! 🙃
Give this video to new players.