Belt Stacking

Post your ideas and suggestions how to improve the game.
Post Reply
dood
Filter Inserter
Filter Inserter
Posts: 314
Joined: Wed Mar 21, 2018 8:36 am

Belt Stacking

Post by dood » Fri Apr 06, 2018 1:44 pm

One thing that sprung out of the bots vs belts debate was increasing the throughput of belts via some manner of belt stacking and that suggestion appeared to have caught on with people so I thought I'd make this thread to remind the devs that this is a popular thing people really seem to like.

As for the method, I am in favor of adding a 1 tile entity that does the job kind of like where Deadlocks Stacking Beltbox would like to be and like the method of using assemblers to stack items in crates using additional crate intermediates the least which you will have to forgive me for, I am still traumatized from the pre fluid wagon barrelpocalypse.

Ultimately though, I think any flavor of belt compression would be a great addition to vanilla-factorio.
Not only to buff belts for bot parity but because it's fun in itself.

bobucles
Smart Inserter
Smart Inserter
Posts: 1358
Joined: Wed Jun 10, 2015 10:37 pm

Re: Belt Stacking

Post by bobucles » Fri Apr 06, 2018 2:30 pm

The stacker "middle man" item certainly helps show the proof of concept, but it isn't a very good permanent solution. I prefer if the system was completely invisible and opt-in. The basic mechanics would be:

- Stacks are a single item type (to simplify mechanics and reduce visual clutter)
- Stack inserters (and miners) can build stacks up to a fixed stack limit (anywhere between 2-6 is good enough).
- Any inserter can peel items off a stack (prevents deadlocks).

Item stacking would definitely give belts a nice extra kick in the same way that cargo size makes bots vastly stronger. However very few item types actually demand extreme throughput. The biggest chokepoints happen with mines, smelting and low tech items. These low tech items feed into every single future process and thus the entire factory's throughput depends on moving them quickly. Beyond the low tech options there isn't much need for extreme throughput. Higher tech recipes are slower, don't devour a belt in seconds and certainly don't flood belts with output products.

Stacking is definitely not needed to build the rocket and beat the game. Even yellow belts will get the player's first rocket out in good time. In terms of dev priority it belongs some distance after V1.0, if at all.

dood
Filter Inserter
Filter Inserter
Posts: 314
Joined: Wed Mar 21, 2018 8:36 am

Re: Belt Stacking

Post by dood » Fri Apr 06, 2018 4:28 pm

bobucles wrote:In terms of dev priority it belongs some distance after V1.0, if at all.
That's true and I would say the same about bot balancing.
However, the consens among the devs seems to be that, since they ran short on time for 0.16, they'll sit down figure something out in the next patch and if *something* has to happen, I'd find more belt tools much more interesting than hamstrung bots.

User avatar
Deadlock989
Filter Inserter
Filter Inserter
Posts: 558
Joined: Fri Nov 06, 2015 7:41 pm

Re: Belt Stacking

Post by Deadlock989 » Fri Apr 06, 2018 8:29 pm

dood wrote:One thing that sprung out of the bots vs belts debate was increasing the throughput of belts via some manner of belt stacking and that suggestion appeared to have caught on with people so I thought I'd make this thread to remind the devs that this is a popular thing people really seem to like.

As for the method, I am in favor of adding a 1 tile entity that does the job kind of like where Deadlocks Stacking Beltbox would like to be and like the method of using assemblers to stack items in crates using additional crate intermediates the least which you will have to forgive me for, I am still traumatized from the pre fluid wagon barrelpocalypse.

Ultimately though, I think any flavor of belt compression would be a great addition to vanilla-factorio.
Not only to buff belts for bot parity but because it's fun in itself.
For me personally, the mod was second best (at best). This was the original FFF that talked about these options, I went for "New 1x1 Belt Stacker entity as the way how to make the stacks" because it was really the only option available, given what we can and can't do with mods. It concludes with "At that point you might as well have inserters get this ability instead". Yes, you might as well, sounds great. Failing that, give us proper electric loaders and have an expensive version which also stacks.

They're right to point out the icon issue, though, it's a vast amount of work, but you can limit it by making decisions about what is stackable and what isn't. Iron ore, maybe; iron plates, definitely; oil refineries, nuh-uh.

I finally got to a 1RPM base this evening, my first, with belt stackers installed, not that it made any real difference to achieving 1RPM except I didn't have to lay as many belts. I only needed to stack iron plates, copper plates, green circuits and plastic. I stacked red circuits and steel as well but it was barely necessary. I can run the base at between 90 and 120 UPS.

Users of DSB tell me there's a big advantage to stacking ores, not because of any inventory boost (DSB doesn't allow that) but because a side-effect is that this kind of modded stacking is a huge boost to inserters as well, which wasn't intended and is another good reason to make stacks only handled by a specialist inserter or loader.

User avatar
Deadlock989
Filter Inserter
Filter Inserter
Posts: 558
Joined: Fri Nov 06, 2015 7:41 pm

Re: Belt Stacking

Post by Deadlock989 » Fri Apr 06, 2018 11:07 pm

Here's how I'd do it, not saying this is the best way or that there are no holes in this, but it is probably one of the easiest and UPS-friendly.

