local fov = 45 local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local Players = game:GetService("Players") local Cam = game.Workspace.CurrentCamera -- FOV Circle (invisible) local FOVring = Drawing.new("Circle") FOVring.Visible = false -- biar gak kelihatan FOVring.Thickness = 2 FOVring.Color = Color3.fromRGB(128, 0, 128) FOVring.Filled = false FOVring.Radius = fov FOVring.Position = Cam.ViewportSize / 2 local function updateDrawings() FOVring.Position = Cam.ViewportSize / 2 end local function lookAt(target) local lookVector = (target - Cam.CFrame.Position).Unit Cam.CFrame = CFrame.new(Cam.CFrame.Position, Cam.CFrame.Position + lookVector) end -- cari target baru local function getClosestPlayerInFOV() local nearest = nil local minDist = math.huge local screenCenter = Cam.ViewportSize / 2 for _, player in ipairs(Players:GetPlayers()) do if player ~= Players.LocalPlayer and player.Character then local hrp = player.Character:FindFirstChild("HumanoidRootPart") local humanoid = player.Character:FindFirstChild("Humanoid") if hrp and humanoid and humanoid.Health > 0 then local screenPos, visible = Cam:WorldToViewportPoint(hrp.Position) local dist = (Vector2.new(screenPos.X, screenPos.Y) - screenCenter).Magnitude if dist < fov and dist < minDist and visible then minDist = dist nearest = player end end end end return nearest end -- Toggle Logic local aimbotEnabled = false local lockedTarget = nil local function toggleAimbot() aimbotEnabled = not aimbotEnabled if not aimbotEnabled then lockedTarget = nil end end -- Keybinds UserInputService.InputBegan:Connect(function(input, gp) if not gp then if input.KeyCode == Enum.KeyCode.Delete then RunService:UnbindFromRenderStep("FOVUpdate") FOVring:Remove() elseif input.KeyCode == Enum.KeyCode.Q then lockedTarget = nil -- force unlock elseif input.KeyCode == Enum.KeyCode.F1 then toggleAimbot() -- F1 buat toggle Aimbot end end end) -- Loop utama RunService.RenderStepped:Connect(function() updateDrawings() if aimbotEnabled then -- kalau belum ada target, cari target baru if not lockedTarget or not lockedTarget.Character or not lockedTarget.Character:FindFirstChild("HumanoidRootPart") or lockedTarget.Character:FindFirstChild("Humanoid").Health <= 0 then lockedTarget = getClosestPlayerInFOV() else -- cek apakah target masih di dalam FOV local hrp = lockedTarget.Character:FindFirstChild("HumanoidRootPart") if hrp then local screenPos, visible = Cam:WorldToViewportPoint(hrp.Position) local dist = (Vector2.new(screenPos.X, screenPos.Y) - (Cam.ViewportSize / 2)).Magnitude if not visible or dist > fov then lockedTarget = nil end end end -- kalau ada target, lock terus if lockedTarget and lockedTarget.Character then local hrp = lockedTarget.Character:FindFirstChild("HumanoidRootPart") if hrp then lookAt(hrp.Position) end end end end)