Allow reading total robots by type in logistics network

Post your ideas and suggestions how to improve the game.

Moderator: ickputzdirwech

factoriouzr
Filter Inserter
Filter Inserter
Posts: 690
Joined: Sat Jun 06, 2015 2:23 am
Contact:

Allow reading total robots by type in logistics network

Post by factoriouzr »

The feature in 0.13 to read the total logistics and construction bots from a roboport was a long awaited feature and a great addition, however it would be great if it was more detailed.

I suggest instead of creating variables for for the totals, supply the robot type instead of the variable name. This doesn't come into play in vanilla factorio, but it's very useful for extensibility and mods. Some mods add upgraded logistics and construction robots and it would be great if once the upgraded robots are produced, there can be an automated way to swap them out. This can be done with the newly introduced feature if it provides the types of robots instead of variables like "T". Ie. it would say "Construction Bot MK1" and "Construction Bot Mk2" etc.

Another key feature needed would be that when an inserter next to a roboport wants to remove a robot, that one is requested to fly to that roboport. This is important because the inserters might never actually remove any robots if they never land at that roboport in a large network. This feature might be tricky with the current implementation of factorio depending on how it was designed, so if this isn't possible, a very acceptable workaround is to add the ability to request certain robot types to always come land at a certain roboport in a certain quantity. In other words say at a roboport hooked up to the circuit network that 10 Logistics MK1, 10 Logistics MK2, 10 Construction MK1, and 10 Construction MK2 robots should always land here. This way the inserters removing the old robots would always be guaranteed to be able to do so. I think this system would fit very well into the current design of the game because landing at a roboport could be considered a job just like repairing an entity or picking up and delivering goods. Once landed, the robots could stay permanently or for a miniumum of say 5 seconds, to give the inserter time to remove them.

Having these two closely related features would really allow automation of roboport robots and I would really like it if this was implemented. After all, this game is about automation and modding, and this area could use some improvement.

In summary the two features required are:
  • allow reading total robots in network by type instead of variables. So "Construstion Bot MK1", "Construstion Bot MK2", "Logistics Bot MK1", "Logistics Bot MK2" instead of "Y" and "T" for the total robots.
  • request robots to fly to a roboport when an inserter wants to remove them or allow setting a number of each type of robot (including ones added by mods) to land at a roboport indefinitely or for 5-10 seconds minimum
User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12889
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Allow reading total robots by type in logistics network

Post by ssilk »

First: Can you explain the exact reason, why you need the numbers of each type? Why is "Total number of such bots" and "Number of such bots in use" not enough? What cannot be done without that? Cause I currently think the game value of those extra vars is quite low.

Second: I think the idea that robots should fly to a roboport if inserter request a bot is a dead end. Only one some robots will come per time; it's a hidden feature, that is not intuitive.

Instead I would follow the other idea you mentioned, I think that's much better. In that way, that I can insert for example circuit signals and the roboport requests that bots and inserters can pick them out, if available.

See this viewtopic.php?f=6&t=28176&p=178982&hili ... rt#p178982
--> Step 3.

Added to viewtopic.php?f=80&t=18093 Roboport/Logistic Network/Robot enhancements
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
factoriouzr
Filter Inserter
Filter Inserter
Posts: 690
Joined: Sat Jun 06, 2015 2:23 am
Contact:

Re: Allow reading total robots by type in logistics network

Post by factoriouzr »

ssilk wrote:First: Can you explain the exact reason, why you need the numbers of each type? Why is "Total number of such bots" and "Number of such bots in use" not enough? What cannot be done without that? Cause I currently think the game value of those extra vars is quite low.

Second: I think the idea that robots should fly to a roboport if inserter request a bot is a dead end. Only one some robots will come per time; it's a hidden feature, that is not intuitive.

Instead I would follow the other idea you mentioned, I think that's much better. In that way, that I can insert for example circuit signals and the roboport requests that bots and inserters can pick them out, if available.

See this viewtopic.php?f=6&t=28176&p=178982&hili ... rt#p178982
--> Step 3.

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

I explained why I want this already:

"This doesn't come into play in vanilla factorio, but it's very useful for extensibility and mods. Some mods add upgraded logistics and construction robots and it would be great if once the upgraded robots are produced, there can be an automated way to swap them out."

