-- 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()