You have actual loaders. They are proper, meaning they cost electricity to run, much much more than inserters. I don't care if they're 1x2 or 1x1, whatever, make them 1x3 - people say 1x1 is "cheating", but only because the half-finished prototype was 1x2 and it makes them feel noble to say so. Even with 1x1 you can't just plonk them down where an inserter was, because a loader's belt end has to be merged into / split from belts to get the full benefit, so whatever the size, loaders are less space-efficient than inserters. They are inline, not perpendicular, to belts. Inserters are good at picking specific things off a belt (i.e. filter inserters) or picking very specific numbers of things, and placing onto / taking from specific lanes of the belt (because they really should do that while we're at it). Loaders are good at bulk, indiscriminate dumpage - so there are no filter loaders, it doesn't really make sense. Neither one fully covers the role of the other. You don't use precision robot arms to empty a garbage truck gum wrapper by gum wrapper. You don't chuck an expensive, delicate microprocessor down a rusty hopper or put them in a rattling old screw elevator. If they'd followed through with loaders, we'd never have had all these mods with a million rainbow variants of barking mad speed inserters.

Loaders are also unloaders. Let's say there is a special loader, the stack loader. Like the stack inserter, it can grab multiple items out of an inventory at once. But unlike inserters, if the item is stackable - see below - it stays in a stack when it hits the belt. Meanwhile when the stack loader is in input mode, it will automatically unstack stacks when they load a stack into an inventory. Basically the stack loader is a beltbox. If you put unstackable items through a stack loader, nothing happens, they just pass through as if it were a regular loader. Stack inserters get the same treatment: if they pick up a stack, they turn it back into itamz when it goes into an inventory. If they take out of an inventory, they can place a stack. If a player picks up a stack, it automatically unstacks. Essentially, stacked items only ever exist on belts. I would have done this in my mod if I could / if it didn't murder UPS.

Stackable items are: quite regular in shape; not especially large; not composed of many moving tiny parts. This includes plates, bars, ingots, nicely bundled spools of cable, circuits. It does not include piles of ore rubble, barrels, or giant house-sized machines which are inexplicably tiny right now for reasons we don't examine too closely due to this being a game 'n all.

People have suggested variable stack size - giving belts a kind of 2nd dimension - and having inserters be able to skim items "off the top" of stacks. It would be nice and in a world where supercomputers were free I'd love to see it, but it would kill all the recent belt optimisations stone cold dead. A stack has to be just another item as far as the engine is concerned or this is all a bit pointless. The top two benefits of belt stacking are (a) not having to literally fill your screen with belts if you want a mega-base sized bus, and (b) UPS savings if you have a low or medium tier PC.

drdozer
Burner Inserter
Burner Inserter
Posts: 18
Joined: Tue Nov 14, 2017 2:41 pm

Re: Belt Stacking

Post by drdozer » Mon Sep 17, 2018 4:49 pm

If I were doing this I'd have an item stack, or item crate container. You'd mix the crate into a crating machine. It would consume single items (from a belt or inserted) and spit out full crates. One crate would contain one stack. So a crate of ore would contain 50 items, and a plates crate would contain 100 items. You'd then put these onto a belt with an inserter (including possibly a stack inserter). Crates could never be partially full. So it only emits a crate once it has consumed enough single items to fill the crate. Full crates would then travel on belts as a single belt item.

At the other end, you'd use an uncrating machine to consume full crates and emit an empty crate and a stack of items. You'd load the uncrating machine with arms and unload it with arms.

So you could have a main bus with an iron plate belt full of iron plate crates. Then for each fabrication area, you'd use an arm to pull full crates off, then unpack them and fill a local belt with iron plates. Or perhaps pull off crates, uncrate them and stack-inserter them directly into hungry machines. You'd then have to send the empty crates back up the bus to be re-used. It would probably make sense to crate up your crates ;)

Anyway, that's how I'd do it. You'd need a new recipies tab with the crate/uncrate recipies for all the items that can be crated. I'd let crates be moved about in trains and belts and put in your inventory, as otherwise you need magics to 'explode' them if the belt was destroyed. I'd also make the crate/uncrate recipies things that can't be pocket-crafted.

User avatar
Deadlock989
Filter Inserter
Filter Inserter
Posts: 558
Joined: Fri Nov 06, 2015 7:41 pm

Re: Belt Stacking

Post by Deadlock989 » Mon Sep 17, 2018 5:25 pm

drdozer wrote:
Mon Sep 17, 2018 4:49 pm
If I were doing this I'd have an item stack, or item crate container. You'd mix the crate into a crating machine. It would consume single items (from a belt or inserted) and spit out full crates. *snip*
You're essentially describing this, minus the direct handling of crated items in recipes and the crates-within-crates Crateception, and I decided a crate should be 20% of a stack because it works better in practice.

McDuff
Fast Inserter
Fast Inserter
Posts: 123
Joined: Sun Jan 11, 2015 11:09 am

Re: Belt Stacking

Post by McDuff » Wed Sep 19, 2018 11:08 am

One of the big changes that would make a difference, imo, is having assembly machines be able to use stacks/crates directly rather than going through an unboxing process. Same with barrels tbh.

Post Reply

Return to “Ideas and Suggestions”