Advanced Sploop.io Enhancements 2024!

Very useful (Real-time, help anti-clown, smart messages, playtime tracking, smart anti-ban, music playlist, intelligent player aiming.more.more)

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.

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

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

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

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

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

// ==UserScript==
// @name         Advanced Sploop.io Enhancements 2024!
// @namespace    http://tampermonkey.net/
// @version      2.3
// @description  Very useful (Real-time, help anti-clown, smart messages, playtime tracking, smart anti-ban,  music playlist, intelligent player aiming.more.more)
// @author       avoidFPS
// @require      https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.13.1/underscore-min.js
// @match        *://sploop.io/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    function showSuccessMessage() {
        spawnSmartMessage('Script loaded successfully!');
    }

    showSuccessMessage();

    let gameStartTime = null;
    let gameEndTime = null;
    let gameInterval = null;
    let fpsInterval = null;
    let lastFrameTime = performance.now();
    let fpsDisplay = null;
    let timezoneDisplay = null;
    let selectedTimezone = 'Asia/Ho_Chi_Minh';
    let aimLockEnabled = false;
    let autoInstaEnabled = false;
    let aimSmartEnabled = false;

    const timezones = {
        'Vietnam': 'Asia/Ho_Chi_Minh',
        'USA': 'America/New_York',
        'Australia': 'Australia/Sydney',
        'Japan': 'Asia/Tokyo'
    };

    const controlPanel = document.createElement('div');
    controlPanel.style.position = 'fixed';
    controlPanel.style.top = '10px';
    controlPanel.style.left = '10px';
    controlPanel.style.color = 'white';
    controlPanel.style.background = 'linear-gradient(90deg, red, orange, yellow, green, blue, indigo, violet)';
    controlPanel.style.padding = '10px';
    controlPanel.style.borderRadius = '5px';
    controlPanel.style.fontFamily = 'Arial, sans-serif';
    controlPanel.style.zIndex = '1000';
    controlPanel.style.display = 'none';
    document.body.appendChild(controlPanel);

    const antiClownToggleLabel = document.createElement('label');
    antiClownToggleLabel.textContent = ' Anti-clown feature';
    const antiClownToggleCheckbox = document.createElement('input');
    antiClownToggleCheckbox.type = 'checkbox';
    antiClownToggleCheckbox.checked = true;
    antiClownToggleLabel.prepend(antiClownToggleCheckbox);
    controlPanel.appendChild(antiClownToggleLabel);

    const aimLockToggleLabel = document.createElement('label');
    aimLockToggleLabel.textContent = ' Aim Lock';
    const aimLockToggleCheckbox = document.createElement('input');
    aimLockToggleCheckbox.type = 'checkbox';
    aimLockToggleCheckbox.checked = false;
    aimLockToggleLabel.prepend(aimLockToggleCheckbox);
    controlPanel.appendChild(aimLockToggleLabel);

    const aimSmartToggleLabel = document.createElement('label');
    aimSmartToggleLabel.textContent = ' Smart Aim';
    const aimSmartToggleCheckbox = document.createElement('input');
    aimSmartToggleCheckbox.type = 'checkbox';
    aimSmartToggleCheckbox.checked = false;
    aimSmartToggleLabel.prepend(aimSmartToggleCheckbox);
    controlPanel.appendChild(aimSmartToggleLabel);

    const autoInstaToggleLabel = document.createElement('label');
    autoInstaToggleLabel.textContent = ' Auto Insta';
    const autoInstaToggleCheckbox = document.createElement('input');
    autoInstaToggleCheckbox.type = 'checkbox';
    autoInstaToggleCheckbox.checked = false;
    autoInstaToggleLabel.prepend(autoInstaToggleCheckbox);
    controlPanel.appendChild(autoInstaToggleLabel);

    aimLockToggleCheckbox.addEventListener('change', function() {
        aimLockEnabled = this.checked;
    });

    aimSmartToggleCheckbox.addEventListener('change', function() {
        aimSmartEnabled = this.checked;
    });

    autoInstaToggleCheckbox.addEventListener('change', function() {
        autoInstaEnabled = this.checked;
    });

    const timezoneSelectLabel = document.createElement('label');
    timezoneSelectLabel.textContent = ' Select Timezone:';
    controlPanel.appendChild(timezoneSelectLabel);

    const timezoneSelect = document.createElement('select');
    for (const [region, timezone] of Object.entries(timezones)) {
        const option = document.createElement('option');
        option.value = timezone;
        option.textContent = region;
        timezoneSelect.appendChild(option);
    }
    timezoneSelect.value = selectedTimezone;
    controlPanel.appendChild(timezoneSelect);

    timezoneSelect.addEventListener('change', function() {
        selectedTimezone = this.value;
    });

    const gameStartTimeDisplay = document.createElement('div');
    gameStartTimeDisplay.textContent = 'Start Time: Not started';
    gameStartTimeDisplay.style.color = 'white';
    gameStartTimeDisplay.style.fontFamily = 'Arial, sans-serif';
    controlPanel.appendChild(gameStartTimeDisplay);

    const startButton = document.createElement('button');
    startButton.textContent = 'Start';
    startButton.style.marginTop = '10px';
    controlPanel.appendChild(startButton);

    const stopButton = document.createElement('button');
    stopButton.textContent = 'Stop';
    stopButton.style.marginTop = '10px';
    stopButton.style.marginLeft = '5px';
    controlPanel.appendChild(stopButton);

    startButton.addEventListener('click', function() {
        startGameTime();
    });

    stopButton.addEventListener('click', function() {
        stopGameTime();
    });

    function startGameTime() {
        gameStartTime = new Date();
        if (gameInterval) clearInterval(gameInterval);
        gameInterval = setInterval(updateGameTimeDisplay, 1000);
        spawnSmartMessage('Started game time tracking.');
    }

    function stopGameTime() {
        if (!gameStartTime) return;

        gameEndTime = new Date();
        clearInterval(gameInterval);
        const elapsedTime = gameEndTime - gameStartTime;
        const formattedTime = formatTime(elapsedTime);
        gameStartTimeDisplay.textContent = `Played for: ${formattedTime}`;
        gameStartTime = null;
    }

    function updateGameTimeDisplay() {
        if (!gameStartTime) return;

        const elapsedTime = new Date() - gameStartTime;
        const formattedTime = formatTime(elapsedTime);
        gameStartTimeDisplay.textContent = `Start Time: ${formattedTime}`;
    }

    function formatTime(ms) {
        const seconds = Math.floor(ms / 1000);
        const hours = Math.floor(seconds / 3600);
        const minutes = Math.floor((seconds % 3600) / 60);
        const remainingSeconds = seconds % 60;
        return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${remainingSeconds.toString().padStart(2, '0')}`;
    }

    const soundControlDiv = document.createElement('div');
    soundControlDiv.style.position = 'fixed';
    soundControlDiv.style.bottom = '10px';
    soundControlDiv.style.left = '10px';
    soundControlDiv.style.backgroundColor = 'rgba(0, 0, 0, 0.7)';
    soundControlDiv.style.color = 'white';
    soundControlDiv.style.padding = '10px';
    soundControlDiv.style.borderRadius = '5px';
    soundControlDiv.style.fontFamily = 'Arial, sans-serif';
    soundControlDiv.style.zIndex = '1000';
    soundControlDiv.style.display = 'none';
    document.body.appendChild(soundControlDiv);

    const soundUrlInput = document.createElement('input');
    soundUrlInput.type = 'text';
    soundUrlInput.placeholder = 'Enter sound URL';
    soundControlDiv.appendChild(soundUrlInput);

    const soundFileInput = document.createElement('input');
    soundFileInput.type = 'file';
    soundControlDiv.appendChild(soundFileInput);

    const playButton = document.createElement('button');
    playButton.textContent = 'Play';
    soundControlDiv.appendChild(playButton);

    const pauseButton = document.createElement('button');
    pauseButton.textContent = 'Pause';
    soundControlDiv.appendChild(pauseButton);

    const repeatButton = document.createElement('button');
    repeatButton.textContent = 'Repeat';
    soundControlDiv.appendChild(repeatButton);

    const playlist = document.createElement('div');
    playlist.style.marginTop = '10px';
    soundControlDiv.appendChild(playlist);

    let audio = new Audio();
    let repeat = false;

    playButton.addEventListener('click', function() {
        const url = soundUrlInput.value;
        const file = soundFileInput.files[0];

        if (file) {
            const reader = new FileReader();
            reader.onload = function(e) {
                audio.src = e.target.result;
                audio.play();
            };
            reader.readAsDataURL(file);
        } else if (url) {
            audio.src = url;
            audio.play();
        }
    });

    pauseButton.addEventListener('click', function() {
        audio.pause();
    });

    repeatButton.addEventListener('click', function() {
        repeat = !repeat;
        repeatButton.style.backgroundColor = repeat ? 'green' : '';
    });

    audio.addEventListener('ended', function() {
        if (repeat) {
            audio.currentTime = 0;
            audio.play();
        }
    });

    function checkForBan() {
        // Placeholder for ban detection logic
        console.log('Checking for ban...');
    }

    setInterval(checkForBan, 3000);

    const fpsElement = document.createElement('div');
    fpsElement.style.position = 'fixed';
    fpsElement.style.top = '10px';
    fpsElement.style.left = '50%';
    fpsElement.style.transform = 'translateX(-50%)';
    fpsElement.style.color = 'white';
    fpsElement.style.fontFamily = 'Arial, sans-serif';
    fpsElement.style.fontSize = '20px';
    fpsElement.style.zIndex = '1000';
    document.body.appendChild(fpsElement);

    const timezoneElement = document.createElement('div');
    timezoneElement.style.position = 'fixed';
    timezoneElement.style.top = '40px';
    timezoneElement.style.left = '50%';
    timezoneElement.style.transform = 'translateX(-50%)';
    timezoneElement.style.color = 'white';
    timezoneElement.style.fontFamily = 'Arial, sans-serif';
    timezoneElement.style.fontSize = '20px';
    timezoneElement.style.zIndex = '1000';
    document.body.appendChild(timezoneElement);

    function updateFPS() {
        const now = performance.now();
        const delta = now - lastFrameTime;
        const fps = 1000 / delta;
        lastFrameTime = now;
        fpsElement.textContent = `FPS: ${Math.round(fps)}`;
        requestAnimationFrame(updateFPS);
    }

    function updateTimezones() {
        const now = new Date();
        timezoneElement.textContent = `Time (${selectedTimezone}): ${now.toLocaleString('en-US', { timeZone: selectedTimezone })}`;
    }

    updateFPS();
    setInterval(updateTimezones, 1000);

    const fpsColorInput = document.createElement('input');
    fpsColorInput.type = 'color';
    fpsColorInput.value = '#FFFFFF';
    fpsColorInput.addEventListener('change', function() {
        fpsElement.style.color = this.value;
    });
    controlPanel.appendChild(fpsColorInput);

    const timezoneColorInput = document.createElement('input');
    timezoneColorInput.type = 'color';
    timezoneColorInput.value = '#FFFFFF';
    timezoneColorInput.addEventListener('change', function() {
        timezoneElement.style.color = this.value;
    });
    controlPanel.appendChild(timezoneColorInput);

    const fileManagementPanel = document.createElement('div');
    fileManagementPanel.style.marginTop = '10px';
    controlPanel.appendChild(fileManagementPanel);

    const jsonFileInput = document.createElement('input');
    jsonFileInput.type = 'file';
    jsonFileInput.accept = 'application/json';
    fileManagementPanel.appendChild(jsonFileInput);

    const loadButton = document.createElement('button');
    loadButton.textContent = 'Load JSON';
    fileManagementPanel.appendChild(loadButton);

    const saveButton = document.createElement('button');
    saveButton.textContent = 'Save JSON';
    fileManagementPanel.appendChild(saveButton);

    const deleteButton = document.createElement('button');
    deleteButton.textContent = 'Delete JSON';
    fileManagementPanel.appendChild(deleteButton);

    const runButton = document.createElement('button');
    runButton.textContent = 'Run JSON';
    fileManagementPanel.appendChild(runButton);

    loadButton.addEventListener('click', function() {
        const file = jsonFileInput.files[0];
        if (!file) {
            alert('No file selected');
            return;
        }

        const reader = new FileReader();
        reader.onload = function(e) {
            const json = JSON.parse(e.target.result);
            
            console.log('Loaded JSON:', json);
        };
        reader.readAsText(file);
    });

    saveButton.addEventListener('click', function() {
        const data = {
            
        };

        const json = JSON.stringify(data);
        const blob = new Blob([json], { type: 'application/json' });
        const url = URL.createObjectURL(blob);
        const a = document.createElement('a');
        a.href = url;
        a.download = 'data.json';
        a.click();
    });

    deleteButton.addEventListener('click', function() {
        
        console.log('Deleted JSON');
    });

    runButton.addEventListener('click', function() {
        const file = jsonFileInput.files[0];
        if (!file) {
            alert('No file selected');
            return;
        }

        const reader = new FileReader();
        reader.onload = function(e) {
            const json = JSON.parse(e.target.result);
            
            console.log('Running JSON:', json);
            executeJsonCommands(json);
        };
        reader.readAsText(file);
    });

    function executeJsonCommands(json) {
        
        console.log('Executing commands from JSON:', json);
        // Example: if json has commands like { "action": "move", "x": 10, "y": 20 }
        if (json.action === 'move') {
            moveCharacter(json.x, json.y);
        }
    }

    function moveCharacter(x, y) {
        // Implement the logic to move the character to x, y coordinates
        console.log(`Moving character to X: ${x}, Y: ${y}`);
        // Update coordinates display
        updateCoordinates(x, y);
    }

    const messagingPanel = document.createElement('div');
    messagingPanel.style.marginTop = '10px';
    controlPanel.appendChild(messagingPanel);

    const messageInput = document.createElement('input');
    messageInput.type = 'text';
    messageInput.placeholder = 'Enter message';
    messagingPanel.appendChild(messageInput);

    const messageFileInput = document.createElement('input');
    messageFileInput.type = 'file';
    messageFileInput.accept = 'text/plain';
    messagingPanel.appendChild(messageFileInput);

    const startMessagingButton = document.createElement('button');
    startMessagingButton.textContent = 'Start Messaging';
    messagingPanel.appendChild(startMessagingButton);

    const stopMessagingButton = document.createElement('button');
    stopMessagingButton.textContent = 'Stop Messaging';
    messagingPanel.appendChild(stopMessagingButton);

    let messagingInterval = null;

    startMessagingButton.addEventListener('click', function() {
        const message = messageInput.value;
        if (messageFileInput.files.length > 0) {
            const file = messageFileInput.files[0];
            const reader = new FileReader();
            reader.onload = function(e) {
                startMessaging(e.target.result);
            };
            reader.readAsText(file);
        } else if (message) {
            startMessaging(message);
        }
    });

    stopMessagingButton.addEventListener('click', function() {
        stopMessaging();
    });

    function startMessaging(message) {
        stopMessaging();
        messagingInterval = setInterval(function() {
            sendMessageToGame(message);
        }, 1000);
    }

    function stopMessaging() {
        clearInterval(messagingInterval);
    }

    function sendMessageToGame(message) {
        
        console.log(`Sending message: ${message}`);
    }

    function spawnSmartMessage(message) {
        const msgElement = document.createElement('div');
        msgElement.textContent = message;
        msgElement.style.position = 'fixed';
        msgElement.style.bottom = '50%';
        msgElement.style.left = '50%';
        msgElement.style.transform = 'translate(-50%, -50%)';
        msgElement.style.backgroundColor = 'rgba(0, 0, 0, 0.8)';
        msgElement.style.color = 'white';
        msgElement.style.padding = '10px';
        msgElement.style.borderRadius = '5px';
        msgElement.style.zIndex = '1000';
        document.body.appendChild(msgElement);

        setTimeout(function() {
            document.body.removeChild(msgElement);
        }, 3000);
    }

    const coordinatesDisplay = document.createElement('div');
    coordinatesDisplay.style.position = 'fixed';
    coordinatesDisplay.style.bottom = '10px';
    coordinatesDisplay.style.right = '10px';
    coordinatesDisplay.style.color = 'white';
    coordinatesDisplay.style.fontFamily = 'Arial, sans-serif';
    coordinatesDisplay.style.fontSize = '20px';
    coordinatesDisplay.style.zIndex = '1000';
    document.body.appendChild(coordinatesDisplay);

    function updateCoordinates(x, y) {
        coordinatesDisplay.textContent = `X: ${x}, Y: ${y}`;
    }

    document.addEventListener('keydown', function(e) {
        if (e.key === 'F1' || e.key === 'F2' || e.key === 'F5') {
            e.preventDefault();
        }
    });

    document.addEventListener('keydown', function(e) {
        if (e.key === 'F1') {
            controlPanel.style.display = controlPanel.style.display === 'none' ? 'block' : 'none';
        } else if (e.key === 'F5') {
            soundControlDiv.style.display = soundControlDiv.style.display === 'none' ? 'block' : 'none';
        } else if (e.key === 'B') {
            timezoneElement.style.display = timezoneElement.style.display === 'none' ? 'block' : 'none';
        }
    });

    
    setInterval(function() {
        const x = Math.floor(Math.random() * 100);
        const y = Math.floor(Math.random() * 100);
        updateCoordinates(x, y);
    }, 1000);

    document.addEventListener('DOMContentLoaded', function() {
        if (window.location.pathname === '/') {
            alert('Welcome to the Advanced Sploop.io Enhancements script!');
        }
    });
})();