
KeylessUniversal

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)



May I test it?
I tested it, everything is fine except for nocoip. Any advice would be...
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.
@De666 Thanks for suggesting! Still learning