Greasy Fork is available in English.

BCI Blooket Cheats Loader

Load cheats from GitHub and inject into Blooket WARNING YOUR BROWSER NEEDS TO HAVE CSP DISABLED TO DISABLE IT GO ON YT AND FIND A TUTORIAL

// ==UserScript==
// @name         BCI Blooket Cheats Loader
// @namespace    http://tampermonkey.net/
// @version      3.1 INFINITE LOOK
// @description  Load cheats from GitHub and inject into Blooket WARNING YOUR BROWSER NEEDS TO HAVE CSP DISABLED TO DISABLE IT GO ON YT AND FIND A TUTORIAL
// @author       Sea_Dev
// @match        *://*.blooket.com/*
// @icon         https://raw.githubusercontent.com/dereszewski/Scripts/refs/heads/main/PNGS/pobrane__11_-removebg-preview.ico
 // @license IDK
// @grant        none
// ==/UserScript==

(function () {
    'use strict';

    function injectScript(scriptUrl) {
        fetch(scriptUrl)
            .then(response => {
                if (!response.ok) {
                    throw new Error('Failed to fetch script: ' + response.statusText);
                }
                return response.text();
            })
            .then(scriptContent => {
                const scriptElement = document.createElement('script');
                scriptElement.textContent = scriptContent;
                document.body.appendChild(scriptElement);
                console.log('Script injected successfully.');
            })
            .catch(error => console.error('Error injecting script:', error));
    }

    function createPopup() {
        const existingPopup = document.getElementById('customPopup');
        if (existingPopup) return;

        const popup = document.createElement('div');
        popup.id = 'customPopup';
        popup.innerHTML = `
            <div id="popupContent">
                <p>Are you using a Phone or PC?</p>
                <button id="pcButton">PC</button>
                <button id="phoneButton">Phone</button>
                <button id="closePopup">Cancel</button>
            </div>
        `;
        document.body.appendChild(popup);

        const style = document.createElement('style');
        style.textContent = `
            #customPopup {
                position: fixed;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%) scale(0.7);
                background: linear-gradient(45deg, #6e7ef8, #77c1c3, #ff6ec7);
                padding: 20px;
                border-radius: 15px;
                box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
                text-align: center;
                color: white;
                font-size: 18px;
                font-weight: bold;
                opacity: 0;
                animation: fadeInScale 0.4s forwards;
                z-index: 99999;
            }
            #popupContent button {
                background: white;
                padding: 10px 20px;
                margin: 10px;
                border: none;
                border-radius: 10px;
                cursor: pointer;
                font-size: 16px;
                transition: all 0.3s ease;
            }
            #popupContent button:hover {
                transform: scale(1.1);
                box-shadow: 0 4px 12px rgba(255, 255, 255, 0.6);
            }
            @keyframes fadeInScale {
                from { opacity: 0; transform: translate(-50%, -50%) scale(0.7); }
                to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
            }
            @keyframes fadeOutScale {
                from { opacity: 1; transform: translate(-50%, -50%) scale(1); }
                to { opacity: 0; transform: translate(-50%, -50%) scale(0.7); }
            }
        `;
        document.head.appendChild(style);

        document.getElementById('pcButton').addEventListener('click', () => {
            injectScript('https://raw.githubusercontent.com/Blooket-Council/Blooket-Cheats/main/cheats/gui.min.js');
            closePopup();
        });

        document.getElementById('phoneButton').addEventListener('click', () => {
            injectScript('https://raw.githubusercontent.com/Blooket-Council/Blooket-Cheats/main/cheats/mobileGui.min.js');
            closePopup();
        });

        document.getElementById('closePopup').addEventListener('click', closePopup);
    }

    function closePopup() {
        const popup = document.getElementById('customPopup');
        if (popup) {
            popup.style.animation = 'fadeOutScale 0.3s forwards';
            setTimeout(() => popup.remove(), 300);
        }
    }

    function createReInjectButton() {
        const button = document.createElement('button');
        button.id = 'reInjectButton';
        button.textContent = 'Re-Inject';
        button.style.position = 'fixed';
        button.style.top = '20px';
        button.style.right = '20px';
        button.style.padding = '15px 30px';
        button.style.fontSize = '18px';
        button.style.fontWeight = 'bold';
        button.style.background = 'linear-gradient(45deg, #6e7ef8, #77c1c3, #ff6ec7)';
        button.style.color = 'white';
        button.style.border = 'none';
        button.style.borderRadius = '12px';
        button.style.cursor = 'pointer';
        button.style.zIndex = '9999';
        button.style.boxShadow = '0 4px 10px rgba(0, 0, 0, 0.3)';
        button.style.transition = 'all 0.3s ease';
        button.addEventListener('click', createPopup);
        document.body.appendChild(button);

        const clearButton = document.createElement('button');
        clearButton.textContent = 'Remove UI';
        clearButton.style.position = 'fixed';
        clearButton.style.top = '70px';
        clearButton.style.right = '20px';
        clearButton.style.padding = '15px 30px';
        clearButton.style.fontSize = '18px';
        clearButton.style.fontWeight = 'bold';
        clearButton.style.background = 'linear-gradient(45deg, #ff6ec7, #77c1c3, #6e7ef8)';
        clearButton.style.color = 'white';
        clearButton.style.border = 'none';
        clearButton.style.borderRadius = '12px';
        clearButton.style.cursor = 'pointer';
        clearButton.style.zIndex = '9999';
        clearButton.style.boxShadow = '0 4px 10px rgba(0, 0, 0, 0.3)';
        clearButton.style.transition = 'all 0.3s ease';
        clearButton.addEventListener('click', () => {
            closePopup();
            setTimeout(() => {
                document.getElementById('reInjectButton')?.remove();
                clearButton.remove();
            }, 300);
        });
        document.body.appendChild(clearButton);
    }

    function init() {
        createReInjectButton();
    }

    init();
})();