
KeylessUniversal

-- 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()No comments yet for this script.



