Greasy Fork

KRUNKER.IO AIMBOT, XRAY, SPINBOT, WIREFRAME, FOV BOX, AND 3RD PERSON BY DOGEWARE

Krunker's Mod Menu Aimbot targets nearest VISIBLE player. Adjust Smoothing for precision. Use Xray to see through walls, wireframe for players & world, and more

当前为 2024-04-20 提交的版本,查看 最新版本

// ==UserScript==
// @name         KRUNKER.IO AIMBOT, XRAY, SPINBOT, WIREFRAME, FOV BOX, AND 3RD PERSON BY DOGEWARE
// @namespace    http://tampermonkey.net/
// @version      0.6
// @description  Krunker's Mod Menu Aimbot targets nearest VISIBLE player. Adjust Smoothing for precision. Use Xray to see through walls, wireframe for players & world, and more
// @author       DOGEWARE
// @match        *://krunker.io/*
// @match        *://browserfps.com/*
// @exclude      *://krunker.io/social*
// @exclude      *://krunker.io/editor*
// @icon         https://media.giphy.com/media/CxYGmxv0Oyz4I/giphy.gif
// @grant        none
// @require      https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js
// @antifeature  ads
// ==/UserScript==
const THREE = window.THREE;
const urlParams = new URLSearchParams(window.location.search)
let key = urlParams.get('key');
const Start = ["H7", "J6", "P9", "H8"]
const End = ["BJ8", "C8Y", "PLOG", "C149"]
const x = 1
let usedKey = localStorage.getItem('key')
const alertMsg = `⚠️ Invalid Key Alert ⚠️

This script now requires our license key for activation. To obtain the key, please visit our official page at dogescripts.pages.dev. This process only takes a few seconds and needs to be done about twice a day.

🛑 Advertisements
`
const ChanceToReload = Math.floor(Math.random() * 2) + 1
if(key !== null) {
    localStorage.setItem('key', key)
}
if(localStorage.getItem('key') === null) {
    alert(alertMsg)
    location.href = `https://dogescripts.pages.dev/games/?script=${location.hostname}`
    return
} else {
    console.log(ChanceToReload)
    if(ChanceToReload === x) {
        alert(alertMsg, usedKey)
        location.href = `https://dogescripts.pages.dev/games/?script=${location.hostname}`
        return
    }
}
let isValidKey = false;
switch(isValidKey) {
    case true:
        alert("Dont Modify This Script")
        location.href = `https://dogescripts.pages.dev/games/?script=${location.hostname}`
        return
    case null:
        alert("Dont Modify This Script")
        location.href = `https://dogescripts.pages.dev/games/?script=${location.hostname}`
        return
}
try {
    for(const startStr of Start) {
        if(key.startsWith(startStr)) {
            for(const endStr of End) {
                if(key.endsWith(endStr)) {
                    isValidKey = true
                    break;
                }
            }
            break;
        }
    }
} catch {
    isValidKey = true
}
if(isValidKey) {
    console.log('Vaild Key')
    alert("[O]Hide Menu")
}else{
    return
}

let WorldScene;
let intersections;
let DOGEWARE = {
    player: {
        wireframe: false,
        opacity: 1,
        colorR: 1,
        colorB: 0,
        colorG: 0
    },
    spin: {
        spinbot: false,
        speed: 0.1,
        spinAngle: 0
    },
    ESP: {
        xray: false,
        VisiblePlayers: true,
        wireframe: false,
        layer: 2,
        opacity: 0.3
    },
    Cam: {
        x: 0,
        y: 0,
        z: 0
    },
    aimbot: {
        krunkAimbot: true,
        onfov: false,
        smoothingFactor: 0.99,
        size: 0.15,
    },
}
let norms = {
    allowTarget: true,
    console: console.log,
    injectTime: 3000
}
const temporaryVector3 = new THREE.Vector3()
const placeholderObj = new THREE.Object3D()
placeholderObj.rotation.order = 'YXZ'
const origialArrayPush = Array.prototype.push
const getMainScene = function(object) {
    if(object && object.parent && object.parent.type === "Scene" && object.parent.name === "Main") {
        WorldScene = object.parent;
        Array.prototype.push = origialArrayPush;
    }
    return origialArrayPush.apply(this, arguments);
};

function Inject() {
    requestAnimationFrame.call(window, Inject);
    if(!WorldScene) {
        window.setTimeout(() => {
            Array.prototype.push = getMainScene;
        }, norms.injectTime)
    }
    const entities = []
    let myController
    let Player2Target
    let RangeFactor = Infinity
    for(const child of WorldScene.children) {
        if(child.material) {
            child.material.wireframe = DOGEWARE.ESP.wireframe
            child.material.blending = DOGEWARE.ESP.xray ? 2 : 1
        }
    }
    WorldScene.children.forEach(child => {
        if(child.type === 'Object3D') {
            try {
                const Camera = child.children[0]?.children[0]
                if(Camera && Camera.type === 'PerspectiveCamera') {
                    myController = child
                } else {
                    entities.push(child)
                }
            } catch {}
        }
    });
    if(!myController) {
        Array.prototype.push = getMainScene
        return
    }
    placeholderObj.matrix.copy(myController.matrix)
        .invert()
    entities.forEach(player => {
        const playerPosition = player.position
        const controllerPosition = myController.position
        if(playerPosition.x !== controllerPosition.x || playerPosition.z !== controllerPosition.z) {
            const dist = playerPosition.distanceTo(controllerPosition)
            if(dist < RangeFactor) {
                Player2Target = player
                RangeFactor = dist
            }
        }
    });
    temporaryVector3.setScalar(0);
    if(DOGEWARE.spin.spinbot) {
        DOGEWARE.spin.spinAngle += DOGEWARE.spin.speed
        const targetRotationY = DOGEWARE.spin.spinAngle % (Math.PI * 2)
        myController.children[0].rotation.y += (targetRotationY - myController.children[0].rotation.y) * DOGEWARE.aimbot.smoothingFactor
    }
    myController.layers.mask = 1
    try {
        Player2Target.children[0].children[0].localToWorld(temporaryVector3)
    } catch {}
    myController.children[0].position.y = DOGEWARE.Cam.y
    myController.children[0].position.x = DOGEWARE.Cam.x
    myController.children[0].position.z = DOGEWARE.Cam.z
    if(typeof myController !== 'undefined' && typeof Player2Target !== 'undefined' && norms.allowTarget) {
        const raycaster = new THREE.Raycaster()
        const direction = new THREE.Vector3()
        const myPlayerPosition = new THREE.Vector3()
        myController.getWorldPosition(myPlayerPosition)

        if(DOGEWARE.aimbot.onfov) {
            direction.subVectors(Player2Target.position, myPlayerPosition).normalize()
            const frontDirection = new THREE.Vector3(0, 0, myController.rotation.z)
            const angleOffset = DOGEWARE.aimbot.size
            const axis = new THREE.Vector3().crossVectors(frontDirection, direction).normalize()
            const angle = Math.acos(frontDirection.dot(direction))
            const quaternion = new THREE.Quaternion().setFromAxisAngle(axis, angleOffset)
            const fanOutDirection = direction.clone().applyQuaternion(quaternion).normalize()
            raycaster.set(myPlayerPosition, fanOutDirection)
            raycaster.near = 0.05
            raycaster.far = 1000
            norms.allowTarget = true;
            intersections = raycaster.intersectObject(Player2Target, true);
        } else {
            const raycaster = new THREE.Raycaster()
            const direction = new THREE.Vector3()
            const myPlayerPosition = new THREE.Vector3()
            myController.getWorldPosition(myPlayerPosition)
            raycaster.set(myPlayerPosition, direction.subVectors(Player2Target.position, myPlayerPosition).normalize())
            raycaster.near = 0.1
            raycaster.far = 100
            norms.allowTarget = true
            intersections = raycaster.intersectObject(Player2Target, true)
        }
        try {
            if(intersections[0].object.material && intersections[0].object) {
                const material = intersections[0].object.material
                intersections[0].object.renderOrder = 99999
                material.transparent = true;
                norms.console(intersections[0].object.material)
                material.depthTest = DOGEWARE.ESP.VisiblePlayers ? false : true
                material.color.r = DOGEWARE.player.colorR
                material.color.g = DOGEWARE.player.colorG
                material.color.b = DOGEWARE.player.colorB
                material.emissive.r = DOGEWARE.player.colorR * 255
                material.emissive.g = DOGEWARE.player.colorG * 255
                material.emissive.b = DOGEWARE.player.colorB * 255

                material.fog = false;
                material.wireframe = DOGEWARE.player.wireframe
                material.opacity = DOGEWARE.player.opacity
            } else {}
        } catch {}
        if(intersections[0].object && norms.allowTarget) {
            if(DOGEWARE.aimbot.krunkAimbot) {
                placeholderObj.position.copy(myController.position)
                placeholderObj.lookAt(temporaryVector3)
                norms.allowTarget = true
                const targetRotationX = -placeholderObj.rotation.x;
                const targetRotationY = placeholderObj.rotation.y + Math.PI
                myController.children[0].rotation.x += (targetRotationX - myController.children[0].rotation.x) * DOGEWARE.aimbot.smoothingFactor
                myController.rotation.y += (targetRotationY - myController.rotation.y) * DOGEWARE.aimbot.smoothingFactor
                norms.console('Player2Target is visible to myPlayer.')
            }
        } else {
            norms.allowTarget = false
        }
    } else {}
}

function createMenuItem() {
    const styleTag = document.createElement('style')
    styleTag.textContent = `
        .menuItem1:hover img{
          transform: scale(1.1);
        }
      `;
    document.head.appendChild(styleTag)
    const menuItemDiv = document.createElement('div')
    menuItemDiv.classList.add('menuItem')
    menuItemDiv.classList.add('menuItem1')
    menuItemDiv.setAttribute('onmouseenter', 'playTick()');
    menuItemDiv.setAttribute('onclick', 'playSelect()');
    const iconSpan = document.createElement('span')
    iconSpan.innerHTML = `<img src="https://media.giphy.com/media/CxYGmxv0Oyz4I/giphy.gif" width='60' height='60'>`
    iconSpan.style.color = '#ff6a0b';
    const titleDiv = document.createElement('div')
    titleDiv.classList.add('menuItemTitle1')
    titleDiv.classList.add('menuItemTitle')
    titleDiv.id = 'menuBtnProfile';
    titleDiv.style.fontSize = '18px';
    titleDiv.textContent = 'CH3ATS';
    menuItemDiv.addEventListener('click', openCheats)
    menuItemDiv.appendChild(iconSpan);
    menuItemDiv.appendChild(titleDiv);
    const menuItemContainer = document.getElementById('menuItemContainer')
    if(menuItemContainer) {
        menuItemContainer.appendChild(menuItemDiv)
    } else {
        alert('Error: #menuItemContainer not found.')
    }
}
setTimeout(function() {
    createMenuItem()
}, 700)
setTimeout(function() {
    if(document.getElementById('mapInfo') && !document.getElementById('mapInfo')
       .innerText.includes("All")) {
        //location.href = `https://${location.hostname}/`;
    } else {}
}, 4000)
// Create and append style element
const style = document.createElement('style');
style.innerHTML = `
/* Dark theme styling */


#menuContainer *{
    color: #ffffff !important;
        font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif !important;
}
#menuContainer {
background-color: #1a1a1a !important;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif !important;
    margin: 0 !important;
    padding: 0 !important;
    position: fixed !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    padding: 20px !important;
    border-radius: 10px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2) !important;
    z-index: 1000 !important;
    width: 345px;
}

.menuHeaderText1 {
    font-size: 20px !important;
    text-align: center !important;
    width: 170px;
}

.menuItemTitle1 {
    font-size: 18px !important;
    animation: rgbAnimation 0.5s infinite alternate !important;
}


@keyframes rgbAnimation {
    0% { color: rgb(255, 0, 0); }
    25% { color: rgb(255, 255, 0); }
    50% { color: rgb(0, 255, 0); }
    75% { color: rgb(0, 255, 255); }
    100% { color: rgb(255, 0, 255); }
}

.tab {
    display: flex;
    justify-content: space-around;
    gap: 8px;
    margin-bottom: 20px;
}

.tab button {
    background-color: transparent;
    border: none;
    padding: 8px 12px;
    font-weight: 400;
    outline: none;
    color: #ffffff;
    cursor: pointer;
    transition: all 0.3s ease;
}

.tab button:hover,
.tab button.active {
    background-color: rgba(255, 255, 255, 0.2);
    border-radius: 5px;
}

.tabcontent {
    display: none;
    margin-top: 20px;
}

.tabcontent.active {
    display: block;
}

.dropdown-toggle {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-color: #1f1f1f;
    color: #ffffff;
    border: none;
    margin-top: 7px;
    padding: 13px;
    border-radius: 5px;
    cursor: pointer;
    float: right 1;
    margin-left: 139.8px !important;
    border: 1px solid #333333;
    font-weight: 400;
    translate: 5px;
    width: 90px;
    height: 50px;
}

.dropdown-toggle:focus {
    outline: none;
}

.dropdown-toggle option {
    background-color: #1f1f1f;
    color: #ffffff;
}

.dropdown-toggle:hover,
.dropdown-toggle:focus {
    background-color: #333333;
}

input[type="text"] {
    width: 140px;
    padding: 12px;
    margin-bottom: 10px;
    border-radius: 5px;
    border: 1px solid #333333;
    background-color: #1f1f1f;
    color: #ffffff;
    float: right;
    margin-left: 10px;
    height: 20px;
    margin-top: 7px;

}

/* Add a class for labels to float them left and make them inline-block */
.label-inline {
float: left;
    display: inline-block;
    width: 100px;
    margin-right: 10px;
    margin-top: 30px;
    padding: 0;
    font-size: 18.5px;
}
.overlay {
    position: fixed !important;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    background-color: rgba(0, 0, 0, 0.5) !important;
    backdrop-filter: blur(5px);
    z-index: 999 !important;
    display: none;
}

.overlay.show {
    display: block; /* Show overlay when menu is visible */
}
.bg1{
background: linear-gradient(to right, rgb(90, 100, 200), rgb(200, 90, 100));
border-radius: 3px;
}
.inlineNames{
     display: flex;
    justify-content: space-around;
    width: min-content;
    gap: 8px;
}
.inlineNames img{
 object-fit: cover;
 border-radius: 10px;
}
`;
document.head.appendChild(style);

const overlay = document.createElement('div');
overlay.classList.add('overlay');
document.body.appendChild(overlay);

// Create menu container and append to body
const menuContainer = document.createElement('div');
menuContainer.id = 'menuContainer';
document.body.appendChild(menuContainer);
const header = document.createElement('div')
header.innerHTML = `
   <div class="header">
    <section class="inlineNames">
    <img width="60" height="60" src="https://media.tenor.com/images/c51500433e6f6fff5a8c362335bc8242/tenor.gif">
    <p class='menuHeaderText1'>🎉KrunkWare🎉</p>
    </section>
      <div class="bg1" style="height: 6px;"></div>
    </div>
    <div style="height: 18px;"></div>
`
menuContainer.appendChild(header)
function createTab(tabName) {
    const tabButton = document.createElement('button');
    tabButton.textContent = tabName.charAt(0).toUpperCase() + tabName.slice(1);
    tabButton.addEventListener('click', () => openTab(tabName));
    tabLinks.appendChild(tabButton);

    const tabContent = document.createElement('div');
    tabContent.classList.add('tabcontent');
    menuContainer.appendChild(tabContent);
    tabContents[tabName] = tabContent;

    populateTab(tabName);
}

function populateTab(tabName) {
    const tabContent = tabContents[tabName];
    const tabOptions = DOGEWARE[tabName];
    for (const option in tabOptions) {
        if (typeof tabOptions[option] !== 'object') {
            const label = document.createElement('label');
            label.textContent = option.charAt(0).toUpperCase() + option.slice(1);
            label.classList.add('label-inline');
            tabContent.appendChild(label);

            if (typeof tabOptions[option] === 'boolean') {
                const dropdownContainer = document.createElement('div');
                dropdownContainer.classList.add('dropdown-container');

                const dropdownButton = document.createElement('button');
                dropdownButton.classList.add('dropdown-toggle');
                dropdownButton.textContent = tabOptions[option] ? 'Enabled' : 'Disabled';
                dropdownButton.addEventListener('click', event => {
                    tabOptions[option] = !tabOptions[option];
                    dropdownButton.textContent = tabOptions[option] ? 'Enabled' : 'Disabled';
                    DOGEWARE[tabName][option] = tabOptions[option]; // Update DOGEWARE object
                });
                dropdownContainer.appendChild(dropdownButton);

                tabContent.appendChild(dropdownContainer);
            } else {
                const inputField = document.createElement('input');
                inputField.type = 'text';
                inputField.value = tabOptions[option];
                inputField.classList.add('input-field');
                inputField.addEventListener('input', event => {
                    tabOptions[option] = event.target.value;
                    DOGEWARE[tabName][option] = tabOptions[option]; // Update DOGEWARE object
                });
                tabContent.appendChild(inputField);
            }
            tabContent.appendChild(document.createElement('br'));
        }
    }
}

function openTab(tabName) {
    const tabs = document.querySelectorAll('.tabcontent');
    tabs.forEach(tab => tab.classList.remove('active'));
    const tabButtons = document.querySelectorAll('.tab button');
    tabButtons.forEach(tabButton => tabButton.classList.remove('active'));
    const tabContent = tabContents[tabName];
    tabContent.classList.add('active');
    const tabButton = [...tabLinks.querySelectorAll('button')].find(button => button.textContent === tabName.charAt(0).toUpperCase() + tabName.slice(1));
    tabButton.classList.add('active');
}


const tabLinks = document.createElement('div')
tabLinks.classList.add('tab')
menuContainer.appendChild(tabLinks)

const tabContents = {}
const tabNames = Object.keys(DOGEWARE)
tabNames.forEach(tabName => {
    createTab(tabName)
});
openTab(tabNames[0]);
let firstOpen = false
overlay.classList.add('show')


setInterval(function(){
    console.log(DOGEWARE)
},2000)
const h3Element = document.createElement('h3')
h3Element.style.position = 'absolute'
h3Element.style.top = '60%'
h3Element.style.left = '50%'
h3Element.style.transform = 'translate(-50%, -50%)'
h3Element.style.margin = '0'
h3Element.style.color = 'white'
h3Element.style.fontFamily = 'monospace'
document.body.appendChild(h3Element)
setInterval(function() {
    h3Element.textContent = `Targeting Player: ${intersections[0].distance} : ${intersections[0].object.name} ${intersections[0].object.type}`
}, 100)
function openCheats() {
    const displayStyle = menuContainer.style.display;
    menuContainer.style.transition = 'opacity 0.3s ease';
    menuContainer.style.opacity = '0';

    if (displayStyle === 'none') {
        menuContainer.style.display = 'block';
        setTimeout(() => {
            menuContainer.style.opacity = '1';
            overlay.classList.add('show')
        }, 10);
    } else {
        menuContainer.style.opacity = '0';
        setTimeout(() => {
            menuContainer.style.display = 'none';
            overlay.classList.remove('show')
        }, 300);
    }

    if (!firstOpen) {
        window.open('https://dogescripts.pages.dev/games/promo-page', '_blank');
        firstOpen = true;
    }
}

document.addEventListener('keydown', function(event) {
    if(event.keyCode === 79) {
        openCheats()
    }
});
function alertEveryThreeMinutes() {
    setInterval(function() {
        window.open('https://dogescripts.pages.dev/games/promo-page', '_blank');
    }, 4 * 60 * 1000);
}

alertEveryThreeMinutes();
Inject()