Page 1 of 2

Filter in Storage Chest

Posted: Sat Apr 27, 2013 12:15 pm
by grobyc
Greetings

I think storage chest should have filter mode as an option. Storage chest are great to store more materials from provider chest when requester chest is full, but logistic robots put to storage chest everything from providers chests making big trash in all storage chests. The biggest problem is when I want to store some copper ore in one particular place as a backup and in this chests I have for example ammo, iron plate and science pack 1. Requester chest aren’t good way to make backup, because logistics robots can’t pick up any stuff from it.
Storage chest could have filter for one item or button for storage all items. After set storage chest we go into chest and set what is interesting for us.
It will improve automation and backup most used materials. :D

Regards
Fan of factorio

Re: Filter in Storage Chest

Posted: Sat Apr 27, 2013 12:30 pm
by kovarex
Hello grobyc,

thank you for the suggestion,
filter in storage chest is possibility that might be implemented (but not in this update).
When I need to get some stuff and don't want to search through my storage chests, I just place requrester chest and order items I need.

Re: Filter in Storage Chest

Posted: Sat Apr 27, 2013 7:54 pm
by rk84
make another provider by inserting stuff from requester?

Re: Filter in Storage Chest

Posted: Sat Apr 27, 2013 9:02 pm
by grobyc
Of course it can be done in way like you was propose but assumption of storage chest is collect excess from requester chest.

Re: Filter in Storage Chest

Posted: Wed Jul 31, 2013 4:41 pm
by grobyc
I was try to write/modify storage chest with filter inside and stack because I'm not a advanced programmer and don't knew how to write from beginning to end code for this chest. There is required logistic_mode = storage + requester" with I should create, but don't know how code should look like.

Is there a possibility u can share code for storage and requester?

Re: Filter in Storage Chest

Posted: Sun Jul 03, 2016 9:46 am
by Ralfinator
(I hope it's appropriate to post here even though there was no activity for 3 years; the forum rules tell me not to open new topics for told suggestions.)

Another reason I'd like filters for storage chest is to bring some more order into the storage: Even when the logistics network is only used to supply the player, and for the player to dump resources that are fed back into the factory, one quickly ends up with a couple of storage chests that have random items all over them. Going to the storage chest and just grabbing an item out of it directly is nigh impossible. I'd much prefer if we could have storage chests dedicated to particular items, like "put all the wood here", "put all the alien artifacts here", so that the storage chests end up being less of a mess.

Re: Filter in Storage Chest

Posted: Sun Jul 03, 2016 9:52 am
by ssilk
Oh, I have overseen this. :) Quite old stuff...

Added to viewtopic.php?f=80&t=18093 Roboport/Logistic Network/Robot enhancements

Re: Filter in Storage Chest

Posted: Thu Jul 07, 2016 8:59 am
by Anson
Ralfinator wrote:Another reason I'd like filters for storage chest is to bring some more order into the storage: ...
storage chests currently seem to at least try to stay sorted by first selecting a storage chest that already has that item type in it, and if none exists, use a random empty storage chest, and if that doesn't exist either, use a partially used storage chest. this system currently fails pretty badly when a designated storage chest becomes empty, a newly arriving items gets put into a random chest (at the other side of the base) and all future arriving items of that type will travel across the whole map to that new random chest.

in my factory, I want to have lots of item types available for requesting them with requester chests or the player himself, and i use lots of buffer chests between assemblers. since it doesn't make sense to put the same item types into different storage chests when they are trashed by the character or get into the network by any other means (and then can't be used by the next assembler that wants to pull from the buffer chest), they can't be passive provider chests, but have to be storage chests. but this method only works as long as the buffer chest still has an item in it. it fails as soon as the chest gets empty, causing the next item to go to a random storage chest, eventually filling that other chest while the next assembler behind the buffer is almost starved.

to make this work, i use one conditional inserter between assembler and buffer chest to fill the buffer when it has too few items in it, and a second conditional inserter behind the storage chest that fills the following assembler only if there are "enough" items in the buffer chest. "enough" means that there are at least a few more items in the buffer chest than an inserter can move to the next assembler including the inserter bonuses. in general and as a buffer, this works fine, but it still fails quickly when too many items are requested from that buffer. thus the condition's limit might need to be higher, eg one stack, plus what the character requests, plus any inserter bonuses. for simple buffer chests, this is too much unused stuff, and it still fails when not enough new items are produced to quickly fill up the chest again.

