Bot Recall
Moderator: ickputzdirwech
Bot Recall
Not sure if this is a mod or game feature, but I'd love to have the ability to recall all my bots.
Maybe a filter re-call button that you set what bot(s) to recall. Let's say all Logistic Mk2 bots to come to this port immoderately, since version 3 just came out
So all bots in that robo-ports network will come to that port.
Maybe a filter re-call button that you set what bot(s) to recall. Let's say all Logistic Mk2 bots to come to this port immoderately, since version 3 just came out
So all bots in that robo-ports network will come to that port.
Re: Bot Recall
I agree, because otherwise you just have to "lure" the bots with some task and try to catch them in time, which turns your Factorio gameplay to Tom & Jerry cartoon
- bobingabout
- Smart Inserter
- Posts: 7352
- Joined: Fri May 09, 2014 1:01 pm
- Contact:
Re: Bot Recall
That is a minor annoyance introduced by my Logistics mod. (Though, DyTech did it first.)
This has been requested over and over again, there's really nothing I can do about it on the modding side of things, though others have released mods to try.
This has been requested over and over again, there's really nothing I can do about it on the modding side of things, though others have released mods to try.
-
- Inserter
- Posts: 46
- Joined: Mon Oct 23, 2017 10:46 pm
- Contact:
Re: Bot Recall
Not to mention sometimes you just want to deconstruct a roboport without having all of its logistics bots hauled to storage.
Idea: Give each roboport something like a requester chest UI. Each roboport can specify the number and type of bots that should be kept on hand. If a roboport is below that limit, it summons a bot from a roboport that has extra.
This prevents common (well, common-to-me) problems like "I deconstructed a storage chest earlier and now all of the bots that should be unloading my train are en route from the other side of the factory."
Idea: Give each roboport something like a requester chest UI. Each roboport can specify the number and type of bots that should be kept on hand. If a roboport is below that limit, it summons a bot from a roboport that has extra.
This prevents common (well, common-to-me) problems like "I deconstructed a storage chest earlier and now all of the bots that should be unloading my train are en route from the other side of the factory."
Re: Bot Recall
@bobing
cant you just "cheat it correct"?
Like A box where all MK1 appear in, and then gets removed from rest of the game (flyin around?)
Like
find "Mk1", calcuclate how much there is, put in chest, remove all active bots MK1.
cant you just "cheat it correct"?
Like A box where all MK1 appear in, and then gets removed from rest of the game (flyin around?)
Like
find "Mk1", calcuclate how much there is, put in chest, remove all active bots MK1.
- bobingabout
- Smart Inserter
- Posts: 7352
- Joined: Fri May 09, 2014 1:01 pm
- Contact:
Re: Bot Recall
the problem with that is the "Find". doing a simple "Scan the entire map to look for X", depending on map size, can lock up the entire game for several seconds. It's an instruction I've used before, and decided to avoid.
It's also why I removed the ore mods migration script adding the new ores to existing maps. You'd load the game to instantly be greeted with a 2 minute lockup while it went through 1 by 1 and generated every single new ore patch on the existing large map.
It's also why I removed the ore mods migration script adding the new ores to existing maps. You'd load the game to instantly be greeted with a 2 minute lockup while it went through 1 by 1 and generated every single new ore patch on the existing large map.
Re: Bot Recall
Well you need to limit it to a given force and logistic network...
Re: Bot Recall
You can also use the chunk iterator and search entities/tiles (what you need) on only one of them per tick.
Re: Bot Recall
I thought that it works like that but it doesn't.darkfrei wrote:You can also use the chunk iterator and search entities/tiles (what you need) on only one of them per tick.
You can't keep the iterator between ticks. So you would basically need to go through it and build your own chunk list. Then you could use that list to process them one by one.
- bobingabout
- Smart Inserter
- Posts: 7352
- Joined: Fri May 09, 2014 1:01 pm
- Contact:
Re: Bot Recall
can you even limit a map search by Logistic network?steinio wrote:Well you need to limit it to a given force and logistic network...
As for force, it makes little difference, because you still have to scan and find the entity, then check to see what force it's on. Filtering by force would just be the same, except in one instruction, it's the map scan itself that takes the time.
And the problem with doing that, is how long do you wait between checks? a few ticks between checking a chunk and it's neighbour is enough to have the bot move from one chunk to the next, and be missed by both scans.darkfrei wrote:You can also use the chunk iterator and search entities/tiles (what you need) on only one of them per tick.
Re: Bot Recall
Can't you use filter inserters to rip out low tier bots? The only recall option that I really need is to return bots to the personal roboport when I rip them out of the armor, but that can be fixed by putting a power switch on the damn things.
Re: Bot Recall
A workaround I've used is to use filter inserters to yank specific bot types out of frequently used roboports. Typically dumping them into a purple chest to be sent off to the bot upgrade centers. For construction bots: Use roboports near logistics storage and wherever you are dropping off wood/stone garbage. For logistics bots use wherever you've got a lot of peaks of deliveries, that's where the bots will nest after such a goods dropoff peak.
As for personal roboports... those bots just go to inventory, so set the lower tier bots to auto-trash, and the problem tends to solve itself.
As for personal roboports... those bots just go to inventory, so set the lower tier bots to auto-trash, and the problem tends to solve itself.
- bobingabout
- Smart Inserter
- Posts: 7352
- Joined: Fri May 09, 2014 1:01 pm
- Contact:
Re: Bot Recall
yes, but then you have to wait for them to dock to the apropriate roboports.bobucles wrote:Can't you use filter inserters to rip out low tier bots? The only recall option that I really need is to return bots to the personal roboport when I rip them out of the armor, but that can be fixed by putting a power switch on the damn things.
Re: Bot Recall
Pulling out low tech bots to upgrade them is a problem that only exists for mods. It's really up to mod authors to find solutions to the problems they add into the game. It has no direct importance for vanilla.
That being said it would still be nice to have a "summon bot" command accessible through the logistic network. A combinator sends a signal to the roboport, and the roboport acts like a requester chest to summon bots to itself. I feel that this wouldn't be TOO difficult to implement since the requester system already exists and we're only talking about moving items explicitly between roboports. It should be flexible enough that players can use it however they please, whether it's to rip out obsolete bots, distribute them around the network, or drain the network dry for a tear down.
So for example:
- Roboport has 20 logi bots
- Combinator sends signal [logistic bot, 50]
- 30 free logi bots fly to the roboport.
Rinse and repeat for construction bots and maybe even repair packs.
That being said it would still be nice to have a "summon bot" command accessible through the logistic network. A combinator sends a signal to the roboport, and the roboport acts like a requester chest to summon bots to itself. I feel that this wouldn't be TOO difficult to implement since the requester system already exists and we're only talking about moving items explicitly between roboports. It should be flexible enough that players can use it however they please, whether it's to rip out obsolete bots, distribute them around the network, or drain the network dry for a tear down.
So for example:
- Roboport has 20 logi bots
- Combinator sends signal [logistic bot, 50]
- 30 free logi bots fly to the roboport.
Rinse and repeat for construction bots and maybe even repair packs.
Re: Bot Recall
Well even in vanilla there are times you might want to summon all bots. Imagine a large solar field built using bots. It has a rail station to deliver materials and remove wood/stone, but doesn't have anywhere doesn't have a logistics connection to anywhere else. Eventually it runs out of room to expand and the player decides to build a new solar field somewhere else. At that point he can remove the station and it's chests (plus surplus solar panels etc), but there isn't a convenient way to grab the construction bots that are now surplus. Sure not a huge issue, but some people like to tidy up and reclaim any surplus items/other stuff that is lying around. (The easiest way to do it that in vanilla that I am aware of is to deconstruct the outer row of roboports and replace then with accumulators. Once that is done, repeat with the new set of outer roboports. That does have the advantage that you also reclaim the now surplus roboports as well).
Re: Bot Recall
I've ran into this issue even in vanilla.
You could create another row of boxes for disabled bots and a roboport and / or circuit network option to auto-disable inserted / docked bots as well as a logistics summary page for each network similar to the power summary window (needed anyway to read statistics that overflow the current GUI) with a "disable all bots" option which would set all roboports in the network to auto disable all bots.
The only thing that actually happens is the bots are moved from non-disabled inventory to disabled inventory, which could be just a flag in the code and not a new inventory slot.
The disabled boxes could also serve as a replacement bot buffer without actually deploying them to the network yet.
You would also need an option to set the roboport into passive mode, ejecting all bots, and no bots can then be docked or inserted, but still provides charging and preserves the logistics path / construction area.
After this, a bot recall button on a roboport would set all other roboports in that logi network to passive, and set itself to auto-disable where a waiting inserter could remove them.
You could create another row of boxes for disabled bots and a roboport and / or circuit network option to auto-disable inserted / docked bots as well as a logistics summary page for each network similar to the power summary window (needed anyway to read statistics that overflow the current GUI) with a "disable all bots" option which would set all roboports in the network to auto disable all bots.
The only thing that actually happens is the bots are moved from non-disabled inventory to disabled inventory, which could be just a flag in the code and not a new inventory slot.
The disabled boxes could also serve as a replacement bot buffer without actually deploying them to the network yet.
You would also need an option to set the roboport into passive mode, ejecting all bots, and no bots can then be docked or inserted, but still provides charging and preserves the logistics path / construction area.
After this, a bot recall button on a roboport would set all other roboports in that logi network to passive, and set itself to auto-disable where a waiting inserter could remove them.
Re: Bot Recall
You can also use on_chunk_generated, but one chunk later. Some cache in global and the performance will be fast same.orzelek wrote:I thought that it works like that but it doesn't.darkfrei wrote:You can also use the chunk iterator and search entities/tiles (what you need) on only one of them per tick.
You can't keep the iterator between ticks. So you would basically need to go through it and build your own chunk list. Then you could use that list to process them one by one.
- bobingabout
- Smart Inserter
- Posts: 7352
- Joined: Fri May 09, 2014 1:01 pm
- Contact:
Re: Bot Recall
what about situations where you have too many Logistic/construction bots? A method to monitor and remove excess of certain types between these two could be just as important as removing MK2 to replace with MK4 fusion. and then it would be a vanilla problem.bobucles wrote:It has no direct importance for vanilla.
Re: Bot Recall
If you have to many then they settle in a roboport and you can remove them with an inserter. There is also a mod for removing older bots form any roboport. The problem with upgrading bots are the bots that are busy doing something. As long as there are logistic or construction jobs the bots will stay out of the roboports and can't be easily grabbed.bobingabout wrote:what about situations where you have too many Logistic/construction bots? A method to monitor and remove excess of certain types between these two could be just as important as removing MK2 to replace with MK4 fusion. and then it would be a vanilla problem.bobucles wrote:It has no direct importance for vanilla.
I think to solve this would require a switch in the logistic networks to disable specific bot types or more direct to tell a roboport to issue a recall order on a bot type. The later would prevent those bots from taking a new job and make them settle in the specific roboport. Something only vanilla can implement.
Re: Bot Recall
Is there a way to manipulate the construction and logistics radius?
If there were, and it didn't break the logistics network up, perhaps you could reduce them to zero for all roboports in the recalled network?
This should hopefully force all bots to dock, where they could then be extracted.
If there were, and it didn't break the logistics network up, perhaps you could reduce them to zero for all roboports in the recalled network?
This should hopefully force all bots to dock, where they could then be extracted.