local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local player = Players.LocalPlayer local camera = workspace.CurrentCamera local flySpeed = 100 -- Velocidade do voo (pode mudar se quiser mais rápido ou devagar) local flying = false local bv = nil local bg = nil local connection = nil -- Função para começar a voar local function startFlying() flying = true local character = player.Character if not character then return end local humanoid = character:FindFirstChild("Humanoid") local rootPart = character:FindFirstChild("HumanoidRootPart") if not humanoid or not rootPart then return end humanoid.PlatformStand = true -- BodyVelocity pra mover o personagem bv = Instance.new("BodyVelocity") bv.Name = "FlyBodyVelocity" bv.MaxForce = Vector3.new(400000, 400000, 400000) bv.P = 1250 bv.Velocity = Vector3.new(0, 0, 0) bv.Parent = rootPart -- BodyGyro pra manter a rotação suave com a câmera bg = Instance.new("BodyGyro") bg.Name = "FlyBodyGyro" bg.MaxTorque = Vector3.new(400000, 400000, 400000) bg.P = 3000 bg.D = 500 bg.Parent = rootPart end -- Função para parar de voar local function stopFlying() flying = false if bv then bv:Destroy() bv = nil end if bg then bg:Destroy() bg = nil end local character = player.Character if character then local humanoid = character:FindFirstChild("Humanoid") if humanoid then humanoid.PlatformStand = false end end end -- Atualiza o voo todo frame (funciona no celular e no PC) local function updateFly() if not flying or not bv or not bg then return end local character = player.Character if not character then return end local humanoid = character:FindFirstChild("Humanoid") local rootPart = character:FindFirstChild("HumanoidRootPart") if not humanoid or not rootPart then return end -- Direção do joystick do celular (funciona perfeitamente no mobile) local moveDirection = humanoid.MoveDirection -- Subir / descer (Space e Ctrl no PC - no celular você usa o joystick horizontal) local vertical = 0 if UserInputService:IsKeyDown(Enum.KeyCode.Space) then vertical = vertical + 1 end if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then vertical = vertical - 1 end local direction = moveDirection + Vector3.new(0, vertical, 0) if direction.Magnitude > 0 then direction = direction.Unit * flySpeed else direction = Vector3.new(0, 0, 0) end bv.Velocity = direction bg.CFrame = camera.CFrame -- Mantém o personagem virado pra onde a câmera olha end -- ==================== CRIA A GUI ==================== local screenGui = Instance.new("ScreenGui") screenGui.Name = "FlyGui" screenGui.ResetOnSpawn = false -- Não desaparece quando morre screenGui.Parent = player:WaitForChild("PlayerGui") local button = Instance.new("TextButton") button.Name = "FlyButton" button.Size = UDim2.new(0, 170, 0, 65) -- Tamanho bom pro celular button.Position = UDim2.new(0, 15, 1, -85) -- Canto inferior esquerdo button.AnchorPoint = Vector2.new(0, 1) button.BackgroundColor3 = Color3.fromRGB(25, 25, 25) button.TextColor3 = Color3.fromRGB(255, 255, 255) button.Text = "FLY OFF" button.TextScaled = true button.Font = Enum.Font.SourceSansBold button.Parent = screenGui -- Borda arredondada (fica bonito) local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 15) corner.Parent = button -- Borda brilhante local stroke = Instance.new("UIStroke") stroke.Thickness = 3 stroke.Color = Color3.fromRGB(0, 162, 255) stroke.Parent = button -- Função que acontece quando clica no botão local function toggleFly() if flying then stopFlying() button.Text = "FLY OFF" button.BackgroundColor3 = Color3.fromRGB(25, 25, 25) else startFlying() button.Text = "FLY ON" button.BackgroundColor3 = Color3.fromRGB(0, 170, 0) end end button.MouseButton1Click:Connect(toggleFly) -- Loop de atualização do voo connection = RunService.RenderStepped:Connect(updateFly) -- Se o personagem renascer, mantém o voo funcionando player.CharacterAdded:Connect(function() if flying then task.wait(0.5) stopFlying() startFlying() end end) print("✅ Fly GUI carregado! Botão no canto inferior esquerdo da tela.") print("Clique pra ligar/desligar. Funciona no celular com o joystick!") local Players = game:GetService("Players") local RunService = game:GetService("RunService") local player = Players.LocalPlayer local wallhackEnabled = false local noclipConnection = nil -- ====================== FUNÇÃO DE WALLHACK ====================== local function startWallhack() wallhackEnabled = true noclipConnection = RunService.Stepped:Connect(function() if not wallhackEnabled then return end local character = player.Character if not character then return end -- Desativa colisão de TODAS as partes do personagem for _, part in pairs(character:GetDescendants()) do if part:IsA("BasePart") and part.CanCollide == true then part.CanCollide = false end end end) end local function stopWallhack() wallhackEnabled = false if noclipConnection then noclipConnection:Disconnect() noclipConnection = nil end -- Restaura colisão quando desliga local character = player.Character if character then for _, part in pairs(character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = true end end end end -- ==================== CRIA A GUI (AGORA NO CANTO INFERIOR DIREITO) ==================== local screenGui = Instance.new("ScreenGui") screenGui.Name = "WallhackGui" screenGui.ResetOnSpawn = false screenGui.Parent = player:WaitForChild("PlayerGui") local button = Instance.new("TextButton") button.Name = "WallhackButton" button.Size = UDim2.new(0, 170, 0, 65) -- Tamanho perfeito pro celular button.Position = UDim2.new(1, -185, 1, -85) -- CANTO INFERIOR DIREITO button.AnchorPoint = Vector2.new(1, 1) button.BackgroundColor3 = Color3.fromRGB(25, 25, 25) button.TextColor3 = Color3.fromRGB(255, 255, 255) button.Text = "WALLHACK OFF" button.TextScaled = true button.Font = Enum.Font.SourceSansBold button.Parent = screenGui -- Borda arredondada local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 15) corner.Parent = button -- Borda brilhante local stroke = Instance.new("UIStroke") stroke.Thickness = 3 stroke.Color = Color3.fromRGB(0, 162, 255) stroke.Parent = button -- Função de ligar/desligar ao clicar local function toggleWallhack() if wallhackEnabled then stopWallhack() button.Text = "WALLHACK OFF" button.BackgroundColor3 = Color3.fromRGB(25, 25, 25) else startWallhack() button.Text = "WALLHACK ON" button.BackgroundColor3 = Color3.fromRGB(0, 170, 0) end end button.MouseButton1Click:Connect(toggleWallhack) -- Se o personagem renascer, mantém o wallhack ativo player.CharacterAdded:Connect(function() if wallhackEnabled then task.wait(0.5) stopWallhack() startWallhack() end end) print("✅ Wallhack GUI carregado!") print("Botão agora no canto inferior DIREITO da tela.") print("Clique para atravessar paredes!") print("Funciona perfeitamente no celular com o joystick normal.")