// ==UserScript== // @name Moomoo.io - Hat Macro // @version Beta // @description 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. // @author Seryo // @match *://*.moomoo.io/* // @icon https://i.imgur.com/in2VmJT.jpg // @license MIT // @grant none // @namespace https://greasyfork.org/users/1190411 // @downloadURL none // ==/UserScript== (function() { var macrosToggle = 1; var macroEventListener = 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ғғ"; if (macrosToggle === 1) { macroEventListener = function(e) { if (shouldHandleHotkeys()) { switch (e.keyCode) { case 16: storeEquip(0); break; // Shift case 82: storeEquip(7); break; // R case 90: storeEquip(40); break; // Z case 71: storeEquip(6); break; // G case 66: storeEquip(12); break; // B case 89: storeEquip(31); break; // Y case 78: storeEquip(15); break; // N case 74: storeEquip(22); break; // J case 73: storeEquip(30); break; // I case 84: storeEquip(53); break; // T case 77: storeEquip(26); break; // H case 85: storeEquip(20); break; // U case 72: storeEquip(11); break; // M } } }; document.addEventListener('keydown', macroEventListener); } else { document.removeEventListener('keydown', macroEventListener); macroEventListener = null; } } document.addEventListener('keydown', (e) => { if (e.keyCode === 80 && !isChatOpen() && !isAllianceInputActive()) { toggleMacros(); } }); var headerText = document.querySelector("h1").textContent; var macrosEnabled = headerText.includes("Macros On"); if (macrosEnabled) { toggleMacros(); } })();