// ==UserScript==
// @name Sploop.io - KeyStroks, Hats, No grids, Better shop
// @namespace http://tampermonkey.net/
// @version 0.1
// @description random desc
// @author You
// @match *://sploop.io/*
// @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant none
// ==/UserScript==
var transformhatshop = document.getElementById('hat-menu');
transformhatshop.style.width = "500px";
transformhatshop.style.height = "500px";
document.getElementById("homepage").style.backgroundImage = "url('https://klike.net/uploads/posts/2019-11/1574605225_2.jpg')"
document.getElementById('lostworld-io_300x250_1').remove();
document.getElementById('lostworld-io_300x250_2').remove();
document.getElementById('lostworld-io_970x250').remove();
var FPS,cps = 0,Mcps = 0,Hue = 0;
(function() {
var UPDATE_DELAY = 700;
var lastUpdate = 0;
var frames = 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) || e.keycode == 32) {
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";
cps++
setTimeout(() => {
cps--
}, 900);}
if (e.keyCode == 87) {document.getElementById("keyW").style.backgroundColor = "white";}
if (e.keyCode == 82) {document.getElementById("keyR").style.backgroundColor = "white";}
if (e.keyCode == 70) {document.getElementById("keyF").style.backgroundColor = "white";}
if (e.keyCode == 69 && document.activeElement.tagName !== "INPUT") {
if ($("#keyE").css("backgroundColor") == "rgba(0, 0, 0, 0.4)") {
$("#keyE").css("backgroundColor", "white");
} else {
$("#keyE").css("backgroundColor", "rgba(0, 0, 0, 0.4)");
}
}
if (e.keyCode == 81) {document.getElementById("keyQ").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 == 82) {document.getElementById("keyR").style.backgroundColor = "rgba(0, 0, 0, 0.4)";}
if (e.keyCode == 70) {document.getElementById("keyF").style.backgroundColor = "rgba(0, 0, 0, 0.4)";}
if (e.keyCode == 81) {document.getElementById("keyQ").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 = `hsl(${Hue}, 100%, 70%)`
Panel.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");
Panel.innerHTML = `
<div id="Panel">
<div id="keyQ">Q</div>
<div id="keyW">W</div>
<div id="keyR">R</div>
<div id="keyF">F</div>
<div id="keyE">E</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)
var styleItem = document.createElement("style");
styleItem.type = "text/css";
styleItem.appendChild(document.createTextNode(`
#SHOW {
font-size: 18px;
position: absolute;
width: 90px;
height: 75px;
top:30px;
left:10px;
z-index:1000000;
display: block;
text-align: center;
border-radius: 20px;
background-color: rgba(0, 0, 0, 0.4);
box-shadow: 0 0 2px #6dd1ff,0 0 0 4px #353535, 0 0 0 5px #3e3e3e, inset 0 0 10px rgba(0, 0, 0, 1), 0 5px 20px rgba(0,0,0,.5), inset 0 0 15px rgba(0,0,0,.2);
}
#Panel {
position: relative;
width: 150px;
height: 180px;
top: 120px;
left: 10px;
z-index: 1000000;
display: block;
text-align: center;
}
#keyQ {
position: absolute;
width: 50px;
height: 45px;
top: 0;
left: 0px;
background-color: rgba(0, 0, 0, 0.4);
box-shadow: 0 0 2px #6dd1ff,0 0 0 4px #353535, 0 0 0 5px #3e3e3e, inset 0 0 10px rgba(0, 0, 0, 1), 0 5px 20px rgba(0,0,0,.5), inset 0 0 15px rgba(0,0,0,.2);
border-top-left-radius: 10px;
border-top-right-radius: 10px;
}
#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 4px #353535, 0 0 0 5px #3e3e3e, inset 0 0 10px rgba(0, 0, 0, 1), 0 5px 20px rgba(0,0,0,.5), inset 0 0 15px rgba(0,0,0,.2);
border-top-left-radius: 10px;
border-top-right-radius: 10px;
}
#keyR {
position: absolute;
width: 50px;
height: 45px;
top: 0;
left: 100px;
background-color: rgba(0, 0, 0, 0.4);
box-shadow: 0 0 2px #6dd1ff,0 0 0 4px #353535, 0 0 0 5px #3e3e3e, inset 0 0 10px rgba(0, 0, 0, 1), 0 5px 20px rgba(0,0,0,.5), inset 0 0 15px rgba(0,0,0,.2);
border-top-left-radius: 10px;
border-top-right-radius: 10px;
z-index: -1;
}
#keyF {
position: absolute;
width: 50px;
height: 45px;
top: 45px;
left: 154px;
background-color: rgba(0, 0, 0, 0.4);
box-shadow: 0 0 2px #6dd1ff,0 0 0 4px #353535, 0 0 0 5px #3e3e3e, inset 0 0 10px rgba(0, 0, 0, 1), 0 5px 20px rgba(0,0,0,.5), inset 0 0 15px rgba(0,0,0,.2);
border-top-left-radius: 10px;
border-top-right-radius: 10px;
z-index: -1;
}
#keyE {
position: absolute;
width: 50px;
height: 45px;
top: 0;
left: 150px;
background-color: rgba(0, 0, 0, 0.4);
box-shadow: 0 0 2px #6dd1ff,0 0 0 4px #353535, 0 0 0 5px #3e3e3e, inset 0 0 10px rgba(0, 0, 0, 1), 0 5px 20px rgba(0,0,0,.5), inset 0 0 15px rgba(0,0,0,.2);
border-top-right-radius: 10px;
border-bottom-right-radius: 10px;
z-index: -1;
}
#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 4px #353535, 0 0 0 5px #3e3e3e, inset 0 0 10px rgba(0, 0, 0, 1), 0 5px 20px rgba(0,0,0,.5), inset 0 0 15px 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 4px #353535, 0 0 0 5px #3e3e3e, inset 0 0 10px rgba(0, 0, 0, 1), 0 5px 20px rgba(0,0,0,.5), inset 0 0 15px 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 4px #353535, 0 0 0 5px #3e3e3e, inset 0 0 10px rgba(0, 0, 0, 1), 0 5px 20px rgba(0,0,0,.5), inset 0 0 15px 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 4px #353535, 0 0 0 5px #3e3e3e, inset 0 0 10px rgba(0, 0, 0, 1), 0 5px 20px rgba(0,0,0,.5), inset 0 0 15px 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 4px #353535, 0 0 0 5px #3e3e3e, inset 0 0 10px rgba(0, 0, 0, 1), 0 5px 20px rgba(0,0,0,.5), inset 0 0 15px 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 4px #353535, 0 0 0 5px #3e3e3e, inset 0 0 10px rgba(0, 0, 0, 1), 0 5px 20px rgba(0,0,0,.5), inset 0 0 15px rgba(0,0,0,.2);
}
`))
document.head.appendChild(styleItem);
document.getElementById("SHOW").addEventListener('mousedown', function (e) {
let prevX = e.clientX;
let prevY = e.clientY;
window.addEventListener('mousemove', mousemove);
window.addEventListener('mouseup', mouseup);
function mousemove(e) {
let newX = prevX - e.clientX;
let newY = prevY - e.clientY;
const rect = document.getElementById("SHOW").getBoundingClientRect();
document.getElementById("SHOW").style.left = rect.left - newX + 'px';
document.getElementById("SHOW").style.top = rect.top - newY + 'px';
prevX = e.clientX;
prevY = e.clientY;
}
function mouseup() {
window.removeEventListener('mousemove', mousemove);
window.removeEventListener('mouseup', mouseup);
}
});
document.getElementById("Panel").addEventListener('mousedown', function (e) {
let prevX = e.clientX;
let prevY = e.clientY;
window.addEventListener('mousemove', mousemove);
window.addEventListener('mouseup', mouseup);
function mousemove(e) {
let newX = prevX - e.clientX;
let newY = prevY - e.clientY;
const rect = document.getElementById("Panel").getBoundingClientRect();
document.getElementById("Panel").style.left = rect.left - newX + 'px';
document.getElementById("Panel").style.top = rect.top - newY + 'px';
prevX = e.clientX;
prevY = e.clientY;
}
function mouseup() {
window.removeEventListener('mousemove', mousemove);
window.removeEventListener('mouseup', mouseup);
}
});
document.getElementById('hat-menu').style.background = "rgba(0,0,0,0)"
document.getElementById("hat_menu_content").style.background = "rgba(0,0,0,0)"
var styleItem1 = document.createElement("style");
styleItem1.type = "text/css";
styleItem1.appendChild(document.createTextNode(`
.green-button {
background-color: rgba(0, 0, 0, 0.5);
box-shadow:none;
}
.green-button:hover {
background-color: rgba(0, 0, 0);
box-shadow:none;
}
.menu .content .menu-item {
border-bottom: none;
}
#hat-menu {
border: none;
opacity: 0.9;
}
.header {
opacity: 0.4;
}
.description {
opacity: 0.4;
}
`))
document.head.appendChild(styleItem1);
setInterval(() => {
if (cps > Mcps) Mcps = cps
Hue += Math.random() * .4
var styleItem1 = document.createElement("style");
styleItem1.type = "text/css";
styleItem1.appendChild(document.createTextNode(`
#hat-menu .green-button {
color: hsl(${Hue}, 100%, 70%);
}
`))
})
const HATS = {
BUSH_HAT: 0,
BERSERKER: 1,
JUNGLE_GEAR: 2,
CRYSTAL_GEAR: 3,
SPIKE_GEAR: 4,
IMMUNITY_GEAR: 5,
BOOST_HAT: 6,
APPLE_HAT: 7,
SCUBA_GEAR: 8,
HOOD: 9,
DEMOLIST: 10
};
const KEYBINDS = {
[HATS.BUSH_HAT]: "",
[HATS.BERSERKER]: "KeyG",
[HATS.JUNGLE_GEAR]: "",
[HATS.CRYSTAL_GEAR]: "KeyT",
[HATS.SPIKE_GEAR]: "KeyJ",
[HATS.IMMUNITY_GEAR]: "Semicolon",
[HATS.BOOST_HAT]: "KeyM",
[HATS.APPLE_HAT]: "",
[HATS.SCUBA_GEAR]: "KeyK",
[HATS.HOOD]: "KeyY",
[HATS.DEMOLIST]: "KeyV"
};
// HAT EQUIP LOGIC GOES BELOW
const log = console.log;
const storage = {
get(key) {
const value = localStorage.getItem(key);
return value === null ? null : JSON.parse(value);
},
set(key, value) {
localStorage.setItem(key, JSON.stringify(value));
}
};
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
function isInput() {
return document.activeElement.tagName === "INPUT";
}
function inGame() {
const homepage = document.querySelector("#homepage");
return homepage && homepage.style.display !== "flex";
}
function canEquip() {
return !isInput() && inGame();
}
function createKeyboardEvent(type, code) {
return new Proxy(new KeyboardEvent(type), {
get(target, prop) {
if (prop === "isTrusted") return true;
if (prop === "target") return document.body;
if (prop === "code") return code;
return target[prop];
}
})
}
function keypress(code) {
const keydown = createKeyboardEvent("keydown", code);
const keyup = createKeyboardEvent("keyup", code);
window.onkeydown(keydown);
window.onkeyup(keyup);
}
function mouseup(target) {
target.onmouseup(new Proxy(new MouseEvent("mouseup"), {
get(target, prop) {
if (prop === "isTrusted") return true;
if (prop === "target") return target;
return target[prop];
}
}));
}
let equipToggle = false;
async function equipHat(index) {
if (!canEquip() || equipToggle) return;
equipToggle = true;
const hatActionButton = document.querySelectorAll(".hat_action_button")[index];
if (!hatActionButton) throw new Error("Failed to find hat with index: " + index);
const keybinds = storage.get("keybinds");
const OpenShopKey = keybinds && keybinds[18] || "KeyN";
keypress(OpenShopKey);
await sleep(150);
if (hatActionButton.textContent === "BUY") {
mouseup(hatActionButton);
}
mouseup(hatActionButton);
await sleep(150);
keypress(OpenShopKey);
await sleep(1500);
equipToggle = false;
}
window.addEventListener("keydown", function(event) {
if (event.repeat) return;
for (const key in KEYBINDS) {
if (event.code === KEYBINDS[key]) {
equipHat(key);
break;
}
}
})
const grids = document.querySelector("#grid-toggle");
setInterval(() => {
if (grids.checked){grids.click();}
}, 0);