IdleMMO Auto-Miner

Automatically mines ore until a gold target is reached

// ==UserScript==
// @name         IdleMMO Auto-Miner
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Automatically mines ore until a gold target is reached
// @author       You
// @match        *://www.idle-mmo.com/*
// @grant        none
// @license      MIT
// ==/UserScript==

(function () {
    'use strict';

    const TARGET_GOLD = 10000; // ← Change this to your goal
    const ORE_NAME = "Coal Ore"; // ← Change to "Tin Ore" if needed
    const ACTION_INTERVAL = 13000; // milliseconds (12s + buffer)

    function getGold() {
        const goldElement = document.querySelector('div:has(svg[data-icon="coins"]) + span');
        if (!goldElement) return 0;

        const goldText = goldElement.textContent.replace(/[^0-9]/g, '');
        return parseInt(goldText, 10) || 0;
    }

    function clickOreByName(name) {
        const oreCards = document.querySelectorAll("div:has(h2)");

        for (const card of oreCards) {
            const label = card.querySelector("h2");
            if (label && label.textContent.includes(name)) {
                label.click();
                console.log(`[AutoMiner] Clicked: ${name}`);
                return;
            }
        }
        console.warn("[AutoMiner] Ore not found.");
    }

    function mainLoop() {
        const gold = getGold();
        console.log(`[AutoMiner] Current gold: ${gold}`);

        if (gold >= TARGET_GOLD) {
            console.log(`[AutoMiner] Target gold (${TARGET_GOLD}) reached. Stopping.`);
            return;
        }

        clickOreByName(ORE_NAME);
        setTimeout(mainLoop, ACTION_INTERVAL);
    }

    setTimeout(mainLoop, 5000); // Give page time to load
})();