What is included
Getting resources seems trivial at first, but can become bothersome quickly. You keep building mining bots, assigning leaders and transports to them and eventually forget where they are? You are constantly worrying about which resource runs out next?
This setup controls the entire decision loop for the three basic resources Metal Ore, Crystal Chunks and Silicon. It can easily be adapted to the remaining resources.
Early in the game, build and send out cheap drones to automatically find and mark resources.
Build a storage area where the goodies will come in.
Have a controller figure out what’s running low and where to send the next miner.
Build miners that will automatically find spots to mine, determined by which resource you need most.
Build a few transports that will automatically find out which miner needs to be emptied and where to send the goods. When you update your storage depot, all transports will know and drop stuff off at the new location!
Scouting resources
These little scouts run about the map and find resource nodes for you. They are dirt cheap and can be produced in bulk early in the game.
They follow a simple logic pattern:
- keep away from other resource signal bots, don’t mark the same resource
- find a resource node
- calculate the most abundant resource in mixed fields
- signal that resource and the amount you can see
When a resource node is mined dry, the signal bot will automatically relocate. It does not have a radar, so occasionally multiple bots will mark the same patch of resources. It will evade when it sees another signaling bot, though.
Blueprint:
Use a worker as a chassis. Add a behaviour processor and a solar panel for power. Done.
DSBSy2hQTcm0tROij16cOVY2Q3toX2f5JBC1rtFqB08W0YU0iumC82cnaLb3R7dFM4eLnfC4EcihF1FxBId1yinQ91Jkk881gmCOy3B8Wex2GetIY2tNWIe2Yhd361vPtLv2VHu0m3fZ9FF2IUiLR0OAnnm4V5y9q02Lkqy3QncGX35EUFz0677kj30536r34pe5I3TROV10489RS1gpEsr2QzRP62hxmHQ2Gs3XH1sBnuG212XlS14tufn21Jyga3BP6PB1BLFVF1urj5v1gaht70RVSyo2bJqm027B70X1t3kLp3q2ouT1AUgAm2Ftm4T2MP1o00PSDsi3Hsxl81SEHN12yGubS4bZwtt41Z14z4Ncscj45tfwv3TGnmQ48N20L2O6PIh1CYKzL1OMUv40na2UZ0lFWux1NP4Rq47g1ba0xoqYT4PjGqN1Nv0bh2ioYX544tZmd40wvYo1rtcWE1oRrCC3IsCQl3YHoU53rkIf42oIFVO2NlvuA0p9rln0n17lV4H1vhi4MBEYD2hdTkw35V0BW1GPSSH1kgvoA3Y9ww32Pi3Yw1lh3eb22YAbH2GEfr02vWBC40f2mnT1pKjhq2djnqx2JJ7dg3qMmzP3Ma6fZ1c5XN02SCP3G3rabOP4M2E8C1Qbo8z0gxmcx14t1fK3RT7OQ3v5lDx0Qf5bB0ETwV82y7F5h0CHgOM1EIqQH1kBCvq2UBvXl3d3nws3SWgYF4ADaU449ny4V1ANlLq4Dyy3B4SX3922MIivg18EDCD2MfpuO0Q4bVv1jqNqw1zGt9x27t9kyEGrO
Logic:
Loop through the signals. Calculate the distance to each signal. If the signal is within visual range, evade and repeat from start. Once all signals are processed and you don’t have to evade, we can continue to look for resources.
Loop through all resource nodes you can see. Calculate the amount of each resource you see. Select the largest amount and signal that resource (with amount). If you see no resources, i.e. when you would signal an amount of 0, relocate and repeat from start.
The logic is pretty rough and can be improved.
DSC18k2gXTqK0tTK1R3zhdMC0p6UJZ0TX5sI1e0sod0ICRhT2WCCaW1VOSiW0FdVwf0QLX862SPCIS2NiK7H4C1DRO1JXK8I15BmqQ0axf6U4eK3Gp0ZrulL1uxui133qUVd0SM1Kx2jHjAb3rfLBP3TCWjR3AwqEL1Pe5fq0VRivy07I6k23tdfWt0mMvV83eoIVi0IBCvI1ptsPy2ZGyT20WHwcA3CLlqc1PKyd51YBezf4eMH7849C91546D4J708tHuW2C0tTd2ZmSCl1Ku3RU14Jgd10Rn8bq3jZbRZ1njMEn3hP8IA1T0feO0ucUWI3Dhg1m0xQcdk2t8nd91UR8yJ1tJ8TG0N2nGN1xr0ut2fgl1y1W48R21FArQu3TE7U71firfh2ytfyz4S2TZX137huR08cMTC0wdmJs2LtLmL3w6Y4F1aKxgn06YVip0gx8c73oevAr2Qn8B10O4Uje0cvXQ931pBNy2ImfrF1j6b3K3nVmS80Rnac90wUfpV1i015u0D1KZ91uM3f90oClDh2CgvQW2KTmdL4Fnnzd2WB3Ll0hHKRY3rz1bJ0zm27u1bVpfc2hpNlu06IZWL090ZxY3X6BTR2MJZUg4TBheG1Oh9B63oV5MV4axRgi1k7Kwc2uQlTd1ikOph3u21bS3Z2coc49jSMF2Been51i1fIi4HpxEO24kWwC1EcsoP01yMK54TxxcB361iYk0OLczi3Ll0vi4fLePL1HFuj52lTBPG19E8Td2TZYK84T0dys0XI5EO4RiqYq1YZHRg4gaeL33YjC1w1yq
Storing resources
This is the drop off point for your transports and the entrypoint for resources into your base. Distribute resources from here as you wish.
I prefer a chain of the largest warehouses I can build, but the system works with a single small storage. In that case you should outsource the second radio transmitter somewhere else and skip the item transporter.
This storage uses two radio transmitters, one behaviour controller and, of course, the item transporter.
One radio is controlled by the behaviour and broadcasts to tell the storage manager when it has space available. Since I build this on the actual head of the chain, where resources are distributed into the base, space available means the resource is about to run dry. If you chain multiple storages together, build this logic somewhere in the middle to react sooner to shortages.
The second radio can be placed anywhere and broadcasts the location of the dropoff point for a certain resource. The Radio Transporters will query this channel to determine where they should go. I point it at the tail end of my storage chain.
Logic:
The logic simply determines if a locked slot (always lock your slots for these storages!) is empty. If that is the case, it sends the resource type and a predetermined number (infinity in my case) to the radio on a predetermined channel.
DSCAx2e3USG0tMLNL0mtH283FA9o200j6ki25mAoo0G95Hs1ItzNe1742hc0zMGS22SOwqW1XRHKD2Hpiv643urPD2OysFi40f2FP40iJIV0AMrGT43dhmx2VJKoL46Ryvp1WQerM2o6zFV2HOchf0OYelH34sXjU1cDCVw4S1rIq4PrswG2c1IQv0lCTHY18V1DK27MlnH1i5ZFv2qEwiL0uWFbP2iGlaZ2fWoYw3gg8ln2uzad32eXRaC1GO5Of2mZBFo1Ze2Cs2qzQz92UDi2M1bkJ1r3fah9B4E3P3B0HJL9T27ZwKR0IW3iT69u0
Blueprint
Not really necessary. Any warehouse with sufficient item slots will do.
DSCAx2e3USG0tMLNL0mtH283FA9o200j6ki25mAoo0G95Hs1ItzNe1742hc0zMGS22SOwqW1XRHKD2Hpiv643urPD2OysFi40f2FP40iJIV0AMrGT43dhmx2VJKoL46Ryvp1WQerM2o6zFV2HOchf0OYelH34sXjU1cDCVw4S1rIq4PrswG2c1IQv0lCTHY18V1DK27MlnH1i5ZFv2qEwiL0uWFbP2iGlaZ2fWoYw3gg8ln2uzad32eXRaC1GO5Of2mZBFo1Ze2Cs2qzQz92UDi2M1bkJ1r3fah9B4E3P3B0HJL9T27ZwKR0IW3iT69u0
Prioritize missing resource
This controller is the heart of the operation.
Warehouses send a radio signal when they are running low on their resource.
Scouts signal resource locations. This is the controller that sends the miners to the best resource spots.
It can be placed in any building. You will need a behaviour controller, a radio receiver and a radio transmitter.
Logic:
In this example, the system manages the core resources metal ore, crystal chunks and silicon. For each of these, the corresponding warehouse sends a message on channel [resource]2 when it is running low.
The subroutine tunes the radio receiver to each of the three channels in turn. When a channel has a message, that resource is returned from the subroutine. If no warehouse is running low, the logic ends here and the prioritized resource remains the same.
When a resource is selected, the program iterates all signals for that signal from the scouts and finds the closest one. That scout’s location is then broadcast on the radio transmitter as the target for all miners seeking new orders.
It might take a while for miners to want new orders. If you need to address the shortage very quickly, build new radio miners or order some to an appropriate resource node manually. They will handle it.
DSC19v2ijs6K1BbU9n2bTUh601HTUZ42JiYX2ORhXZ1uXrmX4RhasI0CFGft3Cc15H0eZ9yF2deyp001X5YG0fsSR33rwIbC1HPmeu3eMRFI0bCqpE44Yak42homHE2QqeVB4GkwPc3DdEBV4O6Ksa2tIBoA2rjKuX3wTbo40JDMMn0STT6d3E14O10YTjLb0MOiTh4deIBr3B3jAY3oMK6x3B2EXR2mTuuP26UOFF4PxKTE0kLzDt40CtZL2wgOTy05UP9Q28Tk5r3i1i8q295v5W43jSp74Oa4C40oKK283jpBUd2DER4V40Hw840VbasH2ZbLUS1eVHpD1guEFi0MTunr1dJFtf3s8JdW0jgDEB23uBnD4TY5XZ0OxYHb1Q3Oxd1fWkrH4XdODb12Sx7U0H5zRB3FROqy41gme82FNW441DBUeO36rnZo1U7Ise1boMrK0Ipcxy2qNmtN1Og6D50PGmkI35P40J21voTz4evNov3wLism0qvdD13coIww4eNbwN38ilTz2S07pT4DLxSp3ex0Zc46Y69C1j1PdT2aLGrb1Wvi574Cs54q3tzlgH0wVjQZ4JZrn64a6lRa43lhKc3rZAS22XPg9g1La3T04ZUP664FTgDT1Y72N12wOQMc338fkB3TWiZI3d12oi06PvnQ3bwm4K1U7OAd3DLcou0Vdkxy4botNZ3fpisu10CvhD2wht3E4Na41i2Mmr232EKIXZ4buURF1NcTuE1JuoTw1GTwuL0zelIs2Kgmj13ffMTE0We0xj0ZHUqA2JssKL2WfvRG19SgtY2YOxsU26hISn4YZXxJ3lhGZJ3BK
Radio Miner
The most complex part of the setup. These miners follow the pattern:
- If you see a resource node, go there
- if you don’t see a resource node, go to the mining location broadcast by the storage controller
- if you can’t fit the resource you want to mine, signal and wait for pickup
- when you can mine the resource, mine it
The order of the first two rules may seem wrong. It prevents the miners from running about whenever priorities change. They will stick to a spot and mine it dry. Once it is dry, they will get their directions from the controller.
You can build this on any chassis that can take the following:
- at least one mining tool or drone
- behaviour controller
- radio receiver
Since new locations are always ordered on the basis of least distance, it is pretty simple to keep them in power coverage. I use mostly twinbots with dual lasers.
Logic:
DSC16k1WlAKG1BbU9l39mZqy2WP45Y1CcaZG0jRl9Q2Ece112nXye33ixv1h1iWX9C0qFHEO3FBEYm0B4vWE0KWuh027wP902dZcW413ag004V0I274S9Qfk015m9G1QpBHk09CimB0blbQX1iTtaT1KOaHJ1XXnzJ1DnJ2M3a7wlJ06zdqr17iKPT1M2QSu4XevIB1DpeBF3xj9t82IH6a32yTKZQ0FZMmx1yYEE13XJo773KxIIq3AR5OC0h5ee42CbOoC49mMHK3syQc22GLKS5005UCG468mII08bt9J3tyiYm2VNuGc1jDzuk4ZMboj25NIs04dKqft3DzJ0Y0t90Om0bgKhM03Igjg3HFCIv1oozBL0ZMFfg1vvqvC26hpjU0ZDza31aTCtn0ofPJw38k76p1hYjrt1RiW1y0eIFYL2UwccC349S2F4bl5Yq0v8xn82Q8Jk30WOKGa2RgEe21di0zk1dgCFw4ITyqq3wAzgH0hp4uV0itcEm1vePyD0mSl4o0tpaPy17pF6n3Q2FX40SQ27M1TJjHp0JydOi3vLvSE3ptGM60GRiSe0WpJRd2ZDdLS0SKHPO1Yoxzf2eVvcO4eKjd13Kj5rl0EXvTr09hddl2ZMlxn0GtKaU1oG2X417NjaL4cjtH63lrgat1PsxUQ3xXGTh0HhXug2WbiSf1ZiGCE0FbhNs15QrJv2miLNI4ElU3z4W8L5K2aMVHs2mcXFp2cAjF335sxsQ0vaLxP0jrS2o0jn9H04CohGX1zPnmS43m1oA2sprcN0OoiRy4IYLEv4IOMsG1hf0Gv3uSnj70kAoxs0BNUPZ2CcD641lw5zj4K2dux0hl5Qk3TkdZI0smxs90NIdSo4X38N83cQewY8V9d
Blueprint:
DSB1GZ1XvlEm1BbS1d2AXAu81XRdlz1j1QcU0bSq3M3550DN3m6Jdt19L9kL3oL60h2GNv373zo5UB35DO5M2eAvZI0oZzXm0JHjrw3mQOXI10k9f53nSBzT4avul30HsaJc1hXGUn01xF1e3bn8pr1JTOuB3XvzCB2caOep1sSmFl21QfgF0Gpfu129n1Hb20QYQy2hF0NH29QREx2TVfd61pGxAZ0O0XuQ06gFWX4HxKX304yT8t3CXOCc0ag27P2MbTwz2ufOff1WEx4q15Wlxv2ofUTO2kLOWy3t6MBZ2MOGfB2cEYF64E6lWW36zmJk0UOCMX0ufZBP1T1mPX350R3Z013tOz4dZlGy1djCpi3PNlco2YCzWc0BNs6y07tDue3iDRti3ZKqUG0pfTeK2uzT2D31hWhU3wRxxB3CVqZf0Q8g6t01qZ6z48al7r402ve11gCLwH07p3uE16JIZb1FxAXO31fEHk3qV9yn1FX9Nj0hE9BN3PKAHD01VBk344N1ys2FLODv0uVtN44cCZ9S2jkETw2pMXQC1gdlvy0vnusu3HpLbl3uhpcG0Tm0J01GiI7o338vcv0X5PQk14e2iS4K2teQ3YfN6j3PnmfQ0nvVG60HLxdk2EECUw0MqOJy1Uyix513EFKD1Wi9Rv3dBfKB2y0d9U2aP4Tg0TmVxQ114Gen0TSmVr1JdTnT4I73sK0ysWoV08bIaJ1iuml80VsLdS3aSTlP3KBVT33pLF6Y3QCwxJ0RRBHk0g2TzQ2D5PeE2f25Mv0Pr5aQ12Fplz1Wzgb54YpruE1CVoXx36XXa03KgjpM1yBfYD3FcJbJ0dy2VU2kIXJo013mDr2cDlsA3sz4DS0kC5Ip3gTX1r4Zyit00X7dA24araj324sFlE4EtYPi14tzaj4GjE4J425Qvk1GGbaf4T5H6H33U5I84WWvSl1YLIdt49w7Bt3E23G64NQYrm36YHUO1iCUzN0oZu5x4Cjxc72SKmT94aUkkR4DsYtd2l2qYk0OmKFB0CY7vU0nFI5o2nrst3351PlS1hZIWi3VoJuG3lzCW7f
Radio Transport
These transports read pickup signals from your miners, grab the goodies and drop them off at the appropriate storage facility. They are not fast, but they are cheap.
Use a dashbot as the base. Add some storage – you’ll want to empty a miner in one go. Also, add the radio receiver and behaviour controller. Season it with some logic and you are good to go.
First, try to unload your items. For that, select the first item in storage. Tune the radio to the correct channel to find out where this item is stored. Drop it off there.
Once all items are stored, find the closest unit that is signaling for pickup. For that, we have to loop through all the signals and get the distance to their source. If the source is closer than the current minimum, it now becomes the pickup destination. When all signals are processed, we know where to go. We move with the async – option so that during the move, we will continuously recalculate the best destination – maybe a nearby miner signals for pickup as we move by or the destination is already serviced by another transport.
Optimizations: The logic begs to be sped up with the UNLOCK command followed by the WAIT TICKS (1) command right at the start. However, currently the game seems to have a memory leak in behaviour logic, so I’ll keep it locked until the bug is fixed.
Logic:
DSCIb1UUNHk0te0q50LFR3Q0VggIU2TYYbQ1UauEO3w1t7f2qTTs52NHuHG0R2Kmq3fOw483nCjjm0j9qhZ10Rrv82305Cu3gtljy1lZqMR2rTlYo1s2QoX0hRTaj3jmX0u30dCVJ2vw87m00HKN92OpiaW3rLqX644cuKm1mO4CO1l0UOh0kiqzl3ha0UZ16qm6a4IHypZ2o4f8H1fluot0MmznV3kR4h347GgSM1YSAR219iYru1lgEnJ4SOPTD1SKlpB0Q3rvv0F6mlA3inGSa31pgp32O3seM1cbwSK1yiirK3krW330JUwLK16ZETk2XhJ6r2cpTLa47tNgH38kvs20nFSM21q49AP2wvr953KdMss2fo0xc0Wc6YE1KeeVm3bKnqa12KhsD0DzrPZ1VKttg3hKu7P3ZhZDU2sAYnz20NpDN1hDLKA3Ebfl62sMIH62Yv5sD2mse081sJkz51yRAnI4bI3Yl3tftjL1rXcAJ09lk3G0osWZv2rEGGm06Y7mY
Blueprint:
DSBNr2gI56W0tkt3h2siYeO0mLm3R257ZZS2fqB8Y01BK1D14vQVr3TMC0h42PAuY3oFhXG2eQu1k2UUZMI1UQmm32WdTpv3qSFXm3kZdwG2dShKh3QtCxw3ysm6V4FiXVe0Ixato0oxNUy4aoMb40ZqgJv0VEjuU46hDS60qxqou2QQb1N0OybyB2rRRJD0JHqyI1kFiSQ3bo9jJ3u2QLY46XfNY24BN2U2D93bE3ed4S10zrwKj37glAy11jt7V3QyffP0EWMdd3YhITm42fVhA4DVlRI3NdcCO2COQVo1N0CNJ4VrqeJ252fiX4PWdYh1Cjq0E4LS5OC3OVIqa3rlRvx0q6W3n10nO6v4I09lc0hRwd30LFPbO1RPvle1EWiTN4AZjws0GbQrD09xN6l4ZSVT80BzcTE0uoh3L27vNSs342dVA0oE10e1BsLB332onm53OOPQX1pnbxX47zQMm3DBMbF1RPmHD0JqMaG10DkVf13XQSY1Bq5Go2h7vXs2cfSiL06FPa126ixLB25mxig3AiJGJ20Bn7F197leR34DIlI2WRuFz2n1zve4efC7u3bkjmX4ZzVcy40ybqH0TCaTt3wosaV1FAehp42gplX0D5NFt1tL6nQ0JhWjc2TGmZu0xMcxo2mQDXo3NqNPi3NPclz3JWot3G7Sm
That’s all we are sharing today in Desynced Radio Mining Guide, if you have anything to add, please feel free to leave a comment below, you can also read the original article here, all the credits goes to the original author NormalityBytes
Related Posts:
- Desynced Text Formatting and Icons Guide
- Desynced Superfast Mining Team Guide
- Desynced Behavior of Waves in Aggressive Mode