To say it a different way, I don't want to run around my 50 or so or more roboports trying to "catch" or find robots landed in each of them and remove them so that I can replace them with the upgraded robots added by mods. I know I can leave both types of robots in at the same time, but the upgraded ones are better so I want to remove/phase out the older versions.

Right now I use requester and active providers to keep my construction and logistics robots at around 1000 each (not exact because of inserter bonuses), I want to use the same setup using active providers and inserter and circuit conditions to remove MK1 robots while the requester puts in the MK2 version. Then I can do the same thing for MK3, etc
User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12889
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Allow reading total robots by type in logistics network

Post by ssilk »

Hm. That doesn't explain why you need the exact numbers. ;)

Till here all you need is
- Mechanism to "catch" robots out of a network
- Mechanism to bring in new bots into a network.

Till here you don't need to know the exact numbers to exchange them. :)
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
factoriouzr
Filter Inserter
Filter Inserter
Posts: 690
Joined: Sat Jun 06, 2015 2:23 am
Contact:

Re: Allow reading total robots by type in logistics network

Post by factoriouzr »

ssilk wrote:Hm. That doesn't explain why you need the exact numbers. ;)

Till here all you need is
- Mechanism to "catch" robots out of a network
- Mechanism to bring in new bots into a network.

Till here you don't need to know the exact numbers to exchange them. :)

Well actually how do you propose to do this? Add a special "Catch All" button? My suggestion is an extension of something they are already doing and all the components are already in the game in different forms (circuit network filters), robot counts made available etc. :)

Plus I want to keep say 1000 robots of each type (logistic/construction) so my factories don't stop, so with the counts I can phase them out. I can remove all MK1 if total logistics > 900 < 1000, and with the other chests i can insert Mk2 until we reach 1000, this way the robots would be phased out instead of removing all of them and adding in 10 MK2 per say if that's all you produced because they are expensive and you just started making them.
User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12889
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Allow reading total robots by type in logistics network

Post by ssilk »

That can be done also without the numbers.

Number of total bots should be always 1000. You already have done that. You know now: There are 1000 old bots in my network and I want to replace them with new bots. You need of course to change, that old bots are inserted, instead new bots will be inserted.

Now you take out one old bots. Then a new bot will be inserted automatically. Number of bots is now still 1000, but you have 999 old and one new bot. Repeat.

Combined with the ability to request the old bots to run to one roboport you can replace the old bots with new bots in some minutes, depends on, how fast you can produce them. 8-) :)


Uhmmm.... And why do you want to keep the old bots? :) I mean you can replace them or not. Do they have different abilities or what?

The problem I see is this: We could have SOME new types of robots (modded or eventually at some point also in vanilla) and if every robot-type provides a number of signals it can get confusing very fast. So I would like to avoid that or find a compromise and prefer the first.
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
factoriouzr
Filter Inserter
Filter Inserter
Posts: 690
Joined: Sat Jun 06, 2015 2:23 am
Contact:

Re: Allow reading total robots by type in logistics network

Post by factoriouzr »

ssilk wrote:That can be done also without the numbers.

Number of total bots should be always 1000. You already have done that. You know now: There are 1000 old bots in my network and I want to replace them with new bots. You need of course to change, that old bots are inserted, instead new bots will be inserted.

Now you take out one old bots. Then a new bot will be inserted automatically. Number of bots is now still 1000, but you have 999 old and one new bot. Repeat.

Combined with the ability to request the old bots to run to one roboport you can replace the old bots with new bots in some minutes, depends on, how fast you can produce them. 8-) :)


Uhmmm.... And why do you want to keep the old bots? :) I mean you can replace them or not. Do they have different abilities or what?

The problem I see is this: We could have SOME new types of robots (modded or eventually at some point also in vanilla) and if every robot-type provides a number of signals it can get confusing very fast. So I would like to avoid that or find a compromise and prefer the first.
I'm not sure how you can still keep 1000 bots without knowing the types of bots and their counts. Without knowing that you can insert new bots and remove old bots sure, but you have no way of knowing that there are old bots still in the network and you will keep inserting new bots and exceed the 1000 limit.

