Greasy Fork is available in English.
Aimbot script for automatic aiming, ESP, and optional shooting in Fortnite with FOV adjustment and controller support.
当前为 
// ==UserScript==
// @name         NOVA Aimbot for Xbox Cloud Gaming
// @namespace    http://tampermonkey.net/
// @version      14
// @description  Aimbot script for automatic aiming, ESP, and optional shooting in Fortnite with FOV adjustment and controller support.
// @author       You
// @match        https://www.xbox.com/en-US/play/launch/fortnite/BT5P2X999VH2
// @grant        none
// ==/UserScript==
(function () {
    'use strict';
    let aimAssistEnabled = false;
    let fov = 90; // Default FOV value in degrees
    let canvas;
    // Create GUI for the aimbot
    function createGUI() {
        const gui = document.createElement('div');
        gui.style.position = 'absolute';
        gui.style.top = '10px';
        gui.style.left = '10px';
        gui.style.backgroundColor = 'rgba(0, 0, 0, 0.7)';
        gui.style.color = 'white';
        gui.style.padding = '10px';
        gui.style.zIndex = '9999';
        gui.innerHTML = `
            <h4>Aimbot Settings</h4>
            <label>
                <input type="checkbox" id="aimAssistToggle"> Enable Aim Assist
            </label><br>
            <label>
                FOV: <input type="number" id="fovInput" value="${fov}" min="30" max="180">
            </label><br>
            <button id="resetButton">Reset FOV</button>
        `;
        document.body.appendChild(gui);
        // Event listeners for GUI elements
        document.getElementById('aimAssistToggle').addEventListener('change', (event) => {
            aimAssistEnabled = event.target.checked;
            console.log(`Aim assist ${aimAssistEnabled ? 'enabled' : 'disabled'}`);
        });
        document.getElementById('fovInput').addEventListener('input', (event) => {
            fov = Math.max(30, Math.min(180, event.target.value)); // Ensure FOV is within limits
            console.log(`FOV set to: ${fov}`);
            drawFOVBox(); // Update FOV box whenever the FOV changes
        });
        document.getElementById('resetButton').addEventListener('click', () => {
            fov = 90; // Reset FOV to default
            document.getElementById('fovInput').value = fov;
            console.log(`FOV reset to default: ${fov}`);
            drawFOVBox(); // Update the box after resetting
        });
    }
    // Function to initialize the script
    function initialize() {
        canvas = document.querySelector('canvas'); // Ensure the game canvas is present
        if (!canvas) {
            console.error("Canvas not found. Please ensure the game is loaded.");
            setTimeout(initialize, 1000); // Retry after a second
            return;
        }
        console.log("Canvas found. Aim assist is ready.");
        createGUI(); // Create the GUI when the canvas is found
    }
    // Check if a target is in the FOV
    function isTargetInFOV(targetX, targetY) {
        const crosshairX = canvas.width / 2;
        const crosshairY = canvas.height / 2;
        const angleToTarget = Math.atan2(targetY - crosshairY, targetX - crosshairX) * (180 / Math.PI);
        const fovHalf = fov / 2;
        return Math.abs(angleToTarget) <= fovHalf;
    }
    // Simulate player detection; replace with actual logic
    function detectPlayers() {
        const players = document.querySelectorAll('.target-element'); // Replace with the actual player class in the game
        return Array.from(players).map(player => {
            const rect = player.getBoundingClientRect();
            return {
                x: rect.x + rect.width / 2, // Center x coordinate
                y: rect.y + rect.height / 2   // Center y coordinate
            };
        });
    }
    // Draw boxes around detected players
    function drawPlayerBoxes(players) {
        const ctx = canvas.getContext('2d');
        ctx.clearRect(0, 0, canvas.width, canvas.height); // Clear previous frames
        players.forEach(player => {
            ctx.strokeStyle = 'red';   // Change color as needed
            ctx.strokeRect(
                player.x - 25, // Adjust width as needed
                player.y - 25, // Adjust height as needed
                50,            // Width of the box
                50             // Height of the box
            );
        });
    }
    // Draw the FOV box
    function drawFOVBox() {
        const ctx = canvas.getContext('2d');
        const crosshairX = canvas.width / 2;
        const crosshairY = canvas.height / 2;
        const fovHalfSize = fov; // Adjust this as needed for visual representation
        ctx.strokeStyle = 'green';  // FOV box color
        ctx.strokeRect(crosshairX - fovHalfSize / 2, crosshairY - fovHalfSize / 2, fovHalfSize, fovHalfSize);
    }
    // Function to apply aim assist logic
    function applyAimAssist() {
        if (!aimAssistEnabled || !canvas) return;
        const players = detectPlayers(); // Detect players on the screen
        let target;
        // Find the first player within FOV to aim at
        for (const player of players) {
            if (isTargetInFOV(player.x, player.y)) {
                target = player;
                break; // Use the first target found within FOV
            }
        }
        if (target) {
            const currentX = pyautogui.position().x;
            const currentY = pyautogui.position().y;
            const aimAssistDirectionX = target.x - currentX;
            const aimAssistDirectionY = target.y - currentY;
            const aimAssistDistance = Math.sqrt(aimAssistDirectionX ** 2 + aimAssistDirectionY ** 2);
            if (aimAssistDistance > 0) {
                const aimAssistSpeedX = (aimAssistDirectionX / aimAssistDistance) * 5; // Adjust speed as needed
                const aimAssistSpeedY = (aimAssistDirectionY / aimAssistDistance) * 5;
                // Move the mouse cursor
                pyautogui.moveTo(currentX + aimAssistSpeedX, currentY + aimAssistSpeedY);
            }
        }
        drawPlayerBoxes(players); // Draw boxes around detected players
    }
    // Trigger initialization when the window loads
    window.addEventListener('load', initialize);
    // Start the interval for aim assist
    setInterval(applyAimAssist, 16); // 60fps
    console.log("Tampermonkey script loaded for Fortnite with FOV and GUI!");
})();