local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))() local RunService = game:GetService("RunService") local players = game:GetService("Players") local workspace = game:GetService("Workspace") local plr = players.LocalPlayer local camera = workspace.CurrentCamera local mouse = plr:GetMouse() --> [< Variables >] <-- local hue = 0 local rainbowFov = false local rainbowSpeed = 0.005 local aimFov = 100 local aiming = false local predictionStrength = 0.065 local smoothing = 0.05 local aimbotEnabled = false local wallCheck = true local stickyAimEnabled = false local teamCheck = false local healthCheck = false local minHealth = 0 local circleColor = Color3.fromRGB(255, 0, 0) local targetedCircleColor = Color3.fromRGB(0, 255, 0) --> [< Variables >] <-- local Window = Rayfield:CreateWindow({ Name = "▶ Universal Aimbot ◀", LoadingTitle = "Loading...", LoadingSubtitle = "by Agreed 🥵", ConfigurationSaving = { Enabled = true, FolderName = "UniversalAimbot", FileName = "byAgreed" }, }) local Aimbot = Window:CreateTab("Aimbot 🎯") local fovCircle = Drawing.new("Circle") fovCircle.Thickness = 2 fovCircle.Radius = aimFov fovCircle.Filled = false fovCircle.Color = circleColor fovCircle.Visible = false local currentTarget = nil local function checkTeam(player) if teamCheck and player.Team == plr.Team then return true end return false end local function checkWall(targetCharacter) local targetHead = targetCharacter:FindFirstChild("Head") if not targetHead then return true end local origin = camera.CFrame.Position local direction = (targetHead.Position - origin).unit * (targetHead.Position - origin).magnitude local raycastParams = RaycastParams.new() raycastParams.FilterDescendantsInstances = {plr.Character, targetCharacter} raycastParams.FilterType = Enum.RaycastFilterType.Blacklist local raycastResult = workspace:Raycast(origin, direction, raycastParams) return raycastResult and raycastResult.Instance ~= nil end local function getTarget() local nearestPlayer = nil local shortestCursorDistance = aimFov local shortestPlayerDistance = math.huge local cameraPos = camera.CFrame.Position for _, player in ipairs(players:GetPlayers()) do if player ~= plr and player.Character and player.Character:FindFirstChild("Head") and not checkTeam(player) then if player.Character.Humanoid.Health >= minHealth or not healthCheck then local head = player.Character.Head local headPos = camera:WorldToViewportPoint(head.Position) local screenPos = Vector2.new(headPos.X, headPos.Y) local mousePos = Vector2.new(mouse.X, mouse.Y) local cursorDistance = (screenPos - mousePos).Magnitude local playerDistance = (head.Position - cameraPos).Magnitude if cursorDistance < shortestCursorDistance and headPos.Z > 0 then if not checkWall(player.Character) or not wallCheck then if playerDistance < shortestPlayerDistance then shortestPlayerDistance = playerDistance shortestCursorDistance = cursorDistance nearestPlayer = player end end end end end end return nearestPlayer end local function predict(player) if player and player.Character and player.Character:FindFirstChild("Head") and player.Character:FindFirstChild("HumanoidRootPart") then local head = player.Character.Head local hrp = player.Character.HumanoidRootPart local velocity = hrp.Velocity local predictedPosition = head.Position + (velocity * predictionStrength) return predictedPosition end return nil end local function smooth(from, to) return from:Lerp(to, smoothing) end local function aimAt(player) local predictedPosition = predict(player) if predictedPosition then if player.Character.Humanoid.Health >= minHealth or not healthCheck then local targetCFrame = CFrame.new(camera.CFrame.Position, predictedPosition) camera.CFrame = smooth(camera.CFrame, targetCFrame) end end end RunService.RenderStepped:Connect(function() if aimbotEnabled then local offset = 50 fovCircle.Position = Vector2.new(mouse.X, mouse.Y + offset) if rainbowFov then hue = hue + rainbowSpeed if hue > 1 then hue = 0 end fovCircle.Color = Color3.fromHSV(hue, 1, 1) else if aiming and currentTarget then fovCircle.Color = targetedCircleColor else fovCircle.Color = circleColor end end if aiming then if stickyAimEnabled and currentTarget then local headPos = camera:WorldToViewportPoint(currentTarget.Character.Head.Position) local screenPos = Vector2.new(headPos.X, headPos.Y) local cursorDistance = (screenPos - Vector2.new(mouse.X, mouse.Y)).Magnitude if cursorDistance > aimFov or (wallCheck and checkWall(currentTarget.Character)) or checkTeam(currentTarget) then currentTarget = nil end end if not stickyAimEnabled or not currentTarget then currentTarget = getTarget() end if currentTarget then aimAt(currentTarget) end else currentTarget = nil end end end) mouse.Button2Down:Connect(function() if aimbotEnabled then aiming = true end end) mouse.Button2Up:Connect(function() if aimbotEnabled then aiming = false end end) local aimbot = Aimbot:CreateToggle({ Name = "Aimbot", CurrentValue = false, Flag = "Aimbot", Callback = function(Value) aimbotEnabled = Value fovCircle.Visible = Value end }) local smoothingslider = Aimbot:CreateSlider({ Name = "Smoothing", Range = {0, 100}, Increment = 1, CurrentValue = 5, Flag = "Smoothing", Callback = function(Value) smoothing = 1 - (Value / 100) end, }) local predictionstrength = Aimbot:CreateSlider({ Name = "Prediction Strength", Range = {0, 0.2}, Increment = 0.001, CurrentValue = 0.065, Flag = "PredictionStrength", Callback = function(Value) predictionStrength = Value end, }) local wallcheck = Aimbot:CreateToggle({ Name = "Wall Check", CurrentValue = true, Flag = "WallCheck", Callback = function(Value) wallCheck = Value end }) local stickyaim = Aimbot:CreateToggle({ Name = "Sticky Aim", CurrentValue = false, Flag = "StickyAim", Callback = function(Value) stickyAimEnabled = Value end }) local teamchecktoggle = Aimbot:CreateToggle({ Name = "Team Check", CurrentValue = false, Flag = "TeamCheck", Callback = function(Value) teamCheck = Value end }) local healthchecktoggle = Aimbot:CreateToggle({ Name = "Health Check", CurrentValue = false, Flag = "HealthCheck", Callback = function(Value) healthCheck = Value end }) local minhealth = Aimbot:CreateSlider({ Name = "Min Health", Range = {0, 100}, Increment = 1, CurrentValue = 0, Flag = "MinHealth", Callback = function(Value) minHealth = Value end, }) local aimbotfov = Aimbot:CreateSlider({ Name = "Aimbot Fov", Range = {0, 1000}, Increment = 1, CurrentValue = 100, Flag = "AimbotFov", Callback = function(Value) aimFov = Value fovCircle.Radius = aimFov end, }) local circlecolor = Aimbot:CreateColorPicker({ Name = "Fov Color", Color = circleColor, Callback = function(Color) circleColor = Color fovCircle.Color = Color end }) local targetedcirclecolor = Aimbot:CreateColorPicker({ Name = "Targeted Fov Color", Color = targetedCircleColor, Callback = function(Color) targetedCircleColor = Color end }) local circlerainbow = Aimbot:CreateToggle({ Name = "Rainbow Fov", CurrentValue = false, Flag = "RainbowFov", Callback = function(Value) rainbowFov = Value end })