I'm not sure what you mean "why do you want to keep the old bots"? I want to get rid of them that's the point of swapping them out. If new bots get produced once every 10 minutes lets say, and you remove all 1000 old bots at once, you whole logistics production will pretty much shut down, that's why I want to phase them out. Is that what you meant by your question?

I don't think providing a signal for every type of bot will confuse anything. Right now you have all items types available as a filter and limit on all inserters, so it's already in game, this won't add confusion, you are just making that available for in use robots. I think this feature would really enhance the game and it's automation theme. I think you are thinking about this as MK1 = A, MK2 = B, MK3 = C signal etc. This is NOT what i'm suggesting. I'm suggesting the signal be the item itself ie. MK1 logistic, MK2 logistic, MK3 logistic, M1 construction, MK2 construction etc. Then you can switch the roboport to different modes as you can now. These modes would be "broadcast total of each robot in network", "broadcast available robots of each type in network" "broadcast robots of each type in roboport (landed) - and this mode could be broadcast items in roboport and it would broadcase each robot type and repair packs(which is also a requested feature by someone else)". The last option you could easily see how modded roboports holding other items would allow you to control it much better.

Another reason this is good is because the game is meant to let the player be flexible and do many complex things (look at combinators and what people have done with them). Who knows what we might be able and want to do with this type of feature. Who knows what a modder will do with roboports in the future. These things will open new option for automation and how to play the game. If we have this feature, we will have that many more ways to enjoy the game and the mods.

Hope that answers your questions.
User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12889
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Allow reading total robots by type in logistics network

Post by ssilk »

factoriouzr wrote:I'm not sure how you can still keep 1000 bots without knowing the types of bots and their counts. Without knowing that you can insert new bots and remove old bots sure, but you have no way of knowing that there are old bots still in the network and you will keep inserting new bots and exceed the 1000 limit.
First: Old bots can always arrive. For example: You broke an existing logistic network, the bots fly to the next network they find; you can loose robots from your roboport, or when you die (multiplayer). And two or three more reasons. :)
I'm not sure what you mean "why do you want to keep the old bots"? I want to get rid of them that's the point of swapping them out. If new bots get produced once every 10 minutes lets say, and you remove all 1000 old bots at once, you whole logistics production will pretty much shut down, that's why I want to phase them out. Is that what you meant by your question?
Ah. Yes, thats eventually the reason I asked for. But you can create also a simple setup, that outputs only a robot, if you can input one...
Hope that answers your questions.
I think it is ok; I ask not for myself, I ask as moderator. :) These are ideas, it would be a wonder, if that would be implemented like so. :)
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
factoriouzr
Filter Inserter
Filter Inserter
Posts: 690
Joined: Sat Jun 06, 2015 2:23 am
Contact:

Re: Allow reading total robots by type in logistics network

Post by factoriouzr »

Can we get this feature in 0.15?
User avatar
aubergine18
Smart Inserter
Smart Inserter
Posts: 1264
Joined: Fri Jul 22, 2016 8:51 pm
Contact:

Re: Allow reading total robots by type in logistics network

Post by aubergine18 »

Not directly related, but maybe this mod could help? https://mods.factorio.com/mods/anoutsid ... ics-system
Better forum search for modders: Enclose your search term in quotes, eg. "font_color" or "custom-input" - it prevents the forum search from splitting on hypens and underscores, resulting in much more accurate results.
User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12889
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Allow reading total robots by type in logistics network

Post by ssilk »

I'm still not sure, if that is really needed/useful.
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
factoriouzr
Filter Inserter
Filter Inserter
Posts: 690
Joined: Sat Jun 06, 2015 2:23 am
Contact:

Re: Allow reading total robots by type in logistics network

Post by factoriouzr »

aubergine18 wrote:Not directly related, but maybe this mod could help? https://mods.factorio.com/mods/anoutsid ... ics-system
Thanks but I have used that mod in the past. Very useful, but it won't help with the issue explained in this post.
User avatar
Deadly-Bagel
Smart Inserter
Smart Inserter
Posts: 1498
Joined: Wed Jul 13, 2016 10:12 am
Contact:

Re: Allow reading total robots by type in logistics network

Post by Deadly-Bagel »

Hmmm, not really any way of achieving what you want in an intuitive way.