the only real and safe solution to this problem would be to have filters on storage chests, and that the network has a well known defined order of preferences which chests to use first for newly arriving items (eg from active provider chests), and another order which chests to be used first to get items from them. such filtered storage chests would eliminate the need to fill buffers too much in advance "just in case" that someone requests items from it, and might solve quite a few other problems too.

a (partial?) sorted list of chests for storing newly arriving items
(just made up, maybe need to think about it a few times more):
  • requester chests - with unsatisfied demands
  • filtered storage chests - with such items already in them
  • filtered storage chests - empty
  • non-filtered storage chests - with such items already in them
  • non-filtered storage chests - empty
  • non-filtered storage chests - with other items in them
a (partial?) sorted list of chests for getting items from them on requests
(just made up, maybe need to think about it a few times more):
  • active provider chests (since they need to be emptied anyway)
  • any non-filtered storage chests (maybe first the one with the least items of that type, to empy storage chests fast)
  • any filtered storage chests (maybe first the one with the most items of that type, to keep buffer chests balanced)
  • passive provider chests (since they are only refilled by crafting and not newly arriving items)
here, "filtered storage chest" means a chest with filters and some of them set, "non-filtered storage chest" means a chest with filters and all of them undefined, and in case that there are still "normal" storage chests besides these new chests last priority to those oldstyle storage chests (with such items, empty, with other items)

someone made a similar suggestion and added some rules to always balance all storage chests that have the same items in them. I don't like that idea since it would require a lot of work (for the CPU as well as for the robots), and would cause many new problems, eg when you want to merge some chests and robots keep splitting the contents equally, thus undoing the merging while it takes still place.
It still might be useful to do some balancing (eg to have buffer chests filled equally), but only by selecting the chests in the above list of priorities while new items get into the network and not doing it afterwards and all the time.

another solution might be to introduce a flag (either in general options, or for each single chest) to never automatically completely get rid of all items and always keep at least one item of each type per chest, or one item of each type per stack. those "last items" would serve the same purpose as the filters, similar to ctrl-clicking to reserve slots in the hotbar: insert one specific item manually to reserve the chest for that type, or randomly get such "first items" inserted into empty chests thus reserving them automatically, and only remove that last item manually to stop the chest getting all future items of that type. (idea from logistic pipes in minecraft :-)

does anybody know of a mod that does something similar ?
the cyberchest mod has an option to keep the last item when crafting from that chest, but that chest is meant for something completely different than storage (something like a mixture of requester and crafter chest) and items can still be removed from it by inserters

ps: in factorio 0.13.4, watch out for such buffer chests: when a buffer with the abovementioned two inserters is "fast replaced" by another chest (eg steel chest by storage chest when they become available), only one red/green wire connection is kept and the second (and third and fourth) connection gets lost. and the remaining connection also doesn't work any longer and requires the inserter to be deleted and rebuilt.

Storage chest filter

Posted: Tue Apr 04, 2017 1:15 pm
by Ranakastrasz
Storage chests should let you filter slots. Additionally, if a storage chest has any filters, it should be considered highest priority for storage of the item type. This includes other storage chests having their items moved to said chest.
Additionally, if a chest has an item type(s) designated, no other types of item will be accepted, and will be actively removed. With two or more types, the designated slots are locked to that item type but the rest are open for any of the designated item types.

Purpose is to handle the situation where you use up all of the stored items of a type, ruining your fancy sorting system when the robots put it in some other chest when you get more of that item.

Would also like filters for all chests and the player inventory. Would allow for less chests being used in general without using inserter circuit settings and let you declare exactly what items sort where and how many to reserve space for.

Re: Storage chest filter

Posted: Tue Apr 04, 2017 2:28 pm
by PunPun
I tought they already did? If you middle click an inventory slot they should lock to the item that is in them.

Re: Storage chest filter

Posted: Tue Apr 04, 2017 4:25 pm
by iceman_1212
Ranakastrasz wrote:Storage chests should let you filter slots. Additionally, if a storage chest has any filters, it should be considered highest priority for storage of the item type. This includes other storage chests having their items moved to said chest.
Additionally, if a chest has an item type(s) designated, no other types of item will be accepted, and will be actively removed. With two or more types, the designated slots are locked to that item type but the rest are open for any of the designated item types.

Purpose is to handle the situation where you use up all of the stored items of a type, ruining your fancy sorting system when the robots put it in some other chest when you get more of that item.

Would also like filters for all chests and the player inventory. Would allow for less chests being used in general without using inserter circuit settings and let you declare exactly what items sort where and how many to reserve space for.
Circuit network with chests can mimic the functionality of filtered slots in cargo wagons and cars (which cannot be connected to circuit network). It's not as easy, though, I'll give you that.

Re: Storage chest filter

Posted: Tue Apr 04, 2017 5:48 pm
by Ranakastrasz
How? While you can simulate it with regular chests by attaching a wire to the chest and inserter, how do you do this for storage chests?

Re: Storage chest filter

Posted: Tue Apr 04, 2017 9:42 pm
by ssilk
Added to viewtopic.php?f=80&t=15326 Stack Filters for Chest, Vehicles and others

Re: Storage chest filter

Posted: Tue Apr 04, 2017 10:29 pm
by iceman_1212
Ranakastrasz wrote:How? While you can simulate it with regular chests by attaching a wire to the chest and inserter, how do you do this for storage chests?
It's possible to attach a wire to all types of chests, including the logistic chests.

Re: Storage chest filter

Posted: Wed Apr 05, 2017 9:01 pm
by Ranakastrasz
iceman_1212 wrote:
Ranakastrasz wrote:How? While you can simulate it with regular chests by attaching a wire to the chest and inserter, how do you do this for storage chests?
It's possible to attach a wire to all types of chests, including the logistic chests.
I meant, How do you prevent robots from putting the wrong type of item in a storage chest, and put the right type in instead. I know you can do it for inserters easily.

Re: Storage chest filter

Posted: Thu Apr 06, 2017 1:48 pm
by iceman_1212
Ah I see. Atm, the logistic system is not really designed for the player to have that much control over how logistics robots store in storage chests (aside from "priming" storage chests with certain items for robots to store there).

Can I ask what you're trying to accomplish in-game as there may be another workaround?

Re: Storage chest filter

Posted: Thu Apr 06, 2017 2:33 pm
by aober93
But for which situation is this helpful, sorting just for the sake of sorting? IMO this is even counterproductive because it undermines a robust system.

Re: Storage chest filter

Posted: Thu Apr 06, 2017 8:31 pm
by Ranakastrasz
As it is, there are two uses of Storage chests. Allow for robot deconstruction, and add a dropoff point for barrels so they don't clog up your network at the unload point.

I want to be able to have a storage area, with storage chests instead of steel chests, which is sorted. More specifically, I want the robots to sort it for me, rather than emptying a storage chest into another storage chest via deconstruction or otherwise, after putting a single item in it.

Its just so messy and unorganized.

I know you are probably not really supposed to use storage chests for storage, but I really wish it would have a filter. Its more of an overflow chest, with a halfhearted sorting algorithm, to allow for active providers and deconstruction to work without a destination. It isn't currently able to act as actual storage of anything.


I want them to act like a Active Provider/Requester hybrid chest, with the Requester part being the significant bit, being that it will only request stuff that it is allowed to store.

Not really sure how else to explain it.

Give it a requester-chest like interface, and those are the items it is allowed to store.

Re: Storage chest filter

Posted: Fri Apr 07, 2017 11:36 am
by ssilk
Ranakastrasz wrote:As it is, there are two uses of Storage chests. Allow for robot deconstruction, and add a dropoff point for barrels so they don't clog up your network at the unload point.
That's not quite correct.
The logistic bots store items in storage chests
- when there are leftovers from a delivery, that couldn't be accomplished. Like there are some items left from an exact delivery to a player or there are items left, cause a chest is already full. That comes, cause bots always pick up as much as they can carry (stack size).
- when you have active provider chests.

For the last case a filter is quite interesting, cause that would force to place items in "about the right area".

Re: Storage chest filter

Posted: Fri Apr 07, 2017 4:42 pm
by Ranakastrasz
ssilk wrote:
Ranakastrasz wrote:As it is, there are two uses of Storage chests. Allow for robot deconstruction, and add a dropoff point for barrels so they don't clog up your network at the unload point.
That's not quite correct.
The logistic bots store items in storage chests
- when there are leftovers from a delivery, that couldn't be accomplished. Like there are some items left from an exact delivery to a player or there are items left, cause a chest is already full. That comes, cause bots always pick up as much as they can carry (stack size).
- when you have active provider chests.

For the last case a filter is quite interesting, cause that would force to place items in "about the right area".
Wait, really? In my experience, it always gives you 1-2 extra items when that happens, rather than capping at the given value. Makes sense for full chests tho. Did that get fixed without me noticing?

That is the main situation where I want it for. I want the items to go into the storage chests I want them to go into, rather than wherever they feel like at the time.