A real-time mining activity tracker for EVE Online. Reads your game logs to display live stats, critical hit alerts, cargo tracking, compression handling, ISK/hour valuation, session history, and fleet reporting — all in a compact, always-on-top overlay.
| Feature | Description |
|---|---|
| Multi-Character Support | Automatically detects all characters from your EVE game logs |
| Live Mining Stats | Tracks total m3 mined, m3/s rate, and critical hit count in real time |
| ISK/Hour Valuation | Live ISK/h display (e.g. 229.23 M ISK/h) using ESI adjusted prices, auto-resolved per ore type |
| Session Control | Start / Stop / Reset per character to measure specific mining runs |
| Theoretical vs Actual Rate | Compare configured ship yield against real-world performance |
| Ship Profiles | Multiple named fittings per character (modules, drones, implant, cargo) |
| Cargo Tracking | Visual cargo bar with time-to-full estimate; updates automatically on compression |
| Compression Handling | Detects in-space compression events (including multi-word ore names) and correctly adjusts the cargo bar |
| Auto-Stop Toggle | Per-character button to disable auto-pause on cargo-full events while keeping all other auto-pause triggers active |
| Ore Breakdown | Live per-ore-type volume summary for the current session |
| Mining History | Analyze historical data across all characters over a configurable date range |
| Excel Export | One-click .xlsx export with Summary, Ore Pivot, and Daily sheets per character |
| Critical Hit Alerts | Desktop notification + optional WAV sound on critical mining successes |
| Fleet Mode | Share session reports (including ISK/h) via Discord webhook or clipboard copy |
| 20+ Themes | EVE faction colour themes (CONCORD, Gallente, Caldari, Amarr, and more) — applied live without closing the Config dialog |
| Always-On-Top Overlay | Semi-transparent, borderless windows that stay above your game |
| System Tray | Minimize to tray; left-click to restore, right-click to exit |
- Python 3.10+ (developed on 3.14)
- Windows (system tray and desktop notifications use Windows APIs)
playsound==1.2.2
plyer>=2.1.0
openpyxl>=3.1.0
Pillow>=12.0.0
pystray>=0.19.0
Install into the project virtual environment:
python -m venv .venv
.venv\Scripts\pip install -r requirements_MD.txt.venv\Scripts\python.exe mining_dashboard.py.venv\Scripts\pyinstaller --onefile --windowed --icon=mining_icon.ico --add-data "alert_crit.wav;." mining_dashboard.pyThe compiled .exe will be in the dist\ folder.
All settings are stored in mining_config.json (auto-created on first run, in the same folder as the script).
Open the ⚙ Config dialog from the hub to configure:
- Character Selection — choose which pilots appear on the dashboard (3-column grid, up to 15 visible without scrolling)
- Paths & Files — set your EVE gamelogs folder path
- Appearance & Limits — theme (applied live, no dialog flicker), history days, window transparency, critical hit sound
- Fleet — Discord webhook URL for fleet reporting
- Ore Database (SDE) — view SDE version and download the latest ore data with a live progress bar
Delete mining_config.json to fully reset to defaults.
Ore volumes and compression ratios are sourced from the EVE Static Data Export. A bundled set of data is included out of the box. Use ⚙ Config → ORE DATABASE → UPDATE ORE DATA after a major EVE expansion to pull the latest values.
The dashboard fetches adjusted market prices from the EVE ESI API (/markets/prices/) on startup
and resolves ore type IDs automatically via /universe/ids/. Prices are cached locally in
esi_price_cache.json and refreshed periodically.
The ISK/h value is shown as 229.23 M ISK/h on each character frame and included in session reports.
If the value shows --, a hint message explains the reason (e.g. [fetching prices...], [no ore yet]).
Each character frame has an ⏸ Auto-Stop button in the cargo section:
- ON (cyan) — session pauses automatically when the cargo hold is full (default)
- OFF (dim) — cargo-full events are ignored; the session keeps running uninterrupted
Other auto-pause events (asteroid depleted, targeting failed) are always active regardless of this setting.
The preference is saved per character in mining_config.json.
See HOW_TO.txt for full usage instructions covering:
- Starting and stopping sessions
- Configuring ship fittings and cargo hold
- Compression and cargo bar behaviour
- Auto-Stop toggle per character
- ISK/hour display and ESI pricing
- Fleet mode and Discord reporting
- Mining history and Excel export