How to Automate Mining Asteroids in EVE Online

orca script is not made by Viir;

the original post is here:

so read him to make the changes accordingly.The script was made in specific conditions. and other peoples made their modifications and published their script

since orca bot it was made for a specific person, he will not be updated but you can fix by yourself, .
undocking was changed and the fix you find him here:

i really suck at this, i have no idea what the hell im doing lol

Thanky @Sapper09 for sharing your experience.

Thank you for drawing attention to this problem. I changed the first post in this thread to clarify that the particular bot linked in this guide does not work anymore since the the undock changes in May.
We discovered a solution to the undock problem at BotLab Devlog - #16 by Viir. But applying this solution requires using a text editor to edit the bot code. When I have time to test a bot that works now, I can update this guide accordingly.

Yes, some people use the Sanderling app with more than five accounts at the same time.

Are you using another script than the one linked in this topic? Or is the script linked here supposed to launch mining or combat drones?

If you want to learn more or have a question about these, let me know.

Can someone assist me with these steps, since I have no idea what they mean?

  • Enable the info panel ‘System info’. The bot needs this to find asteroid belts and stations.
  • Arrange windows to not occlude ship modules or info panels.
  • In the ship UI, disable “Display Passive Modules” and disable “Display Empty Slots” and enable “Display Module Tooltips”. The bot uses the module tooltips to automatically identify the properties of the modules.

Yes, I think the meaning of these points can be better illustrated with a screenshot. Just open the game client, undock, take a screenshot and link it here. You can upload a screenshot at https://imgur.com/

hello
i tried to start the bot, and did the steps to prepare overview and such, but it did’t work. i feel really really stupid now.

could anyone pls upload a screenshot to show me how the proper overview and the rest for the sanderling should be look like?

@Dozornui, the problem could be caused by the EVE Online client set to use 64 bit:

This is a screenshot of the settings user interface in EVE Online where you can turn of Run clients with 64 bit:

thank you, i’ll try it later and tell how it works

Sorry for not understanding this at all. Am not a coder. I did step by step for the mining bot as in the OP than validated as per the instructions within the downloaded bot. I also understand from the OP that the mining bot is broken and followed the links to see how to enable it but have not been able to figure it out. The real issue for me is that the travel bot also doesnt work and seems EVE Online Client reading may not be working properly. I tried to run the mining bot anyway to see what happens.

Im on Windows 10 / 64 bit, with.net 3.0 and 4.8. Edited and saved a new Overview tab “Mining” which includes all asteroids and NPCs. Inventory is in list mode. Nothing is obscured. Im docked at the station in a system with asteroids. I though cant figure out where to configure the bot to use this preset tab.

When I run the bot with this setup the following occurs.

  1. “EVE Online Client” tab in the bot stays a red X,
  2. If I open the “EVE Online Client” tab then I see “eve online process” is green ticked but “last measurement” is a red X, There are some yellow exclamation marks there advising that first measurement took longer than subsequent ones average cpu 15s and remaining session duration too short,
  3. if I attempt to run the bot as such the bot loops with the following 3 lines repeating
    10-08-46.190: Attempt to initiate dock to or warp to menu entry in submenu ‘stations’
    10-08-46.997: Submenu ‘stations’ not found in the solar system menu.
    10-08-47.759: ore container fill: %, mining range: 0, mining modules (inactive): 0(0), shield.hp: %, retreat: shield hp, JLA: , overview.rats: , overview.roids: , offload count: 0, nextAct: MainStep

Appreciate if you can provide any help at all.

Hi Wizard, thank you for reporting this problem. Sorry to hear it did not work.

That is good to know, because as long as even the travel bot does not work for you we don’t need to try the mining bot.
So we will focus on getting the travel bot working first, because that one has a much simpler logic and is less likely to fail for other reasons than failing memory reading. I will review the travel bot today.
We have a newer travel bot which should be simpler to set up and also more robust. Just need to test it and write the setup instructions. I will get back to you later.

Thanks for a very quick response and the help you offered. Looking forward to it.

Getting back to the problem with EVE Online bots not working:

I just tested the new autopilot bot and uploaded a guide on how to use it: bots/guide/eve-online/how-to-automate-traveling-in-eve-online-using-a-warp-to-0-autopilot.md at 62863c120ee5d063cfc3490bbf6a73e432c70945 · Viir/bots · GitHub

Does this process work for you?

Thanks, something didnt work right. Downloaded the BotEngine via the link in the first bullet and tried to run it in CMD with exactly this command.

C:\EVE\BotEngine\BotEngine.exe start-bot --bot-source=“bots/implement/applications/eve-online/eve-online-warp-to-0-autopilot at 1a1af8ad177a56e006bcf583b3ef98f8b629e83d · Viir/bots · GitHub

The CMD response.

I am recording a log of this session to file ‘C:\bot-session\2019-10-09T00-34-19-A1B322F3920A\session.2019-10-09T00-34-19-A1B322F3920A.jsonl’
This bot source looks like a URL. I try to load the bot from Github
I found 9 files in ‘bots/implement/applications/eve-online/eve-online-warp-to-0-autopilot at 1a1af8ad177a56e006bcf583b3ef98f8b629e83d · Viir/bots · GitHub’.
I loaded bot 6B7CFF19DBC4B095338C0F3831DC92C3C5F65A5C6ADDDAA98B8C0710722240EB.
Starting the bot…

start-bot failed with exception: System.AggregateException: One or more errors occurred. (A task was canceled.)
—> System.Threading.Tasks.TaskCanceledException: A task was canceled.
— End of inner exception stack trace —
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task1.GetResultCore(Boolean waitCompletionNotification) at System.Threading.Tasks.Task1.get_Result()
at Kalmit.BlobLibrary.GetBlobWithSHA256(Byte[] sha256)
at Kalmit.ProcessFromElm019Code.get_GetElmExecutableFile()
at Kalmit.ProcessFromElm019Code.CompileElm(IReadOnlyCollection1 elmCodeFiles, String pathToFileWithElmEntryPoint, String outputFileName) at Kalmit.ProcessFromElm019Code.CompileElmToJavascript(IReadOnlyCollection1 elmCodeFiles, String pathToFileWithElmEntryPoint)
at Kalmit.ProcessFromElm019Code.ProcessFromElmCodeFiles(IReadOnlyCollection1 elmCodeFiles) at Kalmit.PersistentProcess.PersistentProcessWithHistoryOnFileFromElm019Code..ctor(IProcessStoreReader storeReader, Byte[] elmAppFile) at BotEngine.Windows.Console.Bot.RunBotSession(Byte[] kalmitElmApp, Func2 getFileFromHashSHA256, String processStoreDirectory, Action1 logEntry, Action1 logProcessBotEventReport, String botConfiguration, String sessionId, String botSource) in K:\Source\Repos\bots\implement\engine\BotEngine.Windows.Console\Bot.cs:line 38
at BotEngine.Windows.Console.BotEngine.<>c__DisplayClass6_0.b__2() in K:\Source\Repos\bots\implement\engine\BotEngine.Windows.Console\Program.cs:line 270
[2019-10-09T00-36-11] Bot session ended.

Thank you for the feedback.
This looks like a fairly generic error, not specific to the bot, happens already at startup. This error message indicates that some download failed. But I don’t know yet why this happened to you. It could be that some network connection was interrupted.
I can test if I can find such an error when simulating slow internet connection or interruptions. It could also be some kind of firewall, so another test I could run is enabling more firewalls on a Windows and see if I get such an error.

This download where it failed is relatively large, but the engine will cache the downloaded file in the Windows user account. This means that when this download was successful once, it is not necessary anymore for future bot starts from the same Windows user account.

Another measure would be improving the download process to apply some compression, in case that was not done yet.

EDIT:
I ran some experiments here regarding this error you saw. I managed to simulate a scenario with limited internet bandwith.
(Setup in Windows Sandbox. The software ‘NetLimiter 4’ did not work. Using the software ’ TMeter Free’, I could implement the network speed limit. (https://www.howtogeek.com/347711/how-to-limit-any-applications-bandwidth-on-windows/))

In this scenario, I got following error message:

I loaded bot 6B7CFF19DBC4B095338C0F3831DC92C3C5F65A5C6ADDDAA98B8C0710722240EB.
Starting the bot....

start-bot failed with exception: System.AggregateException: One or more errors occurred. (A task was canceled.)
 ---> System.Threading.Tasks.TaskCanceledException: A task was canceled.
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
   at System.Threading.Tasks.Task`1.get_Result()
   at Kalmit.BlobLibrary.GetBlobWithSHA256(Byte[] sha256)
   at Kalmit.ProcessFromElm019Code.get_GetElmExecutableFile()
   at Kalmit.ProcessFromElm019Code.CompileElm(IReadOnlyCollection`1 elmCodeFiles, String pathToFileWithElmEntryPoint, String outputFileName)
   at Kalmit.ProcessFromElm019Code.CompileElmToJavascript(IReadOnlyCollection`1 elmCodeFiles, String pathToFileWithElmEntryPoint)
   at Kalmit.ProcessFromElm019Code.ProcessFromElmCodeFiles(IReadOnlyCollection`1 elmCodeFiles)
   at Kalmit.PersistentProcess.PersistentProcessWithHistoryOnFileFromElm019Code..ctor(IProcessStoreReader storeReader, Byte[] elmAppFile)
   at BotEngine.Windows.Console.Bot.RunBotSession(Byte[] kalmitElmApp, Func`2 getFileFromHashSHA256, String processStoreDirectory, Action`1 logEntry, Action`1 logProcessBotEventReport, String botConfiguration, String sessionId, String botSource) in K:\Source\Repos\bots\implement\engine\BotEngine.Windows.Console\Bot.cs:line 38
   at BotEngine.Windows.Console.BotEngine.<>c__DisplayClass6_0.<Main>b__2() in K:\Source\Repos\bots\implement\engine\BotEngine.Windows.Console\Program.cs:line 270
[2019-10-09T11-42-21] Bot session ended.

Once I remove the network limit in TMeter, it starts working.

Also, when running the bot a second time, it starts way faster, and does not fail even when the network speed limit is enabled again.

Next step is to find a way to optimize the download process so that it works better in such circumstances.

The problem with the error message has been reported on the .NET Core repository here: https://github.com/dotnet/corefx/issues/20296

Some ideas on how to improve the software can be found at https://thomaslevesque.com/2018/02/25/better-timeout-handling-with-httpclient/

@MutantWizard if you are aware of any process which did compete for internet bandwidth while you started the bot, you could try again after stopping such processes.

Thanks!

I use NetBalancer and tried the BotEngine again with NetBalancer open to monitor bandwidth usage. This is what NetBalancer reports before and during BotEngine runing.

Before:
Bandwidth usage from 0kb to max 5kb coming from Eve exefile.exe and evelauncher.exe. the only other bandwidth users within the same max 5kb prior to starting BotEngine were the system services like Service Traffic, svchost.exe, AODMR.exe, ICM-Service-NET.exe and SearchUI.exe. Nothing else.

During:
Started BotEngine and immediately bandwith went to 247-249kb flat with just about all of it being used by BotEngine for the whole period while it was running. The only other bandwidth users were the same as listed in the before. By the time BotEngine fails with an error it downloads just short of 25MB.

Normally I get 5-6mbps speed and mid 30s ping but for a week now seems my ISP is having some issues resulting in much slower speed than usual and frequent disconnections. Either that or they started throttling me for high usage.

Fortunately a disconnection did not happen during any of the maybe dozen BotEngine trials.

Update:
I tried again in the morning during low internet usage period just to check if I get different results. It came out exactly the same.

@MutantWizard thank you for the detailed report. I will find a solution and post it here.


Regarding the implementation side: I found some reports from other .NET integrators which are interesting for supporting compression:

@MutantWizard, I found a solution. You can avoid that error by using the new BotEngine console app from https://botengine.blob.core.windows.net/blob-library/by-name/2019-10-10.BotEngine.Console.zip

I implemented multiple improvements to help with this scenario:

  • Compression of the downloaded data. The size of the large file which was the bottleneck and led to the crash is now reduced to 13 MB. (This file will again be cached in the file system, so only needs to be downloaded the first time a bot is started on a Windows user account).
  • Increased timeout of the download process to 4 minutes. With the older version of the app, the download failed after 100 seconds, leading to the error message you saw.

It should be sufficient to use the new executable file; the other parts of the guide still apply as before.

I took a very short test trip and it works perfectly! Thanks so much!

Now how do I put the mining bot to do my hard labor?

@MutantWizard, thank you for sharing your results, good to know we have cleared this hurdle.

Now on to the mining bot: At the moment, I am not sure. We could start testing by looking at the activities happening in the asteroid belt. When the bot can do everything in the belt until the ore hold is full, it would already save time compared to not using a bot at all. Another option would be to start with the part of warping to the station and transfer the ore and then travel back to the asteroid belt.

If the ship is in the asteroid belt, what do we do next? I guess, right-click on an asteroid to open the context menu so that we then can click on Approach or Lock Target.

For me the only real benefit to using a bot comes from the bot being able to loop multiple ore loads to the station until interrupted. I would be happy to sacrifice all possible option just for the loop. That way i can take a nap while it works.

To the above effect I can tell you exactly what I do for the complete loop but up to you where to start coding and testing. If you wish you can allow for options but this is supposed to be a beginners bot so I would run it with a standard beginners setup but Im happy to test it whatever you decide.

I think a Standard Beginners Setup would be
System: HS 1.0 (no need to worry about NPC)
Ship: Any with an ore hold
Fitting: 2* Miner I in first two high slots, Thruster in first medium slot (all else optional since bot should not need to use)

Using this kind of a standard setup should make it easy to keep the bot simple, reliable and looping. Anyway up to you, Im happy to test.