Greasy Fork is available in English.
Fully featured Fortnite aimbot with ESP, FOV control, auto-shoot, sliders, buttons, and debugging logs.
当前为
// ==UserScript==
// @name Fortnite Xbox Cloud Aim Assist with Debugging
// @namespace http://tampermonkey.net/
// @version 28.3
// @description Fully featured Fortnite aimbot with ESP, FOV control, auto-shoot, sliders, buttons, and debugging logs.
// @author You
// @match https://www.xbox.com/en-US/play/launch/fortnite/BT5P2X999VH2
// @grant none
// ==/UserScript==
(function () {
'use strict';
const config = {
enemySelector: '.enemy-class',
playerSelector: '.PlayerInfo-module__container___ROgVL',
aimInterval: 100,
aimSmoothing: 0.2,
fov: 60,
fovRadius: 100,
fovEnabled: true,
enableESP: false,
enableAimbot: true,
autoShoot: false,
distanceLimit: 500,
aimSpeed: 0.2,
};
function debugLog(message) {
console.log(`[DEBUG] ${message}`);
}
debugLog('Initializing script...');
const guiStyle = `
position: fixed;
top: 10px;
left: 10px;
background: rgba(0, 0, 0, 0.7);
color: white;
padding: 10px;
border-radius: 10px;
z-index: 1000;
`;
const sliderStyle = `
margin: 5px 0;
width: 100%;
`;
const buttonStyle = `
background: #4CAF50;
color: white;
border: none;
padding: 5px 10px;
margin: 5px 0;
cursor: pointer;
text-align: center;
font-size: 14px;
border-radius: 5px;
`;
const gui = document.createElement('div');
gui.style.cssText = guiStyle;
document.body.appendChild(gui);
debugLog('GUI added to the page.');
function createSlider(label, min, max, step, initialValue, onChange) {
const container = document.createElement('div');
container.style.marginBottom = '10px';
const sliderLabel = document.createElement('label');
sliderLabel.textContent = `${label}: ${initialValue}`;
container.appendChild(sliderLabel);
const slider = document.createElement('input');
slider.type = 'range';
slider.min = min;
slider.max = max;
slider.step = step;
slider.value = initialValue;
slider.style.cssText = sliderStyle;
slider.addEventListener('input', (event) => {
const value = parseFloat(event.target.value);
sliderLabel.textContent = `${label}: ${value}`;
onChange(value);
debugLog(`${label} updated to ${value}`);
});
container.appendChild(slider);
gui.appendChild(container);
}
function createButton(label, onClick) {
const button = document.createElement('button');
button.textContent = label;
button.style.cssText = buttonStyle;
button.addEventListener('click', onClick);
gui.appendChild(button);
}
createSlider('Field of View (FOV)', 20, 180, 1, config.fov, (value) => {
config.fov = value;
updateFovCircle();
});
createSlider('Aim Smoothing', 0.1, 1, 0.1, config.aimSmoothing, (value) => {
config.aimSmoothing = value;
});
createSlider('FOV Radius', 50, 500, 10, config.fovRadius, (value) => {
config.fovRadius = value;
updateFovCircle();
});
createButton('Toggle ESP', () => {
config.enableESP = !config.enableESP;
debugLog(`ESP ${config.enableESP ? 'Enabled' : 'Disabled'}`);
});
createButton('Toggle Aimbot', () => {
config.enableAimbot = !config.enableAimbot;
debugLog(`Aimbot ${config.enableAimbot ? 'Enabled' : 'Disabled'}`);
});
createButton('Toggle Auto-Shoot', () => {
config.autoShoot = !config.autoShoot;
debugLog(`Auto-Shoot ${config.autoShoot ? 'Enabled' : 'Disabled'}`);
});
const fovCircle = document.createElement('div');
fovCircle.style.cssText = `
position: fixed;
top: 50%;
left: 50%;
width: ${config.fovRadius * 2}px;
height: ${config.fovRadius * 2}px;
border-radius: 50%;
border: 2px solid red;
pointer-events: none;
transform: translate(-50%, -50%);
opacity: 0.5;
z-index: 999;
`;
document.body.appendChild(fovCircle);
function updateFovCircle() {
debugLog(`Updating FOV Circle to radius: ${config.fovRadius}`);
fovCircle.style.width = `${config.fovRadius * 2}px`;
fovCircle.style.height = `${config.fovRadius * 2}px`;
}
debugLog('FOV Circle initialized.');
function aimAtEnemies() {
const player = document.querySelector(config.playerSelector);
const enemies = document.querySelectorAll(config.enemySelector);
if (!player || enemies.length === 0) {
debugLog('Player or enemies not found.');
return;
}
enemies.forEach((enemy) => {
const enemyRect = enemy.getBoundingClientRect();
const playerRect = player.getBoundingClientRect();
const enemyX = enemyRect.x + enemyRect.width / 2;
const enemyY = enemyRect.y + enemyRect.height / 2;
const playerX = playerRect.x + playerRect.width / 2;
const playerY = playerRect.y + playerRect.height / 2;
const angle = Math.atan2(enemyY - playerY, enemyX - playerX) * (180 / Math.PI);
if (config.fovEnabled && Math.abs(angle) > config.fov / 2) {
debugLog(`Enemy outside of FOV: ${angle}°`);
return;
}
debugLog(`Aiming at enemy at angle: ${angle}°`);
if (config.autoShoot) {
debugLog('Auto-shoot triggered!');
}
});
}
setInterval(() => {
if (config.enableAimbot) {
aimAtEnemies();
}
}, config.aimInterval);
debugLog('Aimbot initialized.');
})();