Run it
Copy the script and paste it into your executor.
Players = :()
UIS = :()
RunService = :()
Workspace = :()
player = Players.LocalPlayer
character = player.Character player.CharacterAdded:()
humanoid = character:()
hrp = character:()
screenGui = .(, player:())
screenGui.Name =
screenGui.ResetOnSpawn =
frame = .(, screenGui)
frame.Size = .(, , , )
frame.Position = .(, , , )
frame.BackgroundColor3 = .(, , )
frame.Active =
frame.Draggable =
frame.BorderSizePixel =
outline = .(, frame)
outline.Thickness =
.(()
i = , ,
color = .(i, , )
outline.Color = color
.()
)
(name, yPos)
btn = .(, frame)
btn.Size = .(, -, , )
btn.Position = .(, , , yPos)
btn.Text = name
btn.BackgroundColor3 = .(, , )
btn.TextColor3 = .(, , )
btn.BorderSizePixel =
btn.Font = .Font.SourceSans
btn.TextSize =
btn
(placeholder, yPos)
box = .(, frame)
box.Size = .(, -, , )
box.Position = .(, , , yPos)
box.PlaceholderText = placeholder
box.BackgroundColor3 = .(, , )
box.TextColor3 = .(, , )
box.BorderSizePixel =
box.Font = .Font.SourceSans
box.TextSize =
box
flyBtn = (, )
noclipBtn = (, )
wallwalkBtn = (, )
speedBox = (, )
jumpBox = (, )
infJumpBtn = (, )
infJump =
UIS.JumpRequest:(()
infJump humanoid
humanoid:(.HumanoidStateType.Jumping)
)
flying =
flyVel, flyGyro
(state)
flying = state
flying
wallwalk startWallWalkUpdate
wallwalk =
(stopWallWalk)
(stopWallWalkUpdate)
wallwalkBtn.Text =
flyVel = .(, hrp)
flyVel.Velocity = .zero
flyVel.MaxForce = .(, , )
flyGyro = .(, hrp)
flyGyro.CFrame = hrp.CFrame
flyGyro.MaxTorque = .(, , )
RunService:(, .RenderPriority.Character.Value + , ()
move = .zero
cam = Workspace.CurrentCamera
UIS:(.KeyCode.W) move = move + cam.CFrame.LookVector
UIS:(.KeyCode.S) move = move - cam.CFrame.LookVector
UIS:(.KeyCode.A) move = move - cam.CFrame.RightVector
UIS:(.KeyCode.D) move = move + cam.CFrame.RightVector
UIS:(.KeyCode.Space) move = move + .(, , )
UIS:(.KeyCode.LeftShift) move = move - .(, , )
flyVel.Velocity = move.Magnitude > move.Unit * .zero
flyGyro flyGyro.CFrame = cam.CFrame
)
flyVel flyVel:(); flyVel =
flyGyro flyGyro:(); flyGyro =
(() RunService:() )
noclip =
RunService.Stepped:(()
noclip character character.Parent
_, part (character:())
part:()
part.CanCollide =
)
wallwalk =
isWallWalking =
STICK_DISTANCE =
RAYCAST_ANGLE_COUNT =
STICK_FORCE =
WALL_WALK_SPEED =
MAX_STICK_TIME =
ORIENTATION_SMOOTH =
VERT_COMPENSATION =
stickBodyVelocity =
stickBodyGyro =
renderConn
stickStartTime =
()
stickBodyVelocity stickBodyVelocity:()
stickBodyGyro stickBodyGyro:()
stickBodyVelocity = .()
stickBodyVelocity.MaxForce = .(, , )
stickBodyVelocity.P =
stickBodyVelocity.Velocity = .(,,)
stickBodyVelocity.Parent = hrp
stickBodyGyro = .()
stickBodyGyro.MaxTorque = .(, , )
stickBodyGyro.D =
stickBodyGyro.Parent = hrp
()
stickBodyVelocity
(() stickBodyVelocity:() )
stickBodyVelocity =
stickBodyGyro
(() stickBodyGyro:() )
stickBodyGyro =
humanoid humanoid.Parent
(() humanoid.AutoRotate = )
()
origin = hrp.Position
bestHit =
bestDist = STICK_DISTANCE +
verticalOffsets = {, , -}
_, vOff (verticalOffsets)
i = , RAYCAST_ANGLE_COUNT
theta = (i - ) / RAYCAST_ANGLE_COUNT * .pi *
dir = .(.(theta), , .(theta))
castOrigin = origin + .(, vOff, )
params = RaycastParams.()
params.FilterDescendantsInstances = {character}
params.FilterType = .RaycastFilterType.Blacklist
params.IgnoreWater =
result = Workspace:(castOrigin, dir.Unit * STICK_DISTANCE, params)
result result.Instance result.Position
dist = (result.Position - castOrigin).Magnitude
dist < bestDist
bestDist = dist
bestHit = {Result = result, Dist = dist}
bestHit
(moveVector, wallNormal)
proj = moveVector - wallNormal * moveVector:(wallNormal)
proj.Magnitude >
proj.Unit * WALL_WALK_SPEED
.(,,)
()
isWallWalking
isWallWalking =
stickStartTime = ()
()
(() humanoid.AutoRotate = )
()
isWallWalking
isWallWalking =
()
()
flying
isWallWalking ()
wallwalk
isWallWalking ()
isWallWalking (() - stickStartTime > MAX_STICK_TIME)
()
hitInfo = ()
hitInfo hitInfo.Result
result = hitInfo.Result
normal = result.Normal .(,,)
dist = hitInfo.Dist
isWallWalking ()
move = .(,,)
cam = Workspace.CurrentCamera
forward = .(cam.CFrame.LookVector.X, , cam.CFrame.LookVector.Z)
forward.Magnitude > forward = forward.Unit
right = .(cam.CFrame.RightVector.X, , cam.CFrame.RightVector.Z)
right.Magnitude > right = right.Unit
UIS:(.KeyCode.W) move = move + forward
UIS:(.KeyCode.S) move = move - forward
UIS:(.KeyCode.A) move = move - right
UIS:(.KeyCode.D) move = move + right
UIS:(.KeyCode.Space) move = move + .(,,)
UIS:(.KeyCode.LeftShift) move = move - .(,,)
desiredVel = (move, normal)
closeness = .( - (dist / STICK_DISTANCE), , )
pushInto = -normal * (STICK_FORCE * * closeness)
verticalComp = .(, VERT_COMPENSATION * * ( + * closeness), )
stickBodyVelocity
stickBodyVelocity.Velocity = desiredVel + pushInto + verticalComp
stickBodyGyro
up = -normal.Unit
camLook = Workspace.CurrentCamera.CFrame.LookVector
lookDir = (camLook - up * camLook:(up))
lookDir.Magnitude ==
lookDir = .(,,-)
lookDir = lookDir.Unit
rightVec = lookDir:(up).Unit
targetCFrame = .(hrp.Position, rightVec, up)
current = stickBodyGyro.CFrame
(current) ~=
stickBodyGyro.CFrame = targetCFrame
stickBodyGyro.CFrame = current:(targetCFrame, ORIENTATION_SMOOTH)
isWallWalking ()
()
renderConn
renderConn = RunService.RenderStepped:((dt)
(wallWalkStep)
)
()
renderConn
renderConn:()
renderConn =
flyBtn.MouseButton1Click:(()
( flying)
flyBtn.Text = flying
)
noclipBtn.MouseButton1Click:(()
noclip = noclip
noclipBtn.Text = noclip
)
wallwalkBtn.MouseButton1Click:(()
wallwalk = wallwalk
wallwalkBtn.Text = wallwalk
wallwalk
()
()
()
)
infJumpBtn.MouseButton1Click:(()
infJump = infJump
infJumpBtn.Text = infJump
)
speedBox.FocusLost:(()
val = (speedBox.Text)
val
humanoid.WalkSpeed = val
)
jumpBox.FocusLost:(()
val = (jumpBox.Text)
val
humanoid.JumpPower = val
)
player.CharacterAdded:((char)
character = char
humanoid = character:()
hrp = character:()
flying =
flyVel flyVel:(); flyVel =
flyGyro flyGyro:(); flyGyro =
(() RunService:() )
noclip =
infJump =
wallwalk =
flyBtn.Text =
noclipBtn.Text =
wallwalkBtn.Text =
infJumpBtn.Text =
speedBox.Text =
jumpBox.Text =
()
()
)
no use

Universal