// ==UserScript== // @name Moomoo.io - Hat Macro & Guide Menu // @author Seryo // @description Toggle Macros with "P". Won't work while chatting or creating an alliance tribe. // @ Shortcuts: // @ - No Hat: Shift // @ - Bull Helmet: R // @ - Tank Gear: Z // @ - Soldier Helmet: G // @ - Booster Hat: B // @ - Flipper Hat: Y // @ - Winter Cap: N // @ - EMP Helmet: J // @ - Fluff Head: I // @ - Turret Gear: T // @ - Spike Gear: H // @ - Samurai Armor: U // @ - Bearbarian Armor: M // @ Feel free to mix and match. // @version Beta // @match *://*.moomoo.io/* // @namespace https://greasyfork.org/users/1190411 // @icon https://cdn.glitch.com/82ae8945-dcc6-4276-98a9-665381b4cd2b/cursor12.png // @license MIT // @grant none // @run-at document-end // @downloadURL none // ==/UserScript== (function () { var macrosToggle = 1; var macroEventListener = null; var menuVisible = false; var isDragging = false; var initialX; var initialY; var menuElement = null; function isChatOpen() { return document.activeElement.id.toLowerCase() === 'chatbox'; } function isAllianceInputActive() { return document.activeElement.id.toLowerCase() === 'allianceinput'; } function shouldHandleHotkeys() { return !isChatOpen() && !isAllianceInputActive(); } function toggleMacros() { macrosToggle = (macrosToggle + 1) % 2; document.title = macrosToggle === 1 ? "нaтѕ-on" : "нaтѕ-oғғ"; var macroStateElement = document.getElementById("macroState"); macroStateElement.textContent = macrosToggle === 1 ? "On" : "Off"; if (macrosToggle === 1) { macroEventListener = function (e) { if (shouldHandleHotkeys()) { switch (e.keyCode) { case 16: storeEquip(0); break; case 82: storeEquip(7); break; case 90: storeEquip(40); break; case 71: storeEquip(6); break; case 66: storeEquip(12); break; case 89: storeEquip(31); break; case 78: storeEquip(15); break; case 74: storeEquip(22); break; case 73: storeEquip(30); break; case 84: storeEquip(53); break; case 77: storeEquip(26); break; case 85: storeEquip(20); break; case 72: storeEquip(11); break; } } }; document.addEventListener('keydown', macroEventListener); } else { document.removeEventListener('keydown', macroEventListener); macroEventListener = null; } } function toggleMenu() { var menuElement = document.getElementById('hatMacroMenu'); if (menuVisible) { menuElement.style.display = 'none'; menuVisible = false; } else { menuElement.style.display = 'block'; menuVisible = true; } } function dragStart(e) { isDragging = true; initialX = e.clientX - menuElement.getBoundingClientRect().left; initialY = e.clientY - menuElement.getBoundingClientRect().top; } function dragEnd() { isDragging = false; } function drag(e) { if (!isDragging) return; menuElement.style.left = (e.clientX - initialX) + 'px'; menuElement.style.top = (e.clientY - initialY) + 'px'; } function createMenu() { menuElement = document.createElement('div'); menuElement.id = 'hatMacroMenu'; menuElement.style.display = 'none'; menuElement.style.background = 'rgba(0, 0, 0, 0.8)'; menuElement.style.fontFamily = 'Hammersmith One, sans-serif'; menuElement.style.position = 'absolute'; menuElement.style.width = '200px'; menuElement.style.height = '225px'; menuElement.style.border = '1.5px solid #000'; menuElement.style.borderRadius = '8px'; menuElement.style.boxShadow = '0px 0px 10px rgba(0, 0, 0, 0.8)'; menuElement.style.top = '20px'; menuElement.style.right = '20px'; menuElement.style.zIndex = '9999'; menuElement.style.overflowY = 'auto'; menuElement.style.color = '#fff'; menuElement.style.fontSize = '17px !important'; menuElement.style.boxShadow = '5px 5px 10px rgba(0, 0, 0, 0.4)'; menuElement.style.padding = '18px'; document.body.appendChild(menuElement); var tableHTML = `
Off
No Hat | Shift | |
Bull Helmet | R | |
Tank Gear | Z | |
Soldier Helmet | G | |
Booster Hat | B | |
Flipper Hat | Y | |
Winter Cap | N | |
EMP Helmet | J | |
Fluff Head | I | |
Turret Gear | T | |
Spike Gear | H | |
Samurai Armor | U | |
Bearbarian Armor | M |