Basically you've got Bob's Mods or something installed and you want to remove all outdated robots from system, presumably to upgrade them or something? Probably the best way to do this is to ensure you always have more than enough robots in the network and then at your high-traffic dropoff areas put in inserters that pick out the older models. That way if an old model is used to take something to that area it will theoretically drop itself into the roboport and be picked out.

Also you could do a "purge" where you shut down your whole factory (preferably without taking your defences offline) then make some insane request that drags over ALL your bots to an area where you have enough roboports to hold them all. As no further requests are being made they will all be collected in one place where you can then pick out the older ones.
Money might be the root of all evil, but ignorance is the heart.
factoriouzr
Filter Inserter
Filter Inserter
Posts: 690
Joined: Sat Jun 06, 2015 2:23 am
Contact:

Re: Allow reading total robots by type in logistics network

Post by factoriouzr »

Deadly-Bagel wrote:Hmmm, not really any way of achieving what you want in an intuitive way.

Basically you've got Bob's Mods or something installed and you want to remove all outdated robots from system, presumably to upgrade them or something? Probably the best way to do this is to ensure you always have more than enough robots in the network and then at your high-traffic dropoff areas put in inserters that pick out the older models. That way if an old model is used to take something to that area it will theoretically drop itself into the roboport and be picked out.

Also you could do a "purge" where you shut down your whole factory (preferably without taking your defences offline) then make some insane request that drags over ALL your bots to an area where you have enough roboports to hold them all. As no further requests are being made they will all be collected in one place where you can then pick out the older ones.

I think it's very intuitive to allow filtering on a particular item in a roboport. Just bring up the list of all items, the same way it works for requester chests, inventory filters, toolbar filters, train cart filters, inserter filters, inserter condition filters, factory crafting selection, oil refinery crafting selection. Ie. This feature is in the game, it's used everywhere and it's where the developers already went with this. All I'm saying, is just extend it to roboports. Expose all counts of all items capable of going into the roboport in the same was as all the other filters. This to me is the definition of intuitive. The game does this already everywhere, so instead of following the mechanism and pattern already laid out, the developers decide to implement something completely different and custom. To me the current implementation is much more confusing then what I'm suggesting and much more custom. How is "T < 1000" more intuitive then "Construction Robot MK1 < 1000"?

Also for the feature to request robots to come to a roboport if they need to be pulled out, that is a bit more complicated to implement. As such I will be perfectly happy with the ability to set a minimum number of robots of a certain type to always be docked at a particular roboport, even if they have orders to perform (goods to deliver for logistics, or things to construct for construction) the docking at the roboport takes precedence. If this is implemented, it's will be easy for the developers in comparison (though not quite as nice), and we can simply request 1 robot MK1 for eg. to always be docked when we want to switch out robots. Then the inserter would filter on the MK1 and remove it when it lands, then the roboport would request another one and the cycle would continue until the MK1 robots are all emptied. This is good enough for me.

Oh and what you suggested about making insane requests is what I am doing now to swap them out, but it's annoying, and a manual process. This game is about automation, so it's very jarring when I have to do this manually after reaching such high levels of automation with robots etc. I think this exposes a weakness in the design of this part of the game. It's like giving mod support with minimal API calls for the modders to use. Ie. modding allowed for this feature, which now exposes a weakness in the base implementation. It's the same as with other bugs the developers fixed that were related to modding. I think this just would be a really great feature to have to nicely support automation at this level. It just feels like the roboports were added and neglected for a long time, so their level of polish relative to other things isn't quite there. Then recently we got the ability for inserters to remove from roboports (which was needed for a long time), this is just another such item to add to the list (just like a proper logistics GUI that doesn't get cut off with lots of items. One that is searchable and where you can change the limits on each good from the GUI and that will update all relevant inserters).
Lemlin
Long Handed Inserter
Long Handed Inserter
Posts: 85
Joined: Thu Mar 17, 2016 10:25 am
Contact:

Re: Allow reading total robots by type in logistics network

Post by Lemlin »

In a previous save I simply added a big power pole, a filter inserter + a provider chest to a roboport blueprint and placed them in a couple of strategical places. I then connected a green wire between them and added a combinator logic to the network to tell the inserters which bot(s) to pick from the roboports.
This setup worked for me, they got replaced in a good pace.
Post Reply

Return to “Ideas and Suggestions”