Run it
Copy the script and paste it into your executor.
Players = :()
UserInputService = :()
RunService = :()
TweenService = :()
player = Players.LocalPlayer
playerGui = player:()
camera = .CurrentCamera
flyGui = .()
flyGui.ResetOnSpawn =
flyGui.Parent = playerGui
flyFrame = .()
flyFrame.Size = .(, , , )
flyFrame.Position = .(, , , )
flyFrame.BackgroundColor3 = .(, , )
flyFrame.BorderSizePixel =
flyFrame.Active =
flyFrame.Parent = flyGui
flyCorner = .()
flyCorner.CornerRadius = .(, )
flyCorner.Parent = flyFrame
flyButton = .()
flyButton.Size = .(, -, , -)
flyButton.Position = .(, , , )
flyButton.BackgroundColor3 = .(, , )
flyButton.Text =
flyButton.TextColor3 = .(,,)
flyButton.Font = .Font.GothamBold
flyButton.TextScaled =
flyButton.Parent = flyFrame
btnCorner = .()
btnCorner.CornerRadius = .(, )
btnCorner.Parent = flyButton
dragging =
targetPos = flyFrame.Position
currentPos = flyFrame.Position
velocity = .()
lastInputPos =
inputConnection =
SMOOTHING =
INERTIA =
()
delta = targetPos - currentPos
velocity = velocity + (delta * .(,)) *
velocity = velocity * INERTIA
currentPos = currentPos + velocity * RunService.Heartbeat:()
flyFrame.Position = .(, currentPos.X.Offset, , currentPos.Y.Offset)
flyFrame.InputBegan:((input)
input.UserInputType ~= .UserInputType.Touch dragging
dragging =
lastInputPos = input.Position
targetPos = flyFrame.Position
velocity = .()
TweenService:(flyFrame, TweenInfo.(), {Size = .(, , , )}):()
inputConnection = RunService.Heartbeat:(()
lastInputPos
current = input.Position
delta = current - lastInputPos
targetPos = .(
targetPos.X.Scale, targetPos.X.Offset + delta.X,
targetPos.Y.Scale, targetPos.Y.Offset + delta.Y
)
lastInputPos = current
)
)
flyFrame.InputEnded:(()
dragging
dragging =
lastInputPos =
inputConnection inputConnection:()
TweenService:(flyFrame, TweenInfo.(, .EasingStyle.Back), {Size = .(, , , )}):()
)
RunService.RenderStepped:(updateDrag)
joyGui = .()
joyGui.ResetOnSpawn =
joyGui.Parent = playerGui
joyBase = .()
joyBase.Size = .(, , , )
joyBase.Position = .(, , , -)
joyBase.BackgroundColor3 = .(, , )
joyBase.BackgroundTransparency =
joyBase.Parent = joyGui
baseCorner = .()
baseCorner.CornerRadius = .(, )
baseCorner.Parent = joyBase
joyKnob = .()
joyKnob.Size = .(, , , )
joyKnob.Position = .(, -, , -)
joyKnob.BackgroundColor3 = .(, , )
joyKnob.Parent = joyBase
knobCorner = .()
knobCorner.CornerRadius = .(, )
knobCorner.Parent = joyKnob
joyTarget = .()
joyCurrent = .()
joyActive =
joyRadius =
JOY_SMOOTH =
(dir, dist)
targetPos = .(, dir.X * dist - , , dir.Y * dist - )
joyKnob:(targetPos, , , , )
currentTouch =
joyBase.InputBegan:((input)
input.UserInputType ~= .UserInputType.Touch joyActive
joyActive =
currentTouch = input
)
joyBase.InputChanged:((input)
joyActive input ~= currentTouch
center = joyBase.AbsolutePosition + joyBase.AbsoluteSize *
delta = .(input.Position.X, input.Position.Y) - center
dist = .(delta.Magnitude, joyRadius)
dir = dist > delta.Unit .()
joyTarget = dir * (dist / joyRadius)
(dir, dist)
)
joyBase.InputEnded:((input)
joyActive input ~= currentTouch
joyActive =
currentTouch =
joyTarget = .()
(.(), )
)
RunService.RenderStepped:(()
joyActive
joyCurrent = joyCurrent:(.(), JOY_SMOOTH)
joyCurrent = joyCurrent:(joyTarget, JOY_SMOOTH)
)
udGui = .()
udGui.ResetOnSpawn =
udGui.Parent = playerGui
upButton = .()
upButton.Size = .(, , , )
upButton.Position = .(, -, , -)
upButton.BackgroundColor3 = .(, , )
upButton.Text =
upButton.TextColor3 = .(,,)
upButton.Font = .Font.GothamBold
upButton.TextScaled =
upButton.Parent = udGui
upCorner = .()
upCorner.CornerRadius = .(, )
upCorner.Parent = upButton
downButton = .()
downButton.Size = .(, , , )
downButton.Position = .(, -, , -)
downButton.BackgroundColor3 = .(, , )
downButton.Text =
downButton.TextColor3 = .(,,)
downButton.Font = .Font.GothamBold
downButton.TextScaled =
downButton.Parent = udGui
downCorner = .()
downCorner.CornerRadius = .(, )
downCorner.Parent = downButton
upPressed =
downPressed =
verticalSpeed =
upButton.MouseButton1Down:(() upPressed = )
upButton.MouseButton1Up:(() upPressed = )
downButton.MouseButton1Down:(() downPressed = )
downButton.MouseButton1Up:(() downPressed = )
flying =
flySpeed =
bodyGyro, bodyVelocity
()
flying
flying =
flyButton.Text =
flyButton.BackgroundColor3 = .(, , )
char = player.Character player.CharacterAdded:()
root = char:()
hum = char:()
hum.PlatformStand =
bodyGyro = .()
bodyGyro.P =
bodyGyro.MaxTorque = .(, , )
bodyGyro.CFrame = root.CFrame
bodyGyro.Parent = root
bodyVelocity = .()
bodyVelocity.Velocity = .zero
bodyVelocity.MaxForce = .(, , )
bodyVelocity.Parent = root
()
flying
flying =
flyButton.Text =
flyButton.BackgroundColor3 = .(, , )
bodyGyro bodyGyro:()
bodyVelocity bodyVelocity:()
hum = player.Character player.Character:()
hum hum.PlatformStand =
flyButton.MouseButton1Click:(()
flying () ()
)
RunService.RenderStepped:(()
flying player.Character player.Character:()
root = player.Character.HumanoidRootPart
move = .(joyCurrent.X, , -joyCurrent.Y)
move.Magnitude >
forward = camera.CFrame.LookVector
right = camera.CFrame.RightVector
worldMove = (forward * move.Z + right * move.X) * flySpeed
bodyVelocity.Velocity = .(worldMove.X, bodyVelocity.Velocity.Y, worldMove.Z)
bodyVelocity.Velocity = .(, bodyVelocity.Velocity.Y, )
vertical =
upPressed vertical += verticalSpeed
downPressed vertical -= verticalSpeed
vertical == .(bodyVelocity.Velocity.Y) <
bodyVelocity.Velocity = .(bodyVelocity.Velocity.X, , bodyVelocity.Velocity.Z)
bodyVelocity.Velocity = .(bodyVelocity.Velocity.X, vertical, bodyVelocity.Velocity.Z)
bodyGyro.CFrame = camera.CFrame
)
player.CharacterAdded:(()
flying ()
)idk

Universal