👥 Referral Blum Console Inejct Script - malapit nadaw TGE kaya ito po

Pesh

Honorary Poster
Blum Console Inject Script

Steps?

Copy the code in SCRIPT BELOW

Copy what's inside the code

Open Blum and Press F12 to open Developer Tools and then go to CONSOLE TAB

Paste the script and enjoy, and if there's a warning that you can't paste just type allow paste and then paste it again

SCRIPT

Code:
(async function() {
    'use strict';

    // Fetch answers from GitHub
    async function fetchAnswers() {
        try {
            const response = await fetch('https://raw.githubusercontent.com/mudachyo/Blum/main/blum-autoclicker.user.js');
            const text = await response.text();
            
            // Find the answers section using regex
            const regex = /const\s+answers\s*=\s*({[\s\S]*?});/;
            const match = text.match(regex);
            
            if (match && match[1]) {
                try {
                    const obj = (new Function('return ' + match[1]))();
                    console.log('Answers loaded successfully!');
                    return obj;
                } catch (error) {
                    console.error('Error parsing answers:', error);
                    return {};
                }
            }
            console.error('Could not find answers section in the script');
            return {};
        } catch (error) {
            console.error('Error fetching answers:', error);
            return {};
        }
    }

    const defaultGameStats = () => ({
        score: 0,
        bombClicked: 0,
        iceClicked: 0,
        rewardClicked: 0,
        flowersSkipped: 0,
        isGameOver: false,
        totalClovers: 0,
        skippedClovers: 0
    });

    let GAME_SETTINGS = {
        bomb: Math.floor(Math.random() * 2),
        ice: Math.floor(Math.random() * 2) + 2,
        skipPercentage: Math.floor(Math.random() * 11) + 15,
        minDelayMs: 500,
        maxDelayMs: 999,
        autoClickPlay: false,
        autoAnswer: false
    };

    // Initialize answers as empty object, will be populated when fetch completes
    let answers = {};
    
    // Function to find the correct answer considering different formats
    function findAnswer(question) {
        // Remove question mark and trim
        const cleanQuestion = question.trim().replace(/\?$/, '');
        
        // Try direct match first
        if (answers[question]) {
            return answers[question];
        }
        
        // Try without question mark
        if (answers[cleanQuestion]) {
            return answers[cleanQuestion];
        }
        
        // Try case-insensitive match
        const lowerQuestion = cleanQuestion.toLowerCase();
        const key = Object.keys(answers).find(k => 
            k.toLowerCase() === lowerQuestion ||
            k.toLowerCase().replace(/\?$/, '') === lowerQuestion
        );
        
        return key ? answers[key] : null;
    }

    // Fetch answers when script starts
    (async () => {
        answers = await fetchAnswers();
        console.log('Available questions:', Object.keys(answers));
    })();

    let isGamePaused = true;
    let isSettingsOpen = false;
    let isFrozen = false;
    let gameStats = defaultGameStats();

    function getClickDelay() {
        return Math.floor(Math.random() * (GAME_SETTINGS.maxDelayMs - GAME_SETTINGS.minDelayMs)) + GAME_SETTINGS.minDelayMs;
    }

    const originalPush = Array.prototype.push;
    Array.prototype.push = function(...items) {
        items.forEach(item => handleGameElement(item));
        return originalPush.apply(this, items);
    };

    function handleGameElement(element) {
        if (!element || !element.asset) return;
        setTimeout(() => processElement(element), getClickDelay());
    }

    function processElement(element) {
        if (isGamePaused) return;
        try {
            if (!element || !element.asset || element.isExplosion) return;

            switch (element.asset.assetType) {
                case "CLOVER":
                    gameStats.totalClovers++;
                    if (Math.random() * 100 < GAME_SETTINGS.skipPercentage) {
                        gameStats.skippedClovers++;
                        return;
                    }
                    clickElement(element);
                    gameStats.rewardClicked++;
                    break;
                case "BOMB":
                    if (gameStats.bombClicked < GAME_SETTINGS.bomb) {
                        clickElement(element);
                        gameStats.bombClicked++;
                    }
                    break;
                case "FREEZE":
                    if (gameStats.iceClicked < GAME_SETTINGS.ice) {
                        clickElement(element);
                        gameStats.iceClicked++;
                        isFrozen = true;
                        setTimeout(() => {
                            isFrozen = false;
                        }, 5000);
                    }
                    break;
            }
        } catch (error) {
            console.error("Error processing element:", error);
        }
    }

    function clickElement(element) {
        if (isGamePaused || !element || element.isExplosion) return;

        const createEvent = (type, EventClass) => new EventClass(type, {
            bubbles: true,
            cancelable: true,
            pointerId: 1,
            isPrimary: true,
            pressure: type === 'pointerdown' ? 0.5 : 0
        });

        try {
            if (element.element) {
                ['pointerdown', 'mousedown', 'pointerup', 'mouseup', 'click'].forEach(type => {
                    element.element.dispatchEvent(createEvent(type, type.startsWith('pointer') ? PointerEvent : MouseEvent));
                });
            }
            if (typeof element.onClick === 'function') {
                element.onClick(element);
            }
            element.isExplosion = true;
            element.addedAt = performance.now();
        } catch (error) {
            console.error("Error clicking element:", error);
        }
    }

    function resetGameStats() {
        gameStats = defaultGameStats();
        isFrozen = false;
    }

    function checkAndClickPlay() {
        if (isGamePaused || !GAME_SETTINGS.autoClickPlay) return;

        // Combine selectors for both button types:
        const playButtons = document.querySelectorAll(
            'button.kit-button.is-large.is-primary, button.kit-pill.reset.is-type-white.pill, a.play-btn[href="/game"]'
        );

        playButtons.forEach(button => {
            if (button.textContent.trim().length > 0) {
                setTimeout(() => {
                    resetGameStats();
                    button.click();
                }, Math.random() * 1000 + 2000);
            }
        });

        // Check for game over state with a generic button selector:
        const gameOverElement = document.querySelector('.gameResult');
        if (gameOverElement) {
            setTimeout(() => {
                const playButtons = Array.from(document.querySelectorAll('button')).filter(e =>
                    /Play/.test(e.textContent)
                );
                if (playButtons.length > 0) {
                    playButtons[0].click();
                    resetGameStats();
                }
            }, Math.random() * 1000 + 2000);
        }
    }

    function continuousPlayCheck() {
        checkAndClickPlay();
        setTimeout(continuousPlayCheck, 1000);
    }

    // Start continuous checks
    continuousPlayCheck();

    const styles = `
        .blum-controls {
            position: fixed;
            top: 10px;
            left: 50%;
            transform: translateX(-50%);
            z-index: 9999;
            font-family: Arial, sans-serif;
            background: rgba(0, 0, 0, 0.8);
            padding: 10px;
            border-radius: 8px;
            font-size: 14px;
            color: white;
            text-align: center;
            min-width: 200px;
            backdrop-filter: blur(5px);
            display: flex;
            flex-direction: column;
            align-items: center;
        }
        .blum-title {
            font-size: 14px;
            margin-bottom: 8px;
        }
        .blum-buttons {
            display: flex;
            justify-content: center;
            gap: 8px;
            margin-bottom: 8px;
        }
        .blum-button {
            border: none;
            background: #333;
            color: white;
            padding: 5px 10px;
            border-radius: 4px;
            cursor: pointer;
            transition: background 0.2s;
        }
        .blum-button:hover {
            background: #444;
        }
        .blum-settings {
            background: rgba(0, 0, 0, 0.5);
            padding: 8px;
            border-radius: 4px;
            margin-top: 8px;
        }
        .blum-setting-item {
            display: flex;
            align-items: center;
            margin-bottom: 4px;
            font-size: 12px;
            background: rgba(0, 0, 0, 0.3);
            padding: 2px 6px;
            border-radius: 6px;
        }
        .blum-setting-label {
            flex: 1;
            text-align: left;
        }
        .blum-input {
            width: 40px;
            background: #222;
            border: 1px solid #444;
            color: white;
            padding: 2px 4px;
            border-radius: 6px;
            font-size: 11px;
            text-align: center;
            margin-left: 4px;
            transition: all 0.2s;
        }
        .blum-input:focus {
            outline: none;
            border-color: #666;
            background: #333;
        }
        .blum-input::-webkit-inner-spin-button,
        .blum-input::-webkit-outer-spin-button {
            opacity: 1;
            height: 14px;
            position: relative;
            right: -4px;
        }
        .blum-checkbox {
            margin-left: 8px;
        }
        .blum-stats {
            border-radius: 4px;
            font-size: 12px;
            margin: 8px auto 0;
            padding: 4px 8px;
            background: rgba(0, 0, 0, 0.7);
            border-radius: 8px;
            letter-spacing: -0.5px;
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
            display: inline-flex;
            align-items: center;
            gap: 4px;
            white-space: nowrap;
            text-align: center;
            width: fit-content;
        }
        .blum-credits {
            font-size: 12px;
            color: #888;
            margin-top: 8px;
            text-align: center;
        }
        .blum-credits a {
            color: #4CAF50;
            text-decoration: none;
        }
        .blum-credits a:hover {
            color: #81C784;
        }
    `;

    const styleSheet = document.createElement('style');
    styleSheet.textContent = styles;
    document.head.appendChild(styleSheet);

    const controlsContainer = document.createElement('div');
    controlsContainer.className = 'blum-controls';
    document.body.appendChild(controlsContainer);

    const title = document.createElement('div');
    title.className = 'blum-title';
    title.textContent = "Blum Drop Game";
    controlsContainer.appendChild(title);

    const buttonsContainer = document.createElement('div');
    buttonsContainer.className = 'blum-buttons';
    controlsContainer.appendChild(buttonsContainer);

    const toggleButton = document.createElement('button');
    toggleButton.className = 'blum-button';
    toggleButton.textContent = '▶';
    toggleButton.onclick = () => {
        isGamePaused = !isGamePaused;
        toggleButton.textContent = isGamePaused ? '▶' : '⏸';
        toggleButton.style.background = isGamePaused ? '#333' : '#f44336';
    };
    buttonsContainer.appendChild(toggleButton);

    const settingsButton = document.createElement('button');
    settingsButton.className = 'blum-button';
    settingsButton.textContent = '⚙️';
    settingsButton.onclick = () => {
        isSettingsOpen = !isSettingsOpen;
        settingsContainer.style.display = isSettingsOpen ? 'block' : 'none';
        settingsButton.style.background = isSettingsOpen ? '#f44336' : '#333';
    };
    buttonsContainer.appendChild(settingsButton);

    const settingsContainer = document.createElement('div');
    settingsContainer.className = 'blum-settings';
    settingsContainer.style.display = 'none';
    controlsContainer.appendChild(settingsContainer);

    const creditsText = document.createElement('div');
    creditsText.className = 'blum-credits';
    creditsText.innerHTML = `Made with 💚 by <a href="https://www.facebook.com/clarkeh.29/" target="_blank">Kelliark</a>`;
    controlsContainer.appendChild(creditsText);

    const statsDisplay = document.createElement('div');
    statsDisplay.className = 'blum-stats';
    controlsContainer.appendChild(statsDisplay);

    function createSettingItem(label, value, onChange, type = 'number') {
        const container = document.createElement('div');
        container.className = 'blum-setting-item';

        const labelElement = document.createElement('label');
        labelElement.className = 'blum-setting-label';
        labelElement.textContent = label;

        const input = document.createElement('input');
        input.type = type;
        input.className = type === 'checkbox' ? 'blum-checkbox' : 'blum-input';
        input.value = value;
        if (type === 'checkbox') {
            input.checked = value;
        }
        input.onchange = (e) => onChange(type === 'checkbox' ? e.target.checked : parseInt(e.target.value));

        container.appendChild(labelElement);
        container.appendChild(input);
        return container;
    }

    settingsContainer.appendChild(createSettingItem('Bomb hits:', GAME_SETTINGS.bomb, 
        value => GAME_SETTINGS.bomb = value));
    settingsContainer.appendChild(createSettingItem('Ice hits:', GAME_SETTINGS.ice, 
        value => GAME_SETTINGS.ice = value));
    settingsContainer.appendChild(createSettingItem('Skip percentage:', GAME_SETTINGS.skipPercentage, 
        value => GAME_SETTINGS.skipPercentage = value));
    settingsContainer.appendChild(createSettingItem('Auto play game', GAME_SETTINGS.autoClickPlay, 
        value => {
            GAME_SETTINGS.autoClickPlay = value;
            if (value) {
                continuousPlayCheck();
            }
        }, 'checkbox'));
    settingsContainer.appendChild(createSettingItem('Auto answer questions', GAME_SETTINGS.autoAnswer,
        value => GAME_SETTINGS.autoAnswer = value, 'checkbox'));

    // Keyboard shortcuts
    document.addEventListener('keydown', (e) => {
        if (e.code === 'Space') {
            toggleButton.click();
        } else if (e.code === 'KeyS') {
            settingsButton.click();
        }
    });

    // Update stats display
    setInterval(() => {
        const statsElement = document.querySelector('.blum-stats');
        if (statsElement) {
            const skipRate = (gameStats.skippedClovers / gameStats.totalClovers * 100) || 0;
            statsElement.textContent = `⏭️${skipRate.toFixed(0)}% 💣${gameStats.bombClicked}/${GAME_SETTINGS.bomb} ❄${gameStats.iceClicked}/${GAME_SETTINGS.ice}`;
        }
    }, 100);

    // Function to handle question answering
    function answerQuestion() {
        if (!GAME_SETTINGS.autoAnswer) return;
        
        try {
            const questionElement = document.querySelector("div.kit-overlay > div > div > div.heading > div.title");
            if (!questionElement) {
                return;
            }

            const question = questionElement.innerText.trim();
            const answer = findAnswer(question);

            if (answer) {
                const inputElement = document.querySelector("div.input-container input");

                if (!inputElement) {
                    console.warn("Answer input field not found!");
                    return;
                }

                inputElement.value = answer;
                inputElement.dispatchEvent(new Event("input", { bubbles: true }));
                console.log(`Answered "${question}" with "${answer}"`);

                const submitButton = document.querySelector("div.kit-overlay > div > div > div.kit-fixed-wrapper.no-layout-tabs > button");
                if (submitButton) {
                    submitButton.click();
                    console.log("Submit button clicked");
                } else {
                    console.warn("Submit button not found!");
                }
            } else {
                console.warn(`No answer found for question: "${question}"`);
            }
        } catch (error) {
            console.error("Error answering question:", error);
        }
    }

    // Check for questions periodically
    setInterval(answerQuestion, Math.random() * 1000 + 2000);

    console.log("Blum Drop Game Clicker loaded!");
    console.log("Space: Toggle clicker");
    console.log("S: Toggle settings");
})();




Why can't I open Developer Tools?
Open settings —> Advanced —> Expiremental Settings —> Enable Web View Inspecting
... after wards just close Blum and then start it again and you can now access Developer Tools

Screenshot when used.
1743394972477.webp

Use at your own risk po, all risk are borne with user, oh also don't share it with some groups out there baka makita eh baka mapa anti pa tas ma ban tayo lahat
 
Meron ka sa cp paps
use kiwi browser po or mises to make it work, same padin steps except i start mo blum tas click mo yung 3 dots right side tas open mo dev tools tas dun mo i paste tas punta ka ulet sa tab kung saan mo nirun si blum
 

About this Thread

  • 8
    Replies
  • 861
    Views
  • 6
    Participants
Last reply from:
Mik2018

Trending Topics

Online now

Members online
1,099
Guests online
1,985
Total visitors
3,084

Forum statistics

Threads
2,315,655
Posts
29,183,434
Members
1,182,662
Latest member
Alone1234
Back
Top