- // ==UserScript==
- // @name Krunker Cheating Software 0.8.0
- // @name:de Krunker Cheating Software 0.8.0
- // @namespace http://tampermonkey.net/
- // @version 0.8.0
- // @description Enhanced Krunker Cheat Script (v0.8.0) with AimBot, AimAssist, ESP, High Jump, FPS Boost, Speed Boost, Auto Shoot, Auto Jump and Recoil Compensation
- // @description:de Gratis Krunker Cheating Software; Mod Menu; ESP, AimBot, Recoil Comp und viel mehr. Erlebe Krunker.io wie nie zuvor mit diesem leistungsstarken Mod-Menü! Aktiviere Aimbot für perfektes automatisches Zielen, nutze ESP (Wallhack), um Gegner durch Wände zu sehen, verbessere dein Gameplay mit Aim-Assist, springe höher als je zuvor mit High Jump und eliminiere den Rückstoß deiner Waffen dank Recoil-Kompensation. Hol dir den ultimativen Vorteil und dominiere jede Runde mit Leichtigkeit!
- // @match krunker.io/*
- // @match browserfps.com/*
- // @exclude *://krunker.io/social*
- // @exclude *://krunker.io/editor*
- // @icon https://www.google.com/s2/favicons?domain=krunker.io
- // @grant none
- // @run-at document-end
- // @require https://unpkg.com/three@0.150.0/build/three.min.js
- // ==/UserScript==
-
- (function() {
- 'use strict';
-
- /************* CSS Styles *************/
- const style = document.createElement('style');
- style.innerHTML = `
- .msg {
- position: absolute;
- left: 10px;
- bottom: 10px;
- color:#fff;
- background: rgba(0, 0, 0, 0.6);
- font-weight: bolder;
- padding: 15px;
- animation: msg 0.5s forwards, msg 0.5s reverse forwards 3s;
- z-index: 999999;
- pointer-events: none;
- font-family: Arial, sans-serif;
- }
- @keyframes msg {
- from {transform: translate(-120%, 0);}
- to {transform: none;}
- }
- .zui {
- position: fixed;
- right: 10px;
- top: 10px;
- z-index: 9999;
- display: flex;
- flex-direction: column;
- font-family: Arial, sans-serif;
- font-size: 14px;
- color:#fff;
- width: 250px;
- user-select: none;
- border-radius: 8px;
- overflow: hidden;
- background: linear-gradient(135deg, #333, #222);
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
- border: 1px solid #000;
- color:#fff;
- }
- .zui-header {
- background: linear-gradient(135deg, #333, #222);
- padding: 10px;
- font-weight: bold;
- font-size: 16px;
- text-align: center;
- position: relative;
- cursor: pointer;
- color:#fff;
- }
- .zui-item {
- padding: 10px 8px;
- display: flex;
- justify-content: space-between;
- align-items: center;
- background: rgba(0, 0, 0);
- border-bottom: 1px solid rgba(255, 255, 255, 0.1);
- transition: background 0.3s;
- cursor: pointer;
- color:#fff;
- }
- .zui-item:last-child {
- border-bottom: none;
- }
- .zui-item:hover {
- color: rgba(5, 5, 5);
- }
- .zui-item.text {
- justify-content: center;
- cursor: unset;
- text-align: center;
- background: none;
- border-bottom: none;
- color:#fff;
- }
- .zui-item-value {
- font-weight: bold;
- color:#fff;
- }
- .zui-content {
- color:#fff;
- display: block;
- }
- `;
- document.head.appendChild(style);
-
- /************* Common Variables and Functions *************/
-
- const COOKIE_NAME = "krunker_access_auth";
- const COOKIE_VALID_DAYS = 7;
-
- function setCookie(name, value, days) {
- const date = new Date();
- date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
- const expires = "expires=" + date.toUTCString();
- document.cookie = name + "=" + encodeURIComponent(value) + ";" + expires + ";path=/";
- }
-
- function getCookie(name) {
- const decodedCookie = decodeURIComponent(document.cookie);
- const ca = decodedCookie.split(';');
- const cookieName = name + "=";
- for (let i = 0; i < ca.length; i++) {
- let c = ca[i].trim();
- if (c.indexOf(cookieName) === 0) {
- return c.substring(cookieName.length, c.length);
- }
- }
- return "";
- }
-
- function checkAccess() {
- const storedValue = getCookie(COOKIE_NAME);
- if (storedValue) {
- const storedTime = parseInt(storedValue, 10);
- const elapsedTime = Date.now() - storedTime;
- if (elapsedTime < COOKIE_VALID_DAYS * 24 * 60 * 60 * 1000) {
- return true;
- }
- }
- setCookie(COOKIE_NAME, Date.now().toString(), COOKIE_VALID_DAYS);
- return false;
- }
-
- if (!checkAccess()) {
- console.log("Access denied. Please redownload the script.");
- return;
- }
-
- console.log("KCS v0.8.0 is loaded.");
-
- const THREE = window.THREE;
- delete window.THREE;
-
- // Settings
- const settings = {
- aimbotEnabled: false,
- espEnabled: true,
- espLines: false,
- aimAssistEnabled: false,
- recoilCompEnabled: true,
- highJumpEnabled: false
- };
-
- const addOnSettings = {
- 'FPS Boost': false,
- 'Speed Boost': false,
- 'Auto Shoot': false,
- 'Auto Jump': false,
- 'Krunker Hardcore Mode': false
- };
-
- const keyToSetting = {
- KeyB: 'aimbotEnabled',
- KeyM: 'espEnabled',
- KeyN: 'espLines',
- KeyV: 'aimAssistEnabled',
- KeyL: 'highJumpEnabled',
- };
-
- let scene;
- let myPlayer;
-
- const x = {
- window: window,
- document: document,
- querySelector: document.querySelector.bind(document),
- consoleLog: console.log,
- ReflectApply: Reflect.apply,
- ArrayPrototype: Array.prototype,
- ArrayPush: Array.prototype.push,
- ObjectPrototype: Object.prototype,
- clearInterval: window.clearInterval,
- setTimeout: window.setTimeout,
- indexOf: String.prototype.indexOf,
- requestAnimationFrame: window.requestAnimationFrame
- };
-
- x.consoleLog('Waiting to inject...');
-
- const proxied = function (object) {
- try {
- if (typeof object === 'object' &&
- typeof object.parent === 'object' &&
- object.parent.type === 'Scene' &&
- object.parent.name === 'Main') {
- x.consoleLog('Found Scene!');
- scene = object.parent;
- x.ArrayPrototype.push = x.ArrayPush;
- }
- } catch (error) {}
- return x.ArrayPush.apply(this, arguments);
- };
-
- const tempVector = new THREE.Vector3();
- const tempObject = new THREE.Object3D();
- tempObject.rotation.order = 'YXZ';
-
- const geometry = new THREE.EdgesGeometry(new THREE.BoxGeometry(5, 15, 5).translate(0, 7.5, 0));
- const material = new THREE.RawShaderMaterial({
- vertexShader: `
- attribute vec3 position;
- uniform mat4 projectionMatrix;
- uniform mat4 modelViewMatrix;
- void main() {
- gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
- gl_Position.z = 1.0;
- }
- `,
- fragmentShader: `
- void main() {
- gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
- }
- `
- });
-
- const line = new THREE.LineSegments(new THREE.BufferGeometry(), material);
- line.frustumCulled = false;
- const linePositions = new THREE.BufferAttribute(new Float32Array(100 * 2 * 3), 3);
- line.geometry.setAttribute('position', linePositions);
-
- let injectTimer = null;
-
- function showMsg(message, bool) {
- let msgDiv = document.querySelector('.msg');
- if (!msgDiv) {
- msgDiv = document.createElement('div');
- msgDiv.className = 'msg';
- document.body.appendChild(msgDiv);
- }
- msgDiv.innerText = message;
- msgDiv.style.background = bool ? 'rgba(0, 128, 0, 0.6)' : 'rgba(128, 0, 0, 0.6)';
- msgDiv.style.display = 'block';
- setTimeout(() => {
- msgDiv.style.display = 'none';
- }, 3000);
- }
-
- function aimAtTarget(myPlayer, targetPlayer, factor) {
- tempVector.setScalar(0);
- if (targetPlayer && targetPlayer.children && targetPlayer.children[0] && targetPlayer.children[0].children && targetPlayer.children[0].children[0]) {
- targetPlayer.children[0].children[0].localToWorld(tempVector);
- } else {
- tempVector.copy(targetPlayer.position);
- }
-
- tempObject.position.copy(myPlayer.position);
- tempObject.lookAt(tempVector);
-
- myPlayer.children[0].rotation.x += factor * (-tempObject.rotation.x - myPlayer.children[0].rotation.x);
- myPlayer.rotation.y += factor * ((tempObject.rotation.y + Math.PI) - myPlayer.rotation.y);
- }
-
- function aimAssist(myPlayer, targetPlayer) {
- const maxDistance = 600;
- const baseVector = new THREE.Vector3();
-
- if (targetPlayer && targetPlayer.children && targetPlayer.children[0] && targetPlayer.children[0].children && targetPlayer.children[0].children[0]) {
- targetPlayer.children[0].children[0].localToWorld(baseVector);
- } else {
- baseVector.copy(targetPlayer.position);
- }
-
- const dist = baseVector.distanceTo(myPlayer.position);
- if (dist > maxDistance) {
- return;
- }
-
- aimAtTarget(myPlayer, targetPlayer, 1.0);
- }
-
- let shooting = false;
- let stableRotationX = 0;
- let noRecoilInterval = null;
- function startNoRecoilLoop() {
- if (noRecoilInterval) return;
- noRecoilInterval = setInterval(() => {
- if (!myPlayer || !shooting || !settings.recoilCompEnabled) return;
- myPlayer.children[0].rotation.x = stableRotationX;
- }, 10);
- }
-
- function stopNoRecoilLoop() {
- if (noRecoilInterval) {
- clearInterval(noRecoilInterval);
- noRecoilInterval = null;
- }
- }
-
- window.addEventListener('pointerdown', function(event) {
- if (!myPlayer) return;
- if (event.button === 0) {
- shooting = true;
- stableRotationX = myPlayer.children[0].rotation.x;
- if (settings.recoilCompEnabled) {
- startNoRecoilLoop();
- }
- }
- });
-
- window.addEventListener('pointerup', function(event) {
- if (event.button === 0) {
- shooting = false;
- stopNoRecoilLoop();
- }
- });
-
- // High Jump
- function doHighJump() {
- if (!myPlayer) return;
- myPlayer.position.y += 10;
- console.log("High jump performed");
- }
-
- // Auto Shoot
- const raycaster = new THREE.Raycaster();
- const shootInterval = 200;
- let autoShootLoop = null;
-
- function startAutoShootLoop() {
- if (autoShootLoop) return;
- autoShootLoop = setInterval(() => {
- if (!myPlayer || !addOnSettings['Auto Shoot']) return;
- // Only shoot if Aimbot or AimAssist is active
- if (!settings.aimbotEnabled && !settings.aimAssistEnabled) return;
-
- const target = findClosestVisibleEnemy(100);
- if (target) {
- simulateShoot();
- }
- }, shootInterval);
- }
-
- function stopAutoShootLoop() {
- if (autoShootLoop) {
- clearInterval(autoShootLoop);
- autoShootLoop = null;
- }
- }
-
- function findClosestVisibleEnemy(maxDist) {
- if (!scene || !myPlayer) return null;
- const enemies = [];
- for (let i = 0; i < scene.children.length; i++) {
- const c = scene.children[i];
- if (c !== myPlayer && c.type === 'Object3D') {
- try {
- if (!c.children[0].children[0].type === 'PerspectiveCamera') {
- enemies.push(c);
- }
- } catch {}
- }
- }
-
- let closest = null;
- let closestDist = Infinity;
-
- for (const e of enemies) {
- const dist = e.position.distanceTo(myPlayer.position);
- if (dist <= maxDist && dist < closestDist) {
- if (hasLineOfSight(myPlayer, e)) {
- closestDist = dist;
- closest = e;
- }
- }
- }
- return closest;
- }
-
- function hasLineOfSight(myPlayer, target) {
- raycaster.set(myPlayer.position.clone().add(new THREE.Vector3(0,10,0)),
- target.position.clone().sub(myPlayer.position).normalize());
- const intersects = raycaster.intersectObjects(scene.children, true);
- if (intersects.length > 0) {
- for (const inter of intersects) {
- if (inter.object && (target === inter.object || target.children.includes(inter.object) || target.children[0].children.includes(inter.object))) {
- return true;
- }
- if (inter.distance < target.position.distanceTo(myPlayer.position)) {
- return false;
- }
- }
- }
- return false;
- }
-
- function simulateShoot() {
- const event = new MouseEvent('pointerdown', {button:0});
- window.dispatchEvent(event);
- setTimeout(() => {
- const eventUp = new MouseEvent('pointerup', {button:0});
- window.dispatchEvent(eventUp);
- }, 50);
- }
-
- // Auto Jump
- let autoJumpInterval = null;
- function startAutoJump() {
- if (autoJumpInterval) return;
- autoJumpInterval = setInterval(() => {
- if (!myPlayer || !addOnSettings['Auto Jump']) return;
- const event = new KeyboardEvent('keydown', { key: ' ', code: 'Space', bubbles: true });
- window.dispatchEvent(event);
- myPlayer.position.y += 2;
- }, 2500);
- }
-
- function stopAutoJump() {
- if (autoJumpInterval) {
- clearInterval(autoJumpInterval);
- autoJumpInterval = null;
- }
- }
-
- // FPS Boost
- let fpsBoostActive = false;
- function enableFPSBoost(){
- console.log("FPS Boost enabled");
- fpsBoostActive = true;
- if (scene && scene.fog) {
- scene.fog = null;
- }
- let canvas = document.querySelector('canvas');
- if (canvas) {
- canvas.style.width = (canvas.clientWidth / 2) + "px";
- canvas.style.height = (canvas.clientHeight / 2) + "px";
- }
- }
-
- function disableFPSBoost(){
- console.log("FPS Boost disabled");
- fpsBoostActive = false;
- let canvas = document.querySelector('canvas');
- if (canvas) {
- canvas.style.width = "";
- canvas.style.height = "";
- }
- }
-
- // Speed Boost
- let originalSpeed = null;
- function enableSpeedBoost(){
- console.log("Speed Boost enabled");
- if (!myPlayer) return;
- if (!originalSpeed && typeof myPlayer.speed !== 'undefined') {
- originalSpeed = myPlayer.speed;
- myPlayer.speed = myPlayer.speed * 2;
- } else if (myPlayer.controls && typeof myPlayer.controls.moveSpeed !== 'undefined') {
- if (!originalSpeed) originalSpeed = myPlayer.controls.moveSpeed;
- myPlayer.controls.moveSpeed = originalSpeed * 2;
- }
- }
-
- function disableSpeedBoost(){
- console.log("Speed Boost disabled");
- if (!myPlayer) return;
- if (originalSpeed !== null) {
- if (typeof myPlayer.speed !== 'undefined') {
- myPlayer.speed = originalSpeed;
- } else if (myPlayer.controls && typeof myPlayer.controls.moveSpeed !== 'undefined') {
- myPlayer.controls.moveSpeed = originalSpeed;
- }
- originalSpeed = null;
- }
- }
-
- function enableAutoShoot(){
- console.log("Auto Shoot enabled");
- startAutoShootLoop();
- }
-
- function disableAutoShoot(){
- console.log("Auto Shoot disabled");
- stopAutoShootLoop();
- }
-
- function enableAutoJump(){
- console.log("Auto Jump enabled");
- startAutoJump();
- }
-
- function disableAutoJump(){
- console.log("Auto Jump disabled");
- stopAutoJump();
- }
-
- function enablekrunkerhardcore(){
- console.log("Krunker Hardcore Mode enabled");
- if (scene) {
- scene.fog = new THREE.Fog(0x000000, 10, 50);
- }
- }
-
- function disablekrunkerhardcore(){
- console.log("Krunker Hardcore Mode disabled");
- if (scene) {
- scene.fog = null;
- }
- }
-
- function animate() {
- x.requestAnimationFrame.call(x.window, animate);
-
- if (!scene && !injectTimer) {
- const el = x.querySelector('#loadingBg');
- if (el && el.style.display === 'none') {
- x.consoleLog('Inject timer started!');
- injectTimer = x.setTimeout.call(x.window, () => {
- x.consoleLog('Injected!');
- x.ArrayPrototype.push = proxied;
- if (scene && !scene.getObjectByName('espLine')) {
- line.name = 'espLine';
- scene.add(line);
- }
- }, 2000);
- }
- }
-
- if (!scene) return;
-
- const players = [];
- myPlayer = null;
-
- for (let i = 0; i < scene.children.length; i++) {
- const child = scene.children[i];
- if (child.type === 'Object3D') {
- try {
- if (child.children[0].children[0].type === 'PerspectiveCamera') {
- myPlayer = child;
- } else {
- players.push(child);
- }
- } catch (err) {}
- }
- }
-
- if (!myPlayer) {
- x.consoleLog('No player found.');
- x.ArrayPrototype.push = proxied;
- return;
- }
-
- let counter = 0;
- let targetPlayer;
- let minDistance = Infinity;
- const maxAimbotDistance = 255;
-
- tempObject.matrix.copy(myPlayer.matrix).invert();
-
- for (let i = 0; i < players.length; i++) {
- const player = players[i];
-
- if (!player.box) {
- const box = new THREE.LineSegments(geometry, material);
- box.frustumCulled = false;
- player.add(box);
- player.box = box;
- }
-
- if (player.position.x === myPlayer.position.x && player.position.z === myPlayer.position.z) {
- player.box.visible = false;
- if (line.parent !== player) {
- player.add(line);
- }
- continue;
- }
-
- if (settings.espLines) {
- linePositions.setXYZ(counter++, 0, 10, -5);
-
- tempVector.copy(player.position);
- tempVector.y += 9;
- tempVector.applyMatrix4(tempObject.matrix);
-
- linePositions.setXYZ(
- counter++,
- tempVector.x,
- tempVector.y,
- tempVector.z
- );
- }
-
- player.box.visible = settings.espEnabled;
-
- const distance = player.position.distanceTo(myPlayer.position);
- if (distance < minDistance && distance <= maxAimbotDistance) {
- targetPlayer = player;
- minDistance = distance;
- }
- }
-
- if (settings.espLines) {
- linePositions.needsUpdate = true;
- line.geometry.setDrawRange(0, counter);
- line.visible = true;
- } else {
- line.visible = false;
- }
-
- if (!targetPlayer) return;
-
- if (settings.aimbotEnabled) {
- aimAtTarget(myPlayer, targetPlayer, 1.0);
- } else if (settings.aimAssistEnabled && !settings.aimbotEnabled) {
- aimAssist(myPlayer, targetPlayer);
- }
- }
-
- window.addEventListener('keydown', function(event) {
- if (event.code === 'Space' && myPlayer) {
- if (settings.highJumpEnabled) {
- doHighJump();
- }
- }
- });
-
- function fromHtml(html) {
- const div = document.createElement('div');
- div.innerHTML = html;
- return div.children[0];
- }
-
- function createGUI() {
- const guiEl = fromHtml(`
- <div class="zui">
- <div class="zui-header">
- Krunker Cheating Software v.0.8.0
- <span class="zui-item-value">+</span>
- </div>
- <div class="zui-content">
- <div class="zui-section normal-settings-section">
- <div class="zui-item" data-setting="aimbotEnabled">
- <span>Aimbot</span>
- <span class="zui-item-value">OFF</span>
- </div>
- <div class="zui-item" data-setting="espEnabled">
- <span>ESP</span>
- <span class="zui-item-value">OFF</span>
- </div>
- <div class="zui-item" data-setting="espLines">
- <span>ESP Lines</span>
- <span class="zui-item-value">OFF</span>
- </div>
- <div class="zui-item" data-setting="aimAssistEnabled">
- <span>Aim Assist</span>
- <span class="zui-item-value">OFF</span>
- </div>
- <div class="zui-item" data-setting="recoilCompEnabled">
- <span>Recoil Compensation</span>
- <span class="zui-item-value">OFF</span>
- </div>
- <div class="zui-item" data-setting="highJumpEnabled">
- <span>High Jump</span>
- <span class="zui-item-value">OFF</span>
- </div>
- <div class="zui-item toggle-more-settings">
- <span>More Settings</span>
- <span class="zui-item-value">â</span>
- </div>
- </div>
- <div class="zui-section add-on-settings-section" style="display:none;">
- <strong>Add-On Settings</strong>
- <div class="zui-item" data-addon-setting="FPS Boost">
- <span>FPS Boost</span>
- <span class="zui-item-value">OFF</span>
- </div>
- <div class="zui-item" data-addon-setting="Speed Boost">
- <span>Speed Boost</span>
- <span class="zui-item-value">OFF</span>
- </div>
- <div class="zui-item" data-addon-setting="Auto Shoot">
- <span>Auto Shoot</span>
- <span class="zui-item-value">OFF</span>
- </div>
- <div class="zui-item" data-addon-setting="Auto Jump">
- <span>Auto Jump</span>
- <span class="zui-item-value">OFF</span>
- </div>
- <div class="zui-item" data-addon-setting="Krunker Hardcore Mode">
- <span>Krunker Hardcore Mode</span>
- <span class="zui-item-value">OFF</span>
- </div>
- <div class="zui-item toggle-back-settings">
- <span>Back</span>
- <span class="zui-item-value">â¬
ï¸</span>
- </div>
- </div>
- <div class="zui-item text">
- <span>Dev: wi1lliott8411</span>
- </div>
- </div>
- </div>
- `);
-
- const toggleMoreSettingsBtn = guiEl.querySelector('.toggle-more-settings');
- const toggleBackSettingsBtn = guiEl.querySelector('.toggle-back-settings');
-
- toggleMoreSettingsBtn.addEventListener('click', function() {
- const normalSection = guiEl.querySelector('.normal-settings-section');
- const addOnSection = guiEl.querySelector('.add-on-settings-section');
- normalSection.style.display = 'none';
- addOnSection.style.display = 'block';
- });
-
- toggleBackSettingsBtn.addEventListener('click', function() {
- const normalSection = guiEl.querySelector('.normal-settings-section');
- const addOnSection = guiEl.querySelector('.add-on-settings-section');
- normalSection.style.display = 'block';
- addOnSection.style.display = 'none';
- });
-
- const normalToggleItems = guiEl.querySelectorAll('.normal-settings-section .zui-item[data-setting]');
- normalToggleItems.forEach(item => {
- const settingKey = item.getAttribute('data-setting');
- const valueEl = item.querySelector('.zui-item-value');
- updateSettingDisplay(settingKey, settings[settingKey], valueEl);
-
- item.addEventListener('click', function() {
- settings[settingKey] = !settings[settingKey];
- updateSettingDisplay(settingKey, settings[settingKey], valueEl);
- showMsg(`${fromCamel(settingKey)} ${settings[settingKey] ? 'enabled' : 'disabled'}`, settings[settingKey]);
- applyImmediateEffects(settingKey, settings[settingKey]);
- });
- });
-
- const addOnToggleItems = guiEl.querySelectorAll('.add-on-settings-section .zui-item[data-addon-setting]');
- addOnToggleItems.forEach(item => {
- const settingName = item.getAttribute('data-addon-setting');
- const valueEl = item.querySelector('.zui-item-value');
- updateAddOnSettingDisplay(settingName, addOnSettings[settingName], valueEl);
-
- item.addEventListener('click', function() {
- addOnSettings[settingName] = !addOnSettings[settingName];
- updateAddOnSettingDisplay(settingName, addOnSettings[settingName], valueEl);
- showMsg(`${settingName} ${addOnSettings[settingName] ? 'enabled' : 'disabled'}`, addOnSettings[settingName]);
- applyImmediateAddOnEffects(settingName, addOnSettings[settingName]);
- });
- });
-
- return guiEl;
- }
-
- function updateSettingDisplay(settingKey, isActive, valueEl) {
- valueEl.innerText = isActive ? 'ON' : 'OFF';
- valueEl.style.color = isActive ? '#0f0' : '#f00';
- }
-
- function updateAddOnSettingDisplay(settingName, isActive, valueEl) {
- valueEl.innerText = isActive ? 'ON' : 'OFF';
- valueEl.style.color = isActive ? '#0f0' : '#f00';
- }
-
- function applyImmediateEffects(settingKey, value) {
- console.log(`Setting ${settingKey} turned ${value ? 'ON' : 'OFF'}`);
-
- switch(settingKey) {
- case 'aimbotEnabled':
- if(value) { enableAimbot(); } else { disableAimbot(); }
- break;
- case 'espEnabled':
- if(value) { enableESP(); } else { disableESP(); }
- break;
- case 'espLines':
- if(value) { enableESPLines(); } else { disableESPLines(); }
- break;
- case 'aimAssistEnabled':
- if(value) { enableAimAssist(); } else { disableAimAssist(); }
- break;
- case 'recoilCompEnabled':
- if(value) { enableRecoilCompensation(); } else { disableRecoilCompensation(); }
- break;
- case 'highJumpEnabled':
- if(value) { enableHighJump(); } else { disableHighJump(); }
- break;
- default:
- console.log(`No action for setting: ${settingKey}`);
- }
- }
-
- function applyImmediateAddOnEffects(settingName, value) {
- console.log(`Add-On setting ${settingName} turned ${value ? 'ON' : 'OFF'}`);
-
- switch(settingName) {
- case 'FPS Boost':
- if(value) { enableFPSBoost(); } else { disableFPSBoost(); }
- break;
- case 'Speed Boost':
- if(value) { enableSpeedBoost(); } else { disableSpeedBoost(); }
- break;
- case 'Auto Shoot':
- if(value) { enableAutoShoot(); } else { disableAutoShoot(); }
- break;
- case 'Auto Jump':
- if(value) { enableAutoJump(); } else { disableAutoJump(); }
- break;
- case 'Krunker Hardcore Mode':
- if(value) { enablekrunkerhardcore(); } else { disablekrunkerhardcore(); }
- break;
- default:
- console.log(`No action for Add-On setting: ${settingName}`);
- }
- }
-
- function fromCamel(text) {
- const result = text.replace(/([A-Z])/g, ' $1');
- return result.charAt(0).toUpperCase() + result.slice(1);
- }
-
- // Dummy functions
- function enableAimbot(){console.log("Aimbot enabled");}
- function disableAimbot(){console.log("Aimbot disabled");}
- function enableESP(){console.log("ESP enabled");}
- function disableESP(){console.log("ESP disabled");}
- function enableESPLines(){console.log("ESP Lines enabled");}
- function disableESPLines(){console.log("ESP Lines disabled");}
- function enableAimAssist(){console.log("Aim Assist enabled");}
- function disableAimAssist(){console.log("Aim Assist disabled");}
- function enableRecoilCompensation(){console.log("Recoil Compensation enabled");}
- function disableRecoilCompensation(){console.log("Recoil Compensation disabled");}
- function enableHighJump(){console.log("High Jump enabled");}
- function disableHighJump(){console.log("High Jump disabled");}
-
- window.addEventListener('keyup', function (event) {
- if (document.activeElement && document.activeElement.value !== undefined) return;
- if (keyToSetting[event.code]) {
- toggleSetting(keyToSetting[event.code]);
- }
- });
-
- function toggleSetting(key) {
- settings[key] = !settings[key];
- showMsg(`${fromCamel(key)} ${settings[key] ? 'enabled' : 'disabled'}`, settings[key]);
- const item = document.querySelector(`.normal-settings-section .zui-item[data-setting="${key}"]`);
- if(item) {
- const valueEl = item.querySelector('.zui-item-value');
- updateSettingDisplay(key, settings[key], valueEl);
- }
- applyImmediateEffects(key, settings[key]);
- }
-
- function appendGUI() {
- const gui = createGUI();
- document.body.appendChild(gui);
- }
-
- if (document.readyState === 'loading') {
- window.addEventListener('DOMContentLoaded', appendGUI);
- } else {
- appendGUI();
- }
-
- animate();
-
- })();