Fov aimbot open source with toggle
Key RequiredUniversal

Fov aimbot open source with toggle

Universal Script_AAA_AAA 2.1K views 214 executesUpdated Dec 14, 2025
Unrated
00
Lua Script•133 lines (4046 chars)
local fov = 100
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")
local Cam = workspace.CurrentCamera
local LocalPlayer = Players.LocalPlayer

local FOVring = Drawing.new("Circle")
FOVring.Visible = true
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

UserInputService.InputBegan:Connect(function(input, gpe)
    if gpe then return end
    if input.KeyCode == Enum.KeyCode.Delete then
        RunService:UnbindFromRenderStep("FOVUpdate")
        FOVring:Remove()
    end
end)

local function lookAt(pos)
    local lookVector = (pos - Cam.CFrame.Position).Unit
    Cam.CFrame = CFrame.new(Cam.CFrame.Position, Cam.CFrame.Position + lookVector)
end

local function getTorso(character)
    return character:FindFirstChild("Head")
        or character:FindFirstChild("Torso")
        or character:FindFirstChild("HumanoidRootPart")
end

local function isVisible(part)
    local origin = Cam.CFrame.Position
    local direction = part.Position - origin
    local rayParams = RaycastParams.new()
    rayParams.FilterType = Enum.RaycastFilterType.Blacklist
    rayParams.FilterDescendantsInstances = {LocalPlayer.Character}

    local result = workspace:Raycast(origin, direction, rayParams)
    return not result or result.Instance:IsDescendantOf(part.Parent)
end

local function getClosestEnemyInFOV()
    local closestPlayer = nil
    local closestDistance = math.huge
    local screenCenter = Cam.ViewportSize / 2

    for _, player in ipairs(Players:GetPlayers()) do
        if player ~= LocalPlayer and player.TeamColor ~= LocalPlayer.TeamColor then
            local char = player.Character
            if char then
                local torso = getTorso(char)
                if torso then
                    local screenPos, visible = Cam:WorldToViewportPoint(torso.Position)
                    local distance = (Vector2.new(screenPos.X, screenPos.Y) - screenCenter).Magnitude

                    if visible and distance < fov and distance < closestDistance and isVisible(torso) then
                        closestDistance = distance
                        closestPlayer = player
                    end
                end
            end
        end
    end

    return closestPlayer
end

-------------------------------------------
-- ADDING  THE TOGGLE BUTTON HERE 
-------------------------------------------

local aimingEnabled = true

local gui = Instance.new("ScreenGui", game.CoreGui)

local button = Instance.new("TextButton")
button.Parent = gui
button.Size = UDim2.new(0, 120, 0, 45)
button.Position = UDim2.new(0.05, 0, 0.3, 0)
button.BackgroundColor3 = Color3.fromRGB(0, 255, 0) -- green ON
button.Text = "ON"
button.TextColor3 = Color3.fromRGB(255,255,255)
button.Font = Enum.Font.GothamBold
button.TextSize = 20
button.AutoButtonColor = false

-- thin black outline
local stroke = Instance.new("UIStroke", button)
stroke.Thickness = 2
stroke.Color = Color3.new(0,0,0)

-- draggable
button.Active = true
button.Draggable = true

-- toggle behavior
button.MouseButton1Click:Connect(function()
    aimingEnabled = not aimingEnabled

    if aimingEnabled then
        button.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
        button.Text = "ON"
    else
        button.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
        button.Text = "OFF"
    end
end)

-------------------------------------------
-- END OF BUTTON ADDITION
-------------------------------------------

RunService:BindToRenderStep("FOVUpdate", Enum.RenderPriority.Camera.Value + 1, function()
    updateDrawings()

    if not aimingEnabled then return end

    local target = getClosestEnemyInFOV()
    if target and target.Character then
        local torso = getTorso(target.Character)
        if torso then
            lookAt(torso.Position)
        end
    end
end)

Features & Information

Can be used for any games
#Open source#Fov aimbot#OpenSource#Aimbot#Valley prison

Community Comments (2)

_AAA_AAADec 14, 2025

Made by chatgpt btw

elimiqueiaseroelimiqueiaseroDec 17, 2025

oi

More Scripts for Universal Scripts