How to Automate Mining Asteroids in EVE Online

I meant the bot.

Yes, that sounds correct. Thanks for explaining it, maybe this helps folks to understand the concept.

We start with a decision tree that we use at the current impression of the environment, that is, the reading from the game client. The leaves of this decision tree are those sequences of actions. When we have completed or failed such a sequence, we go back to the root of the decision tree.

For the simple mining bot, the tree could look like this:

  • Branch: Are we docked?
    • Yes: Branch: Is an item in the ore hold?
      • Yes: Act: Move item from the ore hold to the item hangar.
      • No: Act: Undock.
    • No: Branch: Is the ore hold 99% full?
      • Yes: Act: Dock to station.
      • No: Branch: Do we see a target?
        • Yes: Branch: Do we have an inactive mining laser module?
          • Yes: Act: Activate this mining laser module.
          • No: Repeat.
        • No: Branch: Read the closest asteroid from the overview. Does this entry exist?
          • Yes: Branch: Is this asteroid close enough?
            • Yes: Act: Lock target this asteroid.
            • No: Act: Approach this asteroid.
          • No: Act: Warp to the mining site.

I see several ‘subroutines’ which contain only a single step:

  • Move item from the ore hold to the item hangar
  • Activate this mining laser module.

The longest sequence could be the one to warp to the mining site, with four steps.

While I am at illustrating the architecture: Another thing that might not be obvious and should be part of the guide for developers: All branches in the tree are evaluated on the same reading from the game client. For each of the steps in the sequences (which are not detailed above) the bot takes a new reading from the game client when transitioning from one step to the next.

For a beginner (user) bot, the tree will have some more nodes to guide the user (display a text message) or to take care of the setup, for things like:

  • Open the inventory window.
  • Select the ore hold.
  • Select the list view in the inventory. (I remember some people had trouble with this).
  • Report missing bookmark (station).