
Key RequiredUniversal

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)



Sigmo cocojambo