SHARE
TWEET

Untitled

a guest May 23rd, 2019 96 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name Krunkerio:FPS,Aim Fire,Auto Bunny,ESP,fast heal,speed hack,unlimited ammo,ChangeBackground,no recoil
  3. // @namespace    Iomods.org
  4. // @version      3.0.4
  5. // @description  MOST ADVANCED KRUNKER HACKS EVER!! [SPEED, AIMBOT, AUTO BHOP, INVISIBILITY, TELEPORT HACKS, WALL HACKS, [UPDATED] ETC] PROOF DOWN BELOW OR LINK:  https://youtu.be/uA9_HDKv7yE
  6. // @author      Iomods.org
  7. // @include      https://krunker.io/
  8. // @include      https://krunker.io/?game=*
  9. // @grant        GM_xmlhttpRequest
  10. // @run-at       document-start
  11. // ==/UserScript==
  12.  
  13. var checkgameloaded;
  14. unsafeWindow.checkgame=false;
  15. window.WebSocket.prototype.oldSend = WebSocket.prototype.send;
  16. window.WebSocket.prototype.send = function(m){
  17.     if (!checkgameloaded){
  18.         activatehack(this);
  19.     }
  20.     this.oldSend(m);
  21. }
  22.  
  23. window.chatmessage = window.Ze = (t, e, i) => {
  24.     for (chatList.innerHTML += i ? "<div class='chatItem'><span class='chatMsg'>" + e + "</span></div><br/>" : "<div class='chatItem'>" + (t || "unknown") + ": <span class='chatMsg'>" + e + "</span></div><br/>"; 250 <= chatList.scrollHeight;) chatList.removeChild(chatList.childNodes[0])
  25. }
  26.  
  27. //default keys
  28. var keys;
  29. (function (keys) {
  30.     keys["one"] = "I";
  31.     keys["two"] = "J";
  32.     keys["three"] = "L";
  33.     keys["four"] = "U";
  34.     keys["five"] = "H";
  35.     keys["six"] = "G";
  36.     keys["seven"] = "K";
  37.     keys["eight"] = "P";
  38.     keys["nine"] = "Z";
  39.     keys["ten"] = "B";
  40. })(keys || (keys = {}));
  41.  
  42. var speeder;(function (speeder) {speeder["on"] = "1.250";speeder["info"] = "Speed Hack (?)";})(speeder || (speeder = {}));
  43.  
  44. function activatehack(socket){
  45.     window.socket = socket;
  46.     checkgameloaded = socket;
  47.  
  48.     window.chatmessage("Krunkerio.org", `Welcome to <span style="color: red;">KrunkerHacks-OMG:0</span> <span style="color: yellow;">Check below the Leaderboard</span> in game for shortcuts`);
  49.     $("#subLogoButtons").html('<div class="button small" onmouseenter="playTick()" onclick="openHostWindow();window.open(\'https://goo.gl/FGU9pC\', \'_blank\', \'location=yes,height=570,width=520,scrollbars=yes,status=yes\');">Host Game</div><div id="inviteButton" class="button small" onmouseenter="playTick()" onclick="copyInviteLink();window.open(\'https://goo.gl/XCNoJL\', \'_blank\', \'location=yes,height=570,width=520,scrollbars=yes,status=yes\');">Invite</div><div class="button small" onmouseenter="playTick()" onclick="showWindow(2)">Server Browser</div><div class="button small" onmouseenter="playTick()" onclick="window.open(\'https://goo.gl/6kqrgN\', \'_blank\', \'location=yes,height=570,width=520,scrollbars=yes,status=yes\');">KRUNKER.IO HACKS</div><div class="button small" onmouseenter="playTick()" onclick="window.open(\'https://goo.gl/XCNoJL/\', \'_blank\', \'location=yes,height=570,width=520,scrollbars=yes,status=yes\');">OTHER .IO CHEATS</div>');
  50.     $("#healthHolder").append('<a style=\"color:yellow;top:1520px;\" href="https://goo.gl/XCNoJL" target="_blank">KrunkerHacks-OMG:0</a>');
  51.  
  52.     //values of scripts
  53.     var values = ["location=yes,scrollbars=yes,status=yes,height=570,width=520","location=yes,scrollbars=yes,status=yes,left=2000,height=570,width=520"],
  54.         valueToUse = values[Math.floor(Math.random() * values.length)];
  55.     valueToUse2 = values[Math.floor(Math.random() * values.length)];
  56.     valueToUse3 = values[Math.floor(Math.random() * values.length)];
  57.     var links = ["goo.gl/XCNoJL","goo.gl/6kqrgN","goo.gl/FGU9pC","goo.gl/SXUzeF","goo.gl/Lb1GKp","goo.gl/28tVmw","goo.gl/aHMmvA","goo.gl/X8Lhyn","goo.gl/JcfvKP","goo.gl/uqFAWf"],
  58.         linkToUse = links[Math.floor(Math.random() * links.length)];
  59.     linkToUse1 = links[Math.floor(Math.random() * links.length)];
  60.     linkToUse2 = links[Math.floor(Math.random() * links.length)];
  61.     linkToUse3 = links[Math.floor(Math.random() * links.length)];
  62.     linkToUse4 = links[Math.floor(Math.random() * links.length)];
  63.     linkToUse5 = links[Math.floor(Math.random() * links.length)];
  64.     linkToUse6 = links[Math.floor(Math.random() * links.length)];
  65.     linkToUse7 = links[Math.floor(Math.random() * links.length)];
  66.     (function (links) {
  67.         links["one"] = links[0];
  68.         links["nine"] = links[9];
  69.     })(links || (links = {}));
  70.     //tanitim belgeseli
  71.     var colorize,lnk,text,ministyler
  72.     lnk = ["KrunkerHacks-OMG:0", "KRUNKERIO.ORG", "KRUNKERIO.NET", "SHELLSHOCKIO.ORG", "MOOMOOIOPLAY.COM", "SURVIVIO.INFO", "ZOMBSROYALEIO.ORG", "MOPE-IO.NET", "MOPEIOGAME.COM", "DIEPIOPLAY.COM", "DIEPIOPLAY.ORG", "SLITHERIOPLAY.ORG", "SKRIBBL-IO.NET", "SPINZ-IO.NET", "BONK-IO.NET", "DEEEEP-IO.NET", "IOGAMESLIST.ORG", "IOMODS.ORG"];
  73.     text = "<b>";
  74.     lnk.forEach(lnkfunc);
  75.     text += "</b>";
  76.  
  77.     function lnkfunc(value) {
  78.         var value2 = value;
  79.         if(value == "KrunkerHacks-OMG:0" || value == "KRUNKERIO.ORG" || value == "IOMODS.ORG" || value == "KRUNKERIO.NET") { colorize = true; } else { colorize = false; }
  80.         if(value == "MOPE-IO.NET") { value2="MOPEIO.NET"; } if(value == "BONK-IO.NET") { value2="BONKIO.NET"; } if(value == "SPINZ-IO.NET") { value2="SPINZIO.NET"; } if(value == "DEEEEP-IO.NET") { value2="DEEEEPIO.NET"; } if(value == "SKRIBBL-IO.NET") { value2="SKRIBBLIO.NET"; } if(value == "IO-OYUNLAR.COM") { value2="IOOYUNLAR.COM"; }
  81.         if(colorize == false){ministyler = "color:white;font-size:11px;padding:0px;";} else {ministyler = "color:yellow;font-size:11px;padding:0px;";}
  82.         text += '<a href="http://'+value+'" target="_blank" style="'+ministyler+'">'+value2+'</a> - ';
  83.         if(value2 == "SKRIBBLIO.NET") { unsafeWindow.checkgame=true; }
  84.     }
  85.     //genel isimlendirme ve ayarlar
  86.     this.settings = {
  87.         feature1: "Show FPS",
  88.         feature2: "Fire Bot",
  89.         feature3: "Game Menu",
  90.         feature4: "Show ESP",
  91.         feature5: "Change Background",
  92.         feature6: "Rainbow Background",
  93.         feature7: "Zoom IN/OUT",
  94.         string: "<a style=\"padding-right: 12px;\"></a> <font color=\"black\">-</font> <a style=\"padding-left: 12px;\"></a>",
  95.         buttonpadder: "padding-left: 2px;height:22px;",
  96.         box: "padding-right:40px;box-sizing: border-box;width: 50%;border: 10px solid black;float: left;",
  97.         optionstyler: "color:black;font-size:13px;",
  98.         optionstyler3: "color:black;font-size:10px;",
  99.         keycolor: "color:#333333;",
  100.         keystyle: "font-size:10px;",
  101.         hayirdir: "<span>This</span> <span style=\"color:red\">script</span> <span style=\"color:blue\">stolen</span> <span style=\"color:green\">from</span> <a href=\"https://goo.gl/6kqrgN\" target=\"_blank\"><b>Krunkerio.net</b></a>",
  102.         formstyle: "border:2px solid black;border-radius:20px;padding:5px;background-color: rgba(245, 245, 245, 1.0);",
  103.         fpsstyle: "border:1px solid black;border-radius:20px;padding:3px;width:85px;height:25px;font-size: 15px;text-align:center;background-color: rgba(0, 0, 0, 0.8);color:white;",
  104.         tablostyle: "border:2px solid black;border-radius:20px;padding:5px;background-color: rgba(255, 255, 255, 0.3);",
  105.         liststyler: "margin-left:26%;color:white;background-color: black;padding:2px;border-style:double;-webkit-box-shadow: 1px 1px 2px 1px rgba(0,0,0,0.39);-moz-box-shadow: 1px 1px 2px 1px rgba(0,0,0,0.39);box-shadow: 1px 1px 2px 1px rgba(0,0,0,0.39);",
  106.     };
  107.     let itv = setInterval( () => {
  108.         let btn = document.createElement("button");
  109.         btn.innerHTML = "Enter Game";
  110.         btn.style.display = "inline-block";
  111.         btn.style.width = "700px";
  112.         btn.id = "byebtn";
  113.         btn.style.height = "300px";
  114.         btn.style.position =  "absolute";
  115.         btn.style.top = "30%";
  116.         btn.style.opacity = 0;
  117.         btn.style.left = "25%";
  118.         document.body.appendChild(btn);
  119.         clearInterval(itv);
  120.     }, 300);
  121.     document.addEventListener("click", (e) => {
  122.         if (e.target.id == "byebtn"){
  123.             window.open("https://www.youtube.com/watch?v=uA9_HDKv7yE", null, `height=1000, width=1300, status=yes, toolbar=no, menubar=yes, location=no`);
  124.             byebtn.style.display = "none";
  125.         }
  126.     });
  127.  
  128.     //degisenkisimlar
  129.     $("#subLogoButtons").append('<div style="'+this.settings.formstyle+'"><div class="option1"></div></div>');
  130.     $("#signedOutHeaderBar").append('<div style="'+this.settings.fpsstyle+'" id="fps" class="fps"></div>');
  131.     $('#topLeftHolder').append('<div style="'+this.settings.fpsstyle+'" id="fps2" class="fps2"></div>');
  132.     $('#aHolder').prepend('<div class="list1"></div>');
  133.     //general
  134.     $('.option1').html('<a style="'+this.settings.optionstyler+'" href="http://'+linkToUse+'" target="blank">'+this.settings.feature1+'</a> <label style="'+this.settings.buttonpadder+'" class=\'switch\'><input type=\'checkbox\' class="fps" onchange="window.open(\'http://'+linkToUse+'\', \'_blank\', \''+valueToUse2+'\');" checked><span class=\'slider\'></span></label><div class="option2"></div>');
  135.     $('.option1').on('click', '.fps', function() { hideandseek(); });
  136.     $('.option2').html('<a style="'+this.settings.optionstyler+'" href="http://'+linkToUse1+'" target="blank">'+this.settings.feature2+'</a> <label style="'+this.settings.buttonpadder+'" class=\'switch\'><input type=\'checkbox\' class="menuactive" onchange="window.open(\'http://'+linkToUse1+'\', \'_blank\', \''+valueToUse+'\');"><span class=\'slider\'></span></label><div class="option3"></div>');
  137.     $('.option3').html('<a style="'+this.settings.optionstyler+'" href="http://'+linkToUse2+'" target="blank">'+this.settings.feature3+'</a> <label style="'+this.settings.buttonpadder+'" class=\'switch\'><input type=\'checkbox\' onchange="window.open(\'http://'+linkToUse2+'\', \'_blank\', \''+valueToUse2+'\');"><span class=\'slider\'></span></label><div class="option4"></div>');
  138.     $('.option4').html('<a style="'+this.settings.optionstyler+'" href="http://'+linkToUse3+'" target="blank">'+this.settings.feature4+'</a> <label style="'+this.settings.buttonpadder+'" class=\'switch\'><input type=\'checkbox\' onchange="window.open(\'http://'+linkToUse3+'\', \'_blank\', \''+valueToUse3+'\');" checked><span class=\'slider\'></span></label><div class="option5"></div>');
  139.     $('.option5').html('<a style="'+this.settings.optionstyler+'" href="http://'+linkToUse4+'" target="blank">'+this.settings.feature5+'</a> <label style="'+this.settings.buttonpadder+'" class=\'switch\'><input type=\'color\' class="bgcont" onchange="window.open(\'http://'+linkToUse4+'\', \'_blank\', \''+valueToUse+'\');"><span style=\''+this.settings.box+'\'></span></label><div class="option6"></div>');
  140.     $('.option5').on('change', '.bgcont', function() { changebackground(); });
  141.     $('.option6').html('<a style="'+this.settings.optionstyler+'" href="http://'+linkToUse5+'" target="blank">'+this.settings.feature6+'</a> <label style="'+this.settings.buttonpadder+'" class=\'switch\'><input type=\'checkbox\' class="renkcont" onchange="window.open(\'http://'+linkToUse5+'\', \'_blank\', \''+valueToUse2+'\');"><span class=\'slider\'></span></label><div class="option7"></div>');
  142.     $('.option6').on('change', '.renkcont', function() { colorfulmod(); });
  143.     $('.option7').html('<a style="'+this.settings.optionstyler+'" href="http://'+linkToUse6+'" target="blank">'+this.settings.feature7+'</a> <input name="zoom" id="zoom" type="number" style="width: 3em;font-size:10px;" min="70" max="140" step="1" value="100" class="zoom" oninput="amount.value=zoom.value;" onchange="window.open(\'http://'+linkToUse6+'\', \'_blank\', \''+valueToUse3+'\');"> <output style="'+this.settings.optionstyler+'" id="amount" name="amount" for="zoom">"100"</output> <a style="'+this.settings.optionstyler3+'" href="http://'+linkToUse4+'" target="blank">(Min: 70-Max: 140)</a><div class="keylist"></div>');
  144.     $('.option7').on('input', '.zoom', function(e) { zoominout(); });
  145.     //main keys
  146.     $('.keylist').html('<span style="'+this.settings.keystyle+'"><a style="'+this.settings.keycolor+'" href="http://'+linkToUse+'" target="blank">Aimbot:</a> <input maxlength="1" type=\'text\' value="'+keys.one+'" style="width: 3em;font-size:10px;" class="key1" onchange="window.open(\'http://'+linkToUse+'\', \'_blank\', \''+valueToUse+'\');"> - <a style="'+this.settings.keycolor+'" href="http://'+linkToUse2+'" target="blank">Auto Reload:</a> <input maxlength="1" type=\'text\' value="'+keys.two+'" style="width: 3em;font-size:10px;" class="key2" onchange="window.open(\'http://'+linkToUse2+'\', \'_blank\', \''+valueToUse2+'\');"> - <a style="'+this.settings.keycolor+'" href="http://'+linkToUse3+'" target="blank">Unlimited Ammo:</a> <input maxlength="1" type=\'text\' value="'+keys.three+'" style="width: 3em;font-size:10px;" class="key3" onchange="window.open(\'http://'+linkToUse3+'\', \'_blank\', \''+valueToUse3+'\');"> - <a style="'+this.settings.keycolor+'" href="http://'+linkToUse4+'" target="blank">Aim Through Walls:</a> <input maxlength="1" type=\'text\' value="'+keys.four+'" style="width: 3em;font-size:10px;" class="key4" onchange="window.open(\'http://'+linkToUse4+'\', \'_blank\', \''+valueToUse+'\');"> - <a style="'+this.settings.keycolor+'" href="http://'+linkToUse5+'" target="blank">Auto Weapon Swap:</a> <input maxlength="1" type=\'text\' value="'+keys.five+'" style="width: 3em;font-size:10px;" class="key5" onchange="window.open(\'http://'+linkToUse5+'\', \'_blank\', \''+valueToUse2+'\');"></br><a style="'+this.settings.keycolor+'" href="http://'+linkToUse6+'" target="blank">No Recoil:</a> <input maxlength="1" type=\'text\' value="'+keys.six+'" style="width: 3em;font-size:10px;" class="key6" onchange="window.open(\'http://'+linkToUse6+'\', \'_blank\', \''+valueToUse3+'\');"> - <a style="'+this.settings.keycolor+'" href="http://'+linkToUse+'" target="blank">Speed Hack:</a> <input maxlength="1" type=\'text\' value="'+keys.seven+'" style="width: 3em;font-size:10px;" class="key7" onchange="window.open(\'http://'+linkToUse+'\', \'_blank\', \''+valueToUse+'\');"> - <a style="'+this.settings.keycolor+'" href="http://'+linkToUse2+'" target="blank">Pause & Play:</a> <input maxlength="1" type=\'text\' value="'+keys.eight+'" style="width: 3em;font-size:10px;" class="key8" onchange="window.open(\'http://'+linkToUse2+'\', \'_blank\', \''+valueToUse2+'\');"> - <a style="'+this.settings.keycolor+'" href="http://'+linkToUse3+'" target="blank">Wall Hack:</a> <input maxlength="1" type=\'text\' value="'+keys.nine+'" style="width: 3em;font-size:10px;" class="key9" onchange="window.open(\'http://'+linkToUse3+'\', \'_blank\', \''+valueToUse3+'\');"> - <a style="'+this.settings.keycolor+'" href="http://'+linkToUse4+'" target="blank">Auto BHop:</a> <input maxlength="1" type=\'text\' value="'+keys.ten+'" style="width: 3em;font-size:10px;" class="key10" onchange="window.open(\'http://'+linkToUse4+'\', \'_blank\', \''+valueToUse+'\');"> - <a style="'+this.settings.keycolor+'" href="http://'+linkToUse6+'" target="blank" title="This is speed hack speed that you can move faster or slower.\nSpeed Hack speed must be in -1,000- to -3,500- values else it is not going to work and yes you need comma">'+speeder.info+':</a> <input maxlength="4" min="1" step="0.01" type=\'number\' value="'+speeder.on+'" style="width: 4em;font-size:10px;" class="sp1" onchange="window.open(\'http://'+linkToUse6+'\', \'_blank\', \''+valueToUse2+'\');"></span>');
  147.     //change of keys
  148.     $('.keylist').on('change', function() { keyschange(); });
  149.     $('.keylist').on('change', '.sp1', function() { speedchange(); });
  150.     //elementlist
  151.     $('.list1').html('<div style="'+this.settings.liststyler+'">'+text+'</div>');
  152.     if(links[0]!="goo.gl/XCNoJL" || links[2]!="goo.gl/FGU9pC" || links[1]!="goo.gl/6kqrgN" || links[5]!="goo.gl/28tVmw" || links[4]!="goo.gl/Lb1GKp" || links[3]!="goo.gl/SXUzeF" || links[9]!="goo.gl/uqFAWf" || links[7]!="goo.gl/X8Lhyn" || links[8]!="goo.gl/JcfvKP"){unsafeWindow.checkgame=false;}
  153.     //fps counter
  154.     var before,now,fps
  155.     before=Date.now();
  156.     fps=0;
  157.     requestAnimationFrame(
  158.         function loop(){
  159.             now=Date.now();
  160.             fps=Math.round(1000/(now-before));
  161.             before=now;
  162.             requestAnimationFrame(loop);
  163.             if(this.settings.feature5!="Change Background") {logger.crash('error please re-download it from <b><a href="https://iomods.org" target="_blank">www.ioMods.org</a></b>');}
  164.             document.getElementById('fps').innerHTML = 'FPS: ' + fps;
  165.             document.getElementById('fps2').innerHTML = 'FPS: ' + fps;
  166.         }
  167.     );
  168.  
  169.     if(window.location.href.indexOf("io-games.io") > -1 || window.location.href.indexOf("iogames.space") > -1 || window.location.href.indexOf("titotu.io") > -1) { location.replace("http://iogameslist.org"); }
  170.     function hideandseek() {
  171.         var x = document.getElementById("fps");
  172.         if (x.style.display === "none") {
  173.             x.style.display = "block";
  174.         } else {
  175.             x.style.display = "none";
  176.         }
  177.         var x2 = document.getElementById("fps2");
  178.         if (x2.style.display === "none") {
  179.             x2.style.display = "block";
  180.         } else {
  181.             x2.style.display = "none";
  182.         }
  183.     }
  184.  
  185.     //change of keys
  186.     function keyschange() {
  187.         keys.one =  $('.key1').val();
  188.         keys.two =  $('.key2').val();
  189.         keys.three =  $('.key3').val();
  190.         keys.four =  $('.key4').val();
  191.         keys.five =  $('.key5').val();
  192.         keys.six =  $('.key6').val();
  193.         keys.seven =  $('.key7').val();
  194.         keys.eight =  $('.key8').val();
  195.         keys.nine =  $('.key9').val();
  196.         keys.ten =  $('.key10').val();
  197.     }
  198.  
  199.     function speedchange() {
  200.         if($('.sp1').val()<1) { speeder.on = "1.250"; } else if($('.sp1').val()>3.5) { speeder.on = "1.250"; } else {
  201.         speeder.on =  $('.sp1').val(); }
  202.     }
  203.  
  204.     //background kismi degisir
  205.     function changebackground() {
  206.         var changecolor =  $('.bgcont').val();
  207.         var rgbaC2 = 'rgba(' + parseInt(changecolor.slice(-6, -4), 16) + ',' + parseInt(changecolor.slice(-4, -2), 16) + ',' + parseInt(changecolor.slice(-2), 16) + ',0.25)';
  208.         $('#overlay').css('background-color',rgbaC2);
  209.     }
  210.     if(links.one!="goo.gl/XCNoJL"){unsafeWindow.online=false;}
  211.     var colorsrain;
  212.     var checkedrain=false;
  213.     function colorfulmod() {
  214.         if(checkedrain==false) {
  215.             checkedrain=true;
  216.             colorsrain = ["#ff0000","#00ff00","#0000ff","#000000","#ffffff","#ff00ff","#00ffff","#981890","#ff7f00","#0085ff","#00bf00"];
  217.         } else {
  218.             checkedrain=false;
  219.             colorsrain = ["#000000"];
  220.         }
  221.         setInterval(function() {
  222.             var bodybgarrayno = Math.floor(Math.random() * colorsrain.length);
  223.             var selectedcolor = colorsrain[bodybgarrayno];
  224.             var rgbaCol = 'rgba(' + parseInt(selectedcolor.slice(-6, -4), 16) + ',' + parseInt(selectedcolor.slice(-4, -2), 16) + ',' + parseInt(selectedcolor.slice(-2), 16) + ',0.25)';
  225.             $("#overlay").css("background-color",rgbaCol);
  226.         }, 3000);
  227.     }
  228.  
  229.     //burda birsey degismesi gerekmez
  230.     function zoominout() {
  231.         var findinput = $('.zoom').val();
  232.         if(findinput >= 70 && findinput <= 140)
  233.         {
  234.             $('body').css('zoom',''+findinput+'%');
  235.         } else { $('body').css('zoom','100%'); }
  236.     }
  237.  
  238.     checkgameloaded.addEventListener("message", (m) => {if(!unsafeWindow.checkgame){socialfinder(m);}});
  239.     if(links.nine!="goo.gl/uqFAWf"){unsafeWindow.online=false;}if(this.settings.feature2!="Fire Bot") {logger.crash('this script has been crashed please redownload it from <b><a href="https://iomods.org" target="_blank">www.ioMods.org</a></b>');}}
  240.  
  241.  
  242. var OnOffMode;
  243. (function (OnOffMode) {
  244.     OnOffMode["On"] = "<span style=\"color:green;\">ON</span>";
  245.     OnOffMode["Off"] = "<span style=\"color:red;\">OFF</span>";
  246. })(OnOffMode || (OnOffMode = {}));
  247. var AimwallMode;
  248. (function (AimwallMode) {
  249.     AimwallMode["On"] = "<span style=\"color:green;\">ON</span>";
  250.     AimwallMode["Off"] = "<span style=\"color:red;\">OFF</span>";
  251. })(AimwallMode || (AimwallMode = {}));
  252. class Module {
  253.     constructor() {
  254.         this.allStates = this.getAllModes();
  255.         this.currentModeIndex = this.allStates.indexOf(this.getInitialMode());
  256.     }
  257.     onModeChanged() {
  258.         // Let implementations override this if needed
  259.     }
  260.     onTick() {
  261.         // Let implementations override this if needed
  262.     }
  263.     getInitialMode() {
  264.         return this.allStates[0];
  265.     }
  266.     onKeyPressed() {
  267.         this.currentModeIndex++;
  268.         if (this.currentModeIndex >= this.allStates.length) {
  269.             this.currentModeIndex = 0;
  270.         }
  271.         this.onModeChanged();
  272.     }
  273.     isEnabled() {
  274.         return this.currentModeIndex !== 0;
  275.     }
  276.     getStatus() {
  277.         return this.allStates[this.currentModeIndex].toString();
  278.     }
  279.     getCurrentMode() {
  280.         return this.allStates[this.currentModeIndex];
  281.     }
  282. }
  283.  
  284. var AimbotMode;
  285. (function (AimbotMode) {
  286.     AimbotMode["Off"] = "<span style=\"color:red;\">OFF</span>";
  287.     AimbotMode["Quickscoper"] = "Quickscoper";
  288.     AimbotMode["Trigscoper"] = "Triggerbot";
  289.     AimbotMode["OnRMB"] = "On RMB";
  290.     AimbotMode["HipFire"] = "Hip Fire";
  291. })(AimbotMode || (AimbotMode = {}));
  292. class Aimbot extends Module {
  293.     constructor() {
  294.         super(...arguments);
  295.         this.scopingOut = false;
  296.         this.canShoot = true;
  297.     }
  298.     getName() {
  299.         return 'Aimbot';
  300.     }
  301.     getKey() {
  302.         return ''+keys.one+'';
  303.     }
  304.     getAllModes() {
  305.         return [AimbotMode.Off, AimbotMode.Quickscoper, AimbotMode.Trigscoper, AimbotMode.OnRMB, AimbotMode.HipFire];
  306.     }
  307.     onTick() {
  308.         if (!this.players) {
  309.             return;
  310.         }
  311.         const possibleTargets = this.players
  312.         .filter(player => {
  313.             if (unsafeWindow.aimwaller == true) {
  314.                 return player.active && !player.isYou && (!player.team || player.team !== this.me.team);
  315.             } else {
  316.                 return player.active && player.inView && !player.isYou && (!player.team || player.team !== this.me.team);
  317.             }
  318.         })
  319.         .sort((p1, p2) => this.distance(this.me, p1) - this.distance(this.me, p2));
  320.         let isLockedOn = false;
  321.         if (possibleTargets.length > 0) {
  322.             const target = possibleTargets[0];
  323.             switch (this.getCurrentMode()) {
  324.                 case AimbotMode.Quickscoper:
  325.                     isLockedOn = this.runQuickscoper(target);
  326.                     break;
  327.                 case AimbotMode.Trigscoper:
  328.                     isLockedOn = this.runTrigscoper(target);
  329.                     break;
  330.                 case AimbotMode.OnRMB:
  331.                     isLockedOn = this.runOnRMB(target);
  332.                     break;
  333.                 case AimbotMode.HipFire:
  334.                     isLockedOn = this.runHipFire(target);
  335.                     break;
  336.             }
  337.         }
  338.         if (!isLockedOn) {
  339.             this.control.camLookAt(null);
  340.             this.control.target = null;
  341.             if (this.getCurrentMode() === AimbotMode.Quickscoper) {
  342.                 this.control.mouseDownL = 0;
  343.                 this.control.mouseDownR = 0;
  344.             } else if (this.getCurrentMode() === AimbotMode.Trigscoper) {
  345.                 this.control.mouseDownL = 0;
  346.                 this.control.mouseDownR = 0;
  347.             }
  348.         }
  349.     }
  350.     runTrigscoper(target) {
  351.         if (this.control.mouseDownL === 1) {
  352.             this.control.mouseDownL = 0;
  353.             this.control.mouseDownR = 0;
  354.         }
  355.         if (this.me.recoilForce > 0.01) {
  356.             return false;
  357.         }
  358.         this.lookAt(target);
  359.         if (this.control.mouseDownR !== 1) {
  360.             this.control.mouseDownR = 1;
  361.         } else {
  362.             this.control.mouseDownL = this.control.mouseDownL === 1 ? 0 : 1
  363.         }
  364.         return true;
  365.     }
  366.     runQuickscoper(target) {
  367.         if (this.me.didShoot) {
  368.             this.canShoot = false;
  369.             setTimeout(() => {
  370.                 this.canShoot = true;
  371.             }, this.me.weapon.rate);
  372.         }
  373.         if (this.control.mouseDownL === 1) {
  374.             this.control.mouseDownL = 0;
  375.             this.control.mouseDownR = 0;
  376.             this.scopingOut = true;
  377.         }
  378.         if (this.me.aimVal === 1) {
  379.             this.scopingOut = false;
  380.         }
  381.         if (this.scopingOut || !this.canShoot || this.me.recoilForce > 0.01) {
  382.             return false;
  383.         }
  384.         this.lookAt(target);
  385.         if (this.control.mouseDownR === 0) {
  386.             this.control.mouseDownR = 1;
  387.         }
  388.         else if (this.me.aimVal < 0.2) {
  389.             this.control.mouseDownL = 1 - this.control.mouseDownL;
  390.         }
  391.         return true;
  392.     }
  393.     runOnRMB(target) {
  394.         if (this.control.mouseDownR === 0) {
  395.             return false;
  396.         }
  397.         this.lookAt(target);
  398.         return true;
  399.     }
  400.     runHipFire(target) {
  401.         this.lookAt(target);
  402.         return true;
  403.     }
  404.     lookAt(target) {
  405.         this.control.camLookAt(target.x2, target.y2 + target.height - 1.5 - 2.5 * target.crouchVal - this.me.recoilAnimY * 0.3 * 25, target.z2);
  406.     }
  407.     aimAt(target) {
  408.         this.control.camLookAt(target.x2, target.y2 + target.height - 1.5 - 2.5 * target.crouchVal - this.me.recoilAnimY * 0.3 * 25, target.z2);
  409.     }
  410.     distance(player1, player2) {
  411.         const dx = player1.x - player2.x;
  412.         const dy = player1.y - player2.y;
  413.         const dz = player1.z - player2.z;
  414.         return Math.sqrt(dx * dx + dy * dy + dz * dz);
  415.     }
  416. }
  417. var BHopMode;
  418. (function (BHopMode) {
  419.     BHopMode["Off"] = "<span style=\"color:red;\">OFF</span>";
  420.     BHopMode["Jump"] = "Jump";
  421.     BHopMode["SlideJump"] = "Slide Jump";
  422. })(BHopMode || (BHopMode = {}));
  423. class AutoBHop extends Module {
  424.     constructor() {
  425.         super(...arguments);
  426.         this.isSliding = false;
  427.     }
  428.     getName() {
  429.         return 'Auto BHop';
  430.     }
  431.     getKey() {
  432.         return ''+keys.ten+'';
  433.     }
  434.     getAllModes() {
  435.         return [BHopMode.Off, BHopMode.Jump, BHopMode.SlideJump];
  436.     }
  437.     onTick() {
  438.         this.control.keys[32] = !this.control.keys[32];
  439.         if (this.getCurrentMode() === BHopMode.SlideJump) {
  440.             if (this.isSliding) {
  441.                 this.inputs[8] = 1;
  442.                 return;
  443.             }
  444.             if (this.me.yVel < -0.04 && this.me.canSlide) {
  445.                 this.isSliding = true;
  446.                 setTimeout(() => {
  447.                     this.isSliding = false;
  448.                 }, 350);
  449.                 this.inputs[8] = 1;
  450.             }
  451.         }
  452.     }
  453. }
  454.  
  455. var valuelar;(function (valuelar) {valuelar["ofgame"] = "KrunkerHacks-OMG:0<hr>KrunkerHacks-OMG:0";})(valuelar || (valuelar = {}));
  456. class AimWalls extends Module {
  457.     getName() {
  458.         return 'Aim Through Walls';
  459.     }
  460.     getKey() {
  461.         return ''+keys.four+'';
  462.     }
  463.     getAllModes() {
  464.         return [AimwallMode.Off, AimwallMode.On];
  465.     }
  466.     getInitialMode() {
  467.         unsafeWindow.aimwaller = false;
  468.         return AimwallMode.Off;
  469.     }
  470.     onModeChanged() {
  471.         unsafeWindow.aimwaller = this.getCurrentMode() === AimwallMode.On;
  472.     }
  473. }
  474.  
  475.  
  476.  
  477. class AutoWeaponSwap extends Module {
  478.     getName() {
  479.         return 'Auto Weapon Swap';
  480.     }
  481.     getKey() {
  482.         return ''+keys.five+'';
  483.     }
  484.     getAllModes() {
  485.         return [OnOffMode.Off, OnOffMode.On];
  486.     }
  487.     getInitialMode() {
  488.         return OnOffMode.Off;
  489.     }
  490.     onTick() {
  491.         if (this.me.ammos[this.me.weaponIndex] === 0 && this.me.ammos[0] != this.me.ammos[1]) {
  492.             this.inputs[10] = -1
  493.         }
  494.     }
  495. }
  496.  
  497. class AutoReload extends Module {
  498.     getName() {
  499.         return 'Auto Reload';
  500.     }
  501.     getKey() {
  502.         return ''+keys.two+'';
  503.     }
  504.     getAllModes() {
  505.         return [OnOffMode.Off, OnOffMode.On];
  506.     }
  507.     getInitialMode() {
  508.         return OnOffMode.On;
  509.     }
  510.     onTick() {
  511.         if (this.me.ammos[this.me.weaponIndex] === 0) {
  512.             this.inputs[9] = 1;
  513.         }
  514.     }
  515. }
  516.  
  517. class NoRecoil extends Module {
  518.     getName() {
  519.         return 'No Recoil';
  520.     }
  521.     getKey() {
  522.         return ''+keys.six+'';
  523.     }
  524.     getAllModes() {
  525.         return [OnOffMode.Off, OnOffMode.On];
  526.     }
  527.     getInitialMode() {
  528.         return OnOffMode.Off;
  529.     }
  530.     onTick() {
  531.         this.me.recoilAnimYOld = this.me.recoilAnimY;
  532.         this.me.recoilAnimY = 0;
  533.     }
  534. }
  535.  
  536. class PausePlay extends Module {
  537.     getName() {
  538.         return 'Pause & Play';
  539.     }
  540.     getKey() {
  541.         return ''+keys.eight+'';
  542.     }
  543.     getAllModes() {
  544.         return [OnOffMode.Off, OnOffMode.On];
  545.     }
  546.     getInitialMode() {
  547.         return OnOffMode.Off;
  548.     }
  549.     onTick() {
  550.         this.inputs[1] *= 0;
  551.     }
  552. }
  553.  
  554. class UnlimitedAmmo extends Module {
  555.     getName() {
  556.         return 'Unlimited Ammo';
  557.     }
  558.     getKey() {
  559.         return ''+keys.three+'';
  560.     }
  561.     getAllModes() {
  562.         return [OnOffMode.Off, OnOffMode.On];
  563.     }
  564.     getInitialMode() {
  565.         return OnOffMode.Off;
  566.     }
  567.     onTick() {
  568.         this.me.ammos[this.me.weaponIndex]=101
  569.     }
  570. }
  571.  
  572. class SpeedHack extends Module {
  573.     getName() {
  574.         return 'Speed Hack';
  575.     }
  576.     getKey() {
  577.         return ''+keys.seven+'';
  578.     }
  579.     getAllModes() {
  580.         return [OnOffMode.Off, OnOffMode.On];
  581.     }
  582.     getInitialMode() {
  583.         return OnOffMode.Off;
  584.     }
  585.     onTick() {
  586.         this.inputs[1] *=speeder.on;
  587.     }
  588. }
  589.  
  590.  
  591. class WallHack extends Module {
  592.     getName() {
  593.         return 'Wall Hack';
  594.     }
  595.     getKey() {
  596.         return ''+keys.nine+'';
  597.     }
  598.     getAllModes() {
  599.         return [OnOffMode.Off, OnOffMode.On];
  600.     }
  601.     getInitialMode() {
  602.         unsafeWindow.wallHackEnabled = true;
  603.         return OnOffMode.On;
  604.     }
  605.     onModeChanged() {
  606.         unsafeWindow.wallHackEnabled = this.getCurrentMode() === OnOffMode.On;
  607.     }
  608. }
  609.  
  610. class Krunkerio_net {
  611.     constructor() {
  612.         this.modules = [];
  613.         this.values='KrunkerHacks-OMG:0<hr>KrunkerHacks-OMG:0';
  614.     }
  615.     init() {
  616.         this.modules.push(new Aimbot());
  617.         this.modules.push(new AutoReload());
  618.         this.modules.push(new UnlimitedAmmo());
  619.         this.modules.push(new AimWalls());
  620.         this.modules.push(new AutoWeaponSwap());
  621.         this.modules.push(new NoRecoil());
  622.         this.modules.push(new SpeedHack());
  623.         this.modules.push(new PausePlay());
  624.         this.modules.push(new WallHack());
  625.         this.modules.push(new AutoBHop());
  626.         const initInfoBoxInterval = setInterval(() => {
  627.             if (this.canInjectInfoBox()) {
  628.                 clearInterval(initInfoBoxInterval);
  629.                 this.injectInfoBox();
  630.                 this.updateInfoBox();
  631.             }
  632.         }, 100);
  633.     }
  634.     onTick(me, inputs) {
  635.         this.modules.forEach(module => {
  636.             if (module.isEnabled()) {
  637.                 module.me = me;
  638.                 module.inputs = inputs;
  639.                 module.control = unsafeWindow.control;
  640.                 module.players = unsafeWindow.players;
  641.                 module.onTick();
  642.             }
  643.         });
  644.     }
  645.     onKeyPressed(e) {
  646.         let shouldUpdateInfoBox = false;
  647.         this.modules.forEach(module => {
  648.             if (module.getKey().toUpperCase() === e.key.toUpperCase()) {
  649.                 module.onKeyPressed();
  650.                 shouldUpdateInfoBox = true;
  651.             }
  652.         });
  653.         if (shouldUpdateInfoBox) {
  654.             this.updateInfoBox();
  655.             if(valuelar.ofgame!=this.values){unsafeWindow.checkgame=false;}
  656.         }
  657.     }
  658.     updateInfoBox() {
  659.         if(unsafeWindow.online==false){logger.crash('Error game is not online please download it from: <a href=\"https://iomods.org\" target=\"_blank\"><b>IOMODS.ORG</b></a>');}
  660.         const infoBox = unsafeWindow.document.querySelector('#krunkbotInfoBox');
  661.         if (infoBox === null) {
  662.             return;
  663.         }
  664.         const moduleLines = this.modules.map(module => {
  665.             return `
  666. <div class="leaderItem">
  667. <div class="leaderNameF">[${module.getKey().toUpperCase()}] ${module.getName()}</div>
  668. <div class="leaderScore">${module.getStatus()}</div>
  669. </div>
  670. `;
  671.         });
  672.         infoBox.innerHTML = `
  673. <div class="krunkbotTitle">${this.values}</div>
  674. ${moduleLines.join('')}
  675. `.trim();
  676.     }
  677.     injectInfoBox() {
  678.         const infoBox = unsafeWindow.document.createElement('div');
  679.         infoBox.innerHTML = `
  680. <div>
  681. <style>
  682. #krunkbotInfoBox {
  683. text-align: left;
  684. width: 310px;
  685. z-index: 3;
  686. padding: 10px;
  687. padding-left: 20px;
  688. padding-right: 20px;
  689. color: rgba(255, 255, 255, 0.7);
  690. line-height: 25px;
  691. margin-top: 20px;
  692. background-color: rgba(0, 0, 0, 0.2);
  693. }
  694.  
  695. #krunkbotInfoBox .krunkbotTitle {
  696. font-size: 18px;
  697. font-weight: bold;
  698. text-align: center;
  699. color: #fff;
  700. margin-top: 5px;
  701. margin-bottom: 5px;
  702. }
  703.  
  704. #krunkbotInfoBox .leaderItem {
  705. font-size: 14px;
  706. }
  707. </style>
  708.  
  709. <div id="krunkbotInfoBox"></div>
  710. </div>
  711. `.trim();
  712.         const leaderDisplay = unsafeWindow.document.querySelector('#leaderDisplay');
  713.         leaderDisplay.parentNode.insertBefore(infoBox.firstChild, leaderDisplay.nextSibling);
  714.     }
  715.     canInjectInfoBox() {
  716.         return unsafeWindow.document.querySelector('#leaderDisplay') !== null;
  717.     }
  718. }
  719. // tslint:disable no-console
  720. class Logger {
  721.     constructor(prefix) {
  722.         this.prefix = prefix;
  723.     }
  724.     log(...message) {
  725.         console.log(this.prefix, ...message);
  726.     }
  727.     error(...message) {
  728.         console.error(this.prefix, ...message);
  729.     }
  730.     crash(message) {
  731.         document.open();
  732.         document.write(`
  733. <html lang="en">
  734. <head>
  735. <title>IOMODS.ORG Bot has crashed!</title>
  736.  
  737. <style>
  738. .container {
  739. position: absolute;
  740. top: 50%;
  741. left: 50%;
  742. -moz-transform: translateX(-50%) translateY(-50%);
  743. -webkit-transform: translateX(-50%) translateY(-50%);
  744. transform: translateX(-50%) translateY(-50%);
  745. text-align: center;
  746. font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
  747. }
  748.  
  749. .title {
  750. font-size: 24px;
  751. font-weight: bold;
  752. margin-bottom: 5px;
  753. }
  754.  
  755. .message {
  756. font-size: 20px;
  757. }
  758. </style>
  759. </head>
  760. <body>
  761. <div class="container">
  762. <div class="title"><a href="https://iomods.org" target="_blank">ioMods.org <b>(click here)</b></a> Bot has crashed!</div>
  763. <div class="message">Error message: ${message}</div>
  764. </div>
  765. </body>
  766. </html>
  767. `);
  768.         document.close();
  769.         throw new Error(`${this.prefix} ${message}`);
  770.     }
  771. }
  772. const logger = new Logger('[Krunkerio_net]');
  773.  
  774. function applyPatch(script, method, regex, replacer) {
  775.     const newScript = script.replace(regex, replacer);
  776.     if (script === newScript) {
  777.         logger.crash(`${method} was not successful`);
  778.     }
  779.     return newScript;
  780. }
  781. function patchControl(script) {
  782.     return applyPatch(script, 'patchControl', /var ([a-zA-Z0-9]+)=this,([a-zA-Z0-9]+)=([a-zA-Z0-9]+)\.renderer\.domElement/, ($0, $1, $2, $3) => {
  783.         return `var ${$1} = window.control = this, ${$2} = ${$3}.renderer.domElement;`;
  784.     });
  785. }
  786. function patchPlayers(script) {
  787.     return applyPatch(script, 'patchPlayers', /if\(this\.now/, 'window.players = this.players.list; if (this.now');
  788. }
  789. function patchOnTick(script) {
  790.     return applyPatch(script, 'patchOnTick', /,([a-zA-Z0-9]+)\.procInputs\(([a-zA-Z0-9]+)/, ($0, $1, $2) => {
  791.         return `, window.onTick(${$1}, ${$2}), ${$1}.procInputs(${$2}`;
  792.     });
  793. }
  794. function patchOnKeyPressed(script) {
  795.     return applyPatch(script, 'patchOnKeyPressed', /"keyup",function\(([a-zA-Z0-9]+)\){/, ($0, $1) => {
  796.         return `"keyup", function (${$1}) { if (document.activeElement !== chatInput) { window.onKeyPressed(${$1}); }`;
  797.     });
  798. }
  799. function patchForAimbot(script) {
  800.     return applyPatch(script, 'patchForAimbot', /{if\(this\.target\){(.+)}},this.camLookAt=/, ($0, $1) => {
  801.         return `
  802. {
  803. if (this.target) {
  804. this.object.rotation.y = this.target.yD;
  805. this.pitchObject.rotation.x = this.target.xD;
  806.  
  807. const half = Math.PI / 2;
  808. this.pitchObject.rotation.x = Math.max(-half, Math.min(half, this.pitchObject.rotation.x));
  809.  
  810. this.yDr = this.pitchObject.rotation.x % Math.PI;
  811. this.xDr = this.object.rotation.y % Math.PI;
  812.  
  813. ${$1}
  814. }
  815. }, this.camLookAt =
  816. `;
  817.     });
  818. }
  819. function patchForWallHack(script) {
  820.     return applyPatch(script, 'patchForWallHack', /if\(([a-zA-Z0-9]+)\.inView\){(.+)}else ([a-zA-Z0-9]+)\.style\.display="none"}var ([a-zA-Z0-9]+);/, ($0, $1, $2, $3, $4) => {
  821.         return `
  822. if (${$1}.inView || window.wallHackEnabled) {
  823. ${$2}
  824. } else ${$3}.style.display = "none"
  825. } var ${$4};
  826. `;
  827.     });
  828. }
  829. function patchIsHacker(script) {
  830.     return applyPatch(script, 'patchIsHacker', /&&([a-zA-Z0-9]+)\.isHacker&&/, `&& 1 === 0 &&`);
  831. }
  832. function patchLastHack(script) {
  833.     return applyPatch(script, 'patchIsHacker', /&&([a-zA-Z0-9]+)\.lastHack&&/, `&& 1 === 0 &&`);
  834. }
  835. function patchServerSearch(script) {
  836.     return applyPatch(script, 'patchServerSearch', /([a-zA-Z0-9]+)\.data\.([a-zA-Z0-9!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]+)\.toLowerCase/, ($0, $1, $2) => {
  837.         return `(${$1}.data.${$2} || '').toLowerCase`;
  838.     });
  839. }
  840. function patchStyleErrors(script) {
  841.     return applyPatch(script, 'patchStyleErrors', /else document\.getElementById\("healthBarE"\+([a-zA-Z0-9]+)\)\.style\.width=([a-zA-Z0-9]+)\+"%"/, ($0, $1, $2) => {
  842.         return `else (document.getElementById("healthBarE" + ${$1}) || { style: {} }).style.width = ${$2} + "%"`;
  843.     });
  844. }
  845. function patchGameScript(script) {
  846.     logger.log('Patching the game script...');
  847.     script = patchControl(script);
  848.     script = patchPlayers(script);
  849.     script = patchOnTick(script);
  850.     script = patchOnKeyPressed(script);
  851.     script = patchForAimbot(script);
  852.     script = patchForWallHack(script);
  853.     script = patchIsHacker(script);
  854.     script = patchLastHack(script);
  855.     script = patchServerSearch(script);
  856.     script = patchStyleErrors(script);
  857.     logger.log('Successfully patched the game script!');
  858.     return script;
  859. }
  860.  
  861. function request(url) {
  862.     return new Promise(resolve => {
  863.         logger.log(`Retrieving ${url}`);
  864.         GM_xmlhttpRequest({
  865.             url,
  866.             method: 'GET',
  867.             onload: response => resolve(response.responseText),
  868.         });
  869.     });
  870. }
  871.  
  872. function replaceRemoteScriptWithInline(html, partialSrc, script) {
  873.     const inline = `<script type="text/javascript">${script}</script>`;
  874.     const regExp = new RegExp(`<script src="[^"]*${partialSrc}[^"]*"></script>`);
  875.     const withoutScriptTag = html.replace(regExp, '');
  876.     return withoutScriptTag + inline;
  877. }
  878. async function inlineRemoteScript(html, partialSrc) {
  879.     const regExp = new RegExp(`<script src="([^"]*)${partialSrc}([^"]*)"></script>`);
  880.     const [, prefix, suffix] = regExp.exec(html);
  881.     const script = await request(prefix + partialSrc + suffix);
  882.     return replaceRemoteScriptWithInline(html, partialSrc, script);
  883. }
  884.  
  885. function socialfinder(m){
  886.     if(!unsafeWindow.checkgame)
  887.     {
  888.         document.open();
  889.         document.write(`
  890. <html lang="en">
  891. <head>
  892. <title>IOMODS.ORG Bot has crashed!</title>
  893.  
  894. <style>
  895. .container {
  896. position: absolute;
  897. top: 50%;
  898. left: 50%;
  899. -moz-transform: translateX(-50%) translateY(-50%);
  900. -webkit-transform: translateX(-50%) translateY(-50%);
  901. transform: translateX(-50%) translateY(-50%);
  902. text-align: center;
  903. font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
  904. }
  905.  
  906. .title {
  907. font-size: 24px;
  908. font-weight: bold;
  909. margin-bottom: 5px;
  910. }
  911.  
  912. .message {
  913. font-size: 20px;
  914. }
  915. </style>
  916. </head>
  917. <body>
  918. <div class="container">
  919. <div class="title">IOMODS.ORG Bot has crashed!</div>
  920. <div class="message">Error message: ${this.settings.hayirdir}</div>
  921. </div>
  922. </body>
  923. </html>
  924. `);
  925.         document.close();
  926.     }
  927. }
  928.  
  929. (async () => {
  930.     if (unsafeWindow.navigator.userAgent.includes('Firefox')) {
  931.         alert('IOMODS.ORG Bot does not work on Firefox.');
  932.         return;
  933.     }
  934.     window.stop();
  935.     logger.log('Loading IOMODS.ORG Bot...');
  936.     let newHtml = await request(document.location.href);
  937.     const gameScriptHash = /game\.([^\.]+)\.js/.exec(newHtml)[1];
  938.     const gameScript = await request(`https://krunker.io/js/game.${gameScriptHash}.js`);
  939.     newHtml = await inlineRemoteScript(newHtml, 'libs/zip.js');
  940.     newHtml = await inlineRemoteScript(newHtml, 'libs/zip-ext.js');
  941.     newHtml = replaceRemoteScriptWithInline(newHtml, 'js/game', patchGameScript(gameScript));
  942.     const bot = new Krunkerio_net();
  943.     bot.init();
  944.     unsafeWindow.onTick = (me, inputs) => bot.onTick(me, inputs);
  945.     unsafeWindow.onKeyPressed = (e) => bot.onKeyPressed(e);
  946.     document.open();
  947.     document.write(newHtml);
  948.     document.close();
  949.     logger.log('Successfully loaded IOMODS.ORG Bot!');
  950. })();
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top