local Players = game:GetService("Players") local RunService = game:GetService("RunService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local LocalPlayer = Players.LocalPlayer local Camera = workspace.CurrentCamera -- Fallback settings if not set getgenv().Settings = getgenv().Settings or { Fov = 100, -- Circle radius FovCircle = true, Hitbox = "Head" } -- Drawing Circle Setup (Matches reference image) local Circle = Drawing.new("Circle") Circle.Thickness = 1 Circle.Color = Color3.new(0, 0, 0) -- Black ring Circle.Transparency = 1 -- Fully visible border Circle.Filled = false -- Transparent inside Circle.ZIndex = 2 Circle.Visible = true -- Get Closest Target Within FOV local function GetClosest(Fov) local Target, Closest = nil, math.huge for _, v in ipairs(Players:GetPlayers()) do if v ~= LocalPlayer and v.Character and v.Character:FindFirstChild("HumanoidRootPart") then local screenPos, onScreen = Camera:WorldToScreenPoint(v.Character.HumanoidRootPart.Position) if onScreen then local dist = (Vector2.new(screenPos.X, screenPos.Y) - Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)).Magnitude if dist < Closest and dist <= Fov then Closest = dist Target = v end end end end return Target end -- Update circle position and find target local Target RunService.RenderStepped:Connect(function() local center = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2) Circle.Position = center Circle.Radius = getgenv().Settings.Fov Circle.Visible = getgenv().Settings.FovCircle Target = GetClosest(getgenv().Settings.Fov) end) -- Aimbot Hook Logic local Old Old = hookmetamethod(game, "__namecall", function(Self, ...) local Args = { ... } local Method = getnamecallmethod() if not checkcaller() and Method == "FireServer" then if Self.Name == "0+." then Args[1].MessageWarning = {} Args[1].MessageError = {} Args[1].MessageOutput = {} Args[1].MessageInfo = {} elseif Self.Name == "RemoteEvent" and Args[2] == "Bullet" then if Target and Target.Character and Target.Character:FindFirstChild(getgenv().Settings.Hitbox) then local Hitbox = Target.Character[getgenv().Settings.Hitbox] Args[3] = Target.Character Args[4] = Hitbox Args[5] = Hitbox.Position end end end return Old(Self, unpack(Args)) end)