Script by Davi gktcs
Key RequiredUniversal

Script by Davi gktcs

Universal ScriptIDI0THUBIDI0THUB 2.3K views 412 executesUpdated Apr 4, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•250 lines (7178 chars)
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.")

Features & Information

Fly Wallhack
#Script#Brookhaven#Script Brookhaven#Brookhaven Script#Brookhaven RP

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts