Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
UserInputService = :()
GuiService = :()
player = Players.LocalPlayer
camera = .CurrentCamera
STICK_SENSITIVITY =
ROLL_MULTIPLIER =
EXPO =
THROTTLE_MAX_POWER =
DRAG =
GRAVITY_FORCE =
CAMERA_TILT =
DEADZONE =
BOUNCE_ELASTICITY =
active =
unarmed =
velocity = .()
currentPos = camera.CFrame.Position
droneRotation = .()
screenGui = .(, player:())
screenGui.Name =
screenGui.ResetOnSpawn =
toggleBtn = .(, screenGui)
toggleBtn.Size = .(, , , )
toggleBtn.Position = .(, -, , )
toggleBtn.Text =
toggleBtn.BackgroundColor3 = .(, , )
toggleBtn.TextColor3 = .(, , )
toggleBtn.Font = .Font.SourceSansBold
toggleBtn.TextSize =
.(, toggleBtn)
sliderFrame = .(, screenGui)
sliderFrame.Size = .(, , , )
sliderFrame.Position = .(, -, , )
sliderFrame.BackgroundColor3 = .(, , )
.(, sliderFrame)
sliderBar = .(, sliderFrame)
sliderBar.Size = .(THROTTLE_MAX_POWER/, , , )
sliderBar.BackgroundColor3 = .(, , )
.(, sliderBar)
sliderLabel = .(, sliderFrame)
sliderLabel.Size = .(, , , )
sliderLabel.BackgroundTransparency =
sliderLabel.Text = .. .(THROTTLE_MAX_POWER)
sliderLabel.TextColor3 = .(, , )
sliderLabel.Font = .Font.SourceSansBold
sliderLabel.TextSize =
sliderLabel.ZIndex =
tiltFrame = .(, screenGui)
tiltFrame.Size = .(, , , )
tiltFrame.Position = .(, -, , )
tiltFrame.BackgroundColor3 = .(, , )
.(, tiltFrame)
tiltBar = .(, tiltFrame)
tiltBar.Size = .(CAMERA_TILT/, , , )
tiltBar.BackgroundColor3 = .(, , )
.(, tiltBar)
tiltLabel = .(, tiltFrame)
tiltLabel.Size = .(, , , )
tiltLabel.BackgroundTransparency =
tiltLabel.Text = .. .(CAMERA_TILT) ..
tiltLabel.TextColor3 = .(, , )
tiltLabel.Font = .Font.SourceSansBold
tiltLabel.TextSize =
tiltLabel.ZIndex =
unarmedLabel = .(, screenGui)
unarmedLabel.Size = .(, , , )
unarmedLabel.Position = .(, -, , )
unarmedLabel.Text =
unarmedLabel.BackgroundColor3 = .(, , )
unarmedLabel.TextColor3 = .(, , )
unarmedLabel.Font = .Font.SourceSansBold
unarmedLabel.TextSize =
.(, unarmedLabel)
isDraggingSpeed =
isDraggingTilt =
()
mouseLocation = UserInputService:()
inset = GuiService:()
adjustedMouseX = mouseLocation.X - inset.X
isDraggingSpeed
relativeX = .((adjustedMouseX - sliderFrame.AbsolutePosition.X) / sliderFrame.AbsoluteSize.X, , )
sliderBar.Size = .(relativeX, , , )
THROTTLE_MAX_POWER = relativeX *
sliderLabel.Text = .. .(THROTTLE_MAX_POWER)
isDraggingTilt
relativeX = .((adjustedMouseX - tiltFrame.AbsolutePosition.X) / tiltFrame.AbsoluteSize.X, , )
tiltBar.Size = .(relativeX, , , )
CAMERA_TILT = relativeX *
tiltLabel.Text = .. .(CAMERA_TILT) ..
sliderFrame.InputBegan:((i)
i.UserInputType == .UserInputType.MouseButton1 i.UserInputType == .UserInputType.Touch isDraggingSpeed =
)
tiltFrame.InputBegan:((i)
i.UserInputType == .UserInputType.MouseButton1 i.UserInputType == .UserInputType.Touch isDraggingTilt =
)
UserInputService.InputEnded:((i)
i.UserInputType == .UserInputType.MouseButton1 i.UserInputType == .UserInputType.Touch
isDraggingSpeed =
isDraggingTilt =
)
()
unarmed = unarmed
unarmedLabel.Text = unarmed
unarmedLabel.BackgroundColor3 = unarmed .(, , ) .(, , )
()
active = active
char = player.Character
hum = char char:()
active
char char.PrimaryPart
currentPos = char.PrimaryPart.Position + .(, , )
hum.PlatformStand =
hum:(.HumanoidStateType.Dead, )
velocity = .()
droneRotation = camera.CFrame * .(.(-CAMERA_TILT), , )
droneRotation = droneRotation - droneRotation.Position
camera.CameraType = .CameraType.Scriptable
UserInputService.MouseBehavior = .MouseBehavior.LockCenter
toggleBtn.Text =
toggleBtn.BackgroundColor3 = .(, , )
hum
hum.PlatformStand =
hum:(.HumanoidStateType.Dead, )
camera.CameraType = .CameraType.Custom
toggleBtn.Text =
toggleBtn.BackgroundColor3 = .(, , )
UserInputService.MouseBehavior = .MouseBehavior.Default
raycastParams = RaycastParams.()
raycastParams.FilterType = .RaycastFilterType.Exclude
(char) char raycastParams.FilterDescendantsInstances = {char}
(player.Character player.CharacterAdded:())
(value)
(value > -) * (.(value) ^ EXPO)
RunService.Heartbeat:((dt)
()
active
pitch, roll, yaw, throttleInput = , , ,
gpts = UserInputService:(.UserInputType.Gamepad1)
_, input (gpts)
pos = input.Position
input.KeyCode == .KeyCode.Thumbstick1
.(pos.X) > DEADZONE yaw = (-pos.X)
throttleInput = pos.Y
input.KeyCode == .KeyCode.Thumbstick2
.(pos.Y) > DEADZONE pitch = (-pos.Y)
.(pos.X) > DEADZONE roll = (pos.X)
thrust = unarmed (droneRotation.UpVector * (throttleInput * THROTTLE_MAX_POWER)) .()
velocity = (velocity + (thrust * dt) + (.(, -GRAVITY_FORCE, ) * dt)) * .(DRAG, dt * )
move = velocity * dt
hit = :(currentPos, move + (move.Unit * ), raycastParams)
hit
velocity = (velocity - * velocity:(hit.Normal) * hit.Normal) * BOUNCE_ELASTICITY
currentPos = hit.Position + hit.Normal *
droneRotation = droneRotation * .(.(pitch * STICK_SENSITIVITY * dt), .(yaw * STICK_SENSITIVITY * dt), .(-roll * (STICK_SENSITIVITY * ROLL_MULTIPLIER) * dt))
currentPos = currentPos + velocity * dt
finalCF = .(currentPos) * droneRotation * .(.(CAMERA_TILT), , )
camera.CFrame = finalCF
player.Character
_, part (player.Character:())
part:()
part.CFrame = finalCF
part.AssemblyLinearVelocity = velocity
part.Name ==
part.LocalTransparencyModifier =
part.LocalTransparencyModifier =
)
UserInputService.InputBegan:((input, processed)
processed
input.KeyCode == .KeyCode.ButtonY input.KeyCode == .KeyCode.Y ()
input.KeyCode == .KeyCode.ButtonB input.KeyCode == .KeyCode.B ()
)
toggleBtn.MouseButton1Click:(toggle)
Its the same as my other One(if you didnt see It check It out!) but its actually Fe! Uses character and if you want to, use and animation

Universal