// ==UserScript==
// @name Survev.io Counters + Anniversary Edition
// @namespace http://tampermonkey.net/
// @license MIT
// @version 1.2.0
// @description Not recommended for weak devices
// @author chess5321, .junako, asultra, samerkizi, wzld //are in Discord
// @match https://survev.io/
// @icon https://cdn.discordapp.com/icons/947128006030282792/c80363d8d6dea22ef392c4d325e0c9f4.png?size=64
// @grant GM_addStyle
// ==/UserScript==
// #FPS Booster
(function() {
'use strict';
let MAX = 120; //frame rate you desire
requestAnimationFrame = e => setTimeout(e, 1e3 / MAX);
})();
// #CSS
(function() {
'use strict';
// bg effect
/*
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}%)`
}));
*/
// main
GM_addStyle(`
/*
#background {
width: 111.090775988% !important;
height: 111.090775988% !important;
}
*/
#TOS,
#start-bottom-middle,
#ui-game {
opacity: 0.5;
}
body > div:nth-child(6),
body > div:nth-child(7) {
opacity: 0.75;
}
.menu-block {
transform: scale(1) !important;
}
#modal-customize {
backdrop-filter: brightness(0.65) !important;
}
.btns-double-row {
display: block !important;
}
.ui-keybind-container>.btn-keybind-desc-selected {
animation: pulseKeybind 1.25s linear infinite !important;
}
@keyframes pulseKeybind {
0% {
background-color: #202124;
}
50% {
background-color: #35363a;
}
100% {
background-color: #202124;
}
}
input[type="checkbox"],
input[type="range_"],
input[type="textbox"],
.ui-emote-quarter .ui-emote-hl,
#customize-emote-autos .ui-emote-hl,
.ui-emote-middle,
.ui-team-ping-middle {
filter: grayscale(1) !important;
}
input[type=text]:focus {
border: none !important;
}
/*untouchable*/
/*
#ui-weapon-id-1, #ui-weapon-id-2, #ui-weapon-id-3, #ui-weapon-id-4, .ui-zoom-inactive, .ui-zoom-active,#ui-settings-container-desktop>.ui-settings-button, #ui-equipped-ammo, #ui-bullet-counter #ui-current-clip, #ui-interaction, #ui-lower-center, #ui-interaction-press {
pointer-events: none !important;
}
*/
/*setting*/
#start-bottom-right {
transition: 0.3s !important;
opacity: 0 !important;
}
#btn-game-tabs>.btn-game-container>.btn-game-menu-selected,
.btn-hollow-selected,
.ui-outline-hover:hover,
#color-picker-hex {
border-color: #202124 !important;
}
.customize-list-item-selected {
border-color: #FFD700 !important;
}
.btn-game-container>.btn-game-menu {
border-color: #35363a !important;
}
.btn-hollow {
border-color: #35363a;
}
#start-bottom-right:hover {
opacity: 1 !important;
}
/*text*/
.news-header,
.news-paragraph>.highlight,
.ui-stats-header-title,
.ui-stats-info-player-name {
color: #FFD700 !important;
}
/*inside ig*/
.modal-header,
.modal-footer,
.modal-content-right {
background-color: rgba(26, 27, 29, 0.65) !important;
}
.slider,
.slider::-webkit-slider-thumb {
background-color: rgb(26, 27, 29) !important;
}
.modal-body,
.modal-customize-cat-selected {
background-color: rgba(53, 54, 58, 0.65) !important;
}
.modal-content-shadow {
box-shadow: none;
}
.menu-option:focus {
box-shadow: 0 0 1px 1px #FFD700;
}
.modal-customize-cat-connect {
background: #FFD700 !important;
}
/*color*/
.btn-green,
#ui-modal-keybind-footer>.btn-game-menu,
.btn-start-mute,
.btn-team-option,
.ui-keybind-container>.btn-keybind-desc,
#btn-customize,
#btn-team-mobile-link-leave,
#btn-team-leave,
#ui-modal-keybind-footer>.btn-game-menu:last-child,
.btn-settings,
.btn-keybind,
#btn-start-fullscreen,
#btn-game-fullscreen,
.audio-on-icon,
#btn-game-quit,
#btn-game-resume,
#ui-spectate-buttons>.menu-option,
#ui-game-tab-keybinds>.btn-keybind-restore {
background-color: #35363a !important;
border-bottom: 2px solid #202124 !important;
box-shadow: inset 0 -2px #202124 !important;
}
.player-name-input,
#team-link-input,
.player-name-input,
.name-self,
.name-self:hover,
.team-menu-member>.menu-option,
#keybind-code-input,
#color-picker-hex {
background-color: #35363a !important;
color: #ffd700 !important;
}
/*
.btn-settings {
background-image: url(../img/gui/cog.svg) !important;
}
.btn-keybind {
background-image: url(../img/gui/keyboard.svg) !important;
}
#btn-start-fullscreen, #btn-game-fullscreen {
background-image: url(../img/gui/minimize.svg) !important;
}
.audio-on-icon {
background-image: url(../img/gui/audio-on.svg) !important;
}
.audio-off-icon {
background-image: url(../img/gui/audio-off.svg) !important;
}
#btn-game-quit {
background-image: url(../img/gui/quit.svg) !important;
}
#btn-game-resume {
background-image: url(../img/gui/resume.svg) !important;
}
*/
/*others*/
#ad-block-left,
#social-share-block {
pointer-events: none !important;
opacity: 0 !important;
}
#btn-help,
#start-help,
.icon-submit-name-change,
#start-bottom-right > a,
#start-bottom-right > a > div {
display: none !important;
}
#start-row-top {
position_: relative !important;
left_: 331px !important;
}
#team-menu,
#team-mobile-link {
position: relative !important;
right: 165px !important;
}
#btn-team-mobile-link-leave {
position: relative !important;
left: 206px !important;
bottom: 0px !important;
}
#news-block {
opacity: 0 !important;
transition: 0.3s !important;
}
#news-block:hover {
opacity: 1 !important;
}
/*bg transition*/
#background::after {
position: absolute;
width: 0;
height: 0;
overflow: hidden;
content: url(https://i.imgur.com/N9mhKPf.png) url(https://i.imgur.com/ZwWc1V6.png) url(https://i.imgur.com/ECmba9f.png) url(https://i.imgur.com/aFpnqJh.png) url(https://i.imgur.com/83OJWoB.png) url(https://i.imgur.com/9d2Ovts.png) url(https://i.imgur.com/RhtMT8x.png) url(https://i.imgur.com/AkqE1MW.png) url(https://i.imgur.com/1QYyOVm.png) url(https://i.imgur.com/7fHEEwN.png) url(https://i.imgur.com/GOTXovX.png) url(https://i.imgur.com/MK7KzfH.png) url(https://i.imgur.com/cVXsZuK.png) url(https://i.imgur.com/nI4potb.png);
}
#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://i.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() {
// Create FPS display
const fpsDisplay = document.createElement('div');
fpsDisplay.style.position = 'absolute';
fpsDisplay.style.top = '60%'; // 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
let times = [];
const getFPS = () => {
window.requestAnimationFrame(() => {
const now = performance.now();
while (times.length > 0 && times[0] <= now - 1000) times.shift();
times.push(now);
fpsDisplay.innerHTML = `${times.length} FPS`;
if (times.length <= 30) {
fpsDisplay.style.color = "red";
} else {
fpsDisplay.style.color = "white";
}
getFPS();
});
}
getFPS();
})();
// #LAT Counter
(function() {
const pingDisplay = document.createElement('div');
pingDisplay.style.position = 'absolute';
pingDisplay.style.top = 'calc(60% + 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 = `Waiting for a game start...`; // Use backticks for string interpolation
document.body.appendChild(pingDisplay);
var sendTime, receiveTime, timeout, region, DOM_observer, ws;
var teamJoined = document.getElementById("msg-wait-reason"),
endBtn = document.getElementById("ui-stats-options");
window.onload = () => {
var strtBtn = document.getElementsByClassName("btn-green btn-darken menu-option");
var strtBtnArray = [strtBtn[0], strtBtn[1], strtBtn[2]];
strtBtnArray.forEach((btn) => {
btn.onclick = () => {
region = document.getElementById("server-select-main").value;
getPing();
};
});
strtBtn[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((mutations) => {
if (mutations[0].addedNodes.length === 1) {
endBtn.getElementsByTagName("a")[0].onclick = () => {
ws.close()
};
} else if (mutations[0].addedNodes.length === 3) {
region = document.getElementById("team-server-select").value;
delayConnect();
};
});
DOM_observer.observe(endBtn, {
childList: true
});
DOM_observer.observe(teamJoined, {
childList: true
});
function wsUrl() {
var wsUrl, wsRegion;
if (region === 'na') {
wsRegion = 'usr';
} else if (region === 'eu') {
wsRegion = 'eur';
} else if (region === 'asia') {
wsRegion = 'asr';
} else if (region === 'sa') {
wsRegion = 'sa';
};
wsUrl = `wss://${wsRegion}.mathsiscoolfun.com:8001/ptc`;
return wsUrl;
};
function delayConnect() {
timeout = setTimeout(getPing, 2500);
};
function doSend(message) {
if (ws.readyState === 1) {
sendTime = Date.now();
ws.send(message);
};
};
function getPing() {
var ping, url = wsUrl();
ws = new WebSocket(url);
ws.onopen = () => {
clearTimeout(timeout);
doSend(new ArrayBuffer(1));
};
ws.onclose = (evt) => {
if (evt.code === 1005) {
pingDisplay.innerHTML = `Waiting for a game start...`;
pingDisplay.style.color = "white";
} else if (evt.code === 1006) {
ws = null;
delayConnect();
};
};
ws.onmessage = () => {
receiveTime = Date.now();
ping = receiveTime - sendTime;
pingDisplay.innerHTML = `${ping} ms`;
setTimeout(() => {
doSend(new ArrayBuffer(1))
if (ping >= 120) {
pingDisplay.style.color = "red";
pingDisplay.innerHTML = `${ping} ms?!!`;
} else if (90 < ping < 120) {
pingDisplay.style.color = "orange";
}
/* else if (60 < ping <= 90) {
pingDisplay.style.color = "yellow";
}*/
else {
pingDisplay.style.color = "white";
}
}, 200);
};
ws.onerror = () => {
pingDisplay.innerHTML = `NaN ms`;
pingDisplay.style.color = "white";
};
};
})();
// #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 xlibizitoynetly*/
function delAds(e) {
document.getElementById(e) && document.getElementById(e).remove()
}
setInterval(function() {
var adsA = document.getElementsByClassName("ad-block-leaderboard-bottom")[0];
delAds("leaderboard-front");
delAds("adunit");
delAds("ui-stats-ad-container-desktop");
adsA && adsA.remove();
}, 100);