Construction robots don't prioritize storage chests

Post your ideas and suggestions how to improve the game.

Moderator: ickputzdirwech

smurphy1
Burner Inserter
Burner Inserter
Posts: 13
Joined: Wed Mar 22, 2017 12:57 am
Contact:

Construction robots don't prioritize storage chests

Post by smurphy1 »

Construction robots are not prioritizing items from storage chests over items in passive provider chests. They seem to pull items from the chest closest to where it is to be placed instead of pulling items from storage chests first like logistics robots do.

Steps to reproduce:

1. Put down a robot port by itself
2. Place a passive provider chest and a storage chest (it is easier to show if they are placed at least 5-10 tiles apart
3. Put a stack of some place able item (tested with belts) in each chest
4. Place ghosts of the item type from #3 one at a time in a line.

What should happen:
Construction robots should pull items from the storage chest to place on the ghosts unless the storage chest is empty

What actually happens:
Construction robots pull items from the chest closest to the ghost regardless of chest type
CmdrKeen
Long Handed Inserter
Long Handed Inserter
Posts: 98
Joined: Tue Sep 29, 2015 9:03 pm
Contact:

Re: [.15.26] Construction robots don't prioritize storage chests

Post by CmdrKeen »

Confirmed:
15.26-passive-provider.png
15.26-passive-provider.png (714.18 KiB) Viewed 12546 times
each chest had 2k belts.
posila
Factorio Staff
Factorio Staff
Posts: 5366
Joined: Thu Jun 11, 2015 1:35 pm
Contact:

Re: [.15.26] Construction robots don't prioritize storage chests

Post by posila »

smurphy1 wrote:What should happen:
Construction robots should pull items from the storage chest to place on the ghosts unless the storage chest is empty
But, why should it behave that way?
London_
Inserter
Inserter
Posts: 21
Joined: Sat Jul 01, 2017 12:53 am
Contact:

Re: [.15.26] Construction robots don't prioritize storage chests

Post by London_ »

posila wrote:
smurphy1 wrote:What should happen:
Construction robots should pull items from the storage chest to place on the ghosts unless the storage chest is empty
But, why should it behave that way?
When asking from the logistic request slots in my inventory my logistic bots pull from the storage chests before they do passive providers, so the construction bots should work the same way, no?

Storage chests are often used as temporary junk storage until the items are needed, so when something needs them they should be emptied first, even if not the closest to free up storage space. Maybe some sort of negative distance penalty, like the chest is closer than it actually is so bots go to it more often.

It could also alternate between using the storage and passive provider as a source of items to place, though that's probably much harder to code in.
User avatar
Klonan
Factorio Staff
Factorio Staff
Posts: 5289
Joined: Sun Jan 11, 2015 2:09 pm
Contact:

Re: [.15.26] Construction robots don't prioritize storage chests

Post by Klonan »

London_ wrote:
posila wrote:
smurphy1 wrote:What should happen:
Construction robots should pull items from the storage chest to place on the ghosts unless the storage chest is empty
But, why should it behave that way?
When asking from the logistic request slots in my inventory my logistic bots pull from the storage chests before they do passive providers, so the construction bots should work the same way, no?

Storage chests are often used as temporary junk storage until the items are needed, so when something needs them they should be emptied first, even if not the closest to free up storage space. Maybe some sort of negative distance penalty, like the chest is closer than it actually is so bots go to it more often.

It could also alternate between using the storage and passive provider as a source of items to place, though that's probably much harder to code in.
It makes sense for logistic bots, not so much for construction bots

The construction bots pull from the closest, it is your design decision whether that closest chest is a passive provider or a storage chest

There are many ways to set up the chests and inserters so that none are placed in passive providers if storage chests still have some
smurphy1
Burner Inserter
Burner Inserter
Posts: 13
Joined: Wed Mar 22, 2017 12:57 am
Contact:

Re: [.15.26] Construction robots don't prioritize storage chests

Post by smurphy1 »

Klonan wrote: It makes sense for logistic bots, not so much for construction bots

The construction bots pull from the closest, it is your design decision whether that closest chest is a passive provider or a storage chest

There are many ways to set up the chests and inserters so that none are placed in passive providers if storage chests still have some
Why does it make sense only for logistics bots? Especially since the priority comes from the chest type. Why should active providers, storage, and passive providers behave differently depending on what type of bot is fetching items? That's seems like a very inconsistent game mechanic.

The rest of your response shows this. Why should I have to care about the distance from passive providers and storage chests to a workzone for construction bots but I don't have to worry about it for logistics bots? You seem to be saying why should it be fixed if someone could use existing game mechanics to get similar behavior. But I think the better question is why should logistic bots and construction bots have different priorities when it comes to item fetching. I think most players expect them to be consistent so what reason is there for them not to be so?
User avatar
Klonan
Factorio Staff
Factorio Staff
Posts: 5289
Joined: Sun Jan 11, 2015 2:09 pm
Contact:

Re: [.15.26] Construction robots don't prioritize storage chests

Post by Klonan »

smurphy1 wrote: Why should active providers, storage, and passive providers behave differently depending on what type of bot is fetching items? That's seems like a very inconsistent game mechanic.
The bots perform different functions, and have different priorities

The way it is now, construction robots find the closest chest with the item in them. If you'd like I can move this to ideas and suggestions, but it was specifically changed by kovarex in version 0.11.17 to be this way, which makes it not a bug.
User avatar
MeduSalem
Smart Inserter
Smart Inserter
Posts: 1686
Joined: Sun Jun 08, 2014 8:13 pm
Contact:

Re: [.15.26] Construction robots don't prioritize storage chests

Post by MeduSalem »

posila wrote:
smurphy1 wrote:What should happen:
Construction robots should pull items from the storage chest to place on the ghosts unless the storage chest is empty
But, why should it behave that way?
Because if the closest chest is a passive/active provider chest that is the output of assemblers then the construction bots will endlessly pull from that chest because the assembler will keep producing to keep the chest filled... which results in the construction robots entirely ignoring the thousands of items that might be located in Storage Chests just because they are further away, which is honestly said just... bullshit... because it's against prefabrication logic.

They really should pull from storage chests first and only if they can't satisfy the demand then go for active/passive provider chests.
Last edited by MeduSalem on Sat Jul 01, 2017 3:15 pm, edited 1 time in total.
User avatar
Optera
Smart Inserter
Smart Inserter
Posts: 2920
Joined: Sat Jun 11, 2016 6:41 am
Contact:

Re: [.15.26] Construction robots don't prioritize storage chests

Post by Optera »

This should be changed for consistency.
Why does one type of bots use a priority system and the other doesn't? It should be either all bots use nearest or all bots prioritise active provider over storage over passive provider.
I'm fairly certain I've seen the occasional construction bot taking items from active provider, but they don't seem to prioritise those either.
Muche
Fast Inserter
Fast Inserter
Posts: 230
Joined: Fri Jun 02, 2017 6:20 pm
Contact:

Re: [.15.26] Construction robots don't prioritize storage chests

Post by Muche »

MeduSalem wrote:Because if the closest chest is a passive/active provider chest that is the output of assemblers then the construction bots will endlessly pull from that chest because the assembler will keep producing to keep the chest filled... which results in the construction robots entirely ignoring the thousands of items that might be located in Storage Chests just because they are further away, which is honestly said just... bullshit... because it's against prefabrication logic.

They really should pull from storage chests first and only if they can't satisfy the demand then go for active/passive provider chests.
Construction bots will pull from the chests only if there is demand (i.e. you are expanding your factory), not endlessly, thus you are controlling the demand.
Why does the assembler keep producing if there is empty space in the chest? Because it doesn't know you don't want that. Otherwise you would have set it up to not producing the items if there are thousands of them in storage chests via e.g. logistic condition.
smurphy1
Burner Inserter
Burner Inserter
Posts: 13
Joined: Wed Mar 22, 2017 12:57 am
Contact:

Re: [.15.26] Construction robots don't prioritize storage chests

Post by smurphy1 »

Klonan wrote:
smurphy1 wrote: Why should active providers, storage, and passive providers behave differently depending on what type of bot is fetching items? That's seems like a very inconsistent game mechanic.
If you'd like I can move this to ideas and suggestions, but it was specifically changed by kovarex in version 0.11.17 to be this way, which makes it not a bug.
I guess that depends on the original reason for changing it back then. From a player perspective I can't think of a good reason why construction bots should not prioritize chests in the same way but I could be missing something. It is a little frustrating to me when I deconstruct an area and end up with a bunch of items in storage but then my construction bots ignore them in favor of passive providers next to the assembler making that item just because it's 3 tiles closer to a construction job 1000 tiles away. I want my construction bots to use up the ones that have been returned to storage before taking from new production because I don't want to produce more if I don't need to. If this is all intentional I guess I will have to wire up my production area to the logistics network instead of relying on chest types and limiting chest size but to me that does not seem like good game design to need circuits to workaround inconsistent behavior.
smurphy1
Burner Inserter
Burner Inserter
Posts: 13
Joined: Wed Mar 22, 2017 12:57 am
Contact:

Re: [.15.26] Construction robots don't prioritize storage chests

Post by smurphy1 »

Muche wrote:Why does the assembler keep producing if there is empty space in the chest? Because it doesn't know you don't want that. Otherwise you would have set it up to not producing the items if there are thousands of them in storage chests via e.g. logistic condition.
You shouldn't have to do that though. You don't with logistics bots because of chest priority. If construction bots had the same chest priority then you could limit production simply by using different chest types and limiting the size of chests by the assembler.
Muche
Fast Inserter
Fast Inserter
Posts: 230
Joined: Fri Jun 02, 2017 6:20 pm
Contact:

Re: [.15.26] Construction robots don't prioritize storage chests

Post by Muche »

smurphy1 wrote:
Muche wrote:Why does the assembler keep producing if there is empty space in the chest? Because it doesn't know you don't want that. Otherwise you would have set it up to not producing the items if there are thousands of them in storage chests via e.g. logistic condition.
You shouldn't have to do that though. You don't with logistics bots because of chest priority. If construction bots had the same chest priority then you could limit production simply by using different chest types and limiting the size of chests by the assembler.
I see logistic bots as having the priority of acting according to chest types, construction bots as having the priority of minimizing the construction time.

If assembler's output inserter is without logistic limits, it means that you always want it to work (if there is space on the belt/in the chest), regardless of what is in the logistic network storage, that is, the priority is for the assembler to work as much as possible.
If assembler's output inserter has logistic condition, it means that you want it to work only in those cases, that is, the priority is the amount of items in the network.
It seems to me that you want both behaviors to have the same priority. Also you seem to don't mind if construction robots take longer to complete the construction and the priority is the amount of items in the network, thus the solution is to set the logistic condition. What issues did you observe after setting the condition that made you unset it?
Exasperation
Long Handed Inserter
Long Handed Inserter
Posts: 88
Joined: Fri Apr 22, 2016 9:55 pm
Contact:

Re: [.15.26] Construction robots don't prioritize storage chests

Post by Exasperation »

Muche wrote:
smurphy1 wrote:
Muche wrote:Why does the assembler keep producing if there is empty space in the chest? Because it doesn't know you don't want that. Otherwise you would have set it up to not producing the items if there are thousands of them in storage chests via e.g. logistic condition.
You shouldn't have to do that though. You don't with logistics bots because of chest priority. If construction bots had the same chest priority then you could limit production simply by using different chest types and limiting the size of chests by the assembler.
I see logistic bots as having the priority of acting according to chest types, construction bots as having the priority of minimizing the construction time.

If assembler's output inserter is without logistic limits, it means that you always want it to work (if there is space on the belt/in the chest), regardless of what is in the logistic network storage, that is, the priority is for the assembler to work as much as possible.
If assembler's output inserter has logistic condition, it means that you want it to work only in those cases, that is, the priority is the amount of items in the network.
It seems to me that you want both behaviors to have the same priority. Also you seem to don't mind if construction robots take longer to complete the construction and the priority is the amount of items in the network, thus the solution is to set the logistic condition. What issues did you observe after setting the condition that made you unset it?
By that logic, there's no reason to ever use a passive provider, when you could just use an active provider + logistic network condition. The reason for passive providers to exist is so that you can have some basic control over these things without setting up logistic conditions.
Rakshasa
Long Handed Inserter
Long Handed Inserter
Posts: 97
Joined: Sat May 31, 2014 7:21 pm
Contact:

Re: [.15.26] Construction robots don't prioritize storage chests

Post by Rakshasa »

Exasperation wrote:By that logic, there's no reason to ever use a passive provider, when you could just use an active provider + logistic network condition. The reason for passive providers to exist is so that you can have some basic control over these things without setting up logistic conditions.
If you want good-enough behavior, use the simple passive provider chest. If you want highly optimized behavior with no corner cases, use complicated circuit conditions.

Sounds exactly what factorio is supposed to be about.
mrvn
Smart Inserter
Smart Inserter
Posts: 5898
Joined: Mon Sep 05, 2016 9:10 am
Contact:

Re: [.15.26] Construction robots don't prioritize storage chests

Post by mrvn »

Muche wrote:
smurphy1 wrote:
Muche wrote:Why does the assembler keep producing if there is empty space in the chest? Because it doesn't know you don't want that. Otherwise you would have set it up to not producing the items if there are thousands of them in storage chests via e.g. logistic condition.
You shouldn't have to do that though. You don't with logistics bots because of chest priority. If construction bots had the same chest priority then you could limit production simply by using different chest types and limiting the size of chests by the assembler.
I see logistic bots as having the priority of acting according to chest types, construction bots as having the priority of minimizing the construction time.

If assembler's output inserter is without logistic limits, it means that you always want it to work (if there is space on the belt/in the chest), regardless of what is in the logistic network storage, that is, the priority is for the assembler to work as much as possible.
If assembler's output inserter has logistic condition, it means that you want it to work only in those cases, that is, the priority is the amount of items in the network.
It seems to me that you want both behaviors to have the same priority. Also you seem to don't mind if construction robots take longer to complete the construction and the priority is the amount of items in the network, thus the solution is to set the logistic condition. What issues did you observe after setting the condition that made you unset it?
The problem is that you can't make a good circuit for this.

First you can not check how many items are in storage chests unless you wire them all up into a separate network. If you have a single producer and provider chest there you can check the logistic network count - content of provider chest. But only if you have single provider chest. Otherwise you have to create a wiore network for the provider chests.

Secondly even knowing how many items are in storage chests then what? Stop producing any more items till all are removed from storage chests? Then you end up with 0 items and the producer has to catch up to demand. Destroys the idea of producing a buffer amount ahead of time.

Or you produce till a certain number of items are in the logistics network. Then you might have 50 inserters in a passive provider chest and 150 inserters in storage chests. The construction robots will use the passive provider chest and the assembler will produce more. The storage chest will never get emptied unless more than 50 inserters are used at a time. Same for belts, assembler, furnaces, rails, signals, ... There goes a lot of storage space.
Rhamphoryncus
Fast Inserter
Fast Inserter
Posts: 121
Joined: Tue Jul 14, 2015 10:57 pm
Contact:

Re: [.15.26] Construction robots don't prioritize storage chests

Post by Rhamphoryncus »

Klonan wrote:The construction bots pull from the closest, it is your design decision whether that closest chest is a passive provider or a storage chest

There are many ways to set up the chests and inserters so that none are placed in passive providers if storage chests still have some
If the only way to use it correctly is to only have active providers and storage chests (at least for placeable items) then it doesn't matter what the behaviour is for passive providers and could easily be made the same as for logistic bots. Could you explain what use case we're missing so we can discuss it properly?

Sadly, active providers would work really poorly for many science items which are both placeable and consumable. Logistic bots would move them to your central storage chests then immediately back out to the requester chests, rather than what is often just 4 or 5 tiles of travel. Of course the proposed buffer chests would offer a workaround. Edit: Derp, don't mind me. Just use passive providers for these items and they'll get cleared because science packs use them.

The saving grace of the current behaviour is personal roboports. They offer a sink for the construction items that can otherwise build up (because they go through logistic bot logic not construction bot logic).
User avatar
Klonan
Factorio Staff
Factorio Staff
Posts: 5289
Joined: Sun Jan 11, 2015 2:09 pm
Contact:

Re: [.15.26] Construction robots don't prioritize storage chests

Post by Klonan »

Rhamphoryncus wrote:
Klonan wrote:The construction bots pull from the closest, it is your design decision whether that closest chest is a passive provider or a storage chest

There are many ways to set up the chests and inserters so that none are placed in passive providers if storage chests still have some
If the only way to use it correctly is to only have active providers and storage chests (at least for placeable items) then it doesn't matter what the behaviour is for passive providers and could easily be made the same as for logistic bots. Could you explain what use case we're missing so we can discuss it properly?

Sadly, active providers would work really poorly for many science items which are both placeable and consumable. Logistic bots would move them to your central storage chests then immediately back out to the requester chests, rather than what is often just 4 or 5 tiles of travel. Of course the proposed buffer chests would offer a workaround. Edit: Derp, don't mind me. Just use passive providers for these items and they'll get cleared because science packs use them.

The saving grace of the current behaviour is personal roboports. They offer a sink for the construction items that can otherwise build up (because they go through logistic bot logic not construction bot logic).
Just set a logistic network condition on the inserter putting into the passive provider, then there won't be any items in passive providers if there are any in storage chests
Rhamphoryncus
Fast Inserter
Fast Inserter
Posts: 121
Joined: Tue Jul 14, 2015 10:57 pm
Contact:

Re: [.15.26] Construction robots don't prioritize storage chests

Post by Rhamphoryncus »

Klonan wrote:Just set a logistic network condition on the inserter putting into the passive provider, then there won't be any items in passive providers if there are any in storage chests
A limit of 1000 would mean you permanently have up to 1000 items in the storage chests. You'd have to temporarily run out to clear the storage chests. I guess you could use combinators to shut off production when there's some in storage chests..
SuicideJunkie
Fast Inserter
Fast Inserter
Posts: 124
Joined: Wed Aug 23, 2017 10:17 pm
Contact:

Re: Construction robots don't prioritize storage chests

Post by SuicideJunkie »

What if you place a buffer chest next to your passive provider?
Have it request 1 item. An inserter will pick that item and start to move it to your PP chest. While in hand, the logistics bots will run off and grab an item out of storage for your butter chest.

I can't think of a good way to make it stop once your storage chests are empty without wiring those storage chests up, but you could use a timer to drop the inserter to a 1% duty cycle.
That will make your storage empty out quite slowly but consistently. Once the storage is empty you'll have an occasional waste of a bot fighting with the inserter, but that will ensure you always have at least one available logistics bot near the factory even if the others have flown off.
Post Reply

Return to “Ideas and Suggestions”