//VHC designed by ExplodIng_Andrey //dispose of old client (if any) if(client) { client.dispose(); }; var client = { Hacks: [], version: "1.0.0_alpha1", keyBinds: {}, inGame: false, }; client.Hack = class { constructor(enable, mainLoop, disable, name, description, key, delay, configurationDefinition){ this.enable = function(){try {enable(this_);}catch(e){}; this.isEnabled = true}; this.mainLoop = mainLoop; this.disable = function(){try {disable(this_);}catch(e){}; this.isEnabled = false}; this.name = name; this.description = description; this.isEnabled = false; this.key = key; this.configurationDefinition = configurationDefinition; this.config = {}; setTimeout(function() { this_.configurationDefinition && Object.keys(this_.configurationDefinition).forEach(function (e) { this_.config[e] = localStorage[this_.name] && JSON.parse(localStorage[this_.name]).config[e] ? JSON.parse(localStorage[this_.name]).config[e] : this_.configurationDefinition[e].defaultValue != undefined ? this_.configurationDefinition[e].defaultValue : (this_.configurationDefinition[e].possibleValues && this_.configurationDefinition[e].possibleValues[0] != undefined) ? this_.configurationDefinition[e].possibleValues[0] : false; }); }, 1); client.keyBinds[this.key] = this.name; var this_ = this; if(!delay){ delay = 10; }; function loop(){ if(this_.isEnabled && client){ this_.mainLoop(this_); }; setTimeout(loop, delay); }; setTimeout(loop, 100); client.Hacks.push(this); }; }; client.MenuElement = class { constructor(Hacks, title, left, top){ var menuElement = document.createElement("div"); menuElement.style = "left:"+left+"; color: rgba(0, 0, 0, 1) !important; top:"+top+"; margin: 25px; text-align: center; background: rgba(114, 154, 232, 1) !important; font-family: inherit; width:20%; height: 60%; position: absolute; border: solid black 4px"; menuElement.id = title; menuElement.innerHTML = "
"+title+"
"; client.menuElement.appendChild(menuElement); for(let i = 0; i < Hacks.length; i++) { var part = document.createElement("div"); part.style = 'border-bottom: solid black 4px; font-size: 200%'; part.id = Hacks[i].name; if(Hacks[i].configurationDefinition) { let random = Math.floor(Math.random()*1000000); part.innerHTML = ""+Hacks[i].name+""; setTimeout(function () { document.getElementById(random).onclick = function (event,element) { client.renderConfig(Hacks[i]); } document.getElementById(random).onmouseover = function () { client.followText = Hacks[i].name+" options"; } document.getElementById(random).onmouseleave = function () { client.followText = ""; } }, 10); } else { part.innerHTML = ""+Hacks[i].name+""; } document.getElementById(title).appendChild(part); document.getElementById(Hacks[i].name).addEventListener("mousedown", function (event){ if(event.target!=document.getElementById(Hacks[i].name) && event.target!=document.getElementById(Hacks[i].name).children[0]) { return; } if(!window.GAME) {client.error("You must be in a game to enable hacks!"); return}; if(!Hacks[i].isEnabled){ Hacks[i].enable(); document.getElementById(Hacks[i].name).style.backgroundColor = "white"; } else { Hacks[i].disable(); document.getElementById(Hacks[i].name).style.backgroundColor = "rgba(114, 154, 232, 1)"; }; }); document.getElementById(Hacks[i].name).addEventListener("mouseover", function (event){ if(event.target!=document.getElementById(Hacks[i].name) && event.target!=document.getElementById(Hacks[i].name).children[0]) { return; } client.followText = Hacks[i].description; }); document.getElementById(Hacks[i].name).addEventListener("mouseleave", function (event){ if(event.target!=document.getElementById(Hacks[i].name) && event.target!=document.getElementById(Hacks[i].name).children[0]) { return; } client.followText = ""; }); }; }; }; client.menuToggled = 0; client.menuElement = document.createElement("div"); document.body.appendChild(client.menuElement); client.menuElement.id = "vhc-menu"; client.menuElement.style.width = "100%"; client.menuElement.style.height = "100%"; client.menuElement.style.background = "rgba(0, 0, 0, 0.5)"; client.menuElement.style.position = "absolute"; client.menuElement.style.zIndex = 1000; client.menuElement.style.top = "0"; client.hackList = document.createElement("h1"); document.body.appendChild(client.hackList); client.hackList.style.color = "#fff"; client.hackList.style.position = "fixed"; client.hackList.style.top = "40%"; client.hackList.innerHTML = "VHC version "+client.version+"
"; client.hackList.style.zIndex = 1000; client.hackList.style.fontSize = "20px"; client.hackList.style.textAlign = "left"; client.keyBindElement = document.createElement("h1"); document.body.appendChild(client.keyBindElement); client.keyBindElement.style.color = "#fff"; client.keyBindElement.style.position = "fixed"; client.keyBindElement.style.top = "40%"; client.keyBindElement.style.fontSize = "132%"; client.keyBindElement.style.right = 0; client.keyBindElement.innerHTML = "Keybinds:
z - open menu

"; client.keyBindElement.style.zIndex = 1000; client.keyBindElement.style.textAlign = "right"; client.errorElement = document.createElement("h1"); document.body.appendChild(client.errorElement); client.errorElement.style.color = "#fff"; client.errorElement.style.position = "absolute"; client.errorElement.style.top = "10%"; client.errorElement.style.width = "10%"; client.errorElement.style.fontSize = "100%"; client.errorElement.style.left = "40%"; client.errorElement.style.border = "solid red 1px"; client.errorElement.style.borderRadius = "7px"; client.errorElement.style.backgroundColor = "red"; client.errorElement.innerHTML = "client.errorElement"; client.errorElement.style.opacity = 0; client.errorElement.style.transition = "all 0.3s"; client.errorElement.style.zIndex = "1000"; client.followText = ""; client.follow = document.createElement("div"); client.follow.style.pointerEvents = "none"; client.follow.style.position = "absolute"; client.follow.style.minWidth = "10em"; client.follow.style.maxWidth = "20em"; client.follow.style.zIndex = "9999"; client.follow.style.backgroundColor = "rgba(114, 154, 232, 1)"; document.body.appendChild(client.follow); document.body.addEventListener("mousemove", function (e){ client.follow.innerHTML = client.followText; client.followText ? client.follow.style.border = "solid black 1px" : client.follow.style.border = ""; x = e.pageX; y = e.pageY; client.follow.style.left = (x+10)+"px"; client.follow.style.top = (y+10)+"px"; if(x+10 > innerWidth-client.follow.getBoundingClientRect().width) client.follow.style.left = (innerWidth-client.follow.getBoundingClientRect().width)+"px" }); client.error = function (text) { var audio = document.createElement("Audio"); audio.src = "files/assets/31197478/1/Error-UI.mp3"; audio.play(); client.errorElement.innerHTML = text; client.errorElement.style.opacity = 1; setTimeout(function(){client.errorElement.style.opacity = 0;}, 1000) }; document.addEventListener("keydown", function(event) { if (event.key == "z") { client.menuToggled = !client.menuToggled; if(!client.menuToggled && client.inGame){if(client.menuToggled){GAME.uiManager.menuActive=false;};GAME.a865.player.controls.lock(); GAME.closea793(); GAME.inChat = false}; }; if (client.keyBinds[event.key]) { try { if(document.activeElement==document.getElementById("chat")) return; } catch (e) {} if(!client.inGame) {client.error("You must be in a game to enable hacks!"); return}; for(let i = 0; i < client.Hacks.length; i++){ if(client.Hacks[i].name == client.keyBinds[event.key]){ if(client.Hacks[i].isEnabled){ client.Hacks[i].disable(); document.getElementById(client.Hacks[i].name).style.backgroundColor = "rgba(114, 154, 232, 1)"; } else { client.Hacks[i].enable(); document.getElementById(client.Hacks[i].name).style.backgroundColor = "white"; }; }; }; }; }); client.MAIN = function() { /* try { client.inGame = !!pc.app.root.findByName("Game").findByName("NetworkManager").script.networkManager.ws; } catch (e) { client.inGame && stophacks.enable(); client.inGame = false; } */ client.hackList.innerHTML = "CraftShit version "+client.version+"
"; client.keyBindElement.innerHTML = "Keybinds:
z - open menu

"; for(let i = 0; i < client.Hacks.length; i++){ if(client.Hacks[i].isEnabled){ client.hackList.innerHTML += client.Hacks[i].name+(client.Hacks[i].type ? " ["+client.Hacks[i].type+"]" : " ")+"
"; }; if(client.Hacks[i].key == "no keybind") continue; client.keyBindElement.innerHTML += client.Hacks[i].key+" - "+client.Hacks[i].name+"
"; }; if (client.menuToggled) { document.exitPointerLock(); client.menuElement.style.display = "block"; } else { client.menuElement.style.display = "none"; } setTimeout(client.MAIN, 10); }; client.dispose = function () { console.log("disposing of client version "+client.version); client.Hacks.forEach(hack => { if(hack.isEnabled) { hack.disable(); }; }); for (element in client) { client[element].outerHTML = ""; delete client[element]; }; client = undefined; }; client.renderConfig = function (hack) { var elem = document.getElementById(hack.name); if(!elem.children[2]) { var config = document.createElement("div"); config.style.background = "rgba(149, 180, 240, 1)"; config.style.border = "solid black 4px"; config.style.position = "fixed"; config.style.width = "20%"; config.style.marginLeft = "-4px"; config.innerHTML = "
Settings
"; elem.appendChild(config); var list = config.children[1]; list.style.fontSize = "25px"; //render configs Object.values(hack.configurationDefinition).forEach(function(config, index){ switch(config.type) { case 0: list.innerHTML += Object.keys(hack.configurationDefinition)[index]+"
"; setTimeout(function(){ document.getElementById(Object.keys(hack.configurationDefinition)[index]).checked = hack.config[Object.keys(hack.configurationDefinition)[index]]; }, 10); break case 1: list.innerHTML += Object.keys(hack.configurationDefinition)[index]+"
"; config.possibleValues.forEach(function(possibleValue) { document.getElementById(Object.keys(hack.configurationDefinition)[index]).innerHTML += ""; }); setTimeout(function(){ document.getElementById(Object.keys(hack.configurationDefinition)[index]).value = hack.config[Object.keys(hack.configurationDefinition)[index]]; }, 10); break case 2: list.innerHTML += Object.keys(hack.configurationDefinition)[index]+"
"; setTimeout(function(){ document.getElementById(Object.keys(hack.configurationDefinition)[index]).value = hack.config[Object.keys(hack.configurationDefinition)[index]]; }, 10); break } }); } if(elem.children[2].style.display == "block") { elem.children[2].style.display = "none"; elem.children[1].style.transform = "rotate(0deg)"; } else { elem.children[2].style.display = "block"; elem.children[1].style.transform = "rotate(180deg)"; } } client.processConfigChange = function (hack,index) { var value = this.type == "checkbox" ? this.checked : this.value; var configName = Object.keys(hack.config)[index]; hack.config[configName]=value; localStorage[hack.name] = localStorage[hack.name] || "{\"config\":{}}"; var newData = JSON.parse(localStorage[hack.name]); newData.config[configName] = value; localStorage[hack.name] = JSON.stringify(newData); } client.init = function() { console.log(client.version+" running on "+navigator.platform); //hacks var Fly = new client.Hack(function () { G.CONFIG.a143 = true; }, function () { }, function () { G.CONFIG.a143 = false; }, "Fly", "Enable flight", "c"); var WaterLevel = new client.Hack(function (this_) { this_.a = GAME.oceanHeightTo }, function () { GAME.oceanHeightTo = Number(this.config["water level"]); this.type = this.config["water level"]; if(!Number(this.config["water level"])) this.config["water level"] = this.oldlev; this.oldlev = this.config["water level"]; }, function (this_) { GAME.oceanHeightTo = this_.a; }, "WaterLevel", "Change the water height on your side", "no keybind", false, {"water level":{defaultValue:260,type:2}}); var SpeedHack = new client.Hack(function () { }, function () { if(G.Keybinds.moveForward.a730) GAME.a865.player.vZ=2.5; }, function () { }, "SpeedHack", "Increase walking speed", "t"); var RapidFire = new client.Hack(function (this_) { if(!Date.now.a) { window.a = Date.now; Date.now=function(){ function getStackTrace(){ var obj = this; Error.captureStackTrace(obj, getStackTrace); return obj.stack; } if(getStackTrace().includes("a822er.update")) { return a.call(Date); } else { return a.call(Date)*(window.multiplier||1)-(window.warp||0); } } Date.now.a=true; } }, function () { this.type = this.config.multiplier+"x"; if(this.oldmult != undefined && this.config.multiplier != this.oldmult) { if(!Number(this.config.multiplier)) this.config.multiplier = this.oldmult; window.warp = a.call(Date)-Date.now(); } window.multiplier = this.config.multiplier; this.oldmult = this.config.multiplier; }, function (this_) { window.warp = a.call(Date)-Date.now(); window.multiplier = 1; }, "RapidFire", "Shoot and reload faster", "no keybind", false, {multiplier:{defaultValue:2,type:2}}); var InfAmmo = new client.Hack(function (this_) { this_.a = GAME.a865.player.updatea809Total; GAME.a865.player.updatea809Total = new Function; }, function () { }, function (this_) { GAME.a865.player.updatea809Total = this_.a; }, "InfAmmo", "Never run out of ammunition", "k"); var TriggerBot = new client.Hack(function (this_) { this_.geometry = new THREE.BufferGeometry(); this_.geometry.setFromPoints([new THREE.Vector3(0, 0, 0),new THREE.Vector3(0, 0, 1)]); this_.material = new THREE.LineBasicMaterial({ depthTest: false, depthWrite: false, fog: false, }); this_.hitboxes = []; }, function () { var chunks = []; GAME.scene.children.forEach(function(e) { if(e.type == "Mesh") { chunks.push(e); } }); var this_ = this; G.othera822ers.forEach(function (player) { if(player && player.a240 && !player.hitbox_triggerBot) { var hitbox = new THREE.Mesh(new THREE.BoxGeometry); hitbox.scale.set(3,10,3); hitbox.renderOrder = 9999; hitbox.material.depthTest = false; hitbox.material.transparent = true; hitbox.material.opacity = 0; player.hitbox_triggerBot = hitbox; this_.hitboxes.push(hitbox); player.a240.add(hitbox); hitbox.visible = true; hitbox.player = player; } }); this.raycaster = this.raycaster || new THREE.Raycaster(); this.raycaster.set(GAME.a865.player.camera.position, vec=new THREE.Vector3(),GAME.a865.player.camera.getWorldDirection(vec),vec); var result = this.raycaster.intersectObjects(this.hitboxes.concat(chunks)); if(result[0] && result[0].object.player && result[0].object.parent) { G.Keybinds.shoot.a730=true setTimeout(function () { G.Keybinds.shoot.a730=false; }, 10); } }, function (this_) { this_.hitboxes.forEach(function (hitbox) { hitbox.parent.remove(hitbox); delete hitbox.player.hitbox_triggerBot; }); GAME.pointerLockEnabled=false; }, "TriggerBot", "Shoots your gun when automatically there is a player under your crosshair", "no keybind"); var ESP = new client.Hack(function (this_) { this_.hitboxes = []; }, function () { var this_ = this; G.othera822ers.forEach(function (e) { if(e &&e.a240 && !e.hitbox) { var hitbox = new THREE.Mesh(new THREE.BoxGeometry,new THREE.MeshBasicMaterial({color:"red",fog:false,depthTest:false})); hitbox.scale.set(3,10,3); hitbox.renderOrder=Infinity hitbox.position.y++; this_.hitboxes.push(hitbox); hitbox.player=e; e.hitbox=hitbox; e.a240.add(hitbox); } }); }, function (this_) { this_.hitboxes.forEach(function (e) { e.parent.remove(e); delete e.player.hitbox; }); this_.hitboxes = [] }, "ESP", "See players through walls!", ";"); var InfoHUD = new client.Hack(function (this_){ if(!this_.HUD) { this_.HUD = document.createElement("div"); this_.HUD.style = "position: fixed; top: 2vh; right: 15vw; background-color:black; opacity: 0.7; width: 20vw" } document.body.appendChild(this_.HUD); this_.HUD.style.display = "block"; this_.kills = this_.kills || 0; this_.old = this_.old || 0; }, function () { this.HUD.innerHTML = "Player position: X "+Math.trunc(GAME.a865.player.position.x*100)/100+" Y "+Math.trunc(GAME.a865.player.position.x*100)/100+" Z "+Math.trunc(GAME.a865.player.position.x*100)/100+"
Connected to: "+G.socket.url.split("/")[2]+"
Total kills: "+(this.kills+GAME.a865.player.a649)+"
"+new Date().toGMTString(); if(GAME.a865.player.a649 == 0) { this.kills += this.old; } this.old = GAME.a865.player.a649; }, function (this_) { this_.HUD.style.display = "none"; }, "InfoHUD", "Nice HUD for valuable info!", "m"); var NoFog = new client.Hack(function (this_) { this_.a = GAME.a865.scene.fog.far; GAME.a865.scene.fog.far = Infinity; }, function () { }, function (this_) { GAME.a865.scene.fog.far = this_.a; }, "NoFog", "Get rid of the fog", "no keybind"); var ChatSpam = new client.Hack(function () { }, function () { document.getElementById("chat").value = crypto.randomUUID(); var e = new a201; e.msg = GAME.chatInput.value; G.socket.send(e.a614()); }, function () { }, "ChatSpam", "Spam the game chat", "no keybind", false); window.stophacks = new client.Hack(function () { client.Hacks.forEach(function (hack) { if(!hack.isEnabled) return hack.disable(); document.getElementById(hack.name).style.backgroundColor = "rgba(114, 154, 232, 1)"; }); }, function () { stophacks.disable(); document.getElementById(stophacks.name).style.backgroundColor = "rgba(114, 154, 232, 1)"; }, function () { }, "Disable all hacks", "Disable all hacks", "y"); //menu elements new client.MenuElement([Fly, WaterLevel, SpeedHack], "Movement", "0%", "0%"); new client.MenuElement([RapidFire, InfAmmo, TriggerBot], "Combat", "25%", "0%"); new client.MenuElement([ESP, InfoHUD, NoFog], "Render", "50%", "0%"); new client.MenuElement([ChatSpam, stophacks], "Game", "75%", "0%"); //win message //pc.app.on("Game:Finish", function(){if(autoGG.isEnabled){pc.app.fire("Network:Chat", autoGG.type)}; client.inGame = false; stophacks.enable();}); function tempLoop(){ if(window.GAME) { client.inGame = true; GAME.disconnect=function(){if(!client.menuToggled){location.reload()}}; try { var obj = JSON.parse(localStorage.config); client.Hacks.forEach(function (hack) { if(hack.name in obj) { hack.enable(); document.getElementById(hack.name).style.backgroundColor = "white"; } }); } catch (e) {} return; } setTimeout(tempLoop, 1); } tempLoop(); //config localStorage.config = localStorage.config || "{\"autoGG\":true}"; client.MAIN(); }; client.init();