// ==UserScript== // @name ProutexMacro v4 {Leading MooMoo.io Macro 2021} // @namespace - // @version [4.0]... // @description Read the description in GreasyFork! // @author Discord: GoblinTime#2714 : Greasy Fork: ♡⚠♡GoblinTime♡⚠♡ // @match *://sandbox.moomoo.io/* // @match *://moomoo.io/* // @match *://dev.moomoo.io/* // @grant none // @require https://greasyfork.org/scripts/368273-msgpack/code/msgpack.js?version=598723 // @require http://code.jquery.com/jquery-3.3.1.min.js // @require https://code.jquery.com/ui/1.12.0/jquery-ui.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.0/jquery-confirm.min.js // @require https://cdn.jsdelivr.net/npm/msgpack-lite@0.1.26/dist/msgpack.min.js // @require https://cdn.jsdelivr.net/npm/fontfaceobserver@2.1.0/fontfaceobserver.standalone.min.js // @downloadURL none // ==/UserScript== /* Add new colors for health bars */ var ctxx = CanvasRenderingContext2D; if(ctxx.prototype.roundRect) { ctxx.prototype.roundRect = ((func) => function() { if (this.fillStyle == "#8ecc51"){ //All allys this.fillStyle = "rgba(0, 66, 0, 0.47)"; } else if(this.fillStyle == "#cc5151") { // All enemy this.fillStyle = "rgba(112, 6, 0, 0.47)"; } else if(this.fillStyle == "#3d3f42") { // Background health bar this.fillStyle = "rgba(82, 82, 82, 0.47)"; } return func.call(this, ...arguments); }) (ctxx.prototype.roundRect); } // Start Resource function StartRes() { window.follmoo("moofoll", 1); } StartRes(); // Add var meta = document.createElement('meta'); meta.name = "viewport"; meta.content = "initial-scale=1, maximum-scale=1, user-scalable=no"; document.getElementsByTagName('head')[0].appendChild(meta); // Menu $("body").after(`
Ping and Fps:

.
.

Switches:


Versions:

Version-4:
  • 1. Menu.
    To open the menu, click on the text (ProutexMacro)! To close it, click on any place on your screen except the menu!
  • 2. Remove all hats and accessories. Press - ( B )
  • 3. AutoReload.
    The page will automatically reload when it crashes
  • 4. Big Store.
    The store has become much bigger!
  • 5. Pro Map.
    The map shows all the biomes!
  • 6. Show your cps.
    Shows your CPS when clicked!

Version-3:
  • 1. I changed the color of the health bars! Now they are semi-transparent!
  • 2. Made the soldier-Q switch now you need to click on ( H ) to turn it on!
  • 3. Now you can hide the leaderboard on ( K ) . When you press the ( K ) button again, the leaderboard will appear again!
  • 4. When you press ( Y ), there will be a BullTick!
    Bulltick is when a bull helmet hat appears, and when it hits you, your shame counter resets after taking 5 points of damage!

Version-2:
  • 1. Start Resource.
  • 2. Automatically sends a request to the very first clan in the list. Press - ( Up-Arrow )
  • 3. SoldierHelmet+XWings. Press - ( Q )
  • 4. I removed the "LeftAndRightClick: Off" radio button.
    Now when you disable this feature, nothing will happen.
    But I left the text when turning on!
    When enabled, it will be "LeftAndRightClick: On".

Version-1:
  • 1. Release!
  • 2. BullHelmet+BloodWings. Press - ( R )
  • 3. SoldierHelmet+XWings. Press - ( T )
  • 4. TankGear+BlackWings. Press - ( Z )
  • 5. Booster+Tail. Press - ( Shift )
  • 6. Responsible for the function switch! Press - ( J )
    When you turn it on, an inscription will appear in the upper-left corner!
    When you are enabled, you can click the left or right mouse button!
    And they will wear hats! <=( Left ) responsible for: BullHelmet+SpikeGear+TurretGear+SoldierHelmet=>
    <=( Right ) responsible for: TankGear+SamuraiArmor+SoldierHelmet=>

`); $("body").after(`
LeftAndRightClick: On
Soldier-Q: On
Left-Click
Right-Click
`); var AutoReload = setInterval(() => { if(document.getElementById("loadingText").textContent=="disconnectedreload"){ window.onbeforeunload = null; clearInterval(AutoReload) window.location.reload() } }); var Soldier_Q = false; var Clicks = false; const cvs = document.getElementById("gameCanvas"); cvs.addEventListener("mousedown", clicks, false); function clicks(e) { if (e.button == 0) { // Left Click if (Clicks == true) { document.getElementById('addtext1').style .display = "block"; window.storeEquip(0, 1); window.storeEquip(7); window.storeEquip(18, 1); setTimeout(function() { window.storeEquip(11); window.storeEquip(21, 1); }, 100); setTimeout(function() { window.storeEquip(53); window.storeEquip(21, 1); }, 180); setTimeout(function() { window.storeEquip(6); window.storeEquip(13, 1); }, 260); setTimeout(function() { document.getElementById('addtext1').style .display = "none"; }, 600); } } if (e.button == 2) { // Right Click if (Clicks == true) { document.getElementById('addtext2').style .display = "block"; window.storeEquip(0, 1); window.storeEquip(20); window.storeEquip(19, 1); setTimeout(function() { window.storeEquip(40); window.storeEquip(19, 1); }, 120); setTimeout(function() { window.storeEquip(6); window.storeEquip(19, 1); }, 200); setTimeout(function() { document.getElementById('addtext2').style .display = "none"; }, 600); } } } var leaderBlock = document.getElementById("leaderboard"); document.addEventListener('keydown', (e) => { // Add event switch (e.keyCode) { case 72: // [Button]- K if(Soldier_Q == false){ Soldier_Q = true; document.getElementById('addtext0').style .display = "block"; } else { Soldier_Q = false; document.getElementById('addtext0').style .display = "none"; } break; case 74: // [Button]- J if (Clicks == false) { document.getElementById('addtext').style .display = "block"; Clicks = true; } else { document.getElementById('addtext').style .display = "none"; Clicks = false; } break; case 75: // [Button]- K if (leaderBlock.style.display == "block") { $("killCounter").css({"margin": "0"}); $("killCounter").css({"top": "0px"}); leaderBlock.style.display = "none"; } else { $("killCounter").css({"top": "230px"}); leaderBlock.style.display = "block"; } break; case 66: // [Button]- B window.storeEquip(0,1); // [Equip, Acc]- 0 window.storeEquip(0); // [Equip, Hat]- 0 break; // Bull Tick:: case 89: // [Button]- Y console.log("Bull Tick"); window.storeEquip(7); // [Equip, Hat]- BullHelmet setTimeout(() => { window.storeEquip(6); // [Equip, Hat]- SoldierGear },800); break; case 38: // [Button]- Up Arrow window.sendJoin(0); // Send a request to the very first clan break; case 82: // [Button]- R console.log("Bull, Blood[Wings]"); window.storeEquip(0, 1); window.storeBuy(7); // [Buy, Hat]- BullHelmet window.storeBuy(18, 1); // [Buy, Acc]- Blood Wings window.storeEquip(7); // [Equip, Hat]- BullHelmet window.storeEquip(21, 1); // [Equip, Acc]- Blood Wings break; case 81: // [Button]- Q if(Soldier_Q == true){ console.log("Soldier, X[Wings]"); window.storeEquip(0, 1); window.storeBuy(6); // [Buy, Hat]- SoldierGear window.storeBuy(21, 1); // [Buy, Acc]- X Wings window.storeEquip(6); // [Equip, Hat]- SoldierGear window.storeEquip(21, 1); // [Equip, Acc]- X Wings } break; case 16: // [Button]- Shift console.log("Boost, Tail"); window.storeEquip(0, 1); window.storeBuy(12); // [Buy, Hat]- Booster window.storeBuy(11, 1); // [Buy, Acc]- Tail window.storeEquip(12); // [Equip, Hat]- Booster window.storeEquip(11, 1); // [Equip, Acc]- X Wings break; case 84: // [Button]- T console.log("Soldier, X[Wings]"); window.storeEquip(0, 1); window.storeBuy(6); // [Buy, Hat]- Soldier window.storeBuy(21, 1); // [Buy, Acc]- X Wings window.storeEquip(6); // [Equip, Hat]- Soldier window.storeEquip(21, 1); // [Equip, Acc]- X Wings break; case 90: // [Button]- Z console.log("Tank, Black[Wings]"); window.storeEquip(0, 1); window.storeBuy(40); // [Buy, Hat]- Tank window.storeBuy(19, 1); // [Buy, Acc]- Black Wings window.storeEquip(40); // [Equip, Hat]- Tank window.storeEquip(19, 1); // [Equip, Acc]- Black Wings break; } }); // Toggler Cps var cpsss = document.querySelector("#CPSTOGGLER") cpsss.addEventListener('change', function() { if (this.checked) { $("#cpss").css("display", "block"); } else { $("#cpss").css("display", "none"); } }); // Toggler Map var NewMapp = document.querySelector("#NewMap") NewMapp.addEventListener('change', function() { if (this.checked) { $("#mapDisplay").css("background", "url('https://wormax.org/chrome3kafa/moomooio-background.png')"); } else { $("#mapDisplay").css("background", "rgba(0, 0, 0, 0.25)"); } }) $("killCounter").css({"top": "230px"}); /* Instructions for adding items: You need to put this code in a comment here is how I commented out this text */ // /* document.getElementById("storeHolder").style = "height: 1500px; width: 450px;" document.getElementById('gameName').innerText = 'ProutexMacro'; document.getElementById("moomooio_728x90_home").style.display = "none"; $("#moomooio_728x90_home").parent().css({display: "none"}); $("#moomooio_728x90_home").parent().css({"display" : "none"}); document.getElementById("promoImg").remove(); document.getElementById('adCard').remove(); $("#youtuberOf").remove(); $("#followText").remove(); $("#promoImgHolder").remove(); $("#twitterFollow").remove(); $("#joinPartyButton").remove(); $("#linksContainer2").remove(); $("#partyButton").remove(); $("#youtubeFollow").remove(); $("#adCard").remove(); $("#adBlock").remove(); $("#mobileInstructions").remove(); $("#downloadButtonContainer").remove(); $("#mobileDownloadButtonContainer").remove(); $(".downloadBadge").remove(); // */ setTimeout(() => { document.getElementById('ot-sdk-btn-floating').remove(); document.getElementById('pre-content-container').remove(); }, 1500); var cps = 0; var click = 1; $("#gameCanvas").mousedown(function(e){ if(e.which == 1 && click == 1){ cps = (cps + 1) setTimeout( () => { cps = (cps - 1) }, 950); } }); $("#gameCanvas").mousedown(function(e){ if(e.which == 3 && click == 1){ cps = (cps + 1) setTimeout( () => { cps = (cps - 1) }, 950); } }); document.addEventListener("mousedown", buttonPress, false); function buttonPress(e) { if(e.button == 1 && click == 1){ cps = (cps + 1) setTimeout( () => { cps = (cps - 1) }, 950); } } var cpsM = document.createElement("div"); cpsM.style.padding = "5px"; cpsM.id = "cpss"; cpsM.style.font = "30px Arial"; cpsM.style.display = "none"; cpsM.style.position = "fixed"; cpsM.style.top = "40%"; cpsM.style.left = "0%"; cpsM.style.color = "#fff"; cpsM.textContent = "Loading..."; document.body.appendChild(cpsM); setInterval(()=>{ cpsM.textContent = "Cps: " + cps; }, 0);