// ==UserScript== // @name MooMoo.io Show Keys & Mouse // @description Display your keyboard keys, mouse, and CPS // @author KOOKY WARRIOR // @match *://*.moomoo.io/* // @icon https://moomoo.io/img/favicon.png?v=1 // @run-at document-start // @grant unsafeWindow // @license MIT // @version 0.5.2 // @namespace https://greasyfork.org/users/999838 // @downloadURL https://update.greasyfork.icu/scripts/463400/MooMooio%20Show%20Keys%20%20Mouse.user.js // @updateURL https://update.greasyfork.icu/scripts/463400/MooMooio%20Show%20Keys%20%20Mouse.meta.js // ==/UserScript== // Press "\" to open menu // This script was originally made by GG Gamer Br // https://greasyfork.org/en/scripts/424547-moomoo-io-keys ;(() => { unsafeWindow.showKeys = true let storage = JSON.parse(localStorage.getItem("showKeys&Mouse")) if (storage == null) { storage = { keys: ["Q", "F", "V", "1", "2", "3"], cps: true, maxCps: true, mouse: 100, space: 7, container: 270 } localStorage.setItem("showKeys&Mouse", JSON.stringify(storage)) } unsafeWindow.addEventListener("DOMContentLoaded", () => { const DIV = `
_______
CPS: 0
MAX CPS: 0
` const container = document.createElement("div") container.innerHTML = DIV document.getElementById("gameUI").appendChild(container) storage.keys.forEach((key) => { const element = document.createElement("div") element.id = `key_${key}` element.className = "keys" element.textContent = key document.getElementById("keys").appendChild(element) }) document.getElementById("keys").style.display = storage.container <= 0 || storage.keys.length == 0 ? "none" : "flex" unsafeWindow.changeShowKeyMouseProperty = (id, value) => { storage[id] = value localStorage.setItem("showKeys&Mouse", JSON.stringify(storage)) document.getElementById("mouseContainer").style.width = `${65 * (storage.mouse / 100)}px` document.getElementById("mouseContainer").style.height = `${94 * (storage.mouse / 100)}px` document.getElementById("mouseContainer").style.display = storage.mouse > 0 ? "block" : "none" document.getElementById("key_Space").style.marginLeft = `${storage.mouse > 0 ? 10 : 0}px` document.getElementById("mouse").style.transform = `scale(${storage.mouse}%)` document.getElementById("key_Space").textContent = "_".repeat(storage.space) document.getElementById("key_Space").style.display = storage.space > 0 ? "block" : "none" document.getElementById("cpsDisplay").style.display = storage.cps ? "block" : "none" document.getElementById("maxCpsDisplay").style.display = storage.maxCps ? "block" : "none" document.getElementById("keys").style.display = storage.container <= 0 || storage.keys.length == 0 ? "none" : "flex" document.getElementById("keys").style.width = `${storage.container}px` } unsafeWindow.addKey_ShowKeyMouse = () => { const key = document.getElementById("enter_key").value.toUpperCase() let element = document.getElementById(`key_${key}`) if (element == null) { element = document.createElement("div") element.id = `key_${key}` element.className = "keys" element.textContent = key document.getElementById("keys").appendChild(element) storage.keys.push(key) localStorage.setItem("showKeys&Mouse", JSON.stringify(storage)) } } unsafeWindow.removeKey_ShowKeyMouse = async () => { const key = document.getElementById("enter_key").value.toUpperCase() const element = document.getElementById(`key_${key}`) if (element != null) { element.remove() const index = storage.keys.indexOf(key) if (index > -1) { await storage.keys.splice(index, 1) localStorage.setItem("showKeys&Mouse", JSON.stringify(storage)) } document.getElementById("keys").style.display = storage.container <= 0 || storage.keys.length == 0 ? "none" : "flex" } } var currentCps = 0 var maxCps = 0 var spaceDown = false function addCPS() { currentCps++ document.getElementById("cpsDisplay").innerText = `CPS: ${currentCps}` if (currentCps > maxCps) { maxCps = currentCps document.getElementById("maxCpsDisplay").innerText = `MAX CPS: ${maxCps}` } setTimeout(() => { currentCps-- document.getElementById("cpsDisplay").innerText = `CPS: ${currentCps}` }, 1000) } function keysActive() { let returnValue returnValue = document.getElementById("allianceMenu").style.display != "block" && document.getElementById("chatHolder").style.display != "block" return returnValue } unsafeWindow.addEventListener("keydown", (event) => { if (keysActive()) { if (event.code == "Backslash") { document.getElementById("show_key_menu").style.display = document.getElementById("show_key_menu").style.display == "block" ? "none" : "block" } else if (event.code == "Space") { if (!spaceDown) { spaceDown = true const keyDiv = document.getElementById(`key_Space`) if (keyDiv && !keyDiv.classList.contains("active")) { keyDiv.classList.add("active") } addCPS() } } else { const keyDiv = document.getElementById(`key_${event.key.toUpperCase()}`) if (keyDiv && !keyDiv.classList.contains("active")) { keyDiv.classList.add("active") } } } }) unsafeWindow.addEventListener("keyup", (event) => { if (event.code == "Space") { spaceDown = false const keyDiv = document.getElementById(`key_Space`) if (keyDiv && keyDiv.classList.contains("active")) { keyDiv.classList.remove("active") } } else { const keyDiv = document.getElementById(`key_${event.key.toUpperCase()}`) if (keyDiv && keyDiv.classList.contains("active")) { keyDiv.classList.remove("active") } } }) document.getElementById("touch-controls-fullscreen").addEventListener("mousedown", (event) => { if ([0, 1, 2].includes(event.button)) { addCPS() } let mouseDiv = document.getElementById(`mouse_${event.button}`) if (mouseDiv && !mouseDiv.classList.contains("active2")) { mouseDiv.classList.add("active2") } }) document.getElementById("touch-controls-fullscreen").addEventListener("mouseup", (event) => { let mouseDiv = document.getElementById(`mouse_${event.button}`) if (mouseDiv && mouseDiv.classList.contains("active2")) { mouseDiv.classList.remove("active2") } }) }) })()