Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
TweenService = :()
Debris = :()
player = Players.LocalPlayer
character, humanoid, root
rigType = .HumanoidRigType.R6
isActive =
isExecuting =
momentum =
trailInterval =
lastTrailTime =
lastPhaseUpdate =
BASE_ACCEL =
FRICTION =
distanceTraveled =
lastMoveDir = .(, , )
currentLean =
isDrawing =
drawnFrames = {}
drawInterval =
lastDrawTime =
startClone =
originalTransparencies = {}
rootMotor =
originalRootC0 =
neckMotor =
originalNeckC0 =
limbs = {RA = , LA = , RL = , LL = , RE = , LE = , RK = , LK = }
originalC0 = {}
allMotors = {}
teleportSound = .()
teleportSound.SoundId =
teleportSound.Volume =
teleportSound.PlaybackSpeed =
screenGui = .(, player.PlayerGui)
screenGui.Name =
screenGui.ResetOnSpawn =
screenGui.IgnoreGuiInset =
topBar = .(, screenGui)
topBar.Size = .(, , , )
topBar.Position = .(, , , )
topBar.BackgroundColor3 = .(, , )
topBar.BackgroundTransparency =
topBar.BorderSizePixel =
topBar.Visible =
topText = .(, topBar)
topText.Size = .(, , , )
topText.Position = .(, , , )
topText.BackgroundTransparency =
topText.Text =
topText.TextColor3 = .(, , )
topText.Font = .Font.Arial
topText.TextSize =
topText.TextXAlignment = .TextXAlignment.Center
topText.TextStrokeTransparency =
uiContainer = .(, screenGui)
uiContainer.Size = .(, , , )
uiContainer.Position = .(, -, , -)
uiContainer.BackgroundTransparency =
uiContainer.Visible =
(name, yPos, defaultText)
btn = .(, uiContainer)
btn.Name = name
btn.Size = .(, , , )
btn.Position = .(, , , yPos)
btn.BackgroundColor3 = .(, , )
btn.BorderSizePixel =
btn.BorderColor3 = .(, , )
btn.TextColor3 = .(, , )
btn.Text = defaultText
btn.Font = .Font.Code
btn.TextSize =
btn.AutoButtonColor =
btn
toggleButton = (, , )
drawBtn = (, , )
(button)
button.MouseEnter:(()
button.BackgroundColor3 = .(, , )
button.TextColor3 = .(, , )
)
button.MouseLeave:(()
button.BackgroundColor3 = .(, , )
button.Name ==
button.TextColor3 = isActive .(, , ) .(, , )
button.TextColor3 = isDrawing .(, , ) .(, , )
)
(toggleButton)
(drawBtn)
.(()
introFrame = .(, screenGui)
introFrame.Size = .(, , , )
introFrame.BackgroundTransparency =
introImage = .(, introFrame)
introImage.Size = .(, , , )
introImage.Position = .(, -, , -)
introImage.BackgroundTransparency =
introImage.Image =
introImage.ScaleType = .ScaleType.Fit
introImage.ImageTransparency =
introText = .(, introFrame)
introText.Size = .(, , , )
introText.Position = .(, -, , )
introText.BackgroundTransparency =
introText.Text =
introText.TextColor3 = .(, , )
introText.Font = .Font.Oswald
introText.TextSize =
introText.TextTransparency =
introText.TextStrokeTransparency =
TweenService:(introImage, TweenInfo.(), {ImageTransparency = }):()
TweenService:(introText, TweenInfo.(), {TextTransparency = }):()
.()
TweenService:(introImage, TweenInfo.(), {ImageTransparency = }):()
TweenService:(introText, TweenInfo.(), {TextTransparency = }):()
.()
introFrame:()
topBar.Visible =
uiContainer.Visible =
)
(shouldPhase)
character
phaseFolder = character:()
phaseFolder
phaseFolder = .(, character)
phaseFolder.Name =
phaseFolder:()
shouldPhase
_, otherPlayer (Players:())
otherPlayer ~= player otherPlayer.Character
_, myPart (character:())
myPart:()
_, theirPart (otherPlayer.Character:())
theirPart:()
ncc = .()
ncc.Part0 = myPart
ncc.Part1 = theirPart
ncc.Parent = phaseFolder
(visible)
character
_, part (character:())
(part:() part.Name ~= ) part:()
visible
originalTransparencies[part] == originalTransparencies[part] = part.Transparency
part.Transparency =
originalTransparencies[part] ~= part.Transparency = originalTransparencies[part]
(clone)
_, child (clone:())
child:() child:() child:() child:() child:() child:() child:() child:()
child:()
child:()
realMotor = character:(child.Name, )
realMotor realMotor:()
child.C0 = realMotor.C0
child.Transform = .()
child:()
child:() child.TextureID =
child.Material = .Material.Glass
child.Color = .(, , )
child.Transparency =
child.Reflectance =
child.Anchored =
child.CanCollide =
child.CanTouch =
child.CanQuery =
child.Name == child:()
()
character.Archivable =
clone = character:()
clone.Name =
(clone)
_, child (clone:())
child:()
TweenService:(child, TweenInfo.(, .EasingStyle.Quad, .EasingDirection.Out), {Transparency = }):()
clone:(character:())
clone.Parent =
Debris:(clone, )
(frameNumber)
character.Archivable =
clone = character:()
clone.Name =
(clone)
_, child (clone:())
child:() child.Transparency =
primaryPart = clone:() clone:() clone:()
primaryPart
bbGui = .(, primaryPart)
bbGui.Size = .(, , , )
bbGui.StudsOffset = .(, , )
bbGui.AlwaysOnTop =
label = .(, bbGui)
label.Size = .(, , , )
label.BackgroundTransparency =
label.Text = (frameNumber)
label.TextColor3 = .(, , )
label.TextStrokeTransparency =
label.Font = .Font.Code
label.TextScaled =
clone.Parent =
clone
()
rootMotor originalRootC0 rootMotor.C0 = originalRootC0
neckMotor originalNeckC0 neckMotor.C0 = originalNeckC0
jointName, motor (limbs)
motor originalC0[jointName]
motor.C0 = originalC0[jointName]
(forceState)
isExecuting
isActive = forceState ~= forceState isActive
isActive
toggleButton.Text =
toggleButton.TextColor3 = .(, , )
toggleButton.BorderColor3 = .(, , )
()
toggleButton.Text =
toggleButton.TextColor3 = .(, , )
toggleButton.BorderColor3 = .(, , )
humanoid humanoid.WalkSpeed =
()
momentum =
currentLean =
()
()
isExecuting
isDrawing =
isExecuting =
drawBtn.Text =
drawBtn.TextColor3 = .(, , )
drawBtn.BorderColor3 = .(, , )
()
antiGravity =
root
antiGravity = .()
antiGravity.MaxForce = .(, , )
antiGravity.Velocity = .zero
antiGravity.Parent = root
startClone root
root.CFrame = startClone:()
teleportSound:()
.()
startClone:()
startClone =
i, frameData (drawnFrames)
root frameData.CFrame
root.CFrame = frameData.CFrame
root.AssemblyLinearVelocity = .zero
teleportSound:()
fakePhase = i *
swingA = .( * .(fakePhase))
swingL = .( * .(fakePhase))
limbs.RA originalC0.RA limbs.RA.C0 = originalC0.RA * .(swingA, .(-), .())
limbs.LA originalC0.LA limbs.LA.C0 = originalC0.LA * .(-swingA, .(), .(-))
limbs.RL originalC0.RL limbs.RL.C0 = originalC0.RL * .(-swingL, , .(-))
limbs.LL originalC0.LL limbs.LL.C0 = originalC0.LL * .(swingL, , .())
frameData.Model frameData.Model:()
.()
antiGravity antiGravity:()
drawnFrames = {}
()
isExecuting =
drawBtn.MouseButton1Click:(()
isExecuting
isActive ()
isDrawing
.(executeDraw)
isDrawing =
drawnFrames = {}
character.Archivable =
startClone = character:()
startClone.Name =
(startClone)
startClone.Parent =
()
drawBtn.Text =
drawBtn.TextColor3 = .(, , )
drawBtn.BorderColor3 = .(, , )
lastDrawTime = ()
)
toggleButton.MouseButton1Click:(()
isDrawing .(executeDraw)
()
)
(newChar)
character = newChar
humanoid = character:()
root = character:()
rigType = humanoid.RigType
.(, ()
allMotors = {}
originalC0 = {}
_, desc (character:())
desc:() .(allMotors, desc)
rigType == .HumanoidRigType.R15
rootMotor = character:(, )
neckMotor = character:(, )
rootMotor = character:(, )
neckMotor = character:(, )
rootMotor originalRootC0 = rootMotor.C0
neckMotor originalNeckC0 = neckMotor.C0
limbs.RA = character:(, ) character:(, )
limbs.LA = character:(, ) character:(, )
limbs.RL = character:(, ) character:(, )
limbs.LL = character:(, ) character:(, )
rigType == .HumanoidRigType.R15
limbs.RE = character:(, )
limbs.LE = character:(, )
limbs.RK = character:(, )
limbs.LK = character:(, )
limbs.RE, limbs.LE, limbs.RK, limbs.LK = , , ,
jointName, motor (limbs)
motor originalC0[jointName] = motor.C0
)
teleportSound.Parent = root
momentum =
distanceTraveled =
currentLean =
isDrawing =
isExecuting =
drawnFrames = {}
originalTransparencies = {}
player.CharacterAdded:(onCharacterAdded)
player.Character (player.Character)
RunService.RenderStepped:(()
isActive (momentum > isExecuting)
_, motor (allMotors)
motor.Transform = .()
)
RunService.Heartbeat:((dt)
humanoid root isExecuting
isActive () - lastPhaseUpdate >
()
lastPhaseUpdate = ()
isActive
humanoid.WalkSpeed =
moveDir = humanoid.MoveDirection
moveDir.Magnitude >
lastMoveDir = moveDir
dynamicFactor = / ( + (momentum / ))
momentum = momentum + (BASE_ACCEL * dynamicFactor * dt * )
targetLean = .(momentum * , , )
currentLean = currentLean + (targetLean - currentLean) *
momentum = momentum * FRICTION
momentum < momentum =
currentLean = currentLean + ( - currentLean) *
momentum >
distanceTraveled = distanceTraveled + (momentum * dt)
targetPos = root.Position + (lastMoveDir * momentum * dt)
targetLookCFrame = .(.zero, .(lastMoveDir.X, , lastMoveDir.Z))
currentLookCFrame = root.CFrame - root.Position
newLookCFrame = currentLookCFrame:(targetLookCFrame, )
root.CFrame = newLookCFrame + targetPos
root.AssemblyLinearVelocity = .zero
rootMotor originalRootC0
stepBob = .(distanceTraveled * ) * * .(momentum / , , )
rootMotor.C0 = originalRootC0 * .(, stepBob, ) * .(.(-currentLean), , )
neckMotor originalNeckC0
scanYaw = .( * .(() * ))
neckCompensation = currentLean *
neckMotor.C0 = originalNeckC0 * .(.(-neckCompensation), scanYaw, )
armAmp = .(currentLean * , , )
legAmp = .(currentLean * , , )
runPhase = distanceTraveled *
targetArmSwing = .(armAmp * .(runPhase))
targetLegSwing = .(legAmp * .(runPhase))
limbs.RA originalC0.RA limbs.RA.C0 = originalC0.RA * .(targetArmSwing, .(-), .())
limbs.LA originalC0.LA limbs.LA.C0 = originalC0.LA * .(-targetArmSwing, .(), .(-))
limbs.RL originalC0.RL limbs.RL.C0 = originalC0.RL * .(-targetLegSwing, , .(-))
limbs.LL originalC0.LL limbs.LL.C0 = originalC0.LL * .(targetLegSwing, , .())
rigType == .HumanoidRigType.R15
currentElbowFlex = .( + * .(.(runPhase)))
rightLegVelocity = -.(runPhase)
leftLegVelocity = .(runPhase)
rKneeFlex = .()
lKneeFlex = .()
rightLegVelocity >
rKneeFlex = rKneeFlex + (rightLegVelocity * .())
leftLegVelocity >
lKneeFlex = lKneeFlex + (leftLegVelocity * .())
limbs.RE originalC0.RE limbs.RE.C0 = originalC0.RE * .(currentElbowFlex, , )
limbs.LE originalC0.LE limbs.LE.C0 = originalC0.LE * .(currentElbowFlex, , )
limbs.RK originalC0.RK limbs.RK.C0 = originalC0.RK * .(-rKneeFlex, , )
limbs.LK originalC0.LK limbs.LK.C0 = originalC0.LK * .(-lKneeFlex, , )
isDrawing () - lastTrailTime > trailInterval momentum >
()
lastTrailTime = ()
isDrawing () - lastDrawTime > drawInterval momentum >
#drawnFrames <
frameCount = #drawnFrames +
frame = (frameCount)
.(drawnFrames, {Model = frame, = root.CFrame})
drawBtn.Text = .. ( - frameCount) ..
lastDrawTime = ()
#drawnFrames >=
.(executeDraw)
currentLean >
rootMotor originalRootC0
rootMotor.C0 = rootMotor.C0:(originalRootC0 * .(.(-currentLean), , ), )
neckMotor originalNeckC0
neckCompensation = currentLean *
neckMotor.C0 = neckMotor.C0:(originalNeckC0 * .(.(-neckCompensation), , ), )
currentLean =
rootMotor originalRootC0 rootMotor.C0 = originalRootC0
neckMotor originalNeckC0 neckMotor.C0 = originalNeckC0
jointName, motor (limbs)
motor originalC0[jointName]
motor.C0 = motor.C0:(originalC0[jointName], )
currentLean ==
motor.C0 = originalC0[jointName]
)