# How do (construction) robots select the Roboport where they recharge?

I can't figure out, how my robots select the recharge Roboport.

Let's say i have 200 construction robots and they have to travel ~150 tiles crossing other roboports. All of them just use just the 3 closest ports to the construction area. So sometimes 20 of them wait for a free charging spot, because only 3 ports are used to recharge. I'd say it would be more efficient if some of them fly back to a more distant port to recharge.

I know i can place more ports near the construction area, but how can i figure out the range they use to recharge? Is the condition, that the recharge ports area covers the build/delivery area?

• I suspect they just pick the nearest one, based on their position when their current charge level goes below a threshold value. For example I once tried to place a second port just next to an existing one, but in a way that increased the Distance they had to deviate from their path. It was not used at all. Apr 18, 2016 at 11:03
• when i placed 1-2 more near the one they used before, they started using also these 2. Apr 18, 2016 at 11:04

The penalty is calculated for every roboport in the network this way:

``````distanceToTheRoboportInTiles * 2 +
countOfOtherRobotsWaitingToChargeThere +
countOfOtherRobotsWaitingToStationThere
``````

The roboport with smallest penalty is chosen. This means, that for every extra tile of distance, there needs to be 2 less robots waiting for charge to make it worth to fly there. To be honest I'm not really sure if the constant of 2 is proper and we might change it in the future.

• Thanks for the exact answer. I really like your game design in general. Yet I didn't work out a good/better formula, but I'm pretty sure it would make alot sense to use the speed and maybe capacity in the calculation, since at least the speed has in my opinion a very big impact here. Maybe the speed should be an additional factor in `distanceToTheRoboportInTiles * 2`. May 17, 2016 at 9:08

For any robot, it knows each roboport's current recharge queue and distance. From that:

``````<distance to different roboport in tiles> / <queue size of robots waiting> -> min
``````
• but is it really more efficient to wait for 20 robots instead of flying 10 more tiles? Apr 18, 2016 at 11:17
• I guess devs optimized this it's based on flight time/recharge time numbers. Also we should account that some other robots could attempt to fly that way if the delta-in-queue is made smaller and thus increase the queue by much Apr 18, 2016 at 11:26
• but if only these 2 numbers are taken, the speed of the robots is ignored, which would make a big difference. Apr 18, 2016 at 11:27
• I think this is the case and can add from experience that bots do tend to pile up near one port. I suspect the figures do not account for Logistic Robot Speed research Apr 18, 2016 at 11:32
• well it's still early acces version. maybe the dev will read this. i know he is also active here on stackexchange :P Apr 18, 2016 at 11:33