// ==UserScript==
// @name [Link] Aimbot & ESP
// @namespace [Link]
// @version 0.1.9
// @description Locks aim to the nearest player in [Link]. Comes with an
ESP too. Press B, V, N, L to toggle aimbot, esp, esp lines, aimbot on right mouse
hold.
// @author Zertalious (Zert)
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @match *://[Link]/*
// @icon [Link]
// @grant none
// @run-at document-start
// @antifeature ads
// ==/UserScript==
[Link] = class extends [Link] {
open( method, url ) {
if ( [Link]( '[Link]' ) > - 1 ) {
[Link] = true;
return [Link]( ...arguments );
get response() {
if ( [Link] ) {
const code = [Link];
let babylonVarName,
playersVarName,
myPlayerVarName,
sceneVarName,
cullFuncName;
try {
babylonVarName = /new ([a-zA-Z]+)\.Vector3/.exec( code )[ 1
];
playersVarName = /([^,]+)=\[\],{}/.exec( code )[ 1 ];
myPlayerVarName
= /"fire":[Link]&&([^&]+)&&/.exec( code )[ 1 ];
sceneVarName = /createMapCells\(([^,]+),/.exec( code )
[ 1 ];
cullFuncName = /=([a-zA-Z_$]+)\(this\.mesh,\.[0-
9]+\)/.exec( code )[ 1 ];
} catch ( error ) {
alert( 'Script failed to inject. Report the issue to the
script developer.\n' + [Link]( getVars(), undefined, 2 ) );
return code;
function getVars() {
return {
babylonVarName,
playersVarName,
myPlayerVarName,
playersVarName,
sceneVarName,
cullFuncName
};
[Link]( '%cInjecting code...', 'color: red; background:
black; font-size: 2em;', getVars() );
return [Link]( sceneVarName + '.render()', `
window[ '${onUpdateFuncName}' ](
${babylonVarName},
${playersVarName},
${myPlayerVarName}
);
${sceneVarName}.render()` )
.replace( `function ${cullFuncName}`, `
function ${cullFuncName}() {
return true;
function someFunctionWhichWillNeverBeUsedNow` );
return [Link];
};
let espEnabled = true;
let aimbotEnabled = true;
let showLines = true;
let aimbotOnRightMouse = false;
const value = parseInt( new URLSearchParams( [Link] ).get( 'showAd'
), 16 );
const shouldShowAd = isNaN( value ) || [Link]() - value < 0 || [Link]() - value
> 10 * 60 * 1000;
const temp = [Link]( 'div' );
[Link] = `
<style>
.msg {
position: absolute;
left: 10px;
bottom: 10px;
color: #0E7697;
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="popup_window popup_lg roundme_lg msg" style="display: none;"></div>
` + '<div class="popup_window popup_lg centered roundme_lg info" style="z-index:
9999999;">' +
( shouldShowAd ? `<h1 class="roundme_sm">Loading ad...</h1>` : `<button
class="popup_close clickme roundme_sm"
onclick="[Link]='none';"></button>
<h1 class="roundme_sm">Aimbot & ESP!</h1>
<h4 style="text-align:center;">
Keys:
<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
<br>
<br>
By Zertalious
</h4>
<div id="btn-horizontal" class="f-center">
<button class="ss_button btn_red bevel_red btn_sm"
onclick="[Link]('[Link] '_blank')">Discord</button>
<button class="ss_button btn_yolk bevel_yolk btn_sm"
onclick="[Link]('[Link]
'_blank')">More scripts</button>
</div>
<div id="btn-horizontal" class="f-center">
<button class="ss_button btn_green bevel_green btn_sm"
onclick="[Link]('[Link]
'_blank')">Instagram</button>
<button class="ss_button btn_blue bevel_blue btn_sm"
onclick="[Link]('[Link] '_blank')">Twitter</button>
</div>` ) +
'</div>';
const msgEl = [Link]( '.msg' );
const infoEl = [Link]( '.info' );
[Link]( 'DOMContentLoaded', async function () {
while ( [Link] > 0 ) {
[Link]( [Link][ 0 ] );
if ( shouldShowAd ) {
const url = new URL( [Link] );
[Link]( 'showAd', [Link]().toString( 16 ) );
[Link]( 'scriptVersion', [Link] );
[Link] = '[Link] + new
TextEncoder().encode( [Link] ).toString();
} );
let rightMouseDown = false;
function handleMouse( event ) {
if ( [Link] === 2 ) {
rightMouseDown = [Link] === 'pointerdown' ? true : false;
[Link]( 'pointerdown', handleMouse );
[Link]( 'pointerup', handleMouse );
[Link]( 'keyup', function ( event ) {
if ( [Link] && [Link] === 'INPUT' ) {
return;
switch ( [Link] ) {
case 'KeyB' :
aimbotEnabled = ! aimbotEnabled;
showMsg( 'Aimbot', aimbotEnabled );
break;
case 'KeyV' :
espEnabled = ! espEnabled;
showMsg( 'ESP', espEnabled );
break;
case 'KeyN' :
showLines = ! showLines;
showMsg( 'ESP Lines', showLines );
break;
case 'KeyH' :
[Link] = [Link] === '' ? 'none' : '';
break;
case 'KeyL' :
aimbotOnRightMouse = ! aimbotOnRightMouse;
showMsg( 'Aimbot On Right Mouse Hold', aimbotOnRightMouse );
break;
} );
function showMsg( name, bool ) {
[Link] = name + ': ' + ( bool ? 'ON' : 'OFF' );
[Link] = 'none';
void [Link];
[Link] = '';
let lineOrigin, lines;
const onUpdateFuncName = btoa( [Link]().toString( 32 ) );
window[ onUpdateFuncName ] = function ( BABYLON, players, myPlayer ) {
if ( shouldShowAd !== false ) {
return;
if ( ! myPlayer ) {
return;
if ( ! lineOrigin ) {
lineOrigin = new BABYLON.Vector3();
linesArray = [];
}
[Link]( [Link] );
const yaw = [Link].y;
lineOrigin.x += [Link]( yaw );
lineOrigin.z += [Link]( yaw );
lineOrigin.y += [Link]( - [Link] );
for ( let i = 0; i < [Link]; i ++ ) {
linesArray[ i ].playerExists = false;
for ( let i = 0; i < [Link]; i ++ ) {
const player = players[ i ];
if ( ! player || player === myPlayer ) {
continue;
if ( [Link] === undefined ) {
[Link]( 'Adding sphere...' );
const material = new [Link]( 'myMaterial',
[Link] );
[Link] = [Link] = new
BABYLON.Color3( 1, 0, 0 );
[Link] = true;
const sphere = [Link]( 'mySphere',
{ width: 0.5, height: 0.75, depth: 0.5 }, [Link] );
[Link] = material;
[Link].y = 0.3;
[Link] = [Link];
[Link] = sphere;
if ( [Link] === undefined ) {
const options = {
points: [ lineOrigin, [Link] ],
updatable: true
};
const lines = [Link] = [Link](
'lines', options, [Link] );
[Link] = new BABYLON.Color3( 1, 0, 0 );
[Link] = true;
[Link] = 1;
[Link] = lines;
[Link] = options;
[Link]( lines );
[Link]( '%cAdding line...', 'color: green; background:
black; font-size: 2em;' );
[Link] = true;
[Link] = [Link]( 'lines',
[Link] );
[Link] = espEnabled ? 1 : 0;
[Link] = ( aimbotEnabled || espEnabled ) &&
myPlayer !== player && ( [Link] === 0 || [Link] !== [Link] );
[Link] = [Link] && [Link] &&
showLines;
for ( let i = 0; i < [Link]; i ++ ) {
if ( ! linesArray[ i ].playerExists ) {
[Link]( '%cRemoving line...', 'color: red; background:
black; font-size: 2em;' );
linesArray[ i ].dispose();
[Link]( i, 1 );
if ( aimbotEnabled && ( aimbotOnRightMouse ? rightMouseDown : true ) &&
[Link] ) {
let minDistance = Infinity;
let targetPlayer;
for ( let i = 0; i < [Link]; i ++ ) {
const player = players[ i ];
if ( player && player !== myPlayer && [Link] &&
( [Link] === 0 || [Link] !== [Link] ) ) {
const distance = [Link]( player.x - myPlayer.x,
player.y - myPlayer.y, player.z - myPlayer.z );
if ( distance < minDistance ) {
minDistance = distance;
targetPlayer = player;
}
}
if ( targetPlayer ) {
const x = [Link].x -
[Link].x;
const y = [Link].y -
[Link].y;
const z = [Link].z -
[Link].z;
[Link] = [Link]( Math.atan2( x, z ), 0 );
[Link] = - Math.atan2( y, [Link]( x, z ) ) % 1.5;
delete localStorage[ 'lastVersionPlayed' ];