Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
Workspace = :()
UserInputService = :()
player = Players.LocalPlayer
char = player.Character player.CharacterAdded:()
hum = char:()
root = char:()
animator = hum:()
animateScript = char:()
animateScript animateScript.Disabled =
_, track (animator:())
track:()
hum.WalkSpeed =
hum.JumpPower =
hum.AutoRotate =
flingEnabled =
(id)
a = .()
a.AnimationId = id
animator:(a)
introTrack = ()
walkTrack = ()
idleTrack = ()
jumpTrack = ()
flingTrack = ()
UserInputService.InputBegan:((input, gameProcessed)
gameProcessed input.KeyCode == .KeyCode.T
flingEnabled = flingEnabled
)
introTrack:()
.()
introTrack:()
hum.WalkSpeed =
hum.JumpPower =
isMoving =
currentFlingTarget =
flingEndTime =
preFlingPosition =
noclipConnection =
rayParams = RaycastParams.()
rayParams.FilterDescendantsInstances = {char}
rayParams.FilterType = .RaycastFilterType.Exclude
(enable)
enable
noclipConnection
noclipConnection = RunService.Stepped:(()
_, part (char:())
part:() part.CanCollide =
)
noclipConnection
noclipConnection:()
noclipConnection =
_, part (char:())
part:() part.CanCollide =
root.Touched:((hit)
flingEnabled
currentFlingTarget
targetChar = hit.Parent
targetHum = targetChar:()
targetRoot = targetChar:()
targetHum targetRoot targetChar ~= char targetHum.Health >
preFlingPosition = root.Position
currentFlingTarget = targetRoot
flingEndTime = () +
)
RunService.Heartbeat:((dt)
root.Position.Y < -
root.AssemblyLinearVelocity = .zero
root.Velocity = .zero
preFlingPosition
root.CFrame = .(preFlingPosition + .(, , ))
root.CFrame = .(, , )
currentFlingTarget flingEnabled
currentFlingTarget =
flingTrack:()
()
root.AssemblyAngularVelocity = .zero
root.AssemblyLinearVelocity = .zero
preFlingPosition
root.CFrame = .(preFlingPosition + .(, , ))
preFlingPosition =
currentFlingTarget
()
() >= flingEndTime currentFlingTarget.Parent
()
currentFlingTarget =
flingTrack:()
root.AssemblyAngularVelocity = .zero
root.AssemblyLinearVelocity = .zero
preFlingPosition
root.CFrame = .(preFlingPosition + .(, , ))
preFlingPosition =
flingTrack.IsPlaying
walkTrack:()
idleTrack:()
jumpTrack:()
flingTrack:()
chaoticRotation = .(.()*, .()*, .()*)
root.CFrame = currentFlingTarget.CFrame * chaoticRotation
root.AssemblyLinearVelocity = .zero
root.AssemblyAngularVelocity = .(, , )
()
flingTrack.IsPlaying flingTrack:()
root.AssemblyAngularVelocity = .zero
moveDir = hum.MoveDirection
groundRay = Workspace:(root.Position, .(, -, ), rayParams)
onGround =
targetY = root.Position.Y
groundRay
dist = (root.Position - groundRay.Position).Magnitude
dist < (hum.HipHeight + ) jumpTrack.IsPlaying
onGround =
targetY = groundRay.Position.Y + hum.HipHeight + (root.Size.Y / )
moveDir.Magnitude >
newPos = root.Position + (moveDir * * dt)
onGround
root.CFrame = .(.(newPos.X, targetY, newPos.Z), .(newPos.X, targetY, newPos.Z) + moveDir)
root.Velocity = .zero
root.CFrame = .(newPos, newPos + moveDir)
isMoving onGround
isMoving =
idleTrack:()
walkTrack:()
onGround
root.CFrame = .(root.Position.X, targetY, root.Position.Z) * root.CFrame.Rotation
root.Velocity = .zero
isMoving
isMoving =
walkTrack:()
idleTrack:()
idleTrack.IsPlaying walkTrack.IsPlaying jumpTrack.IsPlaying
idleTrack:()
)
RunService.RenderStepped:(()
walkTrack.IsPlaying walkTrack:()
idleTrack.IsPlaying idleTrack:()
flingTrack.IsPlaying flingTrack:()
jumpTrack.IsPlaying jumpTrack:()
)
hum.StateChanged:((_, new)
currentFlingTarget
new == .HumanoidStateType.Jumping new == .HumanoidStateType.Freefall
walkTrack:()
idleTrack:()
jumpTrack:()
new == .HumanoidStateType.Landed
jumpTrack:()
hum.MoveDirection.Magnitude >
walkTrack:()
idleTrack:()
)
Universal