- // ==UserScript==
- // @name Sploop.io-Modifications [ CactusMod ] -
- // @namespace -
- // @version 1.0.0
- // @description Cactus's are cool
- // @author cactus
- // @match *://sploop.io/*
- // @grant none
- // @icon https://i.imgur.com/1lJkd0L.png
- // ==/UserScript==
-
-
- document.title = 'Cactus.io - Cactus Mod';
- document.querySelector("link[rel='icon']").href = "https://i.imgur.com/1lJkd0L.png";
- document.getElementById("logo").src = "https://svgur.com/i/15Mw.svg";
-
-
-
- //
- var FPS,cps = 0,Mcps = 0,Hue = 0;
- (function() {
- var UPDATE_DELAY = 700;
- var lastUpdate = 0;
- var frames = 0;
- var pingValue = 0;
- function updateCounter() {
- var now = Date.now();
- var elapsed = now - lastUpdate;
- if (elapsed < UPDATE_DELAY) {
- ++frames;
- } else {
- FPS = Math.round(frames / (elapsed / 1000));
- frames = 0;
- lastUpdate = now;
- }
- requestAnimationFrame(updateCounter);
- }
- lastUpdate = Date.now();
- requestAnimationFrame(updateCounter);
- })();
- document.addEventListener("mousedown", click, false);
- document.addEventListener("mouseup", endclick, false);
- function click(e) {
- if (e.button == 0 || 1 || 2) {
- cps++
- setTimeout(() => {
- cps--
- }, 900);
- }
- if (e.button == 0) { document.getElementById("LeftClick").style.backgroundColor = "white";}
- if (e.button == 2) { document.getElementById("RightClick").style.backgroundColor = "white";}
- }
- function endclick(e) {
- if (e.button == 0) {document.getElementById("LeftClick").style.backgroundColor = "rgba(0, 0, 0, 0.4)";}
- if (e.button == 2) {document.getElementById("RightClick").style.backgroundColor = "rgba(0, 0, 0, 0.4)";}
- }
- document.addEventListener('keydown', (e)=>{
- if (e.keyCode == 32) {document.getElementById("SpaceBar").style.backgroundColor = "white";}
- if (e.keyCode == 87) {document.getElementById("keyW").style.backgroundColor = "white";}
- if (e.keyCode == 65) {document.getElementById("keyA").style.backgroundColor = "white";}
- if (e.keyCode == 83) {document.getElementById("keyS").style.backgroundColor = "white";}
- if (e.keyCode == 68) {document.getElementById("keyD").style.backgroundColor = "white";}
- })
- document.addEventListener('keyup', (e)=>{
- if (e.keyCode == 32) {document.getElementById("SpaceBar").style.backgroundColor = "rgba(0, 0, 0, 0.4)";}
- if (e.keyCode == 87) {document.getElementById("keyW").style.backgroundColor = "rgba(0, 0, 0, 0.4)";}
- if (e.keyCode == 65) {document.getElementById("keyA").style.backgroundColor = "rgba(0, 0, 0, 0.4)";}
- if (e.keyCode == 83) {document.getElementById("keyS").style.backgroundColor = "rgba(0, 0, 0, 0.4)";}
- if (e.keyCode == 68) {document.getElementById("keyD").style.backgroundColor = "rgba(0, 0, 0, 0.4)";}
- })
-
- setInterval(() => {
- if (cps > Mcps) Mcps = cps
- Hue += Math.random() * .4
- Show.style.color = `white`
- Panel.style.color = `hsl(${Hue}, 100%, 70%)`
- Creator.style.color = `hsl(${Hue}, 100%, 70%)`
- Show.innerHTML = `${FPS}FPS<br>${cps}CPS<br>${Mcps}MCPS`
- }, 0);
- let Show = document.createElement("div");
- Show.id = "SHOW"
- document.body.prepend(Show);
- let Panel = document.createElement("div");
- let Creator = document.createElement('div');
-
- Creator.innerHTML = `
- <div id='Creator'>
- <div id='01e'>CactusMod</div>`
- document.body.appendChild(Creator)
-
- Panel.innerHTML = `
- <div id="Panel">
- <div id="keyW">W</div>
- <div id="keyA">A</div>
- <div id="keyS">S</div>
- <div id="keyD">D</div>
- <div id="LeftClick">LMB</div>
- <div id="RightClick">RMB</div>
- <div id="SpaceBar">______</div>
- </div>`
- document.body.appendChild(Panel)
-
- let popUI = document.querySelector('#pop-ui');
- let settings = document.querySelector('#pop-settings');
-
-
- // === STYLING FOR HAT MENU ===
- document.querySelector('#game-content').style.justifyContent = 'center';
- document.querySelector('#main-content').style.width = 'auto';
- document.getElementById('hat-menu').style.background = "rgba(0,0,0,0)"
- document.getElementById('hat-menu').style.opacity = "0.9"
- document.getElementById('clan-menu').style.background = "rgba(0,0,0,0)"
- document.getElementById('clan-menu').style.opacity = "0.9"
- document.getElementById("hat_menu_content").style.background = "rgba(0,0,0,0)"
- document.getElementById("clan_menu_content").style.background = "rgba(0,0,0,0)"
-
- var hatMenu = document.getElementById("hat-menu");
- if (hatMenu) {
- hatMenu.style.opacity = "0.6";
- }
-
- // == style ==
- var styleItem = document.createElement("style");
- styleItem.type = "text/css";
- styleItem.appendChild(document.createTextNode(`
-
- create_clan *, #pop-ui {
- background-color: transparent;
- }
- #pop-settings {
- background: rgba(0,0,0,0.5);
- opacity: 0.95;
- }
-
- #Creator{
- position: fixed !important;
- width: 10vw;
- height: 5vh;
- top: 96.4vh;
- left: -1.25vw;
- z-index: 100000022;
- display: block;
- text-align: center;
- opacity: 0;
- }
-
- #01e{
- position: fixed !important;
- width: 50px;
- height: 45px;
- top: 45px;
- left: 0;
- background-color: rgba(0, 0, 0, 0.4);
- box-shadow: 0 0 2px #6dd1ff,0 0 0 3px #353535, 0 0 0 3px #3e3e3e, inset 0 0 7px rgba(0, 0, 0, 1), 0 2px 10px rgba(0,0,0,.5), inset 0 0 10px rgba(0,0,0,.2);
- border-top-left-radius: 10px;
- }
-
- #SHOW {
- font-size: 18px;
- position: absolute;
- width: 90px;
- height: 78px;
- top:55px;
- left:10px;
- z-index:1000000;
- display: block;
- text-align: center;
- border-radius: 20px;
- background-color: rgba(0, 0, 0, 0.4);
-
- }
-
- #Panel {
- position: relative;
- width: 150px;
- height: 180px;
- top: 10px;
- left: 130px;
- z-index: 1000000;
- display: block;
- text-align: center;
- opacity: 0.6;
- }
-
-
-
-
- #millWarningDiv{
- font-size: 18px;
- position: absolute;
- height: auto;
- top:80vh;
- left:0vh;
- z-index:1000000;
- display: block;
- opacity: 0.9;
- text-align: center;
- border-radius: 20px;
- display: none;
- background-color: rgba(0, 0, 0, 0.4);
- box-shadow: 0 0 2px #6dd1ff,0 0 0 3px #353535, 0 0 0 3px #3e3e3e, inset 0 0 7px rgba(0, 0, 0, 1), 0 2px 10px rgba(0,0,0,.5), inset 0 0 10px rgba(0,0,0,.2);
- border-top-left-radius: 10px;
- border-top-right-radius: 10px;
- padding:10px;
- color: white;
- }
-
-
- #keyW {
- position: absolute;
- width: 50px;
- height: 45px;
- top: 0;
- left: 50px;
- background-color: rgba(0, 0, 0, 0.4);
- box-shadow: 0 0 2px #6dd1ff,0 0 0 3px #353535, 0 0 0 3px #3e3e3e, inset 0 0 7px rgba(0, 0, 0, 1), 0 2px 10px rgba(0,0,0,.5), inset 0 0 10px rgba(0,0,0,.2);
- border-top-left-radius: 10px;
- border-top-right-radius: 10px;
- }
-
- #keyA {
- position: absolute;
- width: 50px;
- height: 45px;
- top: 45px;
- left: 0;
- background-color: rgba(0, 0, 0, 0.4);
- box-shadow: 0 0 2px #6dd1ff,0 0 0 3px #353535, 0 0 0 3px #3e3e3e, inset 0 0 7px rgba(0, 0, 0, 1), 0 2px 10px rgba(0,0,0,.5), inset 0 0 10px rgba(0,0,0,.2);
- border-top-left-radius: 10px;
- }
-
- #keyS {
- position: absolute;
- width: 50px;
- height: 45px;
- top: 45px;
- left: 50px;
- background-color: rgba(0, 0, 0, 0.4);
- box-shadow: 0 0 2px #6dd1ff,0 0 0 3px #353535, 0 0 0 3px #3e3e3e, inset 0 0 7px rgba(0, 0, 0, 1), 0 2px 10px rgba(0,0,0,.5), inset 0 0 10px rgba(0,0,0,.2);
- }
-
- #keyD {
- position: absolute;
- width: 50px;
- height: 45px;
- top: 45px;
- right: 0;
- background-color: rgba(0, 0, 0, 0.4);
- box-shadow: 0 0 2px #6dd1ff,0 0 0 3px #353535, 0 0 0 3px #3e3e3e, inset 0 0 7px rgba(0, 0, 0, 1), 0 2px 10px rgba(0,0,0,.5), inset 0 0 10px rgba(0,0,0,.2);
- border-top-right-radius: 10px;
- }
-
- #LeftClick {
- position: absolute;
- width: 75px;
- height: 45px;
- top: 90px;
- left: 0;
- background-color: rgba(0, 0, 0, 0.4);
- box-shadow: 0 0 2px #6dd1ff,0 0 0 3px #353535, 0 0 0 3px #3e3e3e, inset 0 0 7px rgba(0, 0, 0, 1), 0 2px 10px rgba(0,0,0,.5), inset 0 0 10px rgba(0,0,0,.2);
- }
-
- #RightClick {
- position: absolute;
- width: 75px;
- height: 45px;
- top: 90px;
- right: 0;
- background-color: rgba(0, 0, 0, 0.4);
- box-shadow: 0 0 2px #6dd1ff,0 0 0 3px #353535, 0 0 0 3px #3e3e3e, inset 0 0 7px rgba(0, 0, 0, 1), 0 2px 10px rgba(0,0,0,.5), inset 0 0 10px rgba(0,0,0,.2);
- }
-
- #SpaceBar {
- position: absolute;
- width: 150px;
- height: 45px;
- bottom: 0;
- left: 0;
- border-bottom-left-radius: 10px;
- border-bottom-right-radius: 10px;
- background-color: rgba(0, 0, 0, 0.4);
- box-shadow: 0 0 2px #6dd1ff,0 0 0 3px #353535, 0 0 0 3px #3e3e3e, inset 0 0 7px rgba(0, 0, 0, 1), 0 2px 10px rgba(0,0,0,.5), inset 0 0 10px rgba(0,0,0,.2);
- }
-
- #top-wrap-left {
- position: fixed;
- top: 50px;
- left: 96%;
- transform: translateX(-50%);
- width: 58px;
- height:58px;
- }
-
- #hat-menu {
-
- height: 348px;
- width: 430px;
- }
- #hat-menu .green-button, #clan-menu .green-button {
- background-color: rgba(0,0,0,0);
- box-shadow:none;
- }
- #hat-menu .green-button:hover, #clan-menu .green-button:hover {
- background-color: rgba(0,0,0,0.2);
- }
- .subcontent-bg {
- border-color: transparent;
- box-shadow: none;
- background: transparent;
- }
- .menu .content .menu-item .menu-pricing .action {
- border-color: grey;
- }
- .menu .content .menu-item {
- border-bottom-color: transparent;
- }
- #hat-menu, #clan-menu {
- box-shadow: none;
- border: 1px solid black
- }
-
- #clan_menu_content .subcontent-bg {
- margin: 1px 0px 1px 0px;
- }
-
- #create_clan *, #pop-ui {
- background-color: transparent;
- }
-
- #pop-settings {
- background: rgba(0,0,0,0.5);
- opacity: 0.95;
- }
-
- .scrollbar::-webkit-scrollbar {
- background: rgba(0, 0, 0, 0);
- border-radius: 2px;
- border: 2px solid rgba(0, 0, 0, 0.9);
- }
- .scrollbar::-webkit-scrollbar-thumb {
- background: rgba(255,255,255, 0.7);
- border-radius: 2px;
- border: 2px solid #141414;
- box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #4e5645,
- 0 1px 1px rgb(20 20 20 / 50%);
- }
-
- `))
-
-
- // == ping-shower ==
- var checkbox = document.getElementById('display-ping-toggle');
- checkbox.checked = true;
- checkbox.dispatchEvent(new Event('change'));
-
- // == remove ads ==
- const idsToDelete = ['game-bottom-content', 'da-left', 'da-right', 'game-left-content-main', "game-right-content-main", "discord", 'alsoTryLink', 'cross-promo']; // Array of IDs to delete
- idsToDelete.forEach(id => {
- const elementToRemove = document.getElementById(id);
- if (elementToRemove) {
- elementToRemove.parentNode.removeChild(elementToRemove);
- } else {
- console.error(`Element with ID ${id} not found!`);
- }
- });
- const container = document.getElementById('game-content');
- const elementToRealign = document.getElementById('game-middle-main');
- const leftOffset = (container.offsetWidth - elementToRealign.offsetWidth) / 2;
- elementToRealign.style.left = leftOffset + 'px';
-
-
- // == Homepage Blur ==
- function blur() {
- const homepage = document.getElementById("homepage");
- homepage.style.display = "flex";
- // Set a fixed blur value
- const blurValue = 1.5;
- homepage.style.backdropFilter = `blur(${blurValue}px)`;
- }
-
- setTimeout(blur, 2000);
-
- // == Watermark/Username ==*customizeable - line 86*
-
- let gridToggle = true; // change this value to false if you want to keep grid off
-
- function toggleGrid() {
- const grid = document.querySelector('#grid-toggle');
- grid.click();
- }
- toggleGrid();
- function handlePlayButtonClick() {
- if (gridToggle) {
- toggleGrid();
- gridToggle = false;
- }
- }
- var xe1 = false;
-
- function toggleCreatorVisibility() {
- var creatorDiv = document.getElementById('Creator');
- if (creatorDiv.style.opacity === '0.5') return;
-
- if (!creatorDiv.dataset.clicked) {
- creatorDiv.dataset.clicked = true;
- creatorDiv.style.opacity = '0.5';
- return;
- }
- creatorDiv.style.opacity = '1';
- }
-
- function playButtonClickHandler() {
- toggleCreatorVisibility();
- handlePlayButtonClick();
- var creatorDiv = document.getElementById('Creator');
- creatorDiv.style.transition = 'opacity 0.5s ease';
-
- // Print "Worked" to the console
- console.log("Worked");
-
- // Remove event listener after action happens
- if (xe1) {
- document.getElementById('play').removeEventListener('click', playButtonClickHandler);
- } else {
- xe1 = true;
- }
- }
-
- document.getElementById('play').addEventListener('click', playButtonClickHandler);
-
- // == Access Settings ingame ==
- document.addEventListener('keydown', e =>{
- if(e.keyCode == 27) {
- if(document.querySelector('#hat-menu').style.display !== "flex" && document.querySelector('#clan-menu').style.display !== "flex" && document.querySelector('#homepage').style.display !== "flex" && document.querySelector('#chat-wrapper').style.display !== "block") {
- if(!popUI.classList.contains('fade-in')) {
- popUI.classList.add('fade-in');
- popUI.style.display = "flex";
- settings.style.display = "flex";
- return;
- }
- popUI.classList.remove('fade-in');
- popUI.style.display = "none";
- settings.style.display = "none";
- }
- }
- });
-
- // == Custom Health + Clan Colour ==
-
- const originalFillRect = CanvasRenderingContext2D.prototype.fillRect;
-
- CanvasRenderingContext2D.prototype.fillRect = function (x, y, width, height) {
- if (this.fillStyle === "#a4cc4f") {
- this.fillStyle = "#13a8ec";
- this.shadowColor = "rgba(0, 0, 0, 0.7)";
- this.shadowBlur = 3;
- }
- originalFillRect.call(this, x, y, width, height);
- };
-
- CanvasRenderingContext2D.prototype.fillText = new Proxy(CanvasRenderingContext2D.prototype.fillText, {
- apply: function (target, thisArg, argumentsList) {
- thisArg.lineWidth = 8;
- thisArg.strokeStyle = "black";
- thisArg.strokeText.apply(thisArg, argumentsList);
- return target.apply(thisArg, argumentsList);
- }
- });
-
-
- CanvasRenderingContext2D.prototype.fillText = new Proxy(CanvasRenderingContext2D.prototype.fillText, {
- apply: function (target, thisArg, argumentsList) {
- if (typeof argumentsList[0] == 'string' && argumentsList[0].includes('[')) {
- thisArg.fillStyle = "#6ee0dc";
- thisArg.shadowColor = "rgba(0, 0, 0, 0.7)";
- thisArg.shadowBlur = 6;
- }
- return target.apply(thisArg, argumentsList);
- }
- });
-
-
-
-
- // == Miscellaneous ==
-
- // Clan custom title
- var phrases = [,"/ Clan /", "| Clan |", "- Clan -", "/ Clan /"];
- var currentIndex = 0;
-
- setInterval(function() {
- var element = document.getElementById('clan-title');
- if (element) {
- element.textContent = phrases[currentIndex];
- currentIndex = (currentIndex + 1) % phrases.length;
- }
- }, 200);
-
-
-
- // Instant leave
-
- (function() {
- 'use strict';
-
- document.addEventListener("keydown", function(event) {
- var homepage = document.getElementById("homepage");
- var isPlayerInGame = homepage.style.display === "none";
-
- if (isPlayerInGame && event.code === "ArrowUp") {
- event.preventDefault();
-
- var ffaMode = document.getElementById("ffa-mode");
- var sandboxMode = document.getElementById("sandbox-mode");
- var popProgressLoss = document.getElementById("pop-progress-loss");
- var changeServer = document.getElementById("change-server");
-
- if (isPlayerInGame) {
- var activeButton = ffaMode.classList.contains("dark-blue-button-3-active") ? sandboxMode : ffaMode;
- homepage.style.display = "flex";
- activeButton.click();
- }
-
- if (popProgressLoss.style.display === "flex") {
- changeServer.click();
- }
- }
- });
-
- })();
-
- // Game-Homepage
-
-
- (function() {
- 'use strict';
-
- const styleElement = document.head.appendChild(document.createElement('style'));
- styleElement.type = 'text/css';
- styleElement.appendChild(document.createTextNode(`#cross-promo, #bottom-wrap, #google_play, #game-left-content-main, #game-bottom-content, #game-right-content-main, #right-content { display: none !important; }`));
-
- const gameContent = document.querySelector('#game-content');
- gameContent.style.justifyContent = 'center';
-
- const mainContent = document.querySelector('#main-content');
- mainContent.style.width = 'auto';
-
- const popUi = document.getElementById('pop-ui');
- popUi.style.opacity = '0.7';
-
- const homepage = document.getElementById('homepage');
- homepage.style.opacity = '0.7';
-
- const rankingMiddleMain = document.getElementById('ranking-middle-main');
- rankingMiddleMain.style.height = '380px';
-
- const rankingRanksContainer = document.getElementById('ranking-ranks-container');
- rankingRanksContainer.style.height = '295px';
-
- const ranking2MiddleMain = document.getElementById('ranking2-middle-main');
- ranking2MiddleMain.style.height = '380px';
-
- const rankingRankContainer = document.getElementById('ranking-rank-container');
- rankingRankContainer.style.height = '295px';
-
- const profileLeftMain = document.getElementById('profile-left-main');
- profileLeftMain.style.width = '650px';
-
- const changeUsername = document.getElementById('change-username');
- changeUsername.style.width = '200px';
-
- const popBoxes = document.querySelectorAll('.pop-box');
- popBoxes.forEach((box) => {
- box.style.boxShadow = "inset 0 4px 0 #4e564500, inset 0 -4px 0 #38482500, 0px 2px 0 5px rgb(20 20 20 / 0%), 0px 0px 0 15px rgb(20 20 20 / 0%)";
- });
-
- const popHomepage = document.getElementById('homepage');
- document.addEventListener('keydown', e => {
- if (e.key === 'Alt' && popHomepage) {
- popHomepage.style.display = (popHomepage.style.display === 'flex' || popHomepage.style.display === '') ? 'none' : 'flex';
- e.preventDefault();
- e.stopPropagation();
- }});
- })();
-
-
- const { fillText } = CanvasRenderingContext2D.prototype;
- const cursing = ["cunt", "whore", "fuck", "shit", "faggot", "nigger", "nigga", "dick", "vagina", "minge", "cock", "rape", "cum", "sex", "tits", "penis", "clit", "pussy", "jizz", "prune", "douche", "wanker", "damn", "bitch", "dick", "fag", "bastard"],
- replace = ["cxxx", "wxxxx", "fxxx", "sxxx", "fxxxxx", "nxxxxx", "nxxxx", "dxxx", "vxxxxx", "mxxxx", "cxxx", "rxxx", "cxx", "sxx", "txxx", "pxxxx", "cxxx", "pxxxx", "jxxx", "pxxxx", "dxxxxx", "wxxxxx", "dxxx", "bxxxx", "dxxx", "fxx", "bxxxxxx"];
- CanvasRenderingContext2D.prototype.fillText = function (word) {
- if (typeof word == "string") {
- var tmpString;
- for (var i = 0; i < cursing.length; ++i) {
- if (word.toLowerCase().indexOf(cursing[i]) > -1) {
- tmpString = replace[i];
- var re = new RegExp(cursing[i], "ig");
- word = word.replace(re, tmpString);
- }
- }
- }
- fillText.call(this, ...arguments);
- };
-
-
-
-
-
- // emojies
-
- const emojiMappings = {
- ":skull:": "💀",
- ":heart:": "❤️",
- ":smile:": "😄",
- ":thumbu:": "👍",
- ":thumbd:": "👎",
-
- };
-
- function replaceTextWithEmojis(text) {
- let replacedText = text;
- for (const pattern in emojiMappings) {
- if (emojiMappings.hasOwnProperty(pattern)) {
- replacedText = replacedText.replace(new RegExp(pattern, "g"), emojiMappings[pattern]);
- }
- }
- return replacedText;
- }
-
- document.getElementById("chat").addEventListener("keydown", function(event) {
- if (event.key === "Enter") {
- const chatInput = event.target;
- const text = chatInput.value;
- const replacedText = replaceTextWithEmojis(text);
- chatInput.value = replacedText;
- }
- });
- document.getElementById("chat-wrapper").addEventListener("keydown", function(event) {
- if (event.key === " ") {
- event.stopPropagation();
- }
- });
- document.getElementById("nickname").addEventListener("keydown", function(event) {
- if (event.key === " ") {
- event.stopPropagation();
- }
- });
-
- // dagger fix
-
- (function() {
- const { drawImage } = CanvasRenderingContext2D.prototype
-
- CanvasRenderingContext2D.prototype.drawImage = function(image, x, y, width, height) {
- if (/dagger/.test(image?.src) && (y === 5 || y > window.screen.availHeight - 100)) {
- this.save()
- this.strokeStyle = "rgba(45, 49, 49, .5)"
- this.lineWidth = 6
-
- this.roundRect(x + 3, y + 3, 95, 95, 16)
- this.stroke()
- this.restore()
-
- arguments[3] = arguments[4] = 80
- arguments[1] += 11
- arguments[2] += 11
- }
-
- drawImage.apply(this, arguments)
- }
- })()
-
- document.head.appendChild(styleItem);