Greasy Fork is available in English.

Stake.bet Auto Claim Reload 10 Mins with Timer, Flashing, and Sound

Automatically claims the first "Claim Reload" button every 10 minutes and 30 seconds with a countdown timer, flashing effect, sound notification, and page reload after 10 seconds.

Ajankohdalta 2.3.2025. Katso uusin versio.

// ==UserScript==
// @name         Stake.bet Auto Claim Reload 10 Mins with Timer, Flashing, and Sound
// @namespace    http://tampermonkey.net/
// @version      3.7
// @description  Automatically claims the first "Claim Reload" button every 10 minutes and 30 seconds with a countdown timer, flashing effect, sound notification, and page reload after 10 seconds.
// @author       jayfantz - tips accepted thank you and enjoy
// @match        https://stake.bet/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Function to create the countdown timer
    function createTimer() {
        const timer = document.createElement('div');
        Object.assign(timer.style, {
            position: 'fixed',
            top: '1.5cm',
            left: '0',
            backgroundColor: 'black',
            color: 'white',
            padding: '10px',
            fontFamily: 'monospace',
            fontSize: '20px',
            zIndex: '10000',
            borderRadius: '5px'
        });
        timer.id = 'countdown-timer';
        timer.textContent = '10:30';
        document.body.appendChild(timer);
        return timer;
    }

    // Function to update the countdown timer
    function updateTimer(timer, timeInSeconds) {
        const minutes = Math.floor(timeInSeconds / 60);
        const seconds = timeInSeconds % 60;
        timer.textContent = `${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`;
        timer.style.backgroundColor = timeInSeconds <= 5 ? (timer.style.backgroundColor === 'black' ? 'red' : 'black') : 'black';
    }

    // Function to play a sound
    function playSound() {
        const sound = new Audio('https://assets.mixkit.co/active_storage/sfx/1121/1121-preview.mp3');
        sound.volume = 0.5;
        sound.play();
    }

    // Function to forcefully click a button
    function forceClick(element) {
        if (!element) return;
        element.scrollIntoView({ behavior: 'smooth', block: 'center' });
        ['mouseover', 'mousedown', 'mouseup', 'click'].forEach(eventType => {
            element.dispatchEvent(new MouseEvent(eventType, { bubbles: true, cancelable: true, view: window }));
        });
        console.log("Tried to force-click the button.");
    }

    // Function to find and click the first "Claim Reload" button
    function clickClaimReload() {
        let buttons = Array.from(document.querySelectorAll('button'));
        let reloadButton = buttons.find(button => button.innerText.trim().toLowerCase().includes('claim reload'));

        if (reloadButton) {
            console.log('Claim Reload button found!', reloadButton);
            forceClick(reloadButton); // Click the button
            playSound(); // Play sound immediately after clicking

            // Wait 10 seconds before reloading the page
            setTimeout(() => {
                location.reload(); // Reload the page after 10 seconds
            }, 10000); // 10 seconds delay
        } else {
            console.log('Claim Reload button not found!');
        }
    }

    // Function to check if we are on the rewards page
    function isOnRewardsPage() {
        return window.location.href.includes("tab=rewards&modal=claimReload");
    }

    // Main function to run the script
    function main() {
        if (isOnRewardsPage()) {
            console.log('Already on the rewards page.');
            clickClaimReload(); // Only click if we're on the right page
        } else {
            window.location.href = 'https://stake.bet/?tab=rewards&modal=claimReload';
            console.log('Navigating to the rewards page...');
        }
    }

    // Create the timer
    const timer = createTimer();
    let countdownTime = 630; // 10 minutes and 30 seconds

    // Update the timer every second
    const timerInterval = setInterval(() => {
        countdownTime -= 1;
        updateTimer(timer, countdownTime);

        if (countdownTime <= 0) {
            countdownTime = 630; // Reset the countdown time after it hits zero
            updateTimer(timer, countdownTime); // Reset the timer display
            main(); // Run the main function to click the button
        }
    }, 1000);

})();