// ==UserScript== // @name Advanced Sploop.io Enhancements 2024 // @namespace http://tampermonkey.net/ // @version 0.6 // @description Very useful(FPS, Real time, help anti-clown 35%(beta), smart messages, playtime tracking, music control with repeat and click effects, JSON import) // @author avoidFPS // @match *://sploop.io/* // @grant none // @downloadURL none // ==/UserScript== (function() { 'use strict'; function showSuccessMessage() { spawnSmartMessage('script loaded successfully!'); } showSuccessMessage(); let gameStartTime = null; let gameEndTime = null; let gameInterval = null; const controlPanel = document.createElement('div'); controlPanel.style.position = 'fixed'; controlPanel.style.top = '10px'; controlPanel.style.left = '10px'; controlPanel.style.color = 'white'; controlPanel.style.backgroundColor = 'rgba(0, 0, 0, 0.7)'; 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 timezoneSelect = document.createElement('select'); const timezones = [ 'UTC', 'America/New_York', 'America/Los_Angeles', 'Europe/London', 'Europe/Berlin', 'Asia/Tokyo', 'Australia/Sydney', 'Asia/Ho_Chi_Minh', 'Asia/Singapore' ]; timezones.forEach(tz => { const option = document.createElement('option'); option.value = tz; option.textContent = tz; timezoneSelect.appendChild(option); }); controlPanel.appendChild(timezoneSelect); const fpsToggleLabel = document.createElement('label'); fpsToggleLabel.textContent = ' Display FPS'; const fpsToggleCheckbox = document.createElement('input'); fpsToggleCheckbox.type = 'checkbox'; fpsToggleCheckbox.checked = true; fpsToggleLabel.prepend(fpsToggleCheckbox); controlPanel.appendChild(fpsToggleLabel); const antiClownToggleLabel = document.createElement('label'); antiClownToggleLabel.textContent = ' Feature Anti-clown'; const antiClownToggleCheckbox = document.createElement('input'); antiClownToggleCheckbox.type = 'checkbox'; antiClownToggleCheckbox.checked = true; antiClownToggleLabel.prepend(antiClownToggleCheckbox); controlPanel.appendChild(antiClownToggleLabel); const gameStartTimeDisplay = document.createElement('div'); gameStartTimeDisplay.textContent = 'Start time: no'; 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('Start calculating play time.'); } function stopGameTime() { if (!gameStartTime) return; gameEndTime = new Date(); clearInterval(gameInterval); const elapsedTime = gameEndTime - gameStartTime; const formattedTime = formatTime(elapsedTime); spawnSmartMessage(`Played for approx: ${formattedTime}`); gameStartTimeDisplay.textContent = `Played for approx: ${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 fpsDiv = document.createElement('div'); fpsDiv.style.position = 'fixed'; fpsDiv.style.top = '50px'; fpsDiv.style.right = '10px'; fpsDiv.style.color = 'white'; fpsDiv.style.backgroundColor = 'rgba(0, 0, 0, 0.5)'; fpsDiv.style.padding = '5px'; fpsDiv.style.fontFamily = 'Arial, sans-serif'; fpsDiv.style.zIndex = '1000'; document.body.appendChild(fpsDiv); let lastFrameTime = performance.now(); let frameCount = 0; let fps = 0; function updateFPS() { if (!fpsToggleCheckbox.checked) { fpsDiv.style.display = 'none'; requestAnimationFrame(updateFPS); return; } fpsDiv.style.display = 'block'; const now = performance.now(); frameCount++; const delta = now - lastFrameTime; if (delta >= 1000) { fps = (frameCount / delta) * 1000; frameCount = 0; lastFrameTime = now; fpsDiv.textContent = `FPS: ${fps.toFixed(2)}`; } requestAnimationFrame(updateFPS); } updateFPS(); const timeDiv = document.createElement('div'); timeDiv.style.position = 'fixed'; timeDiv.style.bottom = '10px'; timeDiv.style.right = '10px'; timeDiv.style.color = 'white'; timeDiv.style.backgroundColor = 'rgba(0, 0, 0, 0.5)'; timeDiv.style.padding = '5px'; timeDiv.style.fontFamily = 'Arial, sans-serif'; timeDiv.style.zIndex = '1000'; document.body.appendChild(timeDiv); function updateTime() { const now = new Date(); const options = { hour: '2-digit', minute: '2-digit', second: '2-digit', hour12: false, timeZone: timezoneSelect.value, timeZoneName: 'short' }; const formattedTime = new Intl.DateTimeFormat('en-US', options).format(now); timeDiv.textContent = `Time: ${formattedTime}`; setTimeout(updateTime, 1000); } updateTime(); document.addEventListener('keydown', function(event) { if (event.key === 'F1') { event.preventDefault(); controlPanel.style.display = controlPanel.style.display === 'none' ? 'block' : 'none'; } }); document.addEventListener('keydown', function(event) { if (event.key === 'F5') { event.preventDefault(); soundControlDiv.style.display = soundControlDiv.style.display === 'none' ? 'block' : 'none'; } }); let isDragging = false; let dragStartX, dragStartY; controlPanel.addEventListener('mousedown', function(event) { isDragging = true; dragStartX = event.clientX - controlPanel.offsetLeft; dragStartY = event.clientY - controlPanel.offsetTop; controlPanel.style.cursor = 'move'; }); document.addEventListener('mousemove', function(event) { if (isDragging) { controlPanel.style.left = `${event.clientX - dragStartX}px`; controlPanel.style.top = `${event.clientY - dragStartY}px`; } }); document.addEventListener('mouseup', function() { isDragging = false; controlPanel.style.cursor = 'default'; }); function checkForBan() { const isBanned = false; if (isBanned) { alert('Warning: Potential ban activity detected!'); } } setInterval(checkForBan, 5000); function checkForClown() { const isClownDetected = false; if (isClownDetected) { alert('Warning: Clown detected!'); } } setInterval(() => { if (antiClownToggleCheckbox.checked) { checkForClown(); } }, 5000); const soundControlDiv = document.createElement('div'); soundControlDiv.style.position = 'fixed'; soundControlDiv.style.bottom = '10px'; soundControlDiv.style.left = '10px'; soundControlDiv.style.color = 'white'; soundControlDiv.style.backgroundColor = 'rgba(0, 0, 0, 0.5)'; soundControlDiv.style.padding = '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'; soundFileInput.accept = 'audio/*'; soundControlDiv.appendChild(soundFileInput); const soundPlayButton = document.createElement('button'); soundPlayButton.textContent = 'Play'; soundControlDiv.appendChild(soundPlayButton); const soundPauseButton = document.createElement('button'); soundPauseButton.textContent = 'Pause'; soundControlDiv.appendChild(soundPauseButton); const soundRepeatButton = document.createElement('button'); soundRepeatButton.textContent = 'Repeat'; soundControlDiv.appendChild(soundRepeatButton); const audio = new Audio(); soundPlayButton.addEventListener('click', () => { if (soundUrlInput.value) { audio.src = soundUrlInput.value; audio.play(); } else if (soundFileInput.files.length > 0) { const file = soundFileInput.files[0]; const fileURL = URL.createObjectURL(file); audio.src = fileURL; audio.play(); } }); soundPauseButton.addEventListener('click', () => { audio.pause(); }); soundRepeatButton.addEventListener('click', () => { audio.loop = !audio.loop; soundRepeatButton.style.backgroundColor = audio.loop ? 'green' : ''; }); function applyRainbowColors(element) { const colors = [ 'red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet' ]; element.style.backgroundImage = `linear-gradient(135deg, ${colors.join(', ')})`; } applyRainbowColors(controlPanel); function spawnSmartMessage(message) { const messageDiv = document.createElement('div'); messageDiv.textContent = message; messageDiv.style.position = 'fixed'; messageDiv.style.bottom = '50%'; messageDiv.style.left = '50%'; messageDiv.style.transform = 'translate(-50%, -50%)'; messageDiv.style.color = 'white'; messageDiv.style.backgroundColor = 'rgba(0, 0, 0, 0.8)'; messageDiv.style.padding = '10px'; messageDiv.style.borderRadius = '5px'; messageDiv.style.fontFamily = 'Arial, sans-serif'; messageDiv.style.zIndex = '1000'; document.body.appendChild(messageDiv); setTimeout(() => { messageDiv.remove(); }, 3000); } function handleChatMessage(event) { const message = event.data; if (message.startsWith('!spawn')) { const itemsToSpawn = message.replace('!spawn', '').trim(); spawnContinuousMessages(itemsToSpawn); } } function spawnContinuousMessages(items) { const itemArray = items.split(','); itemArray.forEach(item => { spawnSmartMessage(`Spawning: ${item}`); }); setTimeout(() => { spawnContinuousMessages(items); }, 5000); } window.addEventListener('message', handleChatMessage); document.addEventListener('click', (event) => { const clickEffect = document.createElement('div'); clickEffect.style.position = 'absolute'; clickEffect.style.width = '10px'; clickEffect.style.height = '10px'; clickEffect.style.backgroundColor = 'white'; clickEffect.style.borderRadius = '50%'; clickEffect.style.left = `${event.clientX}px`; clickEffect.style.top = `${event.clientY}px`; clickEffect.style.pointerEvents = 'none'; clickEffect.style.zIndex = '1000'; document.body.appendChild(clickEffect); setTimeout(() => { clickEffect.style.transform = 'scale(10)'; clickEffect.style.opacity = '0'; setTimeout(() => { clickEffect.remove(); }, 300); }, 0); }); const jsonFileInput = document.createElement('input'); jsonFileInput.type = 'file'; jsonFileInput.accept = 'application/json'; jsonFileInput.style.marginTop = '10px'; controlPanel.appendChild(jsonFileInput); jsonFileInput.addEventListener('change', (event) => { const file = event.target.files[0]; if (file) { const reader = new FileReader(); reader.onload = function(e) { const jsonData = e.target.result; localStorage.setItem('uploadedJson', jsonData); alert('JSON file saved. The page will now reload.'); location.reload(); }; reader.readAsText(file); } }); })();