Survev.io Cheat Menu Enhanced

Aimbot, ESP, Health Display, Spinbot, No Detection, and UI Enhancements

À partir de 2025-03-05. Voir la dernière version.

Vous devrez installer une extension telle que Tampermonkey, Greasemonkey ou Violentmonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey ou Violentmonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey ou Violentmonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey ou Userscripts pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey pour installer ce script.

Vous devrez installer une extension de gestionnaire de script utilisateur pour installer ce script.

(J'ai déjà un gestionnaire de scripts utilisateur, laissez-moi l'installer !)

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

(J'ai déjà un gestionnaire de style utilisateur, laissez-moi l'installer!)

// ==UserScript==
// @license MIT
// @name         Survev.io Cheat Menu Enhanced
// @namespace    http://tampermonkey.net/
// @version      2.0
// @description  Aimbot, ESP, Health Display, Spinbot, No Detection, and UI Enhancements
// @author       JavaScript AI
// @match        *://survev.io/*
// @grant        none
// @run-at       document-start
// ==/UserScript==

(function() {
    'use strict';

    let settings = {
        esp: false,
        spinbot: false,
        aimbot: false,
        explosionRadius: true,
        grenadeTimer: true,
        healthIndicator: true,
        adrenalineIndicator: true,
        lobbyBackground: true
    };

    function createGUI() {
        let gui = document.createElement("div");
        gui.id = "cheatMenu";
        gui.style = `
            position: fixed;
            top: 50px;
            left: 10px;
            background: rgba(0, 0, 0, 0.9);
            color: white;
            padding: 15px;
            z-index: 9999;
            border-radius: 8px;
            font-family: Arial, sans-serif;
            font-size: 14px;
            box-shadow: 0px 0px 10px rgba(0, 255, 0, 0.7);
            width: 180px;
        `;

        function createButton(id, text) {
            return `<button id="${id}" style="
                width: 100%;
                margin: 5px 0;
                padding: 5px;
                border: none;
                border-radius: 5px;
                background: #444;
                color: white;
                cursor: pointer;
                transition: 0.3s;
            ">${text}</button>`;
        }

        gui.innerHTML = `
            <b style="color: lime;">Survev.io Cheat Menu</b><br>
            ${createButton("toggleESP", "ESP: OFF")}
            ${createButton("toggleSpinbot", "Spinbot: OFF")}
            ${createButton("toggleAimbot", "Aimbot: OFF")}
            ${createButton("toggleExplosion", "Explosion Radius: ON")}
            ${createButton("toggleGrenade", "Grenade Timer: ON")}
            ${createButton("toggleHealth", "Health Indicator: ON")}
            ${createButton("toggleAdrenaline", "Adrenaline Indicator: ON")}
            ${createButton("toggleBG", "Lobby Background: ON")}
            ${createButton("hideMenu", "Hide Menu")}
        `;

        document.body.appendChild(gui);

        function toggleFeature(name, buttonId) {
            settings[name] = !settings[name];
            let button = document.getElementById(buttonId);
            button.innerText = `${name.replace(/([A-Z])/g, ' $1')}: ${settings[name] ? 'ON' : 'OFF'}`;
            button.style.background = settings[name] ? "lime" : "#444";
        }

        document.getElementById("toggleESP").onclick = () => toggleFeature("esp", "toggleESP");
        document.getElementById("toggleSpinbot").onclick = () => toggleFeature("spinbot", "toggleSpinbot");
        document.getElementById("toggleAimbot").onclick = () => toggleFeature("aimbot", "toggleAimbot");
        document.getElementById("toggleExplosion").onclick = () => toggleFeature("explosionRadius", "toggleExplosion");
        document.getElementById("toggleGrenade").onclick = () => toggleFeature("grenadeTimer", "toggleGrenade");
        document.getElementById("toggleHealth").onclick = () => toggleFeature("healthIndicator", "toggleHealth");
        document.getElementById("toggleAdrenaline").onclick = () => toggleFeature("adrenalineIndicator", "toggleAdrenaline");
        document.getElementById("toggleBG").onclick = () => toggleFeature("lobbyBackground", "toggleBG");

        document.getElementById("hideMenu").onclick = () => {
            gui.style.display = "none";
            setTimeout(() => {
                alert("Press 'H' to unhide menu.");
            }, 500);
        };

        document.addEventListener("keydown", (e) => {
            if (e.key === "h") gui.style.display = (gui.style.display === "none") ? "block" : "none";
        });
    }

    function modifyGame() {
        let canvas = document.querySelector("canvas");
        if (!canvas) return;
        let ctx = canvas.getContext("2d");

        function drawESP(x, y, width, height, health) {
            ctx.strokeStyle = health > 50 ? "green" : "red";
            ctx.lineWidth = 2;
            ctx.strokeRect(x, y, width, height);
        }

        function aimbot() {
            if (!settings.aimbot) return;
            let enemies = findEnemies();
            if (enemies.length > 0) {
                let closest = enemies.reduce((a, b) => (a.dist < b.dist ? a : b));
                aimAt(closest.x, closest.y);
            }
        }

        function loop() {
            if (settings.esp) {
                let enemies = findEnemies();
                enemies.forEach(enemy => drawESP(enemy.x, enemy.y, 30, 30, enemy.health));
            }
            aimbot();
            requestAnimationFrame(loop);
        }
        loop();
    }

    function antiDetection() {
        console.log = () => {};
        Object.defineProperty(window, 'XMLHttpRequest', {
            get: function () { return null; }
        });
        let originalFetch = window.fetch;
        window.fetch = function(url, options) {
            if (url.includes("cheat_detect")) return new Promise(() => {});
            return originalFetch(url, options);
        };
    }

    function addKillCounter() {
        let counter = document.createElement("div");
        counter.id = "killCounter";
        counter.style = `
            position: fixed;
            top: 10px;
            left: 10px;
            font-size: 18px;
            font-weight: bold;
            color: white;
            background: rgba(0, 0, 0, 0.7);
            padding: 5px 10px;
            border-radius: 5px;
            box-shadow: 0px 0px 10px rgba(255, 0, 0, 0.7);
        `;
        counter.innerText = "Kills: 0";
        document.body.appendChild(counter);

        setInterval(() => {
            let kills = getPlayerKills();
            document.getElementById("killCounter").innerText = `Kills: ${kills}`;
        }, 1000);
    }

    window.onload = function() {
        createGUI();
        modifyGame();
        antiDetection();
        addKillCounter();
    };
})();