mobile and pc fly gui
Key RequiredUniversal

mobile and pc fly gui

Universal Scriptmrusscher0mrusscher0 29.6K views 210 executesUpdated Jun 18, 2025
0.0/ 5(2 votes)
020% Positive
Lua Script•220 lines (7211 chars)
-- Full Fly Mod Menu with Fixed Mobile Directional Fly and Full Features

local player = game.Players.LocalPlayer
local userInputService = game:GetService("UserInputService")
local runService = game:GetService("RunService")
local tweenService = game:GetService("TweenService")
local flySpeed = 50
local flying = false
local bodyVelocity

-- Create ScreenGui
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "FlyModMenu"
screenGui.ResetOnSpawn = false
screenGui.Parent = player:WaitForChild("PlayerGui")

-- Create main frame
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 220, 0, 130)
frame.Position = UDim2.new(0, 20, 0, 20)
frame.BorderSizePixel = 0
frame.Parent = screenGui

local uiCornerFrame = Instance.new("UICorner")
uiCornerFrame.CornerRadius = UDim.new(0, 15)
uiCornerFrame.Parent = frame

-- Rainbow background effect
local hue = 0
runService.Heartbeat:Connect(function()
    hue = (hue + 0.5) % 360
    frame.BackgroundColor3 = Color3.fromHSV(hue / 360, 1, 1)
end)

-- Title (draggable)
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, 0, 0, 30)
title.BackgroundTransparency = 1
title.Text = "Fly Mod Menu"
title.TextColor3 = Color3.new(1, 1, 1)
title.Font = Enum.Font.SourceSansBold
title.TextSize = 22
title.Parent = frame

title.TextYAlignment = Enum.TextYAlignment.Center

local dragging, dragInput, dragStart, startPos

title.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        dragging = true
        dragStart = input.Position
        startPos = frame.Position

        input.Changed:Connect(function()
            if input.UserInputState == Enum.UserInputState.End then
                dragging = false
            end
        end)
    end
end)

title.InputChanged:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
        dragInput = input
    end
end)

userInputService.InputChanged:Connect(function(input)
    if input == dragInput and dragging then
        local delta = input.Position - dragStart
        frame.Position = UDim2.new(
            startPos.X.Scale,
            startPos.X.Offset + delta.X,
            startPos.Y.Scale,
            startPos.Y.Offset + delta.Y
        )
    end
end)

-- Fly Toggle
local flyToggle = Instance.new("TextButton")
flyToggle.Size = UDim2.new(1, -40, 0, 40)
flyToggle.Position = UDim2.new(0, 10, 0, 40)
flyToggle.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
flyToggle.TextColor3 = Color3.new(1, 1, 1)
flyToggle.Font = Enum.Font.SourceSansBold
flyToggle.TextSize = 22
flyToggle.Text = "Fly: OFF"
flyToggle.Parent = frame

local uiCornerButton = Instance.new("UICorner")
uiCornerButton.CornerRadius = UDim.new(0, 10)
uiCornerButton.Parent = flyToggle

-- Speed Label
local speedLabel = Instance.new("TextLabel")
speedLabel.Size = UDim2.new(0, 50, 0, 30)
speedLabel.Position = UDim2.new(0, 10, 0, 90)
speedLabel.BackgroundTransparency = 1
speedLabel.Text = "Speed:"
speedLabel.TextColor3 = Color3.new(1, 1, 1)
speedLabel.Font = Enum.Font.SourceSans
speedLabel.TextSize = 18
speedLabel.TextXAlignment = Enum.TextXAlignment.Left
speedLabel.Parent = frame

-- Speed Input
local speedInput = Instance.new("TextBox")
speedInput.Size = UDim2.new(0, 120, 0, 30)
speedInput.Position = UDim2.new(0, 70, 0, 90)
speedInput.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
speedInput.TextColor3 = Color3.new(1, 1, 1)
speedInput.Font = Enum.Font.SourceSans
speedInput.TextSize = 18
speedInput.Text = tostring(flySpeed)
speedInput.ClearTextOnFocus = false
speedInput.Parent = frame

local uiCornerInput = Instance.new("UICorner")
uiCornerInput.CornerRadius = UDim.new(0, 10)
uiCornerInput.Parent = speedInput

-- Warning overlay
local warningOverlay = Instance.new("Frame")
warningOverlay.Size = UDim2.new(1, 0, 1, 0)
warningOverlay.BackgroundColor3 = Color3.fromRGB(255, 50, 50)
warningOverlay.BackgroundTransparency = 0.7
warningOverlay.Visible = false
warningOverlay.ZIndex = 1000
warningOverlay.Parent = screenGui

local warningText = Instance.new("TextLabel")
warningText.Size = UDim2.new(0.8, 0, 0.3, 0)
warningText.Position = UDim2.new(0.1, 0, 0.35, 0)
warningText.BackgroundTransparency = 1
warningText.TextColor3 = Color3.new(1, 1, 1)
warningText.Font = Enum.Font.SourceSansBold
warningText.TextSize = 36
warningText.TextWrapped = true
warningText.Text = "Warning: Speed over 3450! Things might get uncontrollable beyond this point!"
warningText.ZIndex = 1001
warningText.Parent = warningOverlay

-- Fly start/stop functions
local function startFlying()
    local character = player.Character
    if not character then return end
    local hrp = character:FindFirstChild("HumanoidRootPart")
    if not hrp then return end
    bodyVelocity = Instance.new("BodyVelocity")
    bodyVelocity.MaxForce = Vector3.new(1e5, 1e5, 1e5)
    bodyVelocity.Velocity = Vector3.new(0, 0, 0)
    bodyVelocity.Parent = hrp
end

local function stopFlying()
    if bodyVelocity then
        bodyVelocity:Destroy()
        bodyVelocity = nil
    end
end

-- Fly toggle logic
flyToggle.MouseButton1Click:Connect(function()
    flying = not flying
    if flying then
        startFlying()
        flyToggle.Text = "Fly: ON"
    else
        stopFlying()
        flyToggle.Text = "Fly: OFF"
    end
end)

-- Speed input
speedInput.FocusLost:Connect(function(enterPressed)
    if enterPressed then
        local val = tonumber(speedInput.Text)
        if val and val > 0 then
            flySpeed = val
            if flySpeed > 3450 then
                warningOverlay.Visible = true
                task.delay(5, function()
                    warningOverlay.Visible = false
                end)
            end
        else
            speedInput.Text = tostring(flySpeed)
        end
    end
end)

-- Main fly logic (RenderStepped)
runService.RenderStepped:Connect(function()
    if flying and bodyVelocity and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
        local cam = workspace.CurrentCamera
        local dir = Vector3.new()

        if userInputService.TouchEnabled then
            local hum = player.Character:FindFirstChildOfClass("Humanoid")
            if hum and hum.MoveDirection.Magnitude > 0 then
                dir = cam.CFrame.LookVector
            end
        else
            if userInputService:IsKeyDown(Enum.KeyCode.W) then dir = dir + cam.CFrame.LookVector end
            if userInputService:IsKeyDown(Enum.KeyCode.S) then dir = dir - cam.CFrame.LookVector end
            if userInputService:IsKeyDown(Enum.KeyCode.A) then dir = dir - cam.CFrame.RightVector end
            if userInputService:IsKeyDown(Enum.KeyCode.D) then dir = dir + cam.CFrame.RightVector end
            if userInputService:IsKeyDown(Enum.KeyCode.Space) then dir = dir + Vector3.new(0, 1, 0) end
            if userInputService:IsKeyDown(Enum.KeyCode.LeftControl) then dir = dir - Vector3.new(0, 1, 0) end
        end

        if dir.Magnitude > 0 then
            bodyVelocity.Velocity = dir.Unit * flySpeed
        else
            bodyVelocity.Velocity = Vector3.zero
        end
    end
end)

Features & Information

new update for mobile fixed

Community Comments (4)

mrusscher0mrusscher0Jun 18, 2025

i just fixed it so now with mobile its not broken

koelwong30koelwong30Jun 18, 2025

how do i use it on mobile im new in this web

MiniCapyMiniCapyJun 18, 2025

Chat gpt script 🙏🙏

mrusscher0mrusscher0Jun 21, 2025

not chatgpt it was my friend that coded it with me

More Scripts for Universal Scripts