-- LocalScript local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local player = game.Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local hrp = character:WaitForChild("HumanoidRootPart") local flying = false local speed = 50 local upDown = 0 -- alternar voo UserInputService.InputBegan:Connect(function(input, processed) if processed then return end if input.KeyCode == Enum.KeyCode.F then flying = not flying print(flying and "Modo voo ativado" or "Modo voo desativado") elseif input.KeyCode == Enum.KeyCode.Space then upDown = 1 elseif input.KeyCode == Enum.KeyCode.LeftShift then upDown = -1 end end) UserInputService.InputEnded:Connect(function(input) if input.KeyCode == Enum.KeyCode.Space or input.KeyCode == Enum.KeyCode.LeftShift then upDown = 0 end end) RunService.RenderStepped:Connect(function() if flying then local cam = workspace.CurrentCamera local move = Vector3.new() if UserInputService:IsKeyDown(Enum.KeyCode.W) then move = move + cam.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.S) then move = move - cam.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.D) then move = move + cam.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.A) then move = move - cam.CFrame.RightVector end move = (move.Unit * speed) + Vector3.new(0, upDown * speed, 0) hrp.Velocity = move end end)