Fly gui
Key RequiredUniversal

Fly gui

Universal ScriptXprssstturanXprssstturan 2K views 136.4K executesUpdated Aug 20, 2026
Unrated
00
Lua Script•55 lines (6217 chars)
local P,R,LP = game:GetService("Players"),game:GetService("RunService"),game:GetService("Players").LocalPlayer
local SG = Instance.new("ScreenGui",LP:WaitForChild("PlayerGui")) SG.ResetOnSpawn = false
local MF = Instance.new("Frame",SG) MF.Size,MF.Position,MF.BackgroundColor3,MF.Active,MF.Draggable = UDim2.new(0,140,0,140),UDim2.new(0.4,0,0.4,0),Color3.fromRGB(30,30,30),true,true
local MS = Instance.new("UIStroke",MF) MS.Thickness = 2 local T = Instance.new("TextLabel",MF) T.Size,T.Text,T.TextColor3,T.BackgroundColor3 = UDim2.new(1,-20,0,20),"Simple Fly",Color3.new(1,1,1),Color3.fromRGB(45,45,45)
local SB = Instance.new("TextButton",MF) SB.Size,SB.Position,SB.Text,SB.BackgroundColor3,SB.TextColor3 = UDim2.new(0,20,0,20),UDim2.new(1,-20,0,0),"⚙",Color3.fromRGB(45,45,45),Color3.new(1,1,1)
local SF = Instance.new("Frame",SG) SF.Size,SF.Position,SF.BackgroundColor3,SF.Active,SF.Draggable,SF.Visible = UDim2.new(0,140,0,120),UDim2.new(0.55,0,0.4,0),Color3.fromRGB(35,35,35),true,true,false
local SS = Instance.new("UIStroke",SF) SS.Thickness = 2 SB.MouseButton1Click:Connect(function() SF.Visible = not SF.Visible end)

local flying,noclip,flySpeed,rbC,fC,sC,animE = false,false,50,nil,nil,nil,nil
local CM = require(LP.PlayerScripts:WaitForChild("PlayerModule")):GetControls()

local function toggleRB(enable)
    if enable then if rbC then return end rbC = R.RenderStepped:Connect(function() local col = Color3.fromHSV((tick()%4)/4,1,1) MS.Color,SS.Color = col,col end)
    else if rbC then rbC:Disconnect() rbC = nil end MS.Color,SS.Color = Color3.fromRGB(60,60,60),Color3.fromRGB(80,80,80) end
end

local function startF()
    local c = LP.Character or LocalPlayer.CharacterAdded:Wait() local h,r = c:WaitForChild("Humanoid"),c:WaitForChild("HumanoidRootPart")
    for _,s in pairs(r:GetChildren()) do if s:IsA("Sound") and (s.Name=="Swimming" or s.Name=="Splash") then s.Volume=0 s:Stop() end end
    animE = c:FindFirstChild("Animate") if animE then animE.Enabled = false end
    local am = h:FindFirstChildOfClass("Animator") if am then for _,t in pairs(am:GetPlayingAnimationTracks()) do t:Stop() end end
    local bv,bg = Instance.new("BodyVelocity",r),Instance.new("BodyGyro",r) bv.MaxForce,bg.MaxTorque = Vector3.new(1e5,1e5,1e5),Vector3.new(1e5,1e5,1e5)
    fC = R.RenderStepped:Connect(function() if not flying or not r.Parent then return end h:ChangeState(Enum.HumanoidStateType.Physics)
        local mv,cam = CM:GetMoveVector(),workspace.CurrentCamera.CFrame local vel = Vector3.new(0,0,0)
        if mv.X ~= 0 or mv.Z ~= 0 then vel = (cam.RightVector * mv.X + cam.LookVector * -mv.Z) * flySpeed end
        bv.Velocity,bg.CFrame = vel,cam
    end)
    sC = c.DescendantAdded:Connect(function(d) if d:IsA("Sound") and (d.Name=="Swimming" or d.Name=="Splash") then d.Volume=0 d:Stop() end end)
end

local function stopF()
    if fC then fC:Disconnect() end if sC then sC:Disconnect() end if animE then animE.Enabled = true end
    local c = LP.Character if c then local h,r = c:FindFirstChild("Humanoid"),c:FindFirstChild("HumanoidRootPart")
        if h then h:ChangeState(Enum.HumanoidStateType.Running) end
        if r then local bv,bg = r:FindFirstChildOfClass("BodyVelocity"),r:FindFirstChildOfClass("BodyGyro") if bv then bv:Destroy() end if bg then bg:Destroy() end end
    end
end

R.Stepped:Connect(function() if noclip and LP.Character then for _,p in pairs(LP.Character:GetDescendants()) do if p:IsA("BasePart") then p.CanCollide = false end end end end)
local function antiFall(c)
    local f = c:WaitForChild("FallDamageScript",2) or c:FindFirstChild("FallDamageScript") if f then f:Destroy() end
    c:WaitForChild("Humanoid").StateChanged:Connect(function(_,s) if s==Enum.HumanoidStateType.FreeFall or s==Enum.HumanoidStateType.FallingDown then c.Humanoid:ChangeState(Enum.HumanoidStateType.Running) end end)
end
if LP.Character then antiFall(LP.Character) end LP.CharacterAdded:Connect(function(c) antiFall(c) if flying then stopF() task.wait(0.1) startF() end end)

local function btn(p,sz,pos,txt,cb) local b=Instance.new(p=="Txt" and "TextBox" or "TextButton",MF) b.Size,b.Position,b.BackgroundColor3,b.TextColor3,b.TextSize = sz,pos,Color3.fromRGB(60,60,60),Color3.new(1,1,1),11 if p=="Txt" then b.PlaceholderText=txt b.FocusLost:Connect(function() cb(b) end) else b.Text=txt b.MouseButton1Click:Connect(function() cb(b) end) end return b end
btn("Btn",UDim2.new(0.9,0,0,22),UDim2.new(0.05,0,0.2,0),"Fly: OFF",function(b) flying = not flying b.Text=flying and "Fly: ON" or "Fly: OFF" b.BackgroundColor3=flying and Color3.fromRGB(46,139,87) or Color3.fromRGB(60,60,60) if flying then startF() else stopF() end end)
btn("Btn",UDim2.new(0.9,0,0,22),UDim2.new(0.05,0,0.4,0),"Noclip: OFF",function(b) noclip = not noclip b.Text=noclip and "Noclip: ON" or "Noclip: OFF" b.BackgroundColor3=noclip and Color3.fromRGB(46,139,87) or Color3.fromRGB(60,60,60) end)
btn("Txt",UDim2.new(0.9,0,0,22),UDim2.new(0.05,0,0.6,0),"",function(b) flySpeed = tonumber(b.Text) or flySpeed b.Text = tostring(flySpeed) end).Text="50"

local function sbtn(p,pos,txt,cb) local b=Instance.new(p=="Txt" and "TextBox" or "TextButton",SF) b.Size,b.Position,b.BackgroundColor3,b.TextColor3,b.TextSize = UDim2.new(0.9,0,0,20),pos,Color3.fromRGB(45,45,45),Color3.new(1,1,1),10 if p=="Txt" then b.PlaceholderText=txt b.FocusLost:Connect(function() cb(b) end) else b.Text=txt b.MouseButton1Click:Connect(function() cb(b) end) end end
sbtn("Txt",UDim2.new(0.05,0,0.1,0),"Rename GUI...",function(b) if b.Text~="" then T.Text=b.Text end end)
sbtn("Txt",UDim2.new(0.05,0,0.3,0),"BG (R,G,B)...",function(b) local r,g,bC = b.Text:match("(%d+),%s*(%d+),%s*(%d+)") if r then local c=Color3.fromRGB(tonumber(r),tonumber(g),tonumber(bC)) MF.BackgroundColor3,SF.BackgroundColor3=c,c else b.Text="" end end)
sbtn("Txt",UDim2.new(0.05,0,0.5,0),"Outline (R,G,B)...",function(b) local r,g,bC = b.Text:match("(%d+),%s*(%d+),%s*(%d+)") if r then toggleRB(false) local c=Color3.fromRGB(tonumber(r),tonumber(g),tonumber(bC)) MS.Color,SS.Color=c,c else b.Text="" end end)
local rbA = false sbtn("Btn",UDim2.new(0.05,0,0.7,0),"Rainbow: OFF",function(b) rbA = not rbA b.Text=rbA and "Rainbow: ON" or "Rainbow: OFF" toggleRB(rbA) end)

Features & Information

A fly gui made by me.

Community Comments (4)

De*666De*666Sep 8, 2026

May I test it?

De*666De*666Sep 8, 2026

I tested it, everything is fine except for nocoip. Any advice would be...

De*666De*666Sep 8, 2026

Noclip advice: Before turning Noclip ON, save each part's original "CanCollide" value. When Noclip is turned OFF, restore "CanCollide" to those saved values. That way, turning Noclip off returns the collision settings to exactly how they were before.

Replying to @De*666
XprssstturanXprssstturanOct 3, 2026

@De666 Thanks for suggesting! Still learning

More Scripts for Universal Scripts