Starting out with bots

Looking to start using some bots in eve, I don’t have enough understanding to make my own ones and I am very hesitant in paying for them, but I have to start somewhere, so we will see.

Mostly interested in anomaly and intel bots, I have read most of the guides here and am learning the basics of elm.

For clarification, the framework is what allows the bot to read information from and interact with the game, and is in the “EveOnline” section of the bot. Bot.elm basically uses parts of this to react to events and have effects on the game. I’ve seen Sanderling mentioned a lot, is this an alternative framework or something else?

I guess I have a half decent understanding of the basic tools, but would have no idea of how to code a bot from scratch. What am I missing? What is the next step? I’m not even sure what small project I could start on, just seems like such a large jump between understanding the concepts on paper and putting them into code I wouldn’t even know where to start.

Does anyone have any input on other bot sources? Ie. Macrolab, Abyssbot, eve master?

Thanks.

1 Like

Welcome Zerbia!

You may have already found the user-facing guides for the various bots for EVE Online. For a guide on developing for EVE Online, you can check out https://to.botlab.org/guide/developing-for-eve-online

If you have any questions about Elm, feel free to ask here or on any of the other channels!

The term ‘framework’, related to the bot program means all files except the one file with the entry point (usually named Bot.elm) So in the example programs linked in the guides, these frameworks contain also other directories besides ‘EveOnline’. For example, when you make a change to the file Common\Basics.elm, you can see the framework ID changes as a result.

Sanderling is a part of the framework for EVE Online. Sanderling is responsible for memory reading, but not image processing. (In contrast, you can see image-processing implemented in ParseGuiFromScreenshot.elm

As far as I now your goals, the best way to start is not to try and code a bot from scratch, but take one of the many existing bots and adapt it.

A good way to start is to make a list of changes you want to try in an EVE Online bot, and then we can see which one is the best/simplest to start with.

Ok, some possible bot modifications:

  • ratting bot: add usage of bastion module, so when a neutral or unwanted rat is seen it’ll debastion and then warp off, instead of just trying to warp off and failing. Bastion being on could either be kept in memory or known from a screenshot.

  • ratting bot: respond to SMT sound queues, mostly for previously mentioned marauder bots

  • intel bot: post neutral in chosen intel channel for other bots to see on SMT. Drag name, drag system, type nv at the end, send message.

  • mining bot: instead of warping to an asteroid belt, bots will warp to a chosen (manually piloted) fleet member who’s in an rorqual/orca. Then they open fleet hangar and mine as usual, dragging material into fleet hangar (or if that fails maybe something for them to compress on their own instead.) if they see neutrals they will warp themselves out and dock up, then warp back when they leave. Essentially taking the very clicky parts out of a mining fleet.

  • mining bot addon to that: something for non merc miners to not mine merc, and merc miners to only mine merc and notify when it’s finished. Possibly and swap merc and non-merc ships from the rorqs SMB.

Varying difficulty, all interesting and useful.

Thank you for sharing these!

The part on mining sounds like something @focabr has already implemented and published: https://github.com/Viir/bots/pull/63
Is this the bot behavior you are looking for?
With bot a023889820, you can use this option to enable fleet mining: unload-fleet-hangar-percent

In bot a023889820 you can enable this using hide-when-neutral-in-local = yes

Sounds a bit like this requires listening to audio output from the game client. We have no channel to read audio from the game client. Do you see any visual representation of the necessary info in your game client?