// ==UserScript==
// @name Krunker.IO Aimbot & ESP
// @namespace http://tampermonkey.net/
// @version 0.2.1
// @description Locks aim to the nearest player in krunker.io and shows players behind walls. Also shows a line between you and them.
// @author Someone
// @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-start
// @require https://unpkg.com/three@latest/build/three.min.js
// ==/UserScript==
let scene;
const x = {
document: document,
querySelector: document.querySelector,
consoleLog: console.log,
ReflectApply: Reflect.apply,
ArrayPrototype: Array.prototype
};
const proxied = new Proxy(Array.prototype.push, {
apply(target, thisArgs, [object]) {
try {
if (typeof object === 'object' &&
typeof object.parent === 'object' &&
object.parent.type === 'Scene' &&
object.parent.name === 'Main') {
scene = object.parent;
}
} catch (error) {
}
return x.ReflectApply(...arguments);
}
});
const interval = setInterval(function () {
const el = x.querySelector.call(x.document, '#initLoader');
if (el && el.style.display === 'none') {
x.consoleLog('Injecting!');
x.ArrayPrototype.push = proxied;
clearInterval(interval);
}
}, 1);
let espEnabled = true;
let aimbotEnabled = true;
let aimbotOnRightMouse = true;
let espLinesEnabled = true;
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);
function animate() {
window.requestAnimationFrame(animate);
if (scene === undefined) {
return;
}
const players = [];
let myPlayer;
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) {
}
}
}
let counter = 0;
let targetPlayer;
let minDistance = Infinity;
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;
}
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.visible = espEnabled || player.visible;
player.box.visible = espEnabled;
const distance = player.position.distanceTo(myPlayer.position);
if (distance < minDistance) {
targetPlayer = player;
minDistance = distance;
}
}
linePositions.needsUpdate = true;
line.geometry.setDrawRange(0, counter);
line.visible = espLinesEnabled;
if (aimbotEnabled === false || (aimbotOnRightMouse && !rightMouseDown) || targetPlayer === undefined) {
return;
}
tempVector.setScalar(0);
targetPlayer.children[0].children[0].localToWorld(tempVector);
tempObject.position.copy(myPlayer.position);
tempObject.lookAt(tempVector);
myPlayer.children[0].rotation.x = -tempObject.rotation.x;
myPlayer.rotation.y = tempObject.rotation.y + Math.PI;
}
const value = parseInt(new URLSearchParams(window.location.search).get('showAd'), 16);
const el = document.createElement('div');
el.innerHTML = `<style>
.dialog {
position: absolute;
left: 50%;
top: 50%;
padding: 20px;
background: rgba(0, 0, 0, 0.8);
border: 6px solid rgba(0, 0, 0, 0.2);
color: #fff;
transform: translate(-50%, -50%);
text-align: center;
z-index: 999999;
}
.dialog * {
color: #fff;
}
.close {
position: absolute;
right: 5px;
top: 5px;
width: 20px;
height: 20px;
opacity: 0.5;
cursor: pointer;
}
.close:before, .close:after {
content: ' ';
position: absolute;
left: 50%;
top: 50%;
width: 100%;
height: 20%;
transform: translate(-50%, -50%) rotate(-45deg);
background: #fff;
}
.close:after {
transform: translate(-50%, -50%) rotate(45deg);
}
.close:hover {
opacity: 1;
}
.btn {
cursor: pointer;
padding: 0.5em;
background: red;
border: 3px solid rgba(0, 0, 0, 0.2);
}
.btn:active {
transform: scale(0.8);
}
.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;
}
@keyframes msg {
from {
transform: translate(-120%, 0);
}
to {
transform: none;
}
}
</style>
<div class="msg" style="display: none;"></div>
<div class="dialog">
<big>== Aimbot & ESP ==</big>
<br>
<br>
[B] to toggle aimbot
<br>
[V] to toggle ESP
<br>
[N] to toggle ESP Lines
<br>
[L] to toggle aimbot on <br>right mouse hold
<br>
[H] to show/hide help
</div>`;
const msgEl = el.querySelector('.msg');
const dialogEl = el.querySelector('.dialog');
window.addEventListener('DOMContentLoaded', function () {
while (el.children.length > 0) {
document.body.appendChild(el.children[0]);
}
});
let rightMouseDown = false;
function handleMouse(event) {
if (event.button === 2) {
rightMouseDown = event.type === 'pointerdown' ? true : false;
}
}
window.addEventListener('pointerdown', handleMouse);
window.addEventListener('pointerup', handleMouse);
window.addEventListener('keyup', function (event) {
switch (event.code) {
case 'KeyV':
espEnabled = !espEnabled;
showMsg('ESP', espEnabled);
break;
case 'KeyB':
aimbotEnabled = !aimbotEnabled;
showMsg('Aimbot', aimbotEnabled);
break;
case 'KeyH':
dialogEl.style.display = dialogEl.style.display === '' ? 'none' : '';
break;
case 'KeyL':
aimbotOnRightMouse = !aimbotOnRightMouse;
showMsg('Aimbot On Right Mouse Hold', aimbotOnRightMouse);
break;
case 'KeyN':
espLinesEnabled = !espLinesEnabled;
showMsg('ESP Lines', espLinesEnabled);
break;
}
});
function showMsg(name, bool) {
msgEl.innerText = name + ': ' + (bool ? 'ON' : 'OFF');
msgEl.style.display = 'none';
void msgEl.offsetWidth;
msgEl.style.display = '';
}
animate();
Krunker.IO Aimbot & ESP (Clean, No-ADS etc...) - Pastebin.com (2024)
Top Articles
Grilled Beet and Fennel Salad Recipe With Sprouted Lentils (Vegan)
Cookin' Canuck - Chopped Kale Salad Recipe with Pomegranate & Avocado
Tucson Weather Underground 10 Day
Saxet Funeral Home Corpus Christi Tx Obituaries
Run 3 - Play Online at Coolmath Games
1 444 : une vidéo montrant un homme russe qui se suicide chez lui.
[프린세스메이커5] 47화 - 하이스쿨 피지컬 (스압)
[네이버 인플루언서] 꼬부기의 추억여행의 이별노래
Labcorpbeacon Login
The Expendables 4: Trailer, Release Date & Everything We Know
Alderette Pomeroy
Ups Access Point Lockers
Latest Posts
Article information
Author: Annamae Dooley
Last Updated:
Views: 6265
Rating: 4.4 / 5 (45 voted)
Reviews: 84% of readers found this page helpful
Author information
Name: Annamae Dooley
Birthday: 2001-07-26
Address: 9687 Tambra Meadow, Bradleyhaven, TN 53219
Phone: +9316045904039
Job: Future Coordinator
Hobby: Archery, Couponing, Poi, Kite flying, Knitting, Rappelling, Baseball
Introduction: My name is Annamae Dooley, I am a witty, quaint, lovely, clever, rich, sparkling, powerful person who loves writing and wants to share my knowledge and understanding with you.