local player=game.Players.LocalPlayer
local UIS=game:GetService("UserInputService")
local RunService=game:GetService("RunService")
local flySpeed=50
local flying=false
local bodyVelocity
local bodyGyro
local gui=Instance.new("ScreenGui",player:WaitForChild("PlayerGui"))
gui.ResetOnSpawn=false
local frame=Instance.new("Frame",gui)
frame.Size=UDim2.new(0,500,0,500)
frame.Position=UDim2.new(0.5,-250,0.5,-250)
frame.BackgroundColor3=Color3.fromRGB(20,0,40)
Instance.new("UICorner",frame).CornerRadius=UDim.new(0,20)
local glow=Instance.new("UIStroke",frame)
glow.Thickness=2
RunService.RenderStepped:Connect(function()
local i=(math.sin(tick()*2)+1)/2
glow.Color=Color3.fromRGB(150+100*i,0,255)
end)
local bgText=Instance.new("TextLabel",frame)
bgText.Size=UDim2.new(1,0,1,0)
bgText.Text="COOL STUDIOS: Fly +"
bgText.TextScaled=true
bgText.TextTransparency=0.9
bgText.TextColor3=Color3.fromRGB(180,0,255)
bgText.Font=Enum.Font.GothamBlack
bgText.BackgroundTransparency=1
local title=Instance.new("TextLabel",frame)
title.Size=UDim2.new(1,-100,0,40)
title.Position=UDim2.new(0,10,0,0)
title.Text="Cool Studios"
title.BackgroundTransparency=1
title.TextColor3=Color3.fromRGB(220,120,255)
title.TextScaled=true
local dragging=false
local dragStart,startPos
title.InputBegan:Connect(function(i)
if i.UserInputType==Enum.UserInputType.MouseButton1 then
dragging=true
dragStart=i.Position
startPos=frame.Position
end
end)
UIS.InputChanged:Connect(function(i)
if dragging then
local d=i.Position-dragStart
frame.Position=UDim2.new(startPos.X.Scale,startPos.X.Offset+d.X,startPos.Y.Scale,startPos.Y.Offset+d.Y)
end
end)
UIS.InputEnded:Connect(function(i)
if i.UserInputType==Enum.UserInputType.MouseButton1 then
dragging=false
end
end)
local function topBtn(txt,x,func)
local b=Instance.new("TextButton",frame)
b.Size=UDim2.new(0,30,0,30)
b.Position=UDim2.new(1,x,0,5)
b.Text=txt
b.BackgroundColor3=Color3.fromRGB(150,0,255)
b.TextColor3=Color3.new(1,1,1)
Instance.new("UICorner",b)
b.MouseButton1Click:Connect(func)
end
topBtn("X",-35,function() gui:Destroy() end)
local minimized=false
topBtn("-", -70,function()
minimized=not minimized
for _,v in pairs(frame:GetChildren()) do
if v~=title and v:IsA("GuiObject") and v.Position.Y.Offset>40 then
v.Visible=not minimized
end
end
frame:TweenSize(minimized and UDim2.new(0,500,0,40) or UDim2.new(0,500,0,500),"Out","Quad",0.3,true)
end)
local function slider(y,min,max)
local val=flySpeed
local l=Instance.new("TextLabel",frame)
l.Size=UDim2.new(1,0,0,20)
l.Position=UDim2.new(0,0,0,y)
l.Text="FlySpeed: "..val
l.BackgroundTransparency=1
l.TextColor3=Color3.fromRGB(200,120,255)
local bar=Instance.new("Frame",frame)
bar.Size=UDim2.new(0.8,0,0,6)
bar.Position=UDim2.new(0.1,0,0,y+25)
bar.BackgroundColor3=Color3.fromRGB(60,0,120)
Instance.new("UICorner",bar)
local fill=Instance.new("Frame",bar)
fill.BackgroundColor3=Color3.fromRGB(180,0,255)
Instance.new("UICorner",fill)
local knob=Instance.new("Frame",bar)
knob.Size=UDim2.new(0,14,0,14)
knob.BackgroundColor3=Color3.fromRGB(220,120,255)
Instance.new("UICorner",knob)
local function update(x)
val=math.floor(min+(max-min)*x)
flySpeed=val
fill.Size=UDim2.new(x,0,1,0)
knob.Position=UDim2.new(x,-7,0.5,-7)
l.Text="FlySpeed: "..val
end
update(0.2)
local dragging=false
knob.InputBegan:Connect(function(i)
if i.UserInputType==Enum.UserInputType.MouseButton1 then dragging=true end
end)
UIS.InputEnded:Connect(function(i)
if i.UserInputType==Enum.UserInputType.MouseButton1 then dragging=false end
end)
UIS.InputChanged:Connect(function(i)
if dragging then
local x=(i.Position.X-bar.AbsolutePosition.X)/bar.AbsoluteSize.X
update(math.clamp(x,0,1))
end
end)
end
slider(80,10,2000)
local flyBtn=Instance.new("TextButton",frame)
flyBtn.Size=UDim2.new(0.8,0,0,40)
flyBtn.Position=UDim2.new(0.1,0,0,140)
flyBtn.Text="FLY OFF"
flyBtn.BackgroundColor3=Color3.fromRGB(120,0,200)
flyBtn.TextColor3=Color3.new(1,1,1)
Instance.new("UICorner",flyBtn)
local function startFly()
local char=player.Character
if not char then return end
local hum=char:FindFirstChild("Humanoid")
local root=char:FindFirstChild("HumanoidRootPart")
if not hum or not root then return end
flying=true
hum.PlatformStand=true
bodyVelocity=Instance.new("BodyVelocity",root)
bodyVelocity.MaxForce=Vector3.new(9e9,9e9,9e9)
bodyGyro=Instance.new("BodyGyro",root)
bodyGyro.MaxTorque=Vector3.new(9e9,9e9,9e9)
RunService.RenderStepped:Connect(function()
if not flying then return end
local dir=Vector3.new()
local cam=workspace.CurrentCamera
if UIS:IsKeyDown(Enum.KeyCode.W) then dir+=cam.CFrame.LookVector end
if UIS:IsKeyDown(Enum.KeyCode.S) then dir-=cam.CFrame.LookVector end
if UIS:IsKeyDown(Enum.KeyCode.A) then dir-=cam.CFrame.RightVector end
if UIS:IsKeyDown(Enum.KeyCode.D) then dir+=cam.CFrame.RightVector end
if dir.Magnitude>0 then
bodyVelocity.Velocity=dir.Unit*flySpeed
else
bodyVelocity.Velocity=Vector3.new()
end
bodyGyro.CFrame=cam.CFrame
end)
end
local function stopFly()
flying=false
if bodyVelocity then bodyVelocity:Destroy() end
if bodyGyro then bodyGyro:Destroy() end
end
flyBtn.MouseButton1Click:Connect(function()
if flying then
stopFly()
flyBtn.Text="FLY OFF"
else
startFly()
flyBtn.Text="FLY ON"
end
end)