Easier Setup of Mission Running Bot for EVE Online

As someone who documents processes like these for a living, my advice is to start with high level outlines of the tasks first. It gets a mission, undocks, goes to mission, completes mission on space, goes home, docks, completes mission with agent… Repeat.
When algorithm starts, is ship Docked, Undocked, or neither? (Do what if neither. Undocked go to "goes home part of script.)
For each of the things above, ask how you do them and write it down. It doesn’t matter if you aren’t talking about the clicks and keys, you get there as part of the iteration of defining each higher level step in a bit more detail. Not only does this make things easier, but it also makes ot easy to define the process as named functions instead of a wall of code/steps.

1 Like

I second the above. Number of clicks etc should naturally come with the script and should not pose a limitation to the functionality as far as I’m concerned.

Please correct me here if I’m wrong, but isn’t the outline of the mission bot already given with the Optimat source code?

Maybe tweaking/adapting it accordingly would be the easiest way here.

At least the missions that are already stored should still be very much valid, since L4s have hardly been changed for years.

Sure, if that is easier for you, start with a high level outline.

working on a missions bot, not optimat :))

2 Likes

@Viir Any news on this?

Yes, we are making good progress here: Commits · Viir/Kalmit · GitHub

1 Like

Oh my, can’t wait for a functional version of this :slight_smile:

Thank you Viir!

Maybe i am just stupid but that link you posted leads to an unrelated project :grin:

I may be resurrecting a dead post, but is anyone still working on a mission bot, specifically a courier mission bot? It seems like it would be the easiest mission bot to make and it would be great for improving standings.

I don’t have time for developing new bots;

take a look at optimat bot, there is no simple task with any missions bot, you need an impressionable data base with missions titles, items, volumes, rats, etc etc, because not any mission could be automatized and some , could be automatized at a big cost in code lines. for a courier bot you need to adapt manually your route; and even if you do that; after 30-50 jumps, you need to restart the game because his memory start to be messed, you start to have big lags at changing systems( you need to read current system all time) and if you go through high populated systems, then you have to add at that gate campers and all problems ( tactics to avoid etc etc).
Taking into account you do not have a “home” to repair your ship, only authothysians rats bring a lot of problems, not only the problems mentioned above, to solve and a mountain of errors ( crack) to avoid. All this could send at 3000 code lines at ease.

At all that , add the fact there will be a change at 64 bit of game, and we do not know what news will come with this.

Maybe, but only maybe, a missions bot could be more feasible after the passage on 64 bit and after Viir will release the sanderling with a new language, and then you have to wait with that until we learn the new language and we upgrade all old scripts.

On the other hand I will be happy to see a script for missions, so you if you ought to have one, do not forget us :slight_smile:

If you can describe what the bot should do, I can take a look at how it could be implemented.
I don’t know if I will have the time to set up accounts to run all tests myself, so for development, I rely on other people running the bot and sharing their observations.

Well, that does sound complicated. I’m not asking anyone else to make it for me, I just thought there might already be one out there that I didn’t find via google and forum search. Optimat is not functional at this time and it looks like no commits in some time also.

Maybe once I learn some C# coding I can make a courier bot. I was thinking of a High Sec Courier Bot that follows this logic to keep it as simple as possible:

Start in Station with an agent you have available for distribution mission.
Start Conversation with Agent

Check that the route does not go through Low Sec
If so, and mission has been declined in the last 4 hours, delay mission.
If so, and mission has not been declined in the last four hours, decline mission
If so, agent has been declined in the last four hours and current offered mission also goes through Low Sec, move to the next agent on agent list (book marks or contacts check)
If not, accept mission.
Open Inventory

Move Mission Item to Transport ship cargo hold as much as will fit.
Set destination, undock, and travel to it using warp to 0 code

Once docked, start conversation with agent via journal
Move mission cargo to Item Hanger.
If the cargo amount = mission objective
Complete mission.
If not return to Agent station to get more mission cargo from Item Hold and repeat until all the cargo has been moved to the destination.

Set return course to agent
Undock and travel to destination using warp to 0

If no missions are available from provided agent list (bookmark folder for agents or in People & Places Contact lit, or from a config file or XML), log off.

Eventually, I would also like to have the bot check the journal for special storyline missions after 10 or 11 mission runs for a particular agent. If one exists, travel to that agent and complete the offered courier mission following the same logic above.

Perhaps it is more complicated than that, but I would keep it as simple as possible and stay in High Sec as this is only going to be used for L1-L4? Courier missions to earn standings and some ISK & LP’s.

I use a similar bot not but it’s written in Lavishscript and needs some fine tuning as it is no longer supported. Also, I have a courier bot from Macrolab that works well. My problem with it is that Eve Pilot only runs in 728 x 1024 resolution and it is an OCR bot but I sometimes use it on the laptop while playing on the destop with another account.

Anyway, just throwing the idea out there. Have a nice day my friends.

:smiley:

1 Like

Nice, this looks like good progress!
Thank you @dew1960 for sharing your description of the bot, it seems by far the most advanced description of a mission running bot I see in this thread.

The coding is relatively simple. The harder part is to get someone with experience in the game to do tests runs and share their observations and experiences.

Looks like I can work with this description of the bot for now. I will post here for updates on the mission running bot.
To make this more valuable, I will document the development process to illustrate better how development works. I will do this first for the travel bot, also because the mission running bot builds on functionality found in the travel bot.

Thank you, Viir.

It is a bit more complicated than I first thought. It also needs to decline/delay combat missions or important story line missions that involve combat but not more often than every four hours so as to not lose standings.

Most courier bot important missions involve delivering ore. Veldspar for L1, Scordite for L2, Omber for L3, and Kernite for L4 so it is important to first have a stockpile of these ores in the home station. Other important missions involve another delivery mission, often to another region or low sec. Low Sec missions would be declined.

I am happy to help with testing of such a bot if needed. I may work on this myself as I learn C#.

Currently I use “Eve Pilot” sometimes for courier missions and I just manually do any missions it defers for combat.

I run missions for Caldari, Gallente, Minmatar, and Amar all out of The Forge Region and trained connections and diplomacy. My goal is not to focus on one faction but to slowly raise factions for all four even though some are at odds with each other, in the long run all 4 factions will be high. Also, the LP’s are nice. I use Akkilen as my home system because it has a lot of distribution agents within 10-15 jumps and some for each of those factions.

I monitor this every few hours but I can let it run on my laptop while I play other accounts on my desktop.

The key is fine tuning the settings.

:smiley:

1 Like

and @Viir
there is an other problem, and sanderling need to be modified.
The route can go through LS and back on Hs; only destination security( found in security lvl) is not enough.
from what I saw , Viir, you need to add UelementText at location into webagentdialogue and make the links clickables.
liknks

the only clickable regions in this picture are the small circles; i have tried to use region remplacement, but is doesnt work (for me). More tan that, the sprite id is changing at each circle is changing at each reopening of window/session game.

The mission briefing before accepting indicates if the route involves low sec.
I use safe mode for routes which also keeps me from entering low or null sec without approval.

I am starting beginner courses in C# now from Youtube.
:slight_smile:

1 Like

Thank you @dew1960 for providing so much details about how mission running works. Good to have this information when working on a bot.

I remember the agent dialogue contained a warning if declining a mission would lead to a standing loss. Is this not the case anymore?
I did some searching in the source code of the old mission running bot and found the relevant part, a regex pattern to search in the text displayed in the agent dialog:

With this regex pattern, the remaining time was also extracted, so you even knew how many minutes until you can decline a mission from the agent again without standing loss.

Why am I writing this you might wonder?
To make the programming simpler:
Programming the not more often than every four hours part means more complexity in the bot. To support this, we would need to know when the last decline was. But, if we can depend on the text displayed in the UI instead, we don’t need even need this, it’s simpler.

I am working on obviating the need to learn C# at all, to make the development experience more enjoyable.

1 Like

In the last month, the C# problem was fixed. Now you don’t anymore need C# to make EVE Online bots (https://github.com/Viir/bots/blob/master/guide/how-to-develop-eve-online-bots.md)
The memory reading functionality is also available in the new simpler bot framework.

After this foundational work, I implemented the courier bot based on your description. You can find this bot at bots/implement/bot/eve-online/eve-online-dew1960-high-sec-courier-mission at 5e4e2b3641424688060e24b5dfa5a8d512a5200f · Viir/bots · GitHub

This courier bot integrates the example travel (auto-pilot) bot from bots/implement/bot/eve-online/eve-online-warp-to-0-autopilot at 32559530694cc0523f77b7ea27c530ecaecd7d2f · Viir/bots · GitHub to take over the travel part. To fit in the overall courier bot, the travel function is slightly changed to signal the completion of travel when the route in the info panel has disappeared.

3 Likes

trying to compile the courier bot as a test and I’m getting this error. Any suggestions?

Awesome! Nice work. :slight_smile: