OptiMine – ROI Advisor for Miners

  • Info: ROI decision-support tool for mines and lifeform bonuses

    Author: Bel’Veste

    Website / Download: https://github.com/patrik-alexander-wagner/OG_OptiMine
    Support: GitHub Issues or email: cirque.hornet6680@eagereverest.com
    Browser Compatibility: Chrome / Firefox (Tampermonkey)
    Languages: English

    Introduction

    OptiMine is a small Tampermonkey userscript that helps miners evaluate which upgrades may be most efficient based on Return on Investment (ROI).

    The script is informational only.

    It does not automate gameplay, clicks, or actions.

    It only reads data already visible in the game and performs local calculations.

    Main Features

    • ROI calculation (days/weeks) for:

      • Mines

      • Lifeform Buildings

      • Lifeform Technologies

      • Plasma Technology

    • Multi-planet overview

    • Custom resource conversion ratios (MSU)

    • Simple overview tabs for mines and lifeform bonuses

    How It Works

    ROI = Cost (MSU) / Production Gain (MSU)

    Bonuses from research and lifeforms are considered where visible in the UI.

    For LF Techs, a manual one-time selection is required because the active tech per slot is not clearly exposed in the UI.

    Limitations

    Currently not included in calculations:

    • Energy constraints

    • Construction/research time

    • Crawlers

    • Temporary bonuses (officers/items)

    • Some cost reduction effects

    Compliance Notes

    • No automation

    • No bot behavior

    • No automatic actions

    • No server interaction beyond normal game loading

    • Purely calculation and display

    Screenshots

    - please find attached all 5 tabs from the script

    Changelog

    v1.0.0

    • Initial release

    • ROI calculations for mines and lifeform bonuses

    I submit OptiMine for review and toleration.

    If adjustments are required for compliance, I will gladly adapt the tool.


    Thank you for reviewing.

    Bel’Veste

    P.S

    Technical Question / Community Feedback

    If anyone knows a reliable way to automatically detect which Lifeform technologies are active per slot from the game data, I would greatly appreciate guidance. I have tried to find a method but have not managed to retrieve this information reliably, which is why a manual one-time selection is currently required.

  • RiV-

    Approved the thread.
  • If anyone knows a reliable way to automatically detect which Lifeform technologies are active per slot from the game data, I would greatly appreciate guidance. I have tried to find a method but have not managed to retrieve this information reliably, which is why a manual one-time selection is currently required.

    The simplest and most reliable method is still to let the user click through each planet’s Lifeform tech tree once and read the data directly from the page. It is straightforward and avoids having to reverse-engineer internal structures.


    If you want an automatic initialization step, you can instead fetch the endpoint:

    Code
    1. ?page=ingame&component=lfbonuses&ajax=1&asJson=1

    This returns a single JSON object containing all lifeform data for the entire account.


    However, the structure is not particularly convenient. It is built around categories and bonus visualization, not around “all active techs per planet”. The relevant information is nested quite deeply:

    • data.static.technologies contains the technology definitions (IDs, lifeformId, type).
    • data.static.spaceObjects maps planets/moons (spaceObjectId, coordinates, lifeformId).
    • data.dynamic.lifeforms contains the account-wide lifeform progression (id, level, xp, bonus).
    • The actual tech levels are nested under
      data.dynamic.categories → subCategories → spaceObjects → {spaceObjectId} → technologies.


    So it is per category, not per slot. To reconstruct all active Lifeform technologies for a planet, you would need to:

    1. Identify the spaceObjectId.

    2. Iterate over all categories and subcategories.

    3. Collect all technologyId entries found under technologies.

    4. Aggregate them into your own per-planet array.


    It works for initialization, but it requires flattening the category-based structure yourself, since the endpoint does not provide a ready-made “all active techs per planet” list.