Fly+
Key RequiredUniversal

Fly+

Universal ScriptCacaXdCacaXd 546 views 27.4K executesUpdated Sep 16, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•241 lines (7870 chars)
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Lighting = game:GetService("Lighting")

local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local hrp = character:WaitForChild("HumanoidRootPart")
local camera = workspace.CurrentCamera
local playerGui = player:WaitForChild("PlayerGui")

-- Variables de Estado
local flying = false
local noclip = false
local fullbright = false
local ghostMode = false
local goingUp = false
local goingDown = false

local speedModes = {50, 150, 300, 600}
local currentSpeedIndex = 1
local speed = speedModes[currentSpeedIndex]

local defaultBrightness = Lighting.Brightness
local defaultClockTime = Lighting.ClockTime

-- Interfaz
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "UltimateMobileHub"
screenGui.ResetOnSpawn = true
screenGui.Parent = playerGui

local mainFrame = Instance.new("Frame")
mainFrame.Name = "MainFrame"
mainFrame.Size = UDim2.new(0.28, 0, 0.65, 0)
mainFrame.Position = UDim2.new(0.05, 0, 0.2, 0)
mainFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 25)
mainFrame.BackgroundTransparency = 0.15
mainFrame.Active = true
mainFrame.Parent = screenGui

local frameCorner = Instance.new("UICorner")
frameCorner.CornerRadius = UDim.new(0, 14)
frameCorner.Parent = mainFrame

local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, 0, 0.1, 0)
title.Text = "📱 Fly Hub Mobile"
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.TextScaled = true
title.BackgroundTransparency = 1
title.Font = Enum.Font.SourceSansBold
title.Parent = mainFrame

local scroll = Instance.new("ScrollingFrame")
scroll.Size = UDim2.new(0.92, 0, 0.88, 0)
scroll.Position = UDim2.new(0.04, 0, 0.1, 0)
scroll.BackgroundTransparency = 1
scroll.CanvasSize = UDim2.new(0, 0, 1.8, 0)
scroll.ScrollBarThickness = 4
scroll.Parent = mainFrame

local listLayout = Instance.new("UIListLayout")
listLayout.Parent = scroll
listLayout.SortOrder = Enum.SortOrder.LayoutOrder
listLayout.Padding = UDim.new(0.02, 0)

-- Hacer la interfaz arrastrable en celular
local dragging, dragStart, startPos
mainFrame.InputBegan:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
		dragging = true
		dragStart = input.Position
		startPos = mainFrame.Position
	end
end)

mainFrame.InputEnded:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
		dragging = false
	end
end)

UserInputService.InputChanged:Connect(function(input)
	if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
		local delta = input.Position - dragStart
		mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
	end
end)

-- Creador de Botones
local function createBtn(text, order, color)
	local btn = Instance.new("TextButton")
	btn.Size = UDim2.new(1, 0, 0.09, 0)
	btn.Text = text
	btn.TextColor3 = Color3.fromRGB(255, 255, 255)
	btn.TextScaled = true
	btn.BackgroundColor3 = color or Color3.fromRGB(40, 40, 50)
	btn.LayoutOrder = order
	btn.Font = Enum.Font.SourceSansSemibold
	btn.Parent = scroll
	
	local corner = Instance.new("UICorner")
	corner.CornerRadius = UDim.new(0, 8)
	corner.Parent = btn
	return btn
end

local toggleBtn = createBtn("Vuelo: OFF", 1, Color3.fromRGB(180, 40, 40))
local noclipBtn = createBtn("Noclip: OFF", 2, Color3.fromRGB(180, 40, 40))
local speedBtn = createBtn("Velocidad: " .. speed, 3, Color3.fromRGB(0, 120, 215))
local dashBtn = createBtn("⚡ Dash (Impulso)", 4, Color3.fromRGB(140, 60, 200))
local lightBtn = createBtn("💡 Luz Total: OFF", 5, Color3.fromRGB(60, 60, 75))
local ghostBtn = createBtn("👻 Modo Fantasma: OFF", 6, Color3.fromRGB(60, 60, 75))
local upBtn = createBtn("⬆ Subir", 7, Color3.fromRGB(50, 150, 90))
local downBtn = createBtn("⬇ Bajar", 8, Color3.fromRGB(50, 150, 90))

-- Botón Ocultar
local minBtn = Instance.new("TextButton")
minBtn.Size = UDim2.new(0.12, 0, 0.06, 0)
minBtn.Position = UDim2.new(0.05, 0, 0.12, 0)
minBtn.Text = "👁 Menú"
minBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
minBtn.TextScaled = true
minBtn.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
minBtn.Parent = screenGui

local minCorner = Instance.new("UICorner")
minCorner.CornerRadius = UDim.new(0, 8)
minCorner.Parent = minBtn

minBtn.MouseButton1Click:Connect(function()
	mainFrame.Visible = not mainFrame.Visible
end)

-- Fisicas de Vuelo
local bv = Instance.new("BodyVelocity")
bv.MaxForce = Vector3.new(1e6, 1e6, 1e6)

local bg = Instance.new("BodyGyro")
bg.MaxTorque = Vector3.new(1e6, 1e6, 1e6)
bg.P = 9000

-- Eventos de Botones
toggleBtn.MouseButton1Click:Connect(function()
	flying = not flying
	if flying then
		toggleBtn.Text = "Vuelo: ON"
		toggleBtn.BackgroundColor3 = Color3.fromRGB(40, 180, 40)
		bv.Parent = hrp
		bg.Parent = hrp
		humanoid:ChangeState(Enum.HumanoidStateType.Physics)
	else
		toggleBtn.Text = "Vuelo: OFF"
		toggleBtn.BackgroundColor3 = Color3.fromRGB(180, 40, 40)
		bv.Parent = nil
		bg.Parent = nil
		humanoid:ChangeState(Enum.HumanoidStateType.GettingUp)
	end
end)

noclipBtn.MouseButton1Click:Connect(function()
	noclip = not noclip
	noclipBtn.Text = noclip and "Noclip: ON" or "Noclip: OFF"
	noclipBtn.BackgroundColor3 = noclip and Color3.fromRGB(40, 180, 40) or Color3.fromRGB(180, 40, 40)
end)

speedBtn.MouseButton1Click:Connect(function()
	currentSpeedIndex = (currentSpeedIndex % #speedModes) + 1
	speed = speedModes[currentSpeedIndex]
	speedBtn.Text = "Velocidad: " .. speed
end)

dashBtn.MouseButton1Click:Connect(function()
	hrp.CFrame = hrp.CFrame + (camera.CFrame.LookVector * 40)
end)

lightBtn.MouseButton1Click:Connect(function()
	fullbright = not fullbright
	lightBtn.Text = fullbright and "💡 Luz Total: ON" or "💡 Luz Total: OFF"
	lightBtn.BackgroundColor3 = fullbright and Color3.fromRGB(40, 180, 40) or Color3.fromRGB(60, 60, 75)
	if fullbright then
		Lighting.Brightness = 3
		Lighting.ClockTime = 14
	else
		Lighting.Brightness = defaultBrightness
		Lighting.ClockTime = defaultClockTime
	end
end)

ghostBtn.MouseButton1Click:Connect(function()
	ghostMode = not ghostMode
	ghostBtn.Text = ghostMode and "👻 Modo Fantasma: ON" or "👻 Modo Fantasma: OFF"
	ghostBtn.BackgroundColor3 = ghostMode and Color3.fromRGB(40, 180, 40) or Color3.fromRGB(60, 60, 75)
	
	for _, part in ipairs(character:GetDescendants()) do
		if part:IsA("BasePart") or part:IsA("Decal") then
			part.Transparency = ghostMode and 0.6 or 0
		end
	end
end)

upBtn.MouseButton1Down:Connect(function() goingUp = true end)
upBtn.MouseButton1Up:Connect(function() goingUp = false end)

downBtn.MouseButton1Down:Connect(function() goingDown = true end)
downBtn.MouseButton1Up:Connect(function() goingDown = false end)

-- Anti Caída (Evita morir al apagar vuelo en la altura)
humanoid.StateChanged:Connect(function(_, newState)
	if newState == Enum.HumanoidStateType.Freefall and not flying then
		humanoid:SetStateEnabled(Enum.HumanoidStateType.FallingDown, false)
	end
end)

-- Bucle Principal
RunService.RenderStepped:Connect(function()
	if flying then
		bg.CFrame = camera.CFrame
		local moveDir = humanoid.MoveDirection
		local verticalSpeed = 0
		
		if goingUp then verticalSpeed = speed end
		if goingDown then verticalSpeed = -speed end

		if moveDir.Magnitude > 0 or verticalSpeed ~= 0 then
			bv.Velocity = (moveDir * speed) + Vector3.new(0, verticalSpeed, 0)
		else
			bv.Velocity = Vector3.zero
		end
	end
	
	if noclip and character then
		for _, part in ipairs(character:GetDescendants()) do
			if part:IsA("BasePart") then
				part.CanCollide = false
			end
		end
	end
end)

Features & Information

Hola

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts