// ==UserScript== // @name Survev.io Anniversary Edition // @namespace http://tampermonkey.net/ // @license MIT // @version 0.2.2 // @description Give survev.io better experience // @author chess5321, .junako, asultra, samerkizi, wzld, #NARS //are in Discord // @match https://survev.io/ // @icon https://cdn.discordapp.com/icons/947128006030282792/c80363d8d6dea22ef392c4d325e0c9f4.png?size=64 // @grant GM_addStyle // @downloadURL none // ==/UserScript== // #FPS Booster (function() { 'use strict'; let MAX=120; //frame rate you desire requestAnimationFrame=e=>setTimeout(e,1e3/MAX); })(); // #CSS (function() { 'use strict'; // bg document.addEventListener("mousemove",(e=>{const n=e.clientX/window.innerWidth*100,t=e.clientY/window.innerHeight*100;document.getElementById("background").style.transform=`translate(-${n/10}%, -${t/10}%)`})); // preload function preloadImages(o){const e=[];o.forEach((o=>{const r=new Image;r.src=o;r.onload=()=>{e.push(r);console.log(`Image loaded successfully: ${o}`)};r.onerror=()=>{console.error(`Error loading image: ${o}`)}}))} // Array of image URLs to preload const imagesToPreload = [ 'https://i.imgur.com/N9mhKPf.png', 'https://i.imgur.com/ZwWc1V6.png', 'https://i.imgur.com/ECmba9f.png', 'https://i.imgur.com/aFpnqJh.png', 'https://i.imgur.com/83OJWoB.png', 'https://i.imgur.com/9d2Ovts.png', 'https://i.imgur.com/RhtMT8x.png', 'https://i.imgur.com/AkqE1MW.png', 'https://i.imgur.com/1QYyOVm.png', 'https://i.imgur.com/7fHEEwN.png', 'https://i.imgur.com/GOTXovX.png', 'https://i.imgur.com/MK7KzfH.png', 'https://i.imgur.com/cVXsZuK.png', 'https://i.imgur.com/nI4potb.png', ]; // Call the preload function preloadImages(imagesToPreload); // main GM_addStyle(` #background{width: 111.090775988% !important;height: 111.090775988% !important} #start-menu{margin-left: 330px;padding-top: 20px;padding-right: 20px;padding-bottom: 12px;padding-left: 20px} #team-menu, #team-mobile-link{margin-left: 167.5px} #btn-team-mobile-link-leave{margin-left: 205.5px;position: unset} #social-share-block{pointer-events: none !important;opacity: 0 !important} #btn-help,#start-help,.ui-emote-hl{display: none !important} #news-block{opacity: 0 !important;transition: 0.3s !important} #news-block:hover{opacity: 1 !important} #start-bottom-right{transition: 0.3s !important;opacity: 0 !important} #start-bottom-right:hover{opacity: 1 !important} #btn-customize,.btn-team-option,.btn-start-option,.btn-game-menu,#ui-modal-keybind-list > .ui-keybind-container > .btn-game-menu,#ui-modal-keybind-footer > .btn-darken,#ui-stats-options > .btn-darken,#ui-spectate-buttons,#btn-team-leave,#btn-team-mobile-link-leave{background-color: #35363a;border-bottom: 2px solid #202124;box-shadow: inset 0 -2px #202124} .player-name-input,#team-link-input,.name-self,#keybind-code-input{background-color: #35363a;color: #ffd700} #btn-game-tabs > .btn-game-container > .btn-game-menu-selected,.customize-list-item-selected,.btn-hollow-selected,#color-picker-hex,.ui-outline-hover:hover{border-color: #202124 !important} .btn-hollow,#btn-game-tabs > .btn-game-container > .btn-game-menu{border-color: #3a3a3a !important} .menu-option:focus,.menu-option.focus{box-shadow: 0 0 1px 1px #202124} .modal-header,.modal-footer,#ui-modal-keybind-header.modal-header,#ui-modal-keybind-footer.modal-footer,.ui-keybind-container > .btn-keybind-desc-selected,#modal-customize-header.modal-header,#modal-customize-footer.modal-footer,.slider,.slider::-webkit-slider-thumb{background-color: #202124} #modal-settings-body.modal-body, #ui-modal-keybind-body.modal-body,#modal-customize-body.modal-body,.modal-customize-cat-selected,.modal-content-right{background-color: #35363a !important} .modal-customize-cat-connect{background-color: #998000 !important} #background{animation: change 70s infinite ease-in-out} @keyframes change { 0%, 2.4% { background-image: url(https://i.imgur.com/N9mhKPf.png); } 4.8%, 9.6% { background-image: url(https://i.imgur.com/ZwWc1V6.png); } 12%, 16.8% { background-image: url(https://i.imgur.com/ECmba9f.png); } 19.2%, 24% { background-image: url(https://i.imgur.com/83OJWoB.png); } 26.4%, 31.2% { background-image: url(https://i.imgur.com/aFpnqJh.png); } 33.6%, 38.4% { background-image: url(https://i.imgur.com/9d2Ovts.png); } 40.8%, 45.6% { background-image: url(https://i.imgur.com/RhtMT8x.png); } 48%, 52.8% { background-image: url(https://i.imgur.com/AkqE1MW.png); } 55.2%, 60% { background-image: url(https://i.imgur.com/1QYyOVm.png); } 62.4%, 67.2% { background-image: url(https://imgur.com/7fHEEwN.png); } 69.6%, 74.4% { background-image: url(https://i.imgur.com/GOTXovX.png); } 76.8%, 81.6% { background-image: url(https://i.imgur.com/MK7KzfH.png); } 84%, 88.8% { background-image: url(https://i.imgur.com/cVXsZuK.png); } 91.2%, 96% { background-image: url(https://i.imgur.com/nI4potb.png); } 98.4%, 100% { background-image: url(https://i.imgur.com/N9mhKPf.png); } } `); })(); // #FPS Counter (function() { let fps=0,ping=0,lastLoop=performance.now(),frameCount=0; // Create FPS display const fpsDisplay = document.createElement('div'); fpsDisplay.style.position = 'absolute'; fpsDisplay.style.top = '50%'; // Middle of the screen vertically fpsDisplay.style.left = '10px'; // Left side of the screen fpsDisplay.style.transform = 'translateY(-50%)'; // Centers it vertically based on the top position fpsDisplay.style.color = 'white'; fpsDisplay.style.fontSize = '14px'; // Smaller font size fpsDisplay.style.fontFamily = '"roboto condensed", sans-serif'; // Regular Arial font without bold fpsDisplay.style.textShadow = '1px 1px 2px black'; // Slight shadow for visibility fpsDisplay.style.backgroundColor = 'rgba(0, 0, 0, 0.3)'; fpsDisplay.style.padding = '3px 5px'; // Padding around the text fpsDisplay.style.borderRadius = '5px'; // Slightly rounded corners for styling fpsDisplay.style.zIndex = '10000'; // Ensure the FPS display is on top fpsDisplay.innerHTML = `0 FPS`; document.body.appendChild(fpsDisplay); // Update FPS function updateCounters(){const e=performance.now(),n=e-lastLoop;frameCount++;n>=1e3&&(fps=frameCount,frameCount=0,lastLoop=e,fpsDisplay.innerHTML=`${fps} FPS`);requestAnimationFrame(updateCounters)}document.body.appendChild(fpsDisplay);updateCounters(); })(); // #LAT Counter var region,DOM_observer,ws,sendTime={},receiveTime={},teamJoined=document.getElementById("msg-wait-reason"),endBtn=document.getElementById("ui-stats-options");function wsUrl(){var e=[];return"na"===region?e.push("usr"):"eu"===region?e.push("eur"):"asia"===region?e.push("asr"):"sa"===region&&e.push("sa");`wss://${e}.mathsiscoolfun.com:8001/ptc`}function doSend(e){1===ws.readyState&&(sendTime=Date.now(),ws.send(e))}function getPing(){var e,n=wsUrl();(ws=new WebSocket(n)).onopen=()=>{doSend(new ArrayBuffer(1))};ws.onclose=()=>{pingDisplay.innerHTML="NaN ms"};ws.onmessage=()=>{receiveTime=Date.now();e=receiveTime-sendTime;pingDisplay.innerHTML=`${e} ms`;setTimeout((()=>{doSend(new ArrayBuffer(1))}),1500)};ws.onerror=()=>{pingDisplay.innerHTML="ERR."}}window.onload=()=>{var e=document.getElementsByClassName("btn-green btn-darken menu-option");[e[0],e[1],e[2]].forEach((e=>{e.onclick=()=>{region=document.getElementById("server-select-main").value;getPing()}}));e[3].onclick=()=>{region=document.getElementById("team-server-select").value;getPing()}};document.getElementById("btn-game-quit").onclick=()=>{ws.close()};document.getElementById("btn-spectate-quit").onclick=()=>{ws.close()};(DOM_observer=new MutationObserver((e=>{1===e[0].addedNodes.length?endBtn.getElementsByTagName("a")[0].onclick=()=>{ws.close()}:3===e[0].addedNodes.length&&(region=document.getElementById("team-server-select").value,getPing())}))).observe(endBtn,{childList:!0});DOM_observer.observe(teamJoined,{childList:!0});wsUrl(); // Create LAT display const pingDisplay = document.createElement('div'); pingDisplay.style.position = 'absolute'; pingDisplay.style.top = 'calc(50% + 25px)'; // Positioned below FPS counter pingDisplay.style.left = '10px'; // Align with FPS counter pingDisplay.style.transform = 'translateY(-50%)'; // Centers it vertically based on the top position pingDisplay.style.color = 'white'; // Yellow color for ping counter pingDisplay.style.fontSize = '14px'; // Same font size as FPS counter pingDisplay.style.fontFamily = '"roboto condensed", sans-serif'; // Regular Arial font pingDisplay.style.textShadow = '1px 1px 2px black'; // Slight shadow for visibility pingDisplay.style.backgroundColor = 'rgba(0, 0, 0, 0.3)'; pingDisplay.style.padding = '3px 5px'; // Padding around the text pingDisplay.style.borderRadius = '5px'; // Slightly rounded corners for styling pingDisplay.style.zIndex = '10000'; // Ensure the Ping display is on top pingDisplay.innerHTML = `NaN ms`; // Use backticks for string interpolation document.body.appendChild(pingDisplay); // #HP&AD Counter !function(){"use strict";var e=0,t=document.createElement("span");t.style="display:block;position:fixed;z-index: 2;margin:6px 0 0 0;right: 15px;mix-blend-mode: difference;font-weight: bold;font-size:large;";document.querySelector("#ui-health-container").appendChild(t);var n=document.createElement("span");n.style="display:block;position:fixed;z-index: 2;margin:6px 0 0 0;left: 15px;mix-blend-mode: difference;font-weight: bold;font-size: large;";document.querySelector("#ui-health-container").appendChild(n);setInterval((function(){var i=document.getElementById("ui-health-actual").style.width.slice(0,-1);e!==i&&(e=i,t.innerHTML=Number.parseFloat(i).toFixed(1));var o=25*document.getElementById("ui-boost-counter-0").querySelector(".ui-bar-inner").style.width.slice(0,-1)/100+25*document.getElementById("ui-boost-counter-1").querySelector(".ui-bar-inner").style.width.slice(0,-1)/100+37.5*document.getElementById("ui-boost-counter-2").querySelector(".ui-bar-inner").style.width.slice(0,-1)/100+12.5*document.getElementById("ui-boost-counter-3").querySelector(".ui-bar-inner").style.width.slice(0,-1)/100;n.innerHTML=Math.round(o)}))}(); // #Make things easy xlibizi toynet function delAds(e){document.getElementById(e)&&document.getElementById(e).remove()} setInterval(function(){ var adsA=document.getElementsByClassName("ad-block-leaderboard-bottom")[0]; delAds("start-top-left"); delAds("leaderboard-front"); delAds("start-bottom-left"); delAds("adunit"); delAds("ad-block-left"); delAds("ui-stats-ad-container-desktop"); delAds("social-share-block-wrapper"); adsA&&adsA.remove(); },100);