Greasy Fork is available in English.

Combined ShadeReap and Agar.io Cheat GUI with Account Tracker

Custom ShadeReap Console GUI with multiple pages, features for Agar.io including cheats, script injector, and account tracker

// ==UserScript==
// @name         Combined ShadeReap and Agar.io Cheat GUI with Account Tracker
// @namespace    http://tampermonkey.net/
// @version      1.2
// @description  Custom ShadeReap Console GUI with multiple pages, features for Agar.io including cheats, script injector, and account tracker
// @author       Your Name
// @match        *://agar.io/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    let isInjected = false;

    // Create the main container
    const container = document.createElement('div');
    container.style.position = 'fixed';
    container.style.left = '50px';
    container.style.width = '600px';
    container.style.height = '350px';
    container.style.backgroundColor = '#3a3a3a';
    container.style.borderRadius = '10px';
    container.style.boxShadow = '0px 0px 15px rgba(0, 0, 0, 0.2)';
    container.style.zIndex = '9999';
    container.style.cursor = 'move';
    container.style.display = 'flex';
    container.style.flexDirection = 'column';
    container.style.userSelect = 'none';
    container.style.transform = 'translateY(100vh)';
    container.style.transition = 'transform 1s ease-out';
    document.body.appendChild(container);

    // Function to make the GUI draggable
    function makeDraggable(element) {
        let isDragging = false;
        let startX, startY;

        element.onmousedown = function(e) {
            isDragging = true;
            startX = e.clientX - element.offsetLeft;
            startY = e.clientY - element.offsetTop;
        };

        element.ontouchstart = function(e) {
            isDragging = true;
            startX = e.touches[0].clientX - element.offsetLeft;
            startY = e.touches[0].clientY - element.offsetTop;
        };

        document.onmousemove = function(e) {
            if (isDragging) {
                element.style.left = e.clientX - startX + 'px';
                element.style.top = e.clientY - startY + 'px';
            }
        };

        document.ontouchmove = function(e) {
            if (isDragging) {
                element.style.left = e.touches[0].clientX - startX + 'px';
                element.style.top = e.touches[0].clientY - startY + 'px';
            }
        };

        document.onmouseup = function() {
            isDragging = false;
        };

        document.ontouchend = function() {
            isDragging = false;
        };
    }

    makeDraggable(container);

    // Loading bar
    const loadingBar = document.createElement('div');
    loadingBar.style.width = '100%';
    loadingBar.style.height = '5px';
    loadingBar.style.backgroundColor = '#ff0000';
    loadingBar.style.borderRadius = '5px';
    loadingBar.style.position = 'absolute';
    loadingBar.style.bottom = '0';
    container.appendChild(loadingBar);

    let loadProgress = 0;
    const loadInterval = setInterval(() => {
        loadProgress += 5;
        loadingBar.style.width = `${loadProgress}%`;
        if (loadProgress >= 100) {
            clearInterval(loadInterval);
            container.style.transform = 'translateY(0)';
            loadingBar.remove();
        }
    }, 50);

    // Create the header section
    const header = document.createElement('div');
    header.style.backgroundColor = '#454545';
    header.style.height = '50px';
    header.style.borderTopLeftRadius = '10px';
    header.style.borderTopRightRadius = '10px';
    header.style.display = 'flex';
    header.style.alignItems = 'center';
    header.style.padding = '0 15px';
    header.style.color = '#fff';
    header.style.fontFamily = 'Arial, sans-serif';
    header.style.fontSize = '20px';
    header.innerHTML = `
        <div style="flex: 1; display: flex; align-items: center;">
            <span style="margin-right: 10px;">&#x1F480;</span> ShadeReap Console
        </div>
        <div id="statusCircle" style="width: 15px; height: 15px; border-radius: 50%; background-color: red; margin-right: 10px;"></div>
        <div id="closeBtn" style="cursor: pointer;">&#x2715;</div>
    `;
    container.appendChild(header);

    // Close button functionality
    document.getElementById('closeBtn').onclick = function() {
        container.style.display = 'none';
    };

    // Create the sidebar
    const sidebar = document.createElement('div');
    sidebar.style.backgroundColor = '#3a3a3a';
    sidebar.style.width = '70px';
    sidebar.style.display = 'flex';
    sidebar.style.flexDirection = 'column';
    sidebar.style.alignItems = 'center';
    sidebar.style.paddingTop = '15px';
    container.appendChild(sidebar);

    // Add Home Button (Main Page)
    const homeBtn = document.createElement('div');
    homeBtn.style.width = '50px';
    homeBtn.style.height = '50px';
    homeBtn.style.marginBottom = '15px';
    homeBtn.style.fontSize = '32px';
    homeBtn.style.color = '#fff';
    homeBtn.style.cursor = 'pointer';
    homeBtn.innerHTML = '&#x1F3E0;';
    sidebar.appendChild(homeBtn);

    // Add Pencil Button (Script Executor)
    const pencilBtn = document.createElement('div');
    pencilBtn.style.width = '50px';
    pencilBtn.style.height = '50px';
    pencilBtn.style.marginBottom = '15px';
    pencilBtn.style.background = 'url("data:image/png;base64,...") center/cover no-repeat';
    pencilBtn.style.cursor = 'pointer';
    sidebar.appendChild(pencilBtn);

    // Add Game Controller Button (Cheats)
    const gameBtn = document.createElement('div');
    gameBtn.style.width = '50px';
    gameBtn.style.height = '50px';
    gameBtn.style.marginBottom = '15px';
    gameBtn.style.background = 'url("data:image/png;base64,...") center/cover no-repeat';
    gameBtn.style.cursor = 'pointer';
    sidebar.appendChild(gameBtn);

    // Add Syringe Button (Script Injector)
    const syringeBtn = document.createElement('div');
    syringeBtn.style.width = '50px';
    syringeBtn.style.height = '50px';
    syringeBtn.style.marginBottom = '15px';
    syringeBtn.style.background = 'url("data:image/png;base64,...") center/cover no-repeat';
    syringeBtn.style.cursor = 'pointer';
    sidebar.appendChild(syringeBtn);

    // Create the content area
    const content = document.createElement('div');
    content.style.flex = '1';
    content.style.padding = '15px';
    content.style.backgroundColor = '#4a4a4a';
    content.style.borderBottomLeftRadius = '10px';
    content.style.borderBottomRightRadius = '10px';
    container.appendChild(content);

    // Function to clear content area
    function clearContent() {
        while (content.firstChild) {
            content.removeChild(content.firstChild);
        }
    }

    // Create Main Page
    function createMainPage() {
        clearContent();

        const title = document.createElement('h2');
        title.style.color = '#fff';
        title.style.fontFamily = 'Arial, sans-serif';
        title.textContent = 'Main Page';
        content.appendChild(title);

        const hitboxBtn = document.createElement('button');
        hitboxBtn.style.backgroundColor = '#4a4a4a';
        hitboxBtn.style.color = '#fff';
        hitboxBtn.style.border = 'none';
        hitboxBtn.style.borderRadius = '5px';
        hitboxBtn.style.padding = '10px 20px';
        hitboxBtn.style.cursor = 'pointer';
        hitboxBtn.textContent = 'Increase Hitbox';
        hitboxBtn.onclick = function() {
            // Add hitbox increasing logic here
            alert('Hitbox increased!');
        };
        content.appendChild(hitboxBtn);
    }

    // Create Script Executor Page
    function createScriptExecutorPage() {
        clearContent();

        const textArea = document.createElement('textarea');
        textArea.style.width = '100%';
        textArea.style.height = '200px';
        textArea.style.marginBottom = '10px';
        textArea.style.border = 'none';
        textArea.style.borderRadius = '5px';
        textArea.style.padding = '10px';
        textArea.style.fontFamily = 'Consolas, monospace';
        textArea.style.fontSize = '14px';
        content.appendChild(textArea);

        const executeBtn = document.createElement('button');
        executeBtn.style.backgroundColor = '#4a4a4a';
        executeBtn.style.color = '#fff';
        executeBtn.style.border = 'none';
        executeBtn.style.borderRadius = '5px';
        executeBtn.style.padding = '10px 20px';
        executeBtn.style.cursor = 'pointer';
        executeBtn.style.marginRight = '10px';
        executeBtn.textContent = 'Execute';
        executeBtn.onclick = function() {
            const code = textArea.value;
            try {
                eval(code);
            } catch (e) {
                alert('Error executing script: ' + e.message);
            }
        };
        content.appendChild(executeBtn);
    }

    // Create Cheats Page
    function createCheatsPage() {
        clearContent();

        const title = document.createElement('h2');
        title.style.color = '#fff';
        title.style.fontFamily = 'Arial, sans-serif';
        title.textContent = 'Agar.io Cheats';
        content.appendChild(title);

        const sizeBtn = document.createElement('button');
        sizeBtn.style.backgroundColor = '#4a4a4a';
        sizeBtn.style.color = '#fff';
        sizeBtn.style.border = 'none';
        sizeBtn.style.borderRadius = '5px';
        sizeBtn.style.padding = '10px 20px';
        sizeBtn.style.cursor = 'pointer';
        sizeBtn.textContent = 'Increase Size';
        sizeBtn.onclick = function() {
            // Add size increasing logic here
            alert('Size increased!');
        };
        content.appendChild(sizeBtn);

        // Add more cheat buttons as needed
    }

    // Create Script Injector Page
    function createScriptInjectorPage() {
        clearContent();

        const title = document.createElement('h2');
        title.style.color = '#fff';
        title.style.fontFamily = 'Arial, sans-serif';
        title.textContent = 'Script Injector';
        content.appendChild(title);

        const scriptInput = document.createElement('textarea');
        scriptInput.style.width = '100%';
        scriptInput.style.height = '150px';
        scriptInput.style.border = 'none';
        scriptInput.style.borderRadius = '5px';
        scriptInput.style.padding = '10px';
        scriptInput.style.fontFamily = 'Consolas, monospace';
        scriptInput.style.fontSize = '14px';
        content.appendChild(scriptInput);

        const injectBtn = document.createElement('button');
        injectBtn.style.backgroundColor = '#4a4a4a';
        injectBtn.style.color = '#fff';
        injectBtn.style.border = 'none';
        injectBtn.style.borderRadius = '5px';
        injectBtn.style.padding = '10px 20px';
        injectBtn.style.cursor = 'pointer';
        injectBtn.textContent = 'Inject';
        injectBtn.onclick = function() {
            const scriptCode = scriptInput.value;
            const scriptElement = document.createElement('script');
            scriptElement.textContent = scriptCode;
            document.body.appendChild(scriptElement);
            alert('Script injected!');
        };
        content.appendChild(injectBtn);
    }

    // Attach event listeners for navigation
    homeBtn.onclick = createMainPage;
    pencilBtn.onclick = createScriptExecutorPage;
    gameBtn.onclick = createCheatsPage;
    syringeBtn.onclick = createScriptInjectorPage;

    // Initial page load
    createMainPage();

    // Account Tracker Logic (optional)
    let accounts = JSON.parse(localStorage.getItem('accountTracker') || '[]');

    function updateAccountTracker() {
        clearContent();

        const title = document.createElement('h2');
        title.style.color = '#fff';
        title.style.fontFamily = 'Arial, sans-serif';
        title.textContent = 'Account Tracker';
        content.appendChild(title);

        const accountList = document.createElement('ul');
        accountList.style.color = '#fff';
        accountList.style.listStyle = 'none';
        content.appendChild(accountList);

        accounts.forEach((account, index) => {
            const accountItem = document.createElement('li');
            accountItem.textContent = `${index + 1}: ${account}`;
            accountList.appendChild(accountItem);
        });

        const accountInput = document.createElement('input');
        accountInput.style.marginTop = '10px';
        accountInput.style.border = 'none';
        accountInput.style.borderRadius = '5px';
        accountInput.style.padding = '5px';
        accountInput.style.width = '100%';
        content.appendChild(accountInput);

        const addAccountBtn = document.createElement('button');
        addAccountBtn.style.backgroundColor = '#4a4a4a';
        addAccountBtn.style.color = '#fff';
        addAccountBtn.style.border = 'none';
        addAccountBtn.style.borderRadius = '5px';
        addAccountBtn.style.padding = '10px 20px';
        addAccountBtn.style.cursor = 'pointer';
        addAccountBtn.textContent = 'Add Account';
        addAccountBtn.onclick = function() {
            const newAccount = accountInput.value.trim();
            if (newAccount) {
                accounts.push(newAccount);
                localStorage.setItem('accountTracker', JSON.stringify(accounts));
                updateAccountTracker();
            }
        };
        content.appendChild(addAccountBtn);
    }

    // Optional Account Tracker
    const accountTrackerBtn = document.createElement('div');
    accountTrackerBtn.style.width = '50px';
    accountTrackerBtn.style.height = '50px';
    accountTrackerBtn.style.marginBottom = '15px';
    accountTrackerBtn.style.background = 'url("data:image/png;base64,...") center/cover no-repeat';
    accountTrackerBtn.style.cursor = 'pointer';
    sidebar.appendChild(accountTrackerBtn);
    accountTrackerBtn.onclick = updateAccountTracker;

    // Status circle color change logic
    setInterval(() => {
        const statusCircle = document.getElementById('statusCircle');
        statusCircle.style.backgroundColor = isInjected ? 'green' : 'red';
    }, 1000);

})();