Greasy Fork is available in English.
Aimbot with smooth aim, custom crosshair, and FPS booster for Fortnite on Xbox cloud gaming (Made by CHATGPT)
当前为
// ==UserScript==
// @name Lunar Aimbot, Crosshair, and FPS Booster for Fortnite on Xbox Cloud Gaming
// @namespace Violentmonkey Scripts
// @match https://www.xbox.com/en-US/play/launch/fortnite/BT5P2X999VH2*
// @grant none
// @version 2.1
// @author -
// @description Aimbot with smooth aim, custom crosshair, and FPS booster for Fortnite on Xbox cloud gaming (Made by CHATGPT)
// ==/UserScript==
(function() {
'use strict';
let lunar;
let sensitivitySettings;
let nearbyTargets = [];
const CROSSHAIR_LOCK_DISTANCE = 200; // Distance to "lock" onto the target
const SMOOTHNESS = 0.1; // Smoothness factor for gradual aiming
const TARGET_DETECTION_INTERVAL = 200; // Detection update every 200ms (adjust as needed)
let targetDetectionTimer;
// Menu variables
let menuVisible = true;
let menuElement, espToggle, aimbotToggle, crosshairToggle;
// Function to create and add custom crosshair to the page
function createCustomCrosshair() {
let crosshair = document.createElement('img');
crosshair.src = "https://static-00.iconduck.com/assets.00/crosshair-icon-2048x2048-5h6w9rqc.png"; // Custom crosshair image URL
crosshair.style.position = 'absolute';
crosshair.style.top = '50%';
crosshair.style.left = '50%';
crosshair.style.transform = 'translate(-50%, -50%)';
crosshair.style.zIndex = '9999';
crosshair.style.pointerEvents = 'none';
crosshair.style.width = '30px'; // Set the crosshair width to 30px (smaller size)
crosshair.style.height = '30px'; // Set the crosshair height to 30px (smaller size)
document.body.appendChild(crosshair);
}
// Function to create the menu
function createMenu() {
menuElement = document.createElement('div');
menuElement.style.position = 'absolute';
menuElement.style.top = '20px';
menuElement.style.left = '20px';
menuElement.style.zIndex = '10000';
menuElement.style.backgroundColor = 'rgba(0, 0, 0, 0.7)';
menuElement.style.padding = '15px';
menuElement.style.borderRadius = '10px';
menuElement.style.cursor = 'move';
menuElement.style.fontFamily = 'Product Sans, sans-serif';
menuElement.style.color = '#fff';
const title = document.createElement('div');
title.textContent = 'Aimbot ESP Menu';
title.style.marginBottom = '10px';
title.style.fontSize = '18px';
menuElement.appendChild(title);
// Toggle ESP
espToggle = createToggleButton('ESP', true);
menuElement.appendChild(espToggle);
// Toggle Aimbot
aimbotToggle = createToggleButton('Aimbot', true);
menuElement.appendChild(aimbotToggle);
// Toggle Crosshair
crosshairToggle = createToggleButton('Crosshair', true);
menuElement.appendChild(crosshairToggle);
// Hide/Show menu button
const hideMenuButton = document.createElement('button');
hideMenuButton.textContent = 'Hide Menu';
hideMenuButton.style.marginTop = '10px';
hideMenuButton.onclick = toggleMenuVisibility;
menuElement.appendChild(hideMenuButton);
document.body.appendChild(menuElement);
// Drag functionality
let isDragging = false;
let offsetX, offsetY;
menuElement.onmousedown = function(e) {
isDragging = true;
offsetX = e.clientX - menuElement.offsetLeft;
offsetY = e.clientY - menuElement.offsetTop;
document.onmousemove = function(e) {
if (isDragging) {
menuElement.style.left = e.clientX - offsetX + 'px';
menuElement.style.top = e.clientY - offsetY + 'px';
}
};
document.onmouseup = function() {
isDragging = false;
};
};
}
// Create a toggle button
function createToggleButton(label, initialState) {
const button = document.createElement('button');
button.textContent = label + ': ' + (initialState ? 'ON' : 'OFF');
button.style.marginBottom = '10px';
button.style.padding = '5px 10px';
button.style.cursor = 'pointer';
button.onclick = function() {
const isActive = button.textContent.includes('ON');
button.textContent = label + ': ' + (isActive ? 'OFF' : 'ON');
toggleFeature(label, !isActive);
};
return button;
}
// Toggle feature based on button click
function toggleFeature(feature, state) {
if (feature === 'ESP') {
toggleESP(state);
} else if (feature === 'Aimbot') {
toggleAimbot(state);
} else if (feature === 'Crosshair') {
toggleCrosshair(state);
}
}
// Toggle ESP visibility
function toggleESP(state) {
const espMarkers = document.querySelectorAll('.player-esp');
espMarkers.forEach(marker => {
marker.style.display = state ? 'block' : 'none';
});
}
// Toggle Aimbot
function toggleAimbot(state) {
if (state) {
if (!lunar) initializeAimbot();
} else {
if (lunar) lunar.update_status_aimbot();
}
}
// Toggle Crosshair
function toggleCrosshair(state) {
const crosshair = document.querySelector('img');
crosshair.style.display = state ? 'block' : 'none';
}
// Function to hide/show menu
function toggleMenuVisibility() {
menuVisible = !menuVisible;
menuElement.style.display = menuVisible ? 'block' : 'none';
}
// Function to detect and render targets
function detectTargets() {
nearbyTargets = [
{ x: Math.random() * window.innerWidth, y: Math.random() * window.innerHeight, id: 'target_1' },
{ x: Math.random() * window.innerWidth, y: Math.random() * window.innerHeight, id: 'target_2' }
];
highlightTargets(nearbyTargets);
createPlayerESP(nearbyTargets);
}
// Function to highlight targets with boxes instead of circles
function highlightTargets(targets) {
targets.forEach(target => {
const distanceToTarget = distance(window.innerWidth / 2, window.innerHeight / 2, target.x, target.y);
if (distanceToTarget < CROSSHAIR_LOCK_DISTANCE) {
// Highlight target with box
const box = document.createElement('div');
box.style.position = 'absolute';
box.style.top = `${target.y - 25}px`;
box.style.left = `${target.x - 25}px`;
box.style.width = '50px';
box.style.height = '50px';
box.style.border = '2px solid red';
box.style.zIndex = '9999';
box.style.pointerEvents = 'none';
box.style.opacity = '1';
box.classList.add('player-esp');
document.body.appendChild(box);
}
});
}
// Function to calculate the distance between two points
function distance(x1, y1, x2, y2) {
return Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));
}
// Function to initialize and start the aimbot
function initializeAimbot() {
lunar = new Aimbot({
collect_data: location.href.includes('collect_data')
});
lunar.start();
}
// Aimbot class implementation (for automatic aim assistance)
class Aimbot {
constructor(options) {
this.collectData = options.collect_data;
this.isAimbotActive = false;
}
start() {
console.log("[Aimbot] Aimbot is now active!");
this.isAimbotActive = true;
this.autoAimbot();
}
autoAimbot() {
targetDetectionTimer = setInterval(() => {
if (this.isAimbotActive) {
detectTargets();
}
}, TARGET_DETECTION_INTERVAL);
}
update_status_aimbot() {
this.isAimbotActive = !this.isAimbotActive;
console.log(this.isAimbotActive ? "[Aimbot] Aimbot enabled." : "[Aimbot] Aimbot disabled.");
if (!this.isAimbotActive) clearInterval(targetDetectionTimer);
}
}
// Initialize the menu and start everything
createMenu();
initializeAimbot();
})();