Bloxd.io Advanced Mod Menu By Dinnzx

Adds Aimbot, ESP and other cheats to Bloxd.io

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

ستحتاج إلى تثبيت إضافة مثل Stylus لتثبيت هذا النمط.

ستحتاج إلى تثبيت إضافة لإدارة أنماط المستخدم لتتمكن من تثبيت هذا النمط.

ستحتاج إلى تثبيت إضافة لإدارة أنماط المستخدم لتثبيت هذا النمط.

ستحتاج إلى تثبيت إضافة لإدارة أنماط المستخدم لتثبيت هذا النمط.

(لدي بالفعل مثبت أنماط للمستخدم، دعني أقم بتثبيته!)

// ==UserScript==
// @name         Bloxd.io Advanced Mod Menu By Dinnzx
// @namespace    http://tampermonkey.net/
// @version      1.2
// @description  Adds Aimbot, ESP and other cheats to Bloxd.io
// @author       Dindra
// @match        https://bloxd.io/*
// @icon         https://bloxd.io/favicon.ico
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Configuration
    const config = {
        aimbot: {
            enabled: false,
            fov: 60,
            smoothness: 5,
            bone: 'head' // head/body
        },
        esp: {
            enabled: false,
            box: true,
            name: true,
            health: true,
            distance: true,
            maxDistance: 500
        },
        misc: {
            fly: false,
            speed: 1.0,
            noClip: false
        }
    };

    // Wait for game to load
    let gameLoaded = false;
    const checkInterval = setInterval(() => {
        if (typeof window.GAME !== 'undefined') {
            gameLoaded = true;
            clearInterval(checkInterval);
            initModMenu();
        }
    }, 1000);

    function initModMenu() {
        // Create mod menu UI
        const menu = document.createElement('div');
        menu.id = 'bloxd-advanced-mod-menu';
        Object.assign(menu.style, {
            position: 'fixed',
            top: '20px',
            left: '20px',
            backgroundColor: 'rgba(0, 0, 0, 0.8)',
            color: 'white',
            padding: '15px',
            borderRadius: '5px',
            zIndex: '99999',
            fontFamily: 'Arial, sans-serif',
            minWidth: '250px',
            border: '1px solid #444',
            boxShadow: '0 0 10px rgba(0, 0, 0, 0.5)'
        });

        // Title and close button
        const header = document.createElement('div');
        header.style.display = 'flex';
        header.style.justifyContent = 'space-between';
        header.style.alignItems = 'center';
        header.style.marginBottom = '10px';

        const title = document.createElement('h3');
        title.textContent = 'Bloxd.io Mod Menu';
        title.style.margin = '0';
        title.style.cursor = 'move';

        const closeBtn = document.createElement('button');
        closeBtn.textContent = '×';
        closeBtn.style.background = 'none';
        closeBtn.style.border = 'none';
        closeBtn.style.color = 'white';
        closeBtn.style.fontSize = '20px';
        closeBtn.style.cursor = 'pointer';
        closeBtn.onclick = () => menu.style.display = 'none';

        header.appendChild(title);
        header.appendChild(closeBtn);
        menu.appendChild(header);

        // Create tabs
        const tabs = ['Aimbot', 'ESP', 'Misc'];
        const tabContainer = document.createElement('div');
        tabContainer.style.display = 'flex';
        tabContainer.style.marginBottom = '10px';

        const contentContainer = document.createElement('div');
        contentContainer.id = 'mod-menu-content';

        tabs.forEach(tabName => {
            const tab = document.createElement('button');
            tab.textContent = tabName;
            tab.style.flex = '1';
            tab.style.padding = '5px';
            tab.style.border = 'none';
            tab.style.background = '#333';
            tab.style.color = 'white';
            tab.style.cursor = 'pointer';
            tab.onclick = () => showTab(tabName.toLowerCase());
            tabContainer.appendChild(tab);
        });

        menu.appendChild(tabContainer);
        menu.appendChild(contentContainer);

        // Create tab contents
        createAimbotTab();
        createESPTab();
        createMiscTab();

        // Add menu to document
        document.body.appendChild(menu);

        // Make menu draggable
        makeDraggable(menu, title);

        // Show first tab by default
        showTab('aimbot');

        // Start cheat loops
        startCheatLoops();
    }

    function createAimbotTab() {
        const container = document.createElement('div');
        container.id = 'aimbot-tab';
        container.style.display = 'none';

        container.appendChild(createToggle('Enable Aimbot', config.aimbot.enabled, (val) => {
            config.aimbot.enabled = val;
        }));

        container.appendChild(createSlider('Aimbot FOV', 10, 180, config.aimbot.fov, 5, (val) => {
            config.aimbot.fov = val;
        }));

        container.appendChild(createSlider('Smoothness', 1, 20, config.aimbot.smoothness, 1, (val) => {
            config.aimbot.smoothness = val;
        }));

        // Bone selection
        const boneContainer = document.createElement('div');
        boneContainer.style.marginBottom = '10px';
        boneContainer.style.display = 'flex';
        boneContainer.style.alignItems = 'center';
        boneContainer.style.justifyContent = 'space-between';

        const boneLabel = document.createElement('span');
        boneLabel.textContent = 'Aim Bone:';

        const boneSelect = document.createElement('select');
        ['head', 'body'].forEach(bone => {
            const option = document.createElement('option');
            option.value = bone;
            option.textContent = bone;
            if (bone === config.aimbot.bone) option.selected = true;
            boneSelect.appendChild(option);
        });

        boneSelect.onchange = () => config.aimbot.bone = boneSelect.value;

        boneContainer.appendChild(boneLabel);
        boneContainer.appendChild(boneSelect);
        container.appendChild(boneContainer);

        document.getElementById('mod-menu-content').appendChild(container);
    }

    function createESPTab() {
        const container = document.createElement('div');
        container.id = 'esp-tab';
        container.style.display = 'none';

        container.appendChild(createToggle('Enable ESP', config.esp.enabled, (val) => {
            config.esp.enabled = val;
            if (!val) clearESP();
        }));

        container.appendChild(createToggle('Box ESP', config.esp.box, (val) => {
            config.esp.box = val;
        }));

        container.appendChild(createToggle('Show Names', config.esp.name, (val) => {
            config.esp.name = val;
        }));

        container.appendChild(createToggle('Show Health', config.esp.health, (val) => {
            config.esp.health = val;
        }));

        container.appendChild(createToggle('Show Distance', config.esp.distance, (val) => {
            config.esp.distance = val;
        }));

        container.appendChild(createSlider('Max Distance', 50, 1000, config.esp.maxDistance, 50, (val) => {
            config.esp.maxDistance = val;
        }));

        document.getElementById('mod-menu-content').appendChild(container);
    }

    function createMiscTab() {
        const container = document.createElement('div');
        container.id = 'misc-tab';
        container.style.display = 'none';

        container.appendChild(createToggle('Fly Hack', config.misc.fly, (val) => {
            config.misc.fly = val;
            if (val) enableFly();
            else disableFly();
        }));

        container.appendChild(createSlider('Speed Multiplier', 0.1, 5, config.misc.speed, 0.1, (val) => {
            config.misc.speed = val;
            setSpeed(val);
        }));

        container.appendChild(createToggle('No Clip', config.misc.noClip, (val) => {
            config.misc.noClip = val;
            setNoClip(val);
        }));

        document.getElementById('mod-menu-content').appendChild(container);
    }

    function showTab(tabName) {
        // Hide all tabs
        document.querySelectorAll('#mod-menu-content > div').forEach(tab => {
            tab.style.display = 'none';
        });

        // Show selected tab
        document.getElementById(`${tabName}-tab`).style.display = 'block';
    }

    function createToggle(label, defaultState, callback) {
        const container = document.createElement('div');
        container.style.marginBottom = '10px';
        container.style.display = 'flex';
        container.style.justifyContent = 'space-between';
        container.style.alignItems = 'center';

        const labelElement = document.createElement('span');
        labelElement.textContent = label;

        const toggle = document.createElement('input');
        toggle.type = 'checkbox';
        toggle.checked = defaultState;
        toggle.style.cursor = 'pointer';
        toggle.addEventListener('change', () => callback(toggle.checked));

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

    function createSlider(label, min, max, value, step, callback) {
        const container = document.createElement('div');
        container.style.marginBottom = '15px';

        const labelElement = document.createElement('div');
        labelElement.textContent = `${label}: ${value}`;
        labelElement.style.marginBottom = '5px';

        const slider = document.createElement('input');
        slider.type = 'range';
        slider.min = min;
        slider.max = max;
        slider.value = value;
        slider.step = step;
        slider.style.width = '100%';
        slider.style.cursor = 'pointer';

        slider.addEventListener('input', () => {
            labelElement.textContent = `${label}: ${slider.value}`;
            callback(parseFloat(slider.value));
        });

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

    function makeDraggable(element, handle) {
        let pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
        handle.onmousedown = dragMouseDown;

        function dragMouseDown(e) {
            e = e || window.event;
            e.preventDefault();
            pos3 = e.clientX;
            pos4 = e.clientY;
            document.onmouseup = closeDragElement;
            document.onmousemove = elementDrag;
        }

        function elementDrag(e) {
            e = e || window.event;
            e.preventDefault();
            pos1 = pos3 - e.clientX;
            pos2 = pos4 - e.clientY;
            pos3 = e.clientX;
            pos4 = e.clientY;
            element.style.top = (element.offsetTop - pos2) + "px";
            element.style.left = (element.offsetLeft - pos1) + "px";
        }

        function closeDragElement() {
            document.onmouseup = null;
            document.onmousemove = null;
        }
    }

    // Cheat functions
    function startCheatLoops() {
        // ESP rendering loop
        setInterval(() => {
            if (config.esp.enabled) {
                renderESP();
            }
        }, 100);

        // Aimbot loop
        setInterval(() => {
            if (config.aimbot.enabled) {
                runAimbot();
            }
        }, 50);
    }

    function runAimbot() {
        // This needs to be implemented based on the game's structure
        // Pseudocode:
        /*
        const players = getEnemyPlayers();
        const localPlayer = getLocalPlayer();
        const fovRad = config.aimbot.fov * (Math.PI / 180);
        
        let closestPlayer = null;
        let closestAngle = fovRad;
        
        players.forEach(player => {
            if (player.health <= 0) return;
            
            const angle = calculateAngleToPlayer(localPlayer, player, config.aimbot.bone);
            if (angle < closestAngle) {
                closestAngle = angle;
                closestPlayer = player;
            }
        });
        
        if (closestPlayer) {
            const targetAngle = calculateTargetAngle(localPlayer, closestPlayer, config.aimbot.bone);
            smoothAim(localPlayer, targetAngle, config.aimbot.smoothness);
        }
        */
    }

    function renderESP() {
        clearESP();
        
        // This needs to be implemented based on the game's structure
        // Pseudocode:
        /*
        const players = getEnemyPlayers();
        const localPlayer = getLocalPlayer();
        
        players.forEach(player => {
            if (player.health <= 0) return;
            
            const distance = calculateDistance(localPlayer, player);
            if (distance > config.esp.maxDistance) return;
            
            const screenPos = worldToScreen(player.position);
            if (!screenPos) return;
            
            // Draw box
            if (config.esp.box) {
                drawBox(screenPos, player.width, player.height, player.health);
            }
            
            // Draw info
            let infoText = '';
            if (config.esp.name) infoText += player.name + '\n';
            if (config.esp.health) infoText += `HP: ${player.health}\n`;
            if (config.esp.distance) infoText += `${distance.toFixed(1)}m`;
            
            if (infoText) {
                drawText(screenPos.x, screenPos.y - 20, infoText);
            }
        });
        */
    }

    function clearESP() {
        // Remove all ESP elements from the screen
        const espElements = document.querySelectorAll('.esp-element');
        espElements.forEach(el => el.remove());
    }

    function enableFly() {
        // Implement based on game structure
        // Example: window.GAME.player.flying = true;
    }

    function disableFly() {
        // Implement based on game structure
        // Example: window.GAME.player.flying = false;
    }

    function setSpeed(value) {
        // Implement based on game structure
        // Example: window.GAME.player.speedMultiplier = value;
    }

    function setNoClip(enabled) {
        // Implement based on game structure
        // Example: window.GAME.player.noClip = enabled;
    }

    // Helper function to create ESP elements
    function createESPElement(type, className, styles = {}) {
        const element = document.createElement('div');
        element.className = `esp-element esp-${type} ${className}`;
        Object.assign(element.style, {
            position: 'absolute',
            pointerEvents: 'none',
            zIndex: '99998'
        }, styles);
        document.body.appendChild(element);
        return element;
    }
})();