Fov Aimbot

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

local fov = 100

local RunService = game:GetService("RunService")


local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")
local Cam = game.Workspace.CurrentCamera

local FOVring = Drawing.new("Circle")


FOVring.Visible = false
FOVring.Thickness = 2
FOVring.Color = Color3.fromRGB(128, 0, 128) -- Purple color
FOVring.Filled = false
FOVring.Radius = fov
FOVring.Position = Cam.ViewportSize / 2

local function updateDrawings()


local camViewportSize = Cam.ViewportSize
FOVring.Position = camViewportSize / 2
end

local function onKeyDown(input)


if input.KeyCode == Enum.KeyCode.Delete then
RunService:UnbindFromRenderStep("FOVUpdate")
FOVring:Remove()
end
end

UserInputService.InputBegan:Connect(onKeyDown)

local function lookAt(target)


local lookVector = (target - Cam.CFrame.Position).unit
local newCFrame = CFrame.new(Cam.CFrame.Position, Cam.CFrame.Position +
lookVector)
Cam.CFrame = newCFrame
end

local function getClosestPlayerInFOV(trg_part)


local nearest = nil
local last = math.huge
local playerMousePos = Cam.ViewportSize / 2

for _, player in ipairs(Players:GetPlayers()) do


if player ~= Players.LocalPlayer then
local part = player.Character and
player.Character:FindFirstChild(trg_part)
if part then
local ePos, isVisible = Cam:WorldToViewportPoint(part.Position)
local distance = (Vector2.new(ePos.x, ePos.y) -
playerMousePos).Magnitude

if distance < last and isVisible and distance < fov then
last = distance
nearest = player
end
end
end
end

return nearest
end
RunService.RenderStepped:Connect(function()
updateDrawings()
local closest = getClosestPlayerInFOV("Head")
if closest and closest.Character:FindFirstChild("Head") then
lookAt(closest.Character.Head.Position)
end
end)

You might also like