Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
UserInputService = :()
Workspace = :()
player = Players.LocalPlayer
mouse = player:()
camera = Workspace.CurrentCamera
holdingE =
draggingEnabled =
dragging =
lastPos =
bounceActive =
bounceTime =
bounceDuration =
lastTilt =
bounceOrigin =
dragSpeedMultiplier =
leanSensitivity =
maxTilt =
ceilingTilt =
gui = .(, player:())
gui.Name =
gui.ResetOnSpawn =
toggle = .()
toggle.Size = .(, , , )
toggle.Position = .(, , , )
toggle.BackgroundColor3 = .(, , )
toggle.TextColor3 = .(, , )
toggle.Font = .Font.GothamBold
toggle.TextSize =
toggle.Text =
toggle.Parent = gui
(name, positionY, defaultVal, onChange, minVal, maxVal)
minVal = minVal
maxVal = maxVal
frame = .(, gui)
frame.Size = .(, , , )
frame.Position = .(, , , positionY)
frame.BackgroundTransparency =
frame.BackgroundColor3 = .(, , )
frame.BorderSizePixel =
label = .(, frame)
label.Size = .(, , , )
label.Position = .(, , , )
label.BackgroundTransparency =
label.TextColor3 = .(, , )
label.Font = .Font.GothamBold
label.TextSize =
label.TextXAlignment = .TextXAlignment.Left
label.Text = name
valueLabel = .(, frame)
valueLabel.Size = .(, , , )
valueLabel.Position = .(, -, , )
valueLabel.BackgroundTransparency =
valueLabel.TextColor3 = .(, , )
valueLabel.Font = .Font.GothamBold
valueLabel.TextSize =
valueLabel.TextXAlignment = .TextXAlignment.Right
valueLabel.Text = (defaultVal)
sliderBar = .(, frame)
sliderBar.Size = .(, , , )
sliderBar.Position = .(, , , )
sliderBar.BackgroundColor3 = .(, , )
sliderBar.BorderSizePixel =
sliderBar.ClipsDescendants =
sliderKnob = .(, sliderBar)
sliderKnob.Size = .(, , , )
initialPos = (defaultVal - minVal) / (maxVal - minVal)
sliderKnob.Position = .(initialPos, , , )
sliderKnob.BackgroundColor3 = .(, , )
sliderKnob.BorderSizePixel =
sliderKnob.Active =
sliderKnob.Draggable =
sliderKnob.AnchorPoint = .(, )
draggingKnob =
(inputPosX)
relativePos = (inputPosX - sliderBar.AbsolutePosition.X) / sliderBar.AbsoluteSize.X
relativePos = .(relativePos, , )
sliderKnob.Position = .(relativePos, , , )
newVal = .(minVal + relativePos * (maxVal - minVal) + )
valueLabel.Text = (newVal)
(newVal)
sliderKnob.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1
draggingKnob =
)
sliderKnob.InputEnded:((input)
input.UserInputType == .UserInputType.MouseButton1
draggingKnob =
)
sliderBar.InputChanged:((input)
draggingKnob input.UserInputType == .UserInputType.MouseMovement
(input.Position.X)
)
UserInputService.InputChanged:((input)
draggingKnob input.UserInputType == .UserInputType.MouseMovement
(input.Position.X)
)
frame
(val)
val = .(val, , )
val ==
dragSpeedMultiplier =
val <
dragSpeedMultiplier = (val / ) *
dragSpeedMultiplier = + ((val - ) / ) *
dragSpeedSlider = (, , , updateDragSpeed, , )
()
(val)
leanSensitivity = .(val / , , )
leanSensitivitySlider = (, , , updateLeanSensitivity, , )
()
(t)
c4 = ( * .pi) /
t == t == .(, - * t) * .((t * - ) * c4) +
hrpo
character
()
ray = camera:(mouse.X, mouse.Y)
y = hrpo hrpo.Position.Y
t = (y - ray.Origin.Y) / ray.Direction.Y
ray.Origin + ray.Direction * t
(char)
character = char
hrpo = char:()
hrpo.AncestryChanged:((_, parent)
parent
hrpo =
)
RunService:(, .RenderPriority.Character.Value + , (dt)
hrpo
draggingEnabled holdingE dragSpeedMultiplier >
mousePos = ()
newPos = .(mousePos.X, hrpo.Position.Y, mousePos.Z)
lastPos
dragDelta = newPos - lastPos
flatDelta = .(dragDelta.X, , dragDelta.Z) * dragSpeedMultiplier
flatDelta.Magnitude >
faceCFrame = .(hrpo.Position, hrpo.Position + flatDelta)
speed = flatDelta.Magnitude / dt
dynamicMaxTilt = .(maxTilt * leanSensitivity, ceilingTilt)
tilt = .(speed * * leanSensitivity, , dynamicMaxTilt)
hrpo.CFrame = .(newPos) * faceCFrame.Rotation * .(.(tilt), , )
lastPos = newPos
dragging =
bounceActive =
lastPos = newPos
bounceActive hrpo
bounceTime += dt
t = .(bounceTime / bounceDuration, , )
easedT = (t)
pitch = lastTilt * ( - easedT)
_, yaw, _ = hrpo.CFrame:()
hrpo.CFrame = .(bounceOrigin) * .(.(pitch), yaw, )
t >=
bounceActive =
)
player.CharacterAdded:(onCharacterAdded)
player.Character (player.Character)
toggle.MouseButton1Click:(()
draggingEnabled = draggingEnabled
toggle.Text = draggingEnabled
)
UserInputService.InputBegan:((input)
input.KeyCode == .KeyCode.E draggingEnabled
holdingE =
)
UserInputService.InputEnded:((input)
input.KeyCode == .KeyCode.E draggingEnabled
holdingE =
dragging
bounceActive =
bounceTime =
lastTilt = maxTilt
bounceOrigin = hrpo hrpo.Position .zero
dragging =
lastPos =
)
A Drag yourself mode with sliders [READ] Turn the toggle on, click and hold "E" over your character, and you can drag yourself around with your mouse. You can adjust the drag speed (which im positive is broken) and lean sensitivity, which when set higher, it makes you lean farther when dragging yourself or smth. Sliders are kinda offset. (MADE WITH CHATGPT) Tags: drag, drag yourself, drag mode, fun, universal, funny, troll, customizable

Universal