Greasy Fork is available in English.
Aimbot script for automatic aiming and optional shooting with ESP for Fortnite with FOV adjustment and controller support.
当前为 
// ==UserScript==
// @name         NOVA Aimbot for Xbox Cloud Gaming
// @namespace    http://tampermonkey.net/
// @version      15
// @description  Aimbot script for automatic aiming and optional shooting with ESP for Fortnite with FOV adjustment and controller support.
// @author       YourName
// @match        https://www.xbox.com/en-US/play/launch/fortnite/BT5P2X999VH2
// @grant        none
// ==/UserScript==
(function () {
    'use strict';
    // Configuration
    const aimAssistConfig = {
        sensitivity: 1.0, // Adjusts how quickly the aim snaps
        detectionInterval: 100, // Milliseconds between detections
        toggleKeys: ['4', 't'], // Keys to toggle aim assist
        assistEnabled: false, // Start with aim assist off
        espEnabled: false, // Start with ESP off
        fov: 90 // Field of View
    };
    // 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.style.fontFamily = 'Arial, sans-serif';
        gui.innerHTML = `
            <h4>Aimbot and ESP Settings</h4>
            <label>
                <input type="checkbox" id="aimAssistToggle"> Enable Aim Assist
            </label><br>
            <label>
                <input type="checkbox" id="espToggle"> Enable ESP
            </label><br>
            <label>
                FOV: <input type="number" id="fovInput" value="${aimAssistConfig.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) => {
            aimAssistConfig.assistEnabled = event.target.checked;
            console.log(`Aim assist ${aimAssistConfig.assistEnabled ? 'enabled' : 'disabled'}`);
        });
        document.getElementById('espToggle').addEventListener('change', (event) => {
            aimAssistConfig.espEnabled = event.target.checked;
            console.log(`ESP ${aimAssistConfig.espEnabled ? 'enabled' : 'disabled'}`);
        });
        document.getElementById('fovInput').addEventListener('input', (event) => {
            aimAssistConfig.fov = Math.max(30, Math.min(180, event.target.value)); // Ensure FOV is within limits
            console.log(`FOV set to: ${aimAssistConfig.fov}`);
        });
        document.getElementById('resetButton').addEventListener('click', () => {
            aimAssistConfig.fov = 90; // Reset FOV to default
            document.getElementById('fovInput').value = aimAssistConfig.fov;
            console.log(`FOV reset to default: ${aimAssistConfig.fov}`);
        });
    }
    // Capture game video feed
    const videoElement = document.querySelector('video'); // Most cloud gaming platforms use <video>
    if (!videoElement) {
        console.error("Video element not found. Make sure you're running this on a cloud gaming page.");
    }
    // Create a canvas for processing (not used directly but can be integrated)
    const canvas = document.createElement('canvas');
    const context = canvas.getContext('2d');
    document.body.appendChild(canvas); // Optional: Add canvas to the page for debugging
    // Main detection loop
    async function aimAssistLoop() {
        if (aimAssistConfig.assistEnabled) {
            // Draw the video frame to the canvas (only if using a video element)
            if (videoElement) {
                canvas.width = videoElement.videoWidth;
                canvas.height = videoElement.videoHeight;
                context.drawImage(videoElement, 0, 0, canvas.width, canvas.height);
            }
            // Simulate aim assist logic
            const targets = await detectTargets(); // Detect targets based on your own logic
            // Simulate aiming if targets are found
            if (targets.length > 0) {
                adjustAimToTarget(targets[0]); // Snap to the first detected target
            }
            if (aimAssistConfig.espEnabled) {
                drawPlayerBoxes(targets); // Optional visual feedback for detected player locations
            }
            drawFOVBox(); // Draw the FOV box
        }
        setTimeout(aimAssistLoop, aimAssistConfig.detectionInterval); // Loop refresh
    }
    // Function for object detection
    async function detectTargets() {
        // Use your detection logic here
        // Placeholder logic: Return a mock target in the center of the canvas
        return [{ x: canvas.width / 2, y: canvas.height / 2 }];
    }
    // Adjust aim (simulate mouse movement)
    function adjustAimToTarget(target) {
        const mouseEvent = new MouseEvent('mousemove', {
            clientX: target.x,
            clientY: target.y,
        });
        document.dispatchEvent(mouseEvent);
        console.log(`Aiming at target: ${target.x}, ${target.y}`);
    }
    // Draw boxes around detected players
    function drawPlayerBoxes(players) {
        if (!canvas) return;
        const ctx = canvas.getContext('2d');
        ctx.clearRect(0, 0, canvas.width, canvas.height); // Clear previous frame
        players.forEach(player => {
            ctx.strokeStyle = 'red'; // Change color as needed
            ctx.strokeRect(player.x - 25, player.y - 25, 50, 50); // Draw bounding box around player
        });
    }
    // Draw the FOV box
    function drawFOVBox() {
        const ctx = canvas.getContext('2d');
        const crosshairX = window.innerWidth / 2; // Center x of the screen
        const crosshairY = window.innerHeight / 2; // Center y of the screen
        const fovHalfSize = aimAssistConfig.fov; // FOV visual representation
        
        ctx.strokeStyle = 'green';  // FOV box color
        ctx.strokeRect(crosshairX - fovHalfSize / 2, crosshairY - fovHalfSize / 2, fovHalfSize, fovHalfSize);
    }
    // Initialize the script on window load
    window.addEventListener('load', () => {
        createGUI(); // Create the GUI when the page loads
        aimAssistLoop(); // Start the aim assist loop
    });
    console.log("NOVA Aimbot script loaded for Xbox Cloud Gaming with FOV and GUI!");
})();