Krunker.IO Aimbot & ESP (Clean, No-ADS etc...) - Pastebin.com (2024)

  1. // ==UserScript==

  2. // @name Krunker.IO Aimbot & ESP

  3. // @namespace http://tampermonkey.net/

  4. // @version 0.2.1

  5. // @description Locks aim to the nearest player in krunker.io and shows players behind walls. Also shows a line between you and them.

  6. // @author Someone

  7. // @match *://krunker.io/*

  8. // @match *://browserfps.com/*

  9. // @exclude *://krunker.io/social*

  10. // @exclude *://krunker.io/editor*

  11. // @icon https://www.google.com/s2/favicons?domain=krunker.io

  12. // @grant none

  13. // @run-at document-start

  14. // @require https://unpkg.com/three@latest/build/three.min.js

  15. // ==/UserScript==

  16. let scene;

  17. const x = {

  18. document: document,

  19. querySelector: document.querySelector,

  20. consoleLog: console.log,

  21. ReflectApply: Reflect.apply,

  22. ArrayPrototype: Array.prototype

  23. };

  24. const proxied = new Proxy(Array.prototype.push, {

  25. apply(target, thisArgs, [object]) {

  26. try {

  27. if (typeof object === 'object' &&

  28. typeof object.parent === 'object' &&

  29. object.parent.type === 'Scene' &&

  30. object.parent.name === 'Main') {

  31. scene = object.parent;

  32. }

  33. } catch (error) {

  34. }

  35. return x.ReflectApply(...arguments);

  36. }

  37. });

  38. const interval = setInterval(function () {

  39. const el = x.querySelector.call(x.document, '#initLoader');

  40. if (el && el.style.display === 'none') {

  41. x.consoleLog('Injecting!');

  42. x.ArrayPrototype.push = proxied;

  43. clearInterval(interval);

  44. }

  45. }, 1);

  46. let espEnabled = true;

  47. let aimbotEnabled = true;

  48. let aimbotOnRightMouse = true;

  49. let espLinesEnabled = true;

  50. const tempVector = new THREE.Vector3();

  51. const tempObject = new THREE.Object3D();

  52. tempObject.rotation.order = 'YXZ';

  53. const geometry = new THREE.EdgesGeometry(new THREE.BoxGeometry(5, 15, 5).translate(0, 7.5, 0));

  54. const material = new THREE.RawShaderMaterial({

  55. vertexShader: `

  56. attribute vec3 position;

  57. uniform mat4 projectionMatrix;

  58. uniform mat4 modelViewMatrix;

  59. void main() {

  60. gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );

  61. gl_Position.z = 1.0;

  62. }

  63. `,

  64. fragmentShader: `

  65. void main() {

  66. gl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );

  67. }

  68. `

  69. });

  70. const line = new THREE.LineSegments(new THREE.BufferGeometry(), material);

  71. line.frustumCulled = false;

  72. const linePositions = new THREE.BufferAttribute(new Float32Array(100 * 2 * 3), 3);

  73. line.geometry.setAttribute('position', linePositions);

  74. function animate() {

  75. window.requestAnimationFrame(animate);

  76. if (scene === undefined) {

  77. return;

  78. }

  79. const players = [];

  80. let myPlayer;

  81. for (let i = 0; i < scene.children.length; i++) {

  82. const child = scene.children[i];

  83. if (child.type === 'Object3D') {

  84. try {

  85. if (child.children[0].children[0].type === 'PerspectiveCamera') {

  86. myPlayer = child;

  87. } else {

  88. players.push(child);

  89. }

  90. } catch (err) {

  91. }

  92. }

  93. }

  94. let counter = 0;

  95. let targetPlayer;

  96. let minDistance = Infinity;

  97. tempObject.matrix.copy(myPlayer.matrix).invert()

  98. for (let i = 0; i < players.length; i++) {

  99. const player = players[i];

  100. if (!player.box) {

  101. const box = new THREE.LineSegments(geometry, material);

  102. box.frustumCulled = false;

  103. player.add(box);

  104. player.box = box;

  105. }

  106. if (player.position.x === myPlayer.position.x && player.position.z === myPlayer.position.z) {

  107. player.box.visible = false;

  108. if (line.parent !== player) {

  109. player.add(line);

  110. }

  111. continue;

  112. }

  113. linePositions.setXYZ(counter++, 0, 10, -5);

  114. tempVector.copy(player.position);

  115. tempVector.y += 9;

  116. tempVector.applyMatrix4(tempObject.matrix);

  117. linePositions.setXYZ(

  118. counter++,

  119. tempVector.x,

  120. tempVector.y,

  121. tempVector.z

  122. );

  123. player.visible = espEnabled || player.visible;

  124. player.box.visible = espEnabled;

  125. const distance = player.position.distanceTo(myPlayer.position);

  126. if (distance < minDistance) {

  127. targetPlayer = player;

  128. minDistance = distance;

  129. }

  130. }

  131. linePositions.needsUpdate = true;

  132. line.geometry.setDrawRange(0, counter);

  133. line.visible = espLinesEnabled;

  134. if (aimbotEnabled === false || (aimbotOnRightMouse && !rightMouseDown) || targetPlayer === undefined) {

  135. return;

  136. }

  137. tempVector.setScalar(0);

  138. targetPlayer.children[0].children[0].localToWorld(tempVector);

  139. tempObject.position.copy(myPlayer.position);

  140. tempObject.lookAt(tempVector);

  141. myPlayer.children[0].rotation.x = -tempObject.rotation.x;

  142. myPlayer.rotation.y = tempObject.rotation.y + Math.PI;

  143. }

  144. const value = parseInt(new URLSearchParams(window.location.search).get('showAd'), 16);

  145. const el = document.createElement('div');

  146. el.innerHTML = `<style>

  147. .dialog {

  148. position: absolute;

  149. left: 50%;

  150. top: 50%;

  151. padding: 20px;

  152. background: rgba(0, 0, 0, 0.8);

  153. border: 6px solid rgba(0, 0, 0, 0.2);

  154. color: #fff;

  155. transform: translate(-50%, -50%);

  156. text-align: center;

  157. z-index: 999999;

  158. }

  159. .dialog * {

  160. color: #fff;

  161. }

  162. .close {

  163. position: absolute;

  164. right: 5px;

  165. top: 5px;

  166. width: 20px;

  167. height: 20px;

  168. opacity: 0.5;

  169. cursor: pointer;

  170. }

  171. .close:before, .close:after {

  172. content: ' ';

  173. position: absolute;

  174. left: 50%;

  175. top: 50%;

  176. width: 100%;

  177. height: 20%;

  178. transform: translate(-50%, -50%) rotate(-45deg);

  179. background: #fff;

  180. }

  181. .close:after {

  182. transform: translate(-50%, -50%) rotate(45deg);

  183. }

  184. .close:hover {

  185. opacity: 1;

  186. }

  187. .btn {

  188. cursor: pointer;

  189. padding: 0.5em;

  190. background: red;

  191. border: 3px solid rgba(0, 0, 0, 0.2);

  192. }

  193. .btn:active {

  194. transform: scale(0.8);

  195. }

  196. .msg {

  197. position: absolute;

  198. left: 10px;

  199. bottom: 10px;

  200. color: #fff;

  201. background: rgba(0, 0, 0, 0.6);

  202. font-weight: bolder;

  203. padding: 15px;

  204. animation: msg 0.5s forwards, msg 0.5s reverse forwards 3s;

  205. z-index: 999999;

  206. pointer-events: none;

  207. }

  208. @keyframes msg {

  209. from {

  210. transform: translate(-120%, 0);

  211. }

  212. to {

  213. transform: none;

  214. }

  215. }

  216. </style>

  217. <div class="msg" style="display: none;"></div>

  218. <div class="dialog">

  219. <big>== Aimbot & ESP ==</big>

  220. <br>

  221. <br>

  222. [B] to toggle aimbot

  223. <br>

  224. [V] to toggle ESP

  225. <br>

  226. [N] to toggle ESP Lines

  227. <br>

  228. [L] to toggle aimbot on <br>right mouse hold

  229. <br>

  230. [H] to show/hide help

  231. </div>`;

  232. const msgEl = el.querySelector('.msg');

  233. const dialogEl = el.querySelector('.dialog');

  234. window.addEventListener('DOMContentLoaded', function () {

  235. while (el.children.length > 0) {

  236. document.body.appendChild(el.children[0]);

  237. }

  238. });

  239. let rightMouseDown = false;

  240. function handleMouse(event) {

  241. if (event.button === 2) {

  242. rightMouseDown = event.type === 'pointerdown' ? true : false;

  243. }

  244. }

  245. window.addEventListener('pointerdown', handleMouse);

  246. window.addEventListener('pointerup', handleMouse);

  247. window.addEventListener('keyup', function (event) {

  248. switch (event.code) {

  249. case 'KeyV':

  250. espEnabled = !espEnabled;

  251. showMsg('ESP', espEnabled);

  252. break;

  253. case 'KeyB':

  254. aimbotEnabled = !aimbotEnabled;

  255. showMsg('Aimbot', aimbotEnabled);

  256. break;

  257. case 'KeyH':

  258. dialogEl.style.display = dialogEl.style.display === '' ? 'none' : '';

  259. break;

  260. case 'KeyL':

  261. aimbotOnRightMouse = !aimbotOnRightMouse;

  262. showMsg('Aimbot On Right Mouse Hold', aimbotOnRightMouse);

  263. break;

  264. case 'KeyN':

  265. espLinesEnabled = !espLinesEnabled;

  266. showMsg('ESP Lines', espLinesEnabled);

  267. break;

  268. }

  269. });

  270. function showMsg(name, bool) {

  271. msgEl.innerText = name + ': ' + (bool ? 'ON' : 'OFF');

  272. msgEl.style.display = 'none';

  273. void msgEl.offsetWidth;

  274. msgEl.style.display = '';

  275. }

  276. animate();

Krunker.IO Aimbot & ESP (Clean, No-ADS etc...) - Pastebin.com (2024)

References

Top Articles
Latest Posts
Article information

Author: Velia Krajcik

Last Updated:

Views: 6282

Rating: 4.3 / 5 (54 voted)

Reviews: 85% of readers found this page helpful

Author information

Name: Velia Krajcik

Birthday: 1996-07-27

Address: 520 Balistreri Mount, South Armand, OR 60528

Phone: +466880739437

Job: Future Retail Associate

Hobby: Polo, Scouting, Worldbuilding, Cosplaying, Photography, Rowing, Nordic skating

Introduction: My name is Velia Krajcik, I am a handsome, clean, lucky, gleaming, magnificent, proud, glorious person who loves writing and wants to share my knowledge and understanding with you.