Fov
Key RequiredUniversal

Fov

Universal Scriptlacerdam3423lacerdam3423 304 views 1.7K executesUpdated Feb 11, 2026
Unrated
00
Lua Script•375 lines (11636 chars)
-- FOV PERMANENTE | DELTA EXECUTOR | MOBILE
-- Totalmente Automático + Arrastável
-- FOV 50 → INFINITO | SEM RESET | ATIVO AUTOMATICAMENTE

local Players = game:GetService("Players")
local UIS = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local player = Players.LocalPlayer

-- ===== CONFIG =====
local FORCED_FOV = 90
local MIN_FOV = 50
local MAX_FOV = 555

-- ===== CAMERA PERMANENTE =====
local function waitForCamera()
    local cam
    repeat
        cam = workspace.CurrentCamera
        task.wait()
    until cam
    return cam
end

local camera = waitForCamera()

-- Forçar FOV constantemente (sem depender de eventos)
local function forceSetFOV()
    if camera and camera.FieldOfView ~= FORCED_FOV then
        camera.FieldOfView = FORCED_FOV
    end
end

-- Loop contínuo para garantir FOV permanente
RunService.RenderStepped:Connect(forceSetFOV)

-- Proteção adicional
camera:GetPropertyChangedSignal("FieldOfView"):Connect(forceSetFOV)

-- Ao renascer
player.CharacterAdded:Connect(function()
    task.wait(0.5)
    camera = waitForCamera()
    camera.FieldOfView = FORCED_FOV
    camera:GetPropertyChangedSignal("FieldOfView"):Connect(forceSetFOV)
end)

-- ===== GUI =====
local gui = Instance.new("ScreenGui")
gui.Name = "FOV_PERMANENTE"
gui.ResetOnSpawn = false
gui.Parent = player:WaitForChild("PlayerGui")

-- Painel (aumentado para caber mais botões)
local frame = Instance.new("Frame", gui)
frame.Size = UDim2.new(0, 260, 0, 220)  -- Altura aumentada
frame.Position = UDim2.new(0.5, -130, 0.65, 0)
frame.BackgroundColor3 = Color3.fromRGB(18,18,18)
frame.BorderSizePixel = 0
frame.Active = true
frame.BackgroundTransparency = 1
frame.ClipsDescendants = true

Instance.new("UICorner", frame).CornerRadius = UDim.new(0,12)

-- Animação de abertura
local TweenService = game:GetService("TweenService")
local tweenInfo = TweenInfo.new(0.5, Enum.EasingStyle.Back, Enum.EasingDirection.Out)
local openTween = TweenService:Create(frame, tweenInfo, {
    BackgroundTransparency = 0,
    Size = UDim2.new(0, 260, 0, 220)  -- Altura atualizada
})

-- Começar minimizado
frame.Size = UDim2.new(0, 0, 0, 0)
task.wait(0.1)
openTween:Play()

-- Barra superior
local topBar = Instance.new("Frame", frame)
topBar.Size = UDim2.new(1,0,0,35)
topBar.BackgroundColor3 = Color3.fromRGB(28,28,28)
topBar.BorderSizePixel = 0

local topCorner = Instance.new("UICorner", topBar)
topCorner.CornerRadius = UDim.new(0,12)

local cover = Instance.new("Frame", topBar)
cover.Size = UDim2.new(1,0,0,12)
cover.Position = UDim2.new(0,0,1,-12)
cover.BackgroundColor3 = Color3.fromRGB(28,28,28)
cover.BorderSizePixel = 0

-- Título
local title = Instance.new("TextLabel", topBar)
title.Size = UDim2.new(1,-80,1,0)
title.Position = UDim2.new(0,12,0,0)
title.BackgroundTransparency = 1
title.Text = "🎯 FOV PERMANENTE"
title.TextColor3 = Color3.fromRGB(120,220,255)
title.Font = Enum.Font.GothamBold
title.TextSize = 14
title.TextXAlignment = Enum.TextXAlignment.Left

-- Status (sempre ativo)
local status = Instance.new("TextLabel", topBar)
status.Size = UDim2.new(0,60,0,20)
status.Position = UDim2.new(1,-70,0.5,-10)
status.BackgroundColor3 = Color3.fromRGB(50,200,100)
status.Text = "ATIVO"
status.TextColor3 = Color3.new(1,1,1)
status.Font = Enum.Font.GothamBold
status.TextSize = 11
status.BorderSizePixel = 0

Instance.new("UICorner", status).CornerRadius = UDim.new(0,6)

-- Botão minimizar
local minBtn = Instance.new("TextButton", topBar)
minBtn.Size = UDim2.new(0,30,0,30)
minBtn.Position = UDim2.new(1,-35,0.5,-15)
minBtn.Text = "−"
minBtn.BackgroundColor3 = Color3.fromRGB(38,38,38)
minBtn.TextColor3 = Color3.new(1,1,1)
minBtn.Font = Enum.Font.GothamBold
minBtn.TextSize = 18
minBtn.BorderSizePixel = 0

Instance.new("UICorner", minBtn).CornerRadius = UDim.new(0,8)

-- Container (ajustado)
local container = Instance.new("Frame", frame)
container.Size = UDim2.new(1,-24,1,-47)
container.Position = UDim2.new(0,12,0,41)
container.BackgroundTransparency = 1

-- Label FOV
local fovLabel = Instance.new("TextLabel", container)
fovLabel.Size = UDim2.new(1,0,0,30)
fovLabel.BackgroundTransparency = 1
fovLabel.Text = "FOV: " .. FORCED_FOV
fovLabel.TextColor3 = Color3.new(1,1,1)
fovLabel.Font = Enum.Font.GothamBold
fovLabel.TextSize = 16

-- TextBox
local box = Instance.new("TextBox", container)
box.Size = UDim2.new(1,0,0,40)
box.Position = UDim2.new(0,0,0,35)
box.PlaceholderText = "Digite FOV (" .. MIN_FOV .. " - " .. MAX_FOV .. ")"
box.Text = tostring(FORCED_FOV)
box.BackgroundColor3 = Color3.fromRGB(35,35,35)
box.TextColor3 = Color3.new(1,1,1)
box.Font = Enum.Font.Gotham
box.TextSize = 15
box.ClearTextOnFocus = false
box.BorderSizePixel = 0

Instance.new("UICorner", box).CornerRadius = UDim.new(0,8)

-- Botões preset (NOVOS PRESETS ADICIONADOS)
local presetFrame1 = Instance.new("Frame", container)
presetFrame1.Size = UDim2.new(1,0,0,35)
presetFrame1.Position = UDim2.new(0,0,0,85)
presetFrame1.BackgroundTransparency = 1

local presets1 = {
    {text = "70", value = 70},
    {text = "90", value = 90},
    {text = "120", value = 120},
    {text = "180", value = 180}  -- NOVO
}

for i, preset in ipairs(presets1) do
    local btn = Instance.new("TextButton", presetFrame1)
    btn.Size = UDim2.new(0.23,0,1,0)
    btn.Position = UDim2.new((i-1)*0.257,0,0,0)
    btn.Text = preset.text
    btn.BackgroundColor3 = Color3.fromRGB(45,45,45)
    btn.TextColor3 = Color3.new(1,1,1)
    btn.Font = Enum.Font.GothamBold
    btn.TextSize = 14
    btn.BorderSizePixel = 0
    
    Instance.new("UICorner", btn).CornerRadius = UDim.new(0,6)
    
    btn.MouseButton1Click:Connect(function()
        FORCED_FOV = preset.value
        camera.FieldOfView = FORCED_FOV
        box.Text = tostring(FOV)
        fovLabel.Text = "FOV: " .. FORCED_FOV
        
        -- Efeito visual
        btn.BackgroundColor3 = Color3.fromRGB(120,220,255)
        task.wait(0.1)
        btn.BackgroundColor3 = Color3.fromRGB(45,45,45)
    end)
end

-- Segunda linha de presets
local presetFrame2 = Instance.new("Frame", container)
presetFrame2.Size = UDim2.new(1,0,0,35)
presetFrame2.Position = UDim2.new(0,0,0,125)  -- Posição ajustada
presetFrame2.BackgroundTransparency = 1

local presets2 = {
    {text = "85", value = 85},
    {text = "100", value = 100},
    {text = "220", value = 220}  -- NOVO
}

for i, preset in ipairs(presets2) do
    local btn = Instance.new("TextButton", presetFrame2)
    btn.Size = UDim2.new(0.23,0,1,0)
    btn.Position = UDim2.new((i-1)*0.33,0,0,0)  -- Ajustado para 3 botões
    btn.Text = preset.text
    btn.BackgroundColor3 = Color3.fromRGB(45,45,45)
    btn.TextColor3 = Color3.new(1,1,1)
    btn.Font = Enum.Font.GothamBold
    btn.TextSize = 14
    btn.BorderSizePixel = 0
    
    Instance.new("UICorner", btn).CornerRadius = UDim.new(0,6)
    
    btn.MouseButton1Click:Connect(function()
        FORCED_FOV = preset.value
        camera.FieldOfView = FORCED_FOV
        box.Text = tostring(FORCED_FOV)
        fovLabel.Text = "FOV: " .. FORCED_FOV
        
        -- Efeito visual
        btn.BackgroundColor3 = Color3.fromRGB(120,220,255)
        task.wait(0.1)
        btn.BackgroundColor3 = Color3.fromRGB(45,45,45)
    end)
end

-- Botão abrir (quando minimizado)
local openBtn = Instance.new("TextButton", gui)
openBtn.Size = UDim2.new(0,55,0,55)
openBtn.Position = UDim2.new(0,15,0.6,0)
openBtn.Text = "🎯"
openBtn.Visible = false
openBtn.BackgroundColor3 = Color3.fromRGB(28,28,28)
openBtn.TextColor3 = Color3.new(1,1,1)
openBtn.Font = Enum.Font.GothamBold
openBtn.TextSize = 24
openBtn.BorderSizePixel = 0

Instance.new("UICorner", openBtn).CornerRadius = UDim.new(1,0)

-- ===== FUNÇÕES =====
box.FocusLost:Connect(function()
    local value = tonumber(box.Text)
    if value and value >= MIN_FOV and value <= MAX_FOV then
        FORCED_FOV = value
        camera.FieldOfView = FORCED_FOV
        fovLabel.Text = "FOV: " .. FORCED_FOV
    else
        box.Text = tostring(FORCED_FOV)
    end
end)

minBtn.MouseButton1Click:Connect(function()
    -- Animação de fechar
    local closeTween = TweenService:Create(frame, TweenInfo.new(0.4, Enum.EasingStyle.Back, Enum.EasingDirection.In), {
        Size = UDim2.new(0, 0, 0, 0),
        BackgroundTransparency = 1
    })
    closeTween:Play()
    
    task.wait(0.4)
    frame.Visible = false
    frame.Size = UDim2.new(0, 260, 0, 220)  -- Altura atualizada
    frame.BackgroundTransparency = 0
    openBtn.Visible = true
    
    -- Animação do botão abrir
    openBtn.Size = UDim2.new(0, 0, 0, 0)
    local openBtnTween = TweenService:Create(openBtn, TweenInfo.new(0.3, Enum.EasingStyle.Elastic, Enum.EasingDirection.Out), {
        Size = UDim2.new(0, 55, 0, 55)
    })
    openBtnTween:Play()
end)

openBtn.MouseButton1Click:Connect(function()
    -- Animação de fechar botão
    local closeBtnTween = TweenService:Create(openBtn, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.In), {
        Size = UDim2.new(0, 0, 0, 0)
    })
    closeBtnTween:Play()
    
    task.wait(0.3)
    openBtn.Visible = false
    frame.Visible = true
    
    -- Animação de abrir painel
    frame.Size = UDim2.new(0, 0, 0, 0)
    frame.BackgroundTransparency = 1
    local openPanelTween = TweenService:Create(frame, TweenInfo.new(0.5, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
        Size = UDim2.new(0, 260, 0, 220),  -- Altura atualizada
        BackgroundTransparency = 0
    })
    openPanelTween:Play()
end)

-- ===== ARRASTAR =====
local function makeDraggable(obj)
    local dragging, dragInput, startPos, startInputPos

    obj.InputBegan:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.Touch or 
           input.UserInputType == Enum.UserInputType.MouseButton1 then
            dragging = true
            startInputPos = input.Position
            startPos = obj.Position
            
            input.Changed:Connect(function()
                if input.UserInputState == Enum.UserInputState.End then
                    dragging = false
                end
            end)
        end
    end)

    UIS.InputChanged:Connect(function(input)
        if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or 
                        input.UserInputType == Enum.UserInputType.Touch) then
            local delta = input.Position - startInputPos
            obj.Position = UDim2.new(
                startPos.X.Scale, startPos.X.Offset + delta.X,
                startPos.Y.Scale, startPos.Y.Offset + delta.Y
            )
        end
    end)
end

makeDraggable(frame)
makeDraggable(openBtn)

-- Notificação inicial
local notif = Instance.new("TextLabel", gui)
notif.Size = UDim2.new(0, 0, 0, 0)
notif.Position = UDim2.new(0.5,-125,0,20)
notif.BackgroundColor3 = Color3.fromRGB(50,200,100)
notif.Text = "✓ FOV Permanente Ativado!"
notif.TextColor3 = Color3.new(1,1,1)
notif.Font = Enum.Font.GothamBold
notif.TextSize = 14
notif.BorderSizePixel = 0
notif.TextTransparency = 1
notif.BackgroundTransparency = 1

Instance.new("UICorner", notif).CornerRadius = UDim.new(0,10)

-- Animação da notificação (aparecer)
local notifAppear = TweenService:Create(notif, TweenInfo.new(0.4, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
    Size = UDim2.new(0, 250, 0, 50),
    TextTransparency = 0,
    BackgroundTransparency = 0
})
notifAppear:Play()

task.wait(2)

-- Animação de desaparecer
local notifFade = TweenService:Create(notif, TweenInfo.new(0.4, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {
    Size = UDim2.new(0, 0, 0, 0),
    TextTransparency = 1,
    BackgroundTransparency = 1
})
notifFade:Play()

task.wait(0.5)
notif:Destroy()

Features & Information

Fv_FC

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts