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)