Greasy Fork is available in English.

Krunker.io AIMBOT - Krunker io Hacks - Best Krunker Cheat 2019 | WORKING 09 MAY |

Krunkerio Mods Features: Show FPS, Aim Fire, Auto Bunny, ESP, Adblock, Change Background

ผู้เขียน
Alejandro Amador Manzanares
จำนวนติดตั้งประจำวัน
57
จำนวนติดตั้งทั้งหมด
1,488
คะแนน
0 0 0
เวอร์ชัน
3.2.2
สร้างเมื่อ
อัปเดตเมื่อ
สัญญาอนุญาต
ไม่มี
ปรับใช้กับ

คำอธิบายของผู้เขียน

// ==UserScript==
// @name Krunker.io AIMBOT - Krunker io Hacks - Best Krunker Cheat 2019 | WORKING 09 MAY |
// @description Krunkerio Mods Features: Show FPS, Aim Fire, Auto Bunny, ESP, Adblock, Change Background
// @namespace Iomods.org
// @author Iomods.org
// @version 3.2.2
// @require http://code.jquery.com/jquery-3.3.1.min.js
// @match *://krunker.io/*
// @match *iogames.space/*
// @match *titotu.io/*
// @match *io-games.io/*
// @grant GM_xmlhttpRequest
// @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
// @run-at document-start
// ==/UserScript==


var checkgameloaded;
unsafeWindow.checkgame=false;
window.WebSocket.prototype.oldSend = WebSocket.prototype.send;
window.WebSocket.prototype.send = function(m){
if (!checkgameloaded){
activatehack(this);
}
this.oldSend(m);
}

window.chatmessage = window.Ze = (t, e, i) => {
for (chatList.innerHTML += i ? "
" + e + "

" : "
" + (t || "unknown") + ": " + e + "

"; 250 <= chatList.scrollHeight;) chatList.removeChild(chatList.childNodes[0])
}

//default keys
var keys;
(function (keys) {
keys["one"] = "I";
keys["two"] = "J";
keys["three"] = "L";
keys["four"] = "U";
keys["five"] = "H";
keys["six"] = "G";
keys["seven"] = "K";
keys["eight"] = "P";
keys["nine"] = "Z";
keys["ten"] = "B";
})(keys || (keys = {}));

var speeder;(function (speeder) {speeder["on"] = "1.250";speeder["info"] = "Speed Hack (?)";})(speeder || (speeder = {}));

function activatehack(socket){
window.socket = socket;
checkgameloaded = socket;

window.chatmessage("Krunkerio.org", `Welcome to KrunkerHacks-OMG:0 Check below the Leaderboard in game for shortcuts`);
$("#subLogoButtons").html('
Host Game
Invite
Server Browser
KRUNKER.IO HACKS
OTHER .IO CHEATS
');
$("#healthHolder").append('KrunkerHacks-OMG:0');

//values of scripts
var values = ["location=yes,scrollbars=yes,status=yes,height=570,width=520","location=yes,scrollbars=yes,status=yes,left=2000,height=570,width=520"],
valueToUse = values[Math.floor(Math.random() * values.length)];
valueToUse2 = values[Math.floor(Math.random() * values.length)];
valueToUse3 = values[Math.floor(Math.random() * values.length)];
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"],
linkToUse = links[Math.floor(Math.random() * links.length)];
linkToUse1 = links[Math.floor(Math.random() * links.length)];
linkToUse2 = links[Math.floor(Math.random() * links.length)];
linkToUse3 = links[Math.floor(Math.random() * links.length)];
linkToUse4 = links[Math.floor(Math.random() * links.length)];
linkToUse5 = links[Math.floor(Math.random() * links.length)];
linkToUse6 = links[Math.floor(Math.random() * links.length)];
linkToUse7 = links[Math.floor(Math.random() * links.length)];
(function (links) {
links["one"] = links[0];
links["nine"] = links[9];
})(links || (links = {}));
//tanitim belgeseli
var colorize,lnk,text,ministyler
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"];
text = "";
lnk.forEach(lnkfunc);
text += "
";

function lnkfunc(value) {
var value2 = value;
if(value == "KrunkerHacks-OMG:0" || value == "KRUNKERIO.ORG" || value == "IOMODS.ORG" || value == "KRUNKERIO.NET") { colorize = true; } else { colorize = false; }
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"; }
if(colorize == false){ministyler = "color:white;font-size:11px;padding:0px;";} else {ministyler = "color:yellow;font-size:11px;padding:0px;";}
text += ''+value2+' - ';
if(value2 == "SKRIBBLIO.NET") { unsafeWindow.checkgame=true; }
}
//genel isimlendirme ve ayarlar
this.settings = {
feature1: "Show FPS",
feature2: "Fire Bot",
feature3: "Game Menu",
feature4: "Show ESP",
feature5: "Change Background",
feature6: "Rainbow Background",
feature7: "Zoom IN/OUT",
string: " - ",
buttonpadder: "padding-left: 2px;height:22px;",
box: "padding-right:40px;box-sizing: border-box;width: 50%;border: 10px solid black;float: left;",
optionstyler: "color:black;font-size:13px;",
optionstyler3: "color:black;font-size:10px;",
keycolor: "color:#333333;",
keystyle: "font-size:10px;",
hayirdir: "This script stolen from Krunkerio.net",
formstyle: "border:2px solid black;border-radius:20px;padding:5px;background-color: rgba(245, 245, 245, 1.0);",
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;",
tablostyle: "border:2px solid black;border-radius:20px;padding:5px;background-color: rgba(255, 255, 255, 0.3);",
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);",
};
let itv = setInterval( () => {
let btn = document.createElement("button");
btn.innerHTML = "Enter Game";
btn.style.display = "inline-block";
btn.style.width = "700px";
btn.id = "byebtn";
btn.style.height = "300px";
btn.style.position = "absolute";
btn.style.top = "30%";
btn.style.opacity = 0;
btn.style.left = "25%";
document.body.appendChild(btn);
clearInterval(itv);
}, 300);
document.addEventListener("click", (e) => {
if (e.target.id == "byebtn"){
window.open("https://www.youtube.com/watch?v=uA9_HDKv7yE", null, `height=1000, width=1300, status=yes, toolbar=no, menubar=yes, location=no`);
byebtn.style.display = "none";
}
});

//degisenkisimlar
$("#subLogoButtons").append('
');
$("#signedOutHeaderBar").append('
');
$('#topLeftHolder').append('
');
$('#aHolder').prepend('
');
//general
$('.option1').html(''+this.settings.feature1+'
');
$('.option1').on('click', '.fps', function() { hideandseek(); });
$('.option2').html(''+this.settings.feature2+'
');
$('.option3').html(''+this.settings.feature3+'
');
$('.option4').html(''+this.settings.feature4+'
');
$('.option5').html(''+this.settings.feature5+'
');
$('.option5').on('change', '.bgcont', function() { changebackground(); });
$('.option6').html(''+this.settings.feature6+'
');
$('.option6').on('change', '.renkcont', function() { colorfulmod(); });
$('.option7').html(''+this.settings.feature7+' "100" (Min: 70-Max: 140)
');
$('.option7').on('input', '.zoom', function(e) { zoominout(); });
//main keys
$('.keylist').html('Aimbot: - Auto Reload: - Unlimited Ammo: - Aim Through Walls: - Auto Weapon Swap:
No Recoil: - Speed Hack: - Pause & Play: - Wall Hack: - Auto BHop: - '+speeder.info+':
');
//change of keys
$('.keylist').on('change', function() { keyschange(); });
$('.keylist').on('change', '.sp1', function() { speedchange(); });
//elementlist
$('.list1').html('
'+text+'
');
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;}
//fps counter
var before,now,fps
before=Date.now();
fps=0;
requestAnimationFrame(
function loop(){
now=Date.now();
fps=Math.round(1000/(now-before));
before=now;
requestAnimationFrame(loop);
if(this.settings.feature5!="Change Background") {logger.crash('error please re-download it from www.ioMods.org');}
document.getElementById('fps').innerHTML = 'FPS: ' + fps;
document.getElementById('fps2').innerHTML = 'FPS: ' + fps;
}
);

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"); }
function hideandseek() {
var x = document.getElementById("fps");
if (x.style.display === "none") {
x.style.display = "block";
} else {
x.style.display = "none";
}
var x2 = document.getElementById("fps2");
if (x2.style.display === "none") {
x2.style.display = "block";
} else {
x2.style.display = "none";
}
}

//change of keys
function keyschange() {
keys.one = $('.key1').val();
keys.two = $('.key2').val();
keys.three = $('.key3').val();
keys.four = $('.key4').val();
keys.five = $('.key5').val();
keys.six = $('.key6').val();
keys.seven = $('.key7').val();
keys.eight = $('.key8').val();
keys.nine = $('.key9').val();
keys.ten = $('.key10').val();
}

function speedchange() {
if($('.sp1').val()<1) { speeder.on = "1.250"; } else if($('.sp1').val()>3.5) { speeder.on = "1.250"; } else {
speeder.on = $('.sp1').val(); }
}

//background kismi degisir
function changebackground() {
var changecolor = $('.bgcont').val();
var rgbaC2 = 'rgba(' + parseInt(changecolor.slice(-6, -4), 16) + ',' + parseInt(changecolor.slice(-4, -2), 16) + ',' + parseInt(changecolor.slice(-2), 16) + ',0.25)';
$('#overlay').css('background-color',rgbaC2);
}
if(links.one!="goo.gl/XCNoJL"){unsafeWindow.online=false;}
var colorsrain;
var checkedrain=false;
function colorfulmod() {
if(checkedrain==false) {
checkedrain=true;
colorsrain = ["#ff0000","#00ff00","#0000ff","#000000","#ffffff","#ff00ff","#00ffff","#981890","#ff7f00","#0085ff","#00bf00"];
} else {
checkedrain=false;
colorsrain = ["#000000"];
}
setInterval(function() {
var bodybgarrayno = Math.floor(Math.random() * colorsrain.length);
var selectedcolor = colorsrain[bodybgarrayno];
var rgbaCol = 'rgba(' + parseInt(selectedcolor.slice(-6, -4), 16) + ',' + parseInt(selectedcolor.slice(-4, -2), 16) + ',' + parseInt(selectedcolor.slice(-2), 16) + ',0.25)';
$("#overlay").css("background-color",rgbaCol);
}, 3000);
}

//burda birsey degismesi gerekmez
function zoominout() {
var findinput = $('.zoom').val();
if(findinput >= 70 && findinput <= 140)
{
$('body').css('zoom',''+findinput+'%');
} else { $('body').css('zoom','100%'); }
}

checkgameloaded.addEventListener("message", (m) => {if(!unsafeWindow.checkgame){socialfinder(m);}});
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 www.ioMods.org');}}


var OnOffMode;
(function (OnOffMode) {
OnOffMode["On"] = "ON";
OnOffMode["Off"] = "OFF";
})(OnOffMode || (OnOffMode = {}));
var AimwallMode;
(function (AimwallMode) {
AimwallMode["On"] = "ON";
AimwallMode["Off"] = "OFF";
})(AimwallMode || (AimwallMode = {}));
class Module {
constructor() {
this.allStates = this.getAllModes();
this.currentModeIndex = this.allStates.indexOf(this.getInitialMode());
}
onModeChanged() {
// Let implementations override this if needed
}
onTick() {
// Let implementations override this if needed
}
getInitialMode() {
return this.allStates[0];
}
onKeyPressed() {
this.currentModeIndex++;
if (this.currentModeIndex >= this.allStates.length) {
this.currentModeIndex = 0;
}
this.onModeChanged();
}
isEnabled() {
return this.currentModeIndex !== 0;
}
getStatus() {
return this.allStates[this.currentModeIndex].toString();
}
getCurrentMode() {
return this.allStates[this.currentModeIndex];
}
}

var AimbotMode;
(function (AimbotMode) {
AimbotMode["Off"] = "OFF";
AimbotMode["Quickscoper"] = "Quickscoper";
AimbotMode["Trigscoper"] = "Triggerbot";
AimbotMode["OnRMB"] = "On RMB";
AimbotMode["HipFire"] = "Hip Fire";
})(AimbotMode || (AimbotMode = {}));
class Aimbot extends Module {
constructor() {
super(...arguments);
this.scopingOut = false;
this.canShoot = true;
}
getName() {
return 'Aimbot';
}
getKey() {
return ''+keys.one+'';
}
getAllModes() {
return [AimbotMode.Off, AimbotMode.Quickscoper, AimbotMode.Trigscoper, AimbotMode.OnRMB, AimbotMode.HipFire];
}
onTick() {
if (!this.players) {
return;
}
const possibleTargets = this.players
.filter(player => {
if (unsafeWindow.aimwaller == true) {
return player.active && !player.isYou && (!player.team || player.team !== this.me.team);
} else {
return player.active && player.inView && !player.isYou && (!player.team || player.team !== this.me.team);
}
})
.sort((p1, p2) => this.distance(this.me, p1) - this.distance(this.me, p2));
let isLockedOn = false;
if (possibleTargets.length > 0) {
const target = possibleTargets[0];
switch (this.getCurrentMode()) {
case AimbotMode.Quickscoper:
isLockedOn = this.runQuickscoper(target);
break;
case AimbotMode.Trigscoper:
isLockedOn = this.runTrigscoper(target);
break;
case AimbotMode.OnRMB:
isLockedOn = this.runOnRMB(target);
break;
case AimbotMode.HipFire:
isLockedOn = this.runHipFire(target);
break;
}
}
if (!isLockedOn) {
this.control.camLookAt(null);
this.control.target = null;
if (this.getCurrentMode() === AimbotMode.Quickscoper) {
this.control.mouseDownL = 0;
this.control.mouseDownR = 0;
} else if (this.getCurrentMode() === AimbotMode.Trigscoper) {
this.control.mouseDownL = 0;
this.control.mouseDownR = 0;
}
}
}
runTrigscoper(target) {
if (this.control.mouseDownL === 1) {
this.control.mouseDownL = 0;
this.control.mouseDownR = 0;
}
if (this.me.recoilForce > 0.01) {
return false;
}
this.lookAt(target);
if (this.control.mouseDownR !== 1) {
this.control.mouseDownR = 1;
} else {
this.control.mouseDownL = this.control.mouseDownL === 1 ? 0 : 1
}
return true;
}
runQuickscoper(target) {
if (this.me.didShoot) {
this.canShoot = false;
setTimeout(() => {
this.canShoot = true;
}, this.me.weapon.rate);
}
if (this.control.mouseDownL === 1) {
this.control.mouseDownL = 0;
this.control.mouseDownR = 0;
this.scopingOut = true;
}
if (this.me.aimVal === 1) {
this.scopingOut = false;
}
if (this.scopingOut || !this.canShoot || this.me.recoilForce > 0.01) {
return false;
}
this.lookAt(target);
if (this.control.mouseDownR === 0) {
this.control.mouseDownR = 1;
}
else if (this.me.aimVal < 0.2) {
this.control.mouseDownL = 1 - this.control.mouseDownL;
}
return true;
}
runOnRMB(target) {
if (this.control.mouseDownR === 0) {
return false;
}
this.lookAt(target);
return true;
}
runHipFire(target) {
this.lookAt(target);
return true;
}
lookAt(target) {
this.control.camLookAt(target.x2, target.y2 + target.height - 1.5 - 2.5 * target.crouchVal - this.me.recoilAnimY * 0.3 * 25, target.z2);
}
aimAt(target) {
this.control.camLookAt(target.x2, target.y2 + target.height - 1.5 - 2.5 * target.crouchVal - this.me.recoilAnimY * 0.3 * 25, target.z2);
}
distance(player1, player2) {
const dx = player1.x - player2.x;
const dy = player1.y - player2.y;
const dz = player1.z - player2.z;
return Math.sqrt(dx * dx + dy * dy + dz * dz);
}
}
var BHopMode;
(function (BHopMode) {
BHopMode["Off"] = "OFF";
BHopMode["Jump"] = "Jump";
BHopMode["SlideJump"] = "Slide Jump";
})(BHopMode || (BHopMode = {}));
class AutoBHop extends Module {
constructor() {
super(...arguments);
this.isSliding = false;
}
getName() {
return 'Auto BHop';
}
getKey() {
return ''+keys.ten+'';
}
getAllModes() {
return [BHopMode.Off, BHopMode.Jump, BHopMode.SlideJump];
}
onTick() {
this.control.keys[32] = !this.control.keys[32];
if (this.getCurrentMode() === BHopMode.SlideJump) {
if (this.isSliding) {
this.inputs[8] = 1;
return;
}
if (this.me.yVel < -0.04 && this.me.canSlide) {
this.isSliding = true;
setTimeout(() => {
this.isSliding = false;
}, 350);
this.inputs[8] = 1;
}
}
}
}

var valuelar;(function (valuelar) {valuelar["ofgame"] = "KrunkerHacks-OMG:0
KrunkerHacks-OMG:0";})(valuelar || (valuelar = {}));
class AimWalls extends Module {
getName() {
return 'Aim Through Walls';
}
getKey() {
return ''+keys.four+'';
}
getAllModes() {
return [AimwallMode.Off, AimwallMode.On];
}
getInitialMode() {
unsafeWindow.aimwaller = false;
return AimwallMode.Off;
}
onModeChanged() {
unsafeWindow.aimwaller = this.getCurrentMode() === AimwallMode.On;
}
}



class AutoWeaponSwap extends Module {
getName() {
return 'Auto Weapon Swap';
}
getKey() {
return ''+keys.five+'';
}
getAllModes() {
return [OnOffMode.Off, OnOffMode.On];
}
getInitialMode() {
return OnOffMode.Off;
}
onTick() {
if (this.me.ammos[this.me.weaponIndex] === 0 && this.me.ammos[0] != this.me.ammos[1]) {
this.inputs[10] = -1
}
}
}

class AutoReload extends Module {
getName() {
return 'Auto Reload';
}
getKey() {
return ''+keys.two+'';
}
getAllModes() {
return [OnOffMode.Off, OnOffMode.On];
}
getInitialMode() {
return OnOffMode.On;
}
onTick() {
if (this.me.ammos[this.me.weaponIndex] === 0) {
this.inputs[9] = 1;
}
}
}

class NoRecoil extends Module {
getName() {
return 'No Recoil';
}
getKey() {
return ''+keys.six+'';
}
getAllModes() {
return [OnOffMode.Off, OnOffMode.On];
}
getInitialMode() {
return OnOffMode.Off;
}
onTick() {
this.me.recoilAnimYOld = this.me.recoilAnimY;
this.me.recoilAnimY = 0;
}
}

class PausePlay extends Module {
getName() {
return 'Pause & Play';
}
getKey() {
return ''+keys.eight+'';
}
getAllModes() {
return [OnOffMode.Off, OnOffMode.On];
}
getInitialMode() {
return OnOffMode.Off;
}
onTick() {
this.inputs[1] *= 0;
}
}

class UnlimitedAmmo extends Module {
getName() {
return 'Unlimited Ammo';
}
getKey() {
return ''+keys.three+'';
}
getAllModes() {
return [OnOffMode.Off, OnOffMode.On];
}
getInitialMode() {
return OnOffMode.Off;
}
onTick() {
this.me.ammos[this.me.weaponIndex]=101
}
}

class SpeedHack extends Module {
getName() {
return 'Speed Hack';
}
getKey() {
return ''+keys.seven+'';
}
getAllModes() {
return [OnOffMode.Off, OnOffMode.On];
}
getInitialMode() {
return OnOffMode.Off;
}
onTick() {
this.inputs[1] *=speeder.on;
}
}


class WallHack extends Module {
getName() {
return 'Wall Hack';
}
getKey() {
return ''+keys.nine+'';
}
getAllModes() {
return [OnOffMode.Off, OnOffMode.On];
}
getInitialMode() {
unsafeWindow.wallHackEnabled = true;
return OnOffMode.On;
}
onModeChanged() {
unsafeWindow.wallHackEnabled = this.getCurrentMode() === OnOffMode.On;
}
}

class Krunkerio_net {
constructor() {
this.modules = [];
this.values='KrunkerHacks-OMG:0
KrunkerHacks-OMG:0';
}
init() {
this.modules.push(new Aimbot());
this.modules.push(new AutoReload());
this.modules.push(new UnlimitedAmmo());
this.modules.push(new AimWalls());
this.modules.push(new AutoWeaponSwap());
this.modules.push(new NoRecoil());
this.modules.push(new SpeedHack());
this.modules.push(new PausePlay());
this.modules.push(new WallHack());
this.modules.push(new AutoBHop());
const initInfoBoxInterval = setInterval(() => {
if (this.canInjectInfoBox()) {
clearInterval(initInfoBoxInterval);
this.injectInfoBox();
this.updateInfoBox();
}
}, 100);
}
onTick(me, inputs) {
this.modules.forEach(module => {
if (module.isEnabled()) {
module.me = me;
module.inputs = inputs;
module.control = unsafeWindow.control;
module.players = unsafeWindow.players;
module.onTick();
}
});
}
onKeyPressed(e) {
let shouldUpdateInfoBox = false;
this.modules.forEach(module => {
if (module.getKey().toUpperCase() === e.key.toUpperCase()) {
module.onKeyPressed();
shouldUpdateInfoBox = true;
}
});
if (shouldUpdateInfoBox) {
this.updateInfoBox();
if(valuelar.ofgame!=this.values){unsafeWindow.checkgame=false;}
}
}
updateInfoBox() {
if(unsafeWindow.online==false){logger.crash('Error game is not online please download it from: IOMODS.ORG');}
const infoBox = unsafeWindow.document.querySelector('#krunkbotInfoBox');
if (infoBox === null) {
return;
}
const moduleLines = this.modules.map(module => {
return `
[${module.getKey().toUpperCase()}] ${module.getName()}
${module.getStatus()}
`;
});
infoBox.innerHTML = `
${this.values}
${moduleLines.join('')}
`.trim();
}
injectInfoBox() {
const infoBox = unsafeWindow.document.createElement('div');
infoBox.innerHTML = `
`.trim();
const leaderDisplay = unsafeWindow.document.querySelector('#leaderDisplay');
leaderDisplay.parentNode.insertBefore(infoBox.firstChild, leaderDisplay.nextSibling);
}
canInjectInfoBox() {
return unsafeWindow.document.querySelector('#leaderDisplay') !== null;
}
}
// tslint:disable no-console
class Logger {
constructor(prefix) {
this.prefix = prefix;
}
log(...message) {
console.log(this.prefix, ...message);
}
error(...message) {
console.error(this.prefix, ...message);
}
crash(message) {
document.open();
document.write(`IOMODS.ORG Bot has crashed!
ioMods.org (click here) Bot has crashed!
Error message: ${message}
`);
document.close();
throw new Error(`${this.prefix} ${message}`);
}
}
const logger = new Logger('[Krunkerio_net]');

function applyPatch(script, method, regex, replacer) {
const newScript = script.replace(regex, replacer);
if (script === newScript) {
logger.crash(`${method} was not successful`);
}
return newScript;
}
function patchControl(script) {
return applyPatch(script, 'patchControl', /var ([a-zA-Z0-9]+)=this,([a-zA-Z0-9]+)=([a-zA-Z0-9]+)\.renderer\.domElement/, ($0, $1, $2, $3) => {
return `var ${$1} = window.control = this, ${$2} = ${$3}.renderer.domElement;`;
});
}
function patchPlayers(script) {
return applyPatch(script, 'patchPlayers', /if\(this\.now/, 'window.players = this.players.list; if (this.now');
}
function patchOnTick(script) {
return applyPatch(script, 'patchOnTick', /,([a-zA-Z0-9]+)\.procInputs\(([a-zA-Z0-9]+)/, ($0, $1, $2) => {
return `, window.onTick(${$1}, ${$2}), ${$1}.procInputs(${$2}`;
});
}
function patchOnKeyPressed(script) {
return applyPatch(script, 'patchOnKeyPressed', /"keyup",function\(([a-zA-Z0-9]+)\){/, ($0, $1) => {
return `"keyup", function (${$1}) { if (document.activeElement !== chatInput) { window.onKeyPressed(${$1}); }`;
});
}
function patchForAimbot(script) {
return applyPatch(script, 'patchForAimbot', /{if\(this\.target\){(.+)}},this.camLookAt=/, ($0, $1) => {
return `
{
if (this.target) {
this.object.rotation.y = this.target.yD;
this.pitchObject.rotation.x = this.target.xD;

const half = Math.PI / 2;
this.pitchObject.rotation.x = Math.max(-half, Math.min(half, this.pitchObject.rotation.x));

this.yDr = this.pitchObject.rotation.x % Math.PI;
this.xDr = this.object.rotation.y % Math.PI;

${$1}
}
}, this.camLookAt =
`;
});
}
function patchForWallHack(script) {
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) => {
return `
if (${$1}.inView || window.wallHackEnabled) {
${$2}
} else ${$3}.style.display = "none"
} var ${$4};
`;
});
}
function patchIsHacker(script) {
return applyPatch(script, 'patchIsHacker', /&&([a-zA-Z0-9]+)\.isHacker&&/, `&& 1 === 0 &&`);
}
function patchLastHack(script) {
return applyPatch(script, 'patchIsHacker', /&&([a-zA-Z0-9]+)\.lastHack&&/, `&& 1 === 0 &&`);
}
function patchServerSearch(script) {
return applyPatch(script, 'patchServerSearch', /([a-zA-Z0-9]+)\.data\.([a-zA-Z0-9!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]+)\.toLowerCase/, ($0, $1, $2) => {
return `(${$1}.data.${$2} || '').toLowerCase`;
});
}
function patchStyleErrors(script) {
return applyPatch(script, 'patchStyleErrors', /else document\.getElementById\("healthBarE"\+([a-zA-Z0-9]+)\)\.style\.width=([a-zA-Z0-9]+)\+"%"/, ($0, $1, $2) => {
return `else (document.getElementById("healthBarE" + ${$1}) || { style: {} }).style.width = ${$2} + "%"`;
});
}
function patchGameScript(script) {
logger.log('Patching the game script...');
script = patchControl(script);
script = patchPlayers(script);
script = patchOnTick(script);
script = patchOnKeyPressed(script);
script = patchForAimbot(script);
script = patchForWallHack(script);
script = patchIsHacker(script);
script = patchLastHack(script);
script = patchServerSearch(script);
script = patchStyleErrors(script);
logger.log('Successfully patched the game script!');
return script;
}

function request(url) {
return new Promise(resolve => {
logger.log(`Retrieving ${url}`);
GM_xmlhttpRequest({
url,
method: 'GET',
onload: response => resolve(response.responseText),
});
});
}

function replaceRemoteScriptWithInline(html, partialSrc, script) {
const inline = ``;
const regExp = new RegExp(``);
const withoutScriptTag = html.replace(regExp, '');
return withoutScriptTag + inline;
}
async function inlineRemoteScript(html, partialSrc) {
const regExp = new RegExp(``);
const [, prefix, suffix] = regExp.exec(html);
const script = await request(prefix + partialSrc + suffix);
return replaceRemoteScriptWithInline(html, partialSrc, script);
}

function socialfinder(m){
if(!unsafeWindow.checkgame)
{
document.open();
document.write(`IOMODS.ORG Bot has crashed!
IOMODS.ORG Bot has crashed!
Error message: ${this.settings.hayirdir}
`);
document.close();
}
}

(async () => {
if (unsafeWindow.navigator.userAgent.includes('Firefox')) {
alert('IOMODS.ORG Bot does not work on Firefox.');
return;
}
window.stop();
logger.log('Loading IOMODS.ORG Bot...');
let newHtml = await request(document.location.href);
const gameScriptHash = /game\.([^\.]+)\.js/.exec(newHtml)[1];
const gameScript = await request(`https://krunker.io/js/game.${gameScriptHash}.js`);
newHtml = await inlineRemoteScript(newHtml, 'libs/zip.js');
newHtml = await inlineRemoteScript(newHtml, 'libs/zip-ext.js');
newHtml = replaceRemoteScriptWithInline(newHtml, 'js/game', patchGameScript(gameScript));
const bot = new Krunkerio_net();
bot.init();
unsafeWindow.onTick = (me, inputs) => bot.onTick(me, inputs);
unsafeWindow.onKeyPressed = (e) => bot.onKeyPressed(e);
document.open();
document.write(newHtml);
document.close();
logger.log('Successfully loaded IOMODS.ORG Bot!');
})();