Run it
Copy the script and paste it into your executor.
ANIMATIONS = {
Idle = {id = , track = , shouldLoop = },
Walk = {id = , track = , shouldLoop = },
Run = {id = , track = , shouldLoop = },
SuperRun = {id = , track = , shouldLoop = },
Jump = {id = , track = , shouldLoop = },
Fall = {id = , track = , shouldLoop = },
PeelCharge = {id = , track = , shouldLoop = }
}
(id)
ok, objects = (.GetObjects, , .. id)
ok objects #objects == (player)
objects[]:()
Players = :()
RunService = :()
UserInputService = :()
Workspace = :()
= Workspace
player = Players.LocalPlayer
character = player.Character player.CharacterAdded:()
humanoid = character:()
humanoidRootPart = character:()
isScriptActive =
animationConnections = {}
meshReplacementConnection =
SPINDASH_ASSET_ID =
ASSET_ID =
currentSpindashModel =
spindashSpinConnection =
spindashSpeedBoostConnection =
isSpindashActive =
spindashSpeedBoost =
spindashTargetSpeed =
SPINDASH_BASELINE =
SPINDASH_MAX =
SPINDASH_RAMP_TIME =
spindashSpeedRate = (SPINDASH_MAX - SPINDASH_BASELINE) / SPINDASH_RAMP_TIME
isPeelOutActive =
isHoldingPeelOut =
isPeelOutReleasing =
isDropDashActive =
lastImageRectOffset = .(, )
dropDashCheckConnection =
isHoldingInput =
abilityButtonGui =
abilityButton =
isButtonEnabled =
lastClickTime =
clickCooldown =
buttonClickCount =
abilityAnimator =
abilityAnimationTrack =
detectedPlayer =
currentWeld =
detectedPlayer =
abilityButton =
abilityButtonGui =
isButtonEnabled =
buttonClickCount =
lastClickTime =
clickCooldown =
currentWeld =
abilityAnimationTrack =
abilityAnimator =
(input, gp)
gp
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
isHoldingInput =
isPeelOutActive
isHoldingPeelOut =
(input, gp)
gp
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
isHoldingInput =
isHoldingPeelOut =
UserInputService.InputBegan:(onInputBegan)
UserInputService.InputEnded:(onInputEnded)
(value)
character character.Parent
character:(, value)
()
isSpindashActive =
spindashSpeedBoostConnection
spindashSpeedBoostConnection:()
spindashSpeedBoostConnection =
()
()
spindashSpeedBoostConnection
isSpindashActive =
spindashSpeedBoost = SPINDASH_BASELINE
spindashTargetSpeed = SPINDASH_BASELINE
(spindashSpeedBoost)
spindashSpeedBoostConnection = RunService.Heartbeat:((delta)
isSpindashActive
spindashSpeedBoostConnection
spindashSpeedBoostConnection:()
spindashSpeedBoostConnection =
isPeelOutActive
()
holding = isHoldingInput UserInputService:(.UserInputType.MouseButton1)
holding
spindashTargetSpeed = SPINDASH_MAX
spindashTargetSpeed = SPINDASH_BASELINE
spindashSpeedBoost < spindashTargetSpeed
spindashSpeedBoost = .(spindashSpeedBoost + (spindashSpeedRate * delta), spindashTargetSpeed)
spindashSpeedBoost > spindashTargetSpeed
spindashSpeedBoost = .(spindashSpeedBoost - (spindashSpeedRate * delta), spindashTargetSpeed)
isPeelOutActive
(spindashSpeedBoost)
)
()
spindashSpinConnection
spindashSpinConnection:()
spindashSpinConnection =
currentSpindashModel
currentSpindashModel:()
currentSpindashModel =
playersFolder = :()
playersFolder
playerFolder = playersFolder:(player.Name)
playerFolder
spindashFolder = playerFolder:()
spindashFolder
spindashPart = spindashFolder:()
spindashPart
spindashPart.Transparency =
()
()
()
()
()
humanoid.WalkSpeed =
()
humanoid.WalkSpeed =
stopPeelOut =
monitorPeelOutSounds =
()
playerGui = player:(, )
playerGui
roundGui = playerGui:(, )
roundGui
gameGui = roundGui:(, )
gameGui
abilityGui = gameGui:(, )
abilityGui
barGui = abilityGui:(, )
barGui
ab1Gui = barGui:(, )
ab1Gui
imgGui = ab1Gui:(, )
imgGui
dropDashCheckConnection = RunService.Heartbeat:(()
imgGui imgGui.ImageRectOffset
currentOffset = imgGui.ImageRectOffset
currentOffset ~= lastImageRectOffset currentOffset ~= .(, )
isDropDashActive =
isPeelOutActive stopPeelOut
()
currentOffset == .(, )
isDropDashActive =
lastImageRectOffset = currentOffset
)
()
playerGui = player:(, )
playerGui
roundGui = playerGui:(, )
roundGui
gameGui = roundGui:(, )
gameGui
teamsGui = gameGui:(, )
teamsGui
playerFrame = teamsGui:(player.Name)
playerFrame
teamsGui.ChildAdded:()
playerFrame = teamsGui:(player.Name)
playerFrame playerFrame:()
frame = playerFrame.Frame
frame frame:()
characterContainer = frame.Character
characterContainer:()
success, objects = (.GetObjects, , )
success #objects >
asset = objects[]
_, obj asset:()
obj:().Parent = characterContainer
characterContainer:()
characterContainer.BackgroundTransparency =
()
currentSpindashModel
spindashFolder = currentSpindashModel.Parent
spindashPart = spindashFolder spindashFolder:()
spindashPart
spindashSpinConnection
spindashSpinConnection:()
spindashSpinConnection = RunService.Heartbeat:(()
currentSpindashModel currentSpindashModel.Parent spindashPart spindashPart.Parent
spindashSpinConnection
spindashSpinConnection:()
spindashSpinConnection =
currentSpindashModel =
()
liftOffset = .(, , )
currentSpindashModel:()
currentSpindashModel.CFrame = spindashPart.CFrame * .(liftOffset)
primary = currentSpindashModel.PrimaryPart currentSpindashModel:()
primary
primary.CFrame = spindashPart.CFrame * .(liftOffset)
)
()
playersFolder = :()
playersFolder
playerFolder = playersFolder:(player.Name)
playerFolder
spindashFolder = playerFolder:()
spindashFolder
spindashPart = spindashFolder:()
spindashPart spindashPart:() currentSpindashModel
ok, objects = (.GetObjects, , .. SPINDASH_ASSET_ID)
ok objects #objects >
newMesh = objects[]:()
inserted =
newMesh:()
inserted = newMesh
newMesh.Parent = spindashPart.Parent
newMesh.Parent = spindashPart.Parent
inserted = newMesh.PrimaryPart newMesh:()
inserted
inserted.CFrame = spindashPart.CFrame * .(, , )
inserted.Anchored =
inserted.CanCollide =
currentSpindashModel = newMesh
spindashPart.Transparency =
_, descendant (spindashPart:())
descendant:()
descendant.Transparency =
descendant:() descendant:()
descendant.Enabled =
descendant:() descendant:()
descendant.Enabled =
()
()
newMesh:()
()
()
isScriptActive
()
()
playersFolder = :()
playersFolder
playerFolder = playersFolder:(player.Name)
playerFolder
spindashFolder = playerFolder:()
spindashFolder
spindashFolder.DescendantAdded:((descendant)
descendant.Name == descendant:() currentSpindashModel
()
)
spindashFolder.DescendantRemoving:((descendant)
descendant.Name == descendant:()
(spindashFolder:())
()
)
playerFolder.ChildAdded:((child)
child.Name ==
child.DescendantAdded:((descendant)
descendant.Name == descendant:() currentSpindashModel
()
)
)
playersFolder.ChildAdded:((child)
child.Name == player.Name
child.ChildAdded:((spindashChild)
spindashChild.Name ==
spindashChild.DescendantAdded:((descendant)
descendant.Name == descendant:() currentSpindashModel
()
)
)
)
meshReplacementConnection
meshReplacementConnection:()
meshReplacementConnection =
meshReplacementConnection = RunService.Heartbeat:(()
isScriptActive () % <
()
)
()
ok, viewportFrame = (()
player.PlayerGui
:(, )
:(, )
:(, )
:(, )
)
ok viewportFrame
viewportModel = viewportFrame
:(, )
:(, )
assetId =
()
ok2, objects = (.GetObjects, , .. assetId)
ok2 #objects ==
newModel = objects[]:()
_, part (viewportModel:())
part:() part.Name ~=
part.Transparency =
newModel.Parent = viewportModel
newHumanoid = newModel:()
newHumanoid newHumanoid:()
viewportRootPart = viewportModel:()
viewportRootPart
newModel:(viewportRootPart.CFrame * .(, , ) * .(.(-), .(), .()))
primaryPart = newModel.PrimaryPart newModel:()
primaryPart
weld = .()
weld.Part0 = viewportRootPart
weld.Part1 = primaryPart
weld.Parent = viewportRootPart
()
viewportHumanoid = viewportModel:()
currentViewportAnimation =
viewportAnimations = {
Idle = {id = , track = , shouldLoop = },
Walk = {id = , track = , shouldLoop = },
Run = {id = , track = , shouldLoop = },
SuperRun = {id = , track = , shouldLoop = },
Jump = {id = , track = , shouldLoop = },
Fall = {id = , track = , shouldLoop = },
PeelCharge = {id = , track = , shouldLoop = }
}
(animName)
animData = viewportAnimations[animName]
animData viewportHumanoid
animation = .()
animation.AnimationId = animData.id
track = viewportHumanoid:(animation)
track.Looped = animData.shouldLoop
animData.track = track
track
(animName)
viewportHumanoid
_, animData (viewportAnimations)
animData.track animData.track.IsPlaying
animData.track:()
animData = viewportAnimations[animName]
animData
animData.track (animName)
animData.track animData.track:()
lastViewportUpdate =
viewportUpdateInterval =
()
currentTime = ()
currentTime - lastViewportUpdate < viewportUpdateInterval
lastViewportUpdate = currentTime
newAnimation =
viewportHumanoid
viewportHumanoid.MoveDirection.Magnitude >
viewportHumanoid:() == .HumanoidStateType.Running
viewportHumanoid.WalkSpeed >
newAnimation =
newAnimation =
state = viewportHumanoid:()
state == .HumanoidStateType.Jumping
newAnimation =
state == .HumanoidStateType.Freefall
newAnimation =
newAnimation =
newAnimation ~= currentViewportAnimation
(newAnimation)
currentViewportAnimation = newAnimation
RunService.Heartbeat:(updateViewportAnimations)
viewportModelDescendantConnection =
viewportModelDescendantConnection = viewportModel.DescendantAdded:(()
viewportModelDescendantConnection
viewportModelDescendantConnection:()
viewportModelDescendantConnection =
.(()
.()
()
)
)
(url, filename)
(filename)
(filename, :(url))
(filename)
DEFAULT_MUSIC = (
,
)
()
isScriptActive
theme = :()
:()
.ReplicatedStorage.ClientAssets:()
.ReplicatedStorage.ClientAssets.Sounds:()
.ReplicatedStorage.ClientAssets.Sounds.mus:()
.ReplicatedStorage.ClientAssets.Sounds.mus.Game:()
.ReplicatedStorage.ClientAssets.Sounds.mus.Game.Round:()
.ReplicatedStorage.ClientAssets.Sounds.mus.Game.Round.SoloTheme:()
theme
theme.Looped =
theme.Volume =
theme.SoundId = DEFAULT_MUSIC
playerModelCache =
isCurrentlySonic =
playersFolderCache =
lastSonicCheckTime =
sonicCheckInterval =
()
playersFolderCache playersFolderCache.Parent
playersFolderCache = :()
playersFolderCache
()
playerModelCache playerModelCache.Parent
playersFolder = ()
playersFolder
playerModelCache = playersFolder:(player.Name)
playerModelCache
()
model = ()
model model:() ==
(char)
isScriptActive
originalParts = {}
_, v (char:())
v:() .(originalParts, v)
_, part (originalParts) part.Transparency =
playersFolder = :()
oldVisual = playersFolder playersFolder:(player.Name)
oldVisual
_, v (oldVisual:())
v:() v.Transparency =
mdl = (ASSET_ID)
mdl
oldVisual mdl.Parent = oldVisual mdl.Parent = char
.()
lastLifeActive = ()
lastLifeActive
brokenFolder = mdl:()
brokenFolder
_, part (brokenFolder:())
part:()
part.Transparency =
circularFolder = mdl:()
circularFolder
_, part (circularFolder:())
part:()
part.Transparency =
hrp = char:()
newHrp = mdl:()
hrp newHrp mdl:()
newHrp.Anchored =
newHrp.Transparency =
existingHum = mdl:()
existingHum existingHum:()
existingAnim = mdl:()
existingAnim existingAnim:()
originalTransparency = {}
_, v (mdl:())
v:()
originalTransparency[v] = v.Transparency
v.CanCollide =
newHrp.CFrame = hrp.CFrame
.()
newHrp.Transparency =
syncConn
syncConn = RunService.Stepped:(()
char.Parent hrp.Parent newHrp.Parent
syncConn syncConn:()
newHrp.CFrame = hrp.CFrame * .(, , )
)
animateScript = char:()
animateScript animateScript.Disabled =
()
char char.Parent
lastLifeActive = ()
brokenFolder = mdl:()
circularFolder = mdl:()
lastLifeActive
brokenFolder
_, part (brokenFolder:())
part:()
part.Transparency =
circularFolder
_, part (circularFolder:())
part:()
part.Transparency =
brokenFolder
_, part (brokenFolder:())
part:()
part.Transparency =
circularFolder
_, part (circularFolder:())
part:()
part.Transparency =
.()
.(monitorLastLife)
()
isScriptActive
.()
isScriptActive =
.(setupSonicViewport)
()
()
()
()
character
(character)
()
StarterGui = :()
StarterGui:(, {
Title = ;
Text = ;
Duration = ;
})
()
isScriptActive
isScriptActive =
()
_, animData (ANIMATIONS)
animData.track animData.track.IsPlaying
animData.track:()
()
stopPeelOut ()
dropDashCheckConnection
dropDashCheckConnection:()
dropDashCheckConnection =
_, connection (animationConnections)
connection
connection:()
animationConnections = {}
meshReplacementConnection
meshReplacementConnection:()
meshReplacementConnection =
stopPeelOut ()
.(()
.()
theme = :()
:()
.ReplicatedStorage.ClientAssets:()
.ReplicatedStorage.ClientAssets.Sounds:()
.ReplicatedStorage.ClientAssets.Sounds.mus:()
.ReplicatedStorage.ClientAssets.Sounds.mus.Game:()
.ReplicatedStorage.ClientAssets.Sounds.mus.Game.Round:()
.ReplicatedStorage.ClientAssets.Sounds.mus.Game.Round.SoloTheme:()
theme
theme:()
)
()
model = ()
model model:() ==
()
currentTime = ()
currentTime - lastSonicCheckTime >= sonicCheckInterval
lastSonicCheckTime = currentTime
sonicCheck = ()
sonicCheck ~= isCurrentlySonic
isCurrentlySonic = sonicCheck
isCurrentlySonic
()
()
()
()
currentAnimation =
animationsToDisable = {
,
,
,
,
,
,
,
}
jumpStartTime =
jumpAnimationDuration =
runStartTime =
isRunning =
speedBoostRate = ( - ) /
lastWalkSpeed =
speedChangeThreshold =
isSpeedBoostActive =
lastSpeedCheckTime =
speedCheckInterval =
(animName)
animData = ANIMATIONS[animName]
animData
animation = .()
animation.AnimationId = animData.id
track = humanoid:(animation)
track.Looped = animData.shouldLoop
animData.track = track
track
(animName)
_, animData (ANIMATIONS)
animData.track animData.track.IsPlaying
animData.track:()
animData = ANIMATIONS[animName]
animData
animData.track (animName)
animData.track
animData.track:()
animName ==
animData.track:()
()
isScriptActive
isPeelOutActive
character:(, )
isSpeedBoostActive =
isRunning =
()
isSpindashActive
isSpindashActive isPeelOutActive isPeelOutReleasing
currentTime = ()
currentTime - lastSpeedCheckTime >= speedCheckInterval
lastSpeedCheckTime = currentTime
currentWalkSpeed = humanoid.WalkSpeed
speedChange = currentWalkSpeed - lastWalkSpeed
speedChange > speedChangeThreshold currentWalkSpeed > humanoid.MoveDirection.Magnitude >
isRunning
isRunning =
runStartTime = ()
isSpeedBoostActive =
speedChange < -speedChangeThreshold (currentWalkSpeed <= isSpeedBoostActive)
isRunning
isRunning =
isSpeedBoostActive =
character:(, )
lastWalkSpeed = currentWalkSpeed
state = humanoid:()
newAnimation =
state == .HumanoidStateType.Jumping
currentAnimation ~= jumpStartTime = ()
newAnimation =
state == .HumanoidStateType.Freefall
() - jumpStartTime > jumpAnimationDuration
newAnimation =
newAnimation =
humanoid.MoveDirection.Magnitude >
humanoid.WalkSpeed >
newAnimation =
newAnimation =
newAnimation =
isPeelOutActive isSpindashActive
currentSpeedBoost = character:()
currentSpeedBoost >= isSpeedBoostActive humanoid.MoveDirection.Magnitude > humanoid.WalkSpeed > state ~= .HumanoidStateType.Jumping state ~= .HumanoidStateType.Freefall
newAnimation =
isSpeedBoostActive isRunning
runDuration = () - runStartTime
newSpeedBoost = .( + (runDuration * speedBoostRate), )
currentBoost = character:()
currentBoost ~=
character:(, newSpeedBoost)
newAnimation newAnimation ~= currentAnimation
(newAnimation)
currentAnimation = newAnimation
lastDisableCheckTime =
disableCheckInterval =
()
currentTime = ()
currentTime - lastDisableCheckTime < disableCheckInterval
lastDisableCheckTime = currentTime
isScriptActive
animator = humanoid:()
animator
_, track (humanoid:())
_, animId (animationsToDisable)
track.Animation track.Animation.AnimationId == animId
track:()
player.CharacterAdded:((newChar)
character = newChar
humanoid = newChar:()
humanoidRootPart = newChar:()
playerModelCache =
()
(newChar)
name (ANIMATIONS)
ANIMATIONS[name].track
ANIMATIONS[name].track:()
ANIMATIONS[name].track =
name (ANIMATIONS) (name)
()
.(animationConnections, humanoid.StateChanged:(updateAnimations))
.(animationConnections, RunService.Heartbeat:(updateAnimations))
.(animationConnections, RunService.Heartbeat:(disableAnimations))
)
monitorSpindashMesh ()
setupCharacter character isScriptActive
(character)
isScriptActive
name (ANIMATIONS)
(name)
()
humanoid
.(animationConnections, humanoid.StateChanged:(updateAnimations))
.(animationConnections, RunService.Heartbeat:(updateAnimations))
.(animationConnections, RunService.Heartbeat:(disableAnimations))
.(()
playersFolder = :()
playersFolder
playerFolder = playersFolder:(player.Name)
playerFolder
defaultFolder = playerFolder:()
defaultFolder
waist = defaultFolder:()
hrpDefault = defaultFolder:()
waist waist:() waist.Transparency =
hrpDefault hrpDefault:() hrpDefault.Transparency =
.()
)
stopPeelOut = ()
isPeelOutActive =
isHoldingPeelOut =
isPeelOutReleasing =
()
()
isRunning =
isSpeedBoostActive =
runStartTime = ()
character:(, )
.(()
.()
isPeelOutReleasing =
)
monitorPeelOutSounds = ()
()
isScriptActive character character.Parent
peelChargeSound = humanoidRootPart:()
peelChargeSound peelChargeSound:() isPeelOutActive isDropDashActive
isPeelOutActive =
()
()
currentAnimation =
()
peelReleaseSound = humanoidRootPart:()
peelReleaseSound peelReleaseSound:() isPeelOutActive
()
isPeelOutActive peelChargeSound peelReleaseSound
()
humanoidRootPart.ChildAdded:((child)
child.Name == child.Name ==
.()
()
)
humanoidRootPart.ChildRemoved:((child)
child.Name == child.Name ==
.()
()
)
RunService.Heartbeat:(()
() % <
()
)
()
initialSonic = ()
initialSonic
()
()
isCurrentlySonic = initialSonic
RunService.Heartbeat:(onHeartbeat)
(t)
t < * t * t - + ( - * t) * t
()
bar2 = player:():():():():():()
colors = {
.(, , ),
.(, , ),
.(, , ),
.(, , ),
.(, , ),
}
currentIndex =
transitionSpeed =
bar2 bar2:()
targetColor = colors[currentIndex]
startColor = bar2.ImageColor3
startTime = ()
() - startTime < transitionSpeed
rawAlpha = (() - startTime) / transitionSpeed
alpha = (rawAlpha)
bar2.ImageColor3 = startColor:(targetColor, alpha)
.()
bar2.ImageColor3 = targetColor
currentIndex = currentIndex % #colors +
.()
()
bar1 = player:():():():():(player.Name)
baseScale =
beatScale =
beatDuration =
pauseDuration =
bar1 bar1:()
startTime = ()
() - startTime < beatDuration
alpha = (() - startTime) / beatDuration
easedAlpha = (alpha)
scale = baseScale + (beatScale - baseScale) * .(easedAlpha * .pi)
bar1.Size = .(bar1.Size.X.Scale, bar1.Size.X.Offset, scale, bar1.Size.Y.Offset)
.()
.(pauseDuration)
startTime = ()
() - startTime < beatDuration
alpha = (() - startTime) / beatDuration
easedAlpha = (alpha)
scale = baseScale + ((beatScale + ) - baseScale) * .(easedAlpha * .pi)
bar1.Size = .(bar1.Size.X.Scale, bar1.Size.X.Offset, scale, bar1.Size.Y.Offset)
.()
.(pauseDuration * )
.()
.(animateBar2Color)
.(animateBar1Heartbeat)
()
abilityButtonGui
playerGui = Players.LocalPlayer:()
screenGui = .()
screenGui.Name =
screenGui.ResetOnSpawn =
screenGui.Parent = playerGui
textButton = .()
textButton.Name =
textButton.Size = .(, , , )
textButton.Position = .(, -, , -)
textButton.BackgroundColor3 = .(, , )
textButton.BackgroundTransparency =
textButton.BorderSizePixel =
textButton.Text =
textButton.TextSize =
textButton.Font = .Font.GothamBold
textButton.TextColor3 = .(, , )
textButton.Parent = screenGui
corner = .()
corner.CornerRadius = .(, )
corner.Parent = textButton
stroke = .()
stroke.Color = .(, , )
stroke.Thickness =
stroke.Parent = textButton
abilityButtonGui = screenGui
abilityButton = textButton
textButton.MouseButton1Click:(()
isButtonEnabled
currentTime = ()
currentTime - lastClickTime < clickCooldown
lastClickTime = currentTime
buttonClickCount = (buttonClickCount ) +
abilityAnimator
abilityAnimator = Players.LocalPlayer.Character Players.LocalPlayer.Character:() Players.LocalPlayer.Character:():()
abilityAnimator Players.LocalPlayer.Character
hum = Players.LocalPlayer.Character:()
hum
abilityAnimator = .()
abilityAnimator.Parent = hum
buttonClickCount % ==
animation = .()
animation.AnimationId =
abilityAnimationTrack abilityAnimationTrack:()
abilityAnimator
abilityAnimationTrack = abilityAnimator:(animation)
abilityAnimationTrack:()
detectedPlayer detectedPlayer.Character
detectedHrp = detectedPlayer.Character:()
localHrp = Players.LocalPlayer.Character Players.LocalPlayer.Character:()
icosphere =
localHrp
_, descendant (localHrp:())
descendant.Name == descendant:()
icosphere = descendant
detectedHrp icosphere
currentWeld = .()
currentWeld.Part0 = detectedHrp
currentWeld.Part1 = icosphere
currentWeld.Parent = detectedHrp
animation = .()
animation.AnimationId =
abilityAnimationTrack abilityAnimationTrack:()
abilityAnimator
abilityAnimationTrack = abilityAnimator:(animation)
abilityAnimationTrack:()
currentWeld
currentWeld:()
currentWeld =
)
()
abilityButtonGui
abilityButtonGui:()
abilityButtonGui =
abilityButton =
isButtonEnabled =
buttonClickCount =
currentWeld
currentWeld:()
currentWeld =
(player)
detectedPlayer = player
player
()
isButtonEnabled =
()
()
.(()
Players = :()
RunService = :()
localPlayer = Players.LocalPlayer
targetAnimations = {
,
,
}
replacementAssetId =
trackedPlayers = {}
processedPlayers = {}
(id)
ok, objects = (.GetObjects, , .. id)
ok objects #objects ==
objects[]:()
(player)
trackedPlayers[player]
trackedPlayers[player] =
processedPlayers[player] =
(character)
humanoid = character:(, )
humanoid
()
playersFolder = :()
playerVisual = playersFolder playersFolder:(player.Name)
characterAttribute = playerVisual playerVisual:()
characterAttribute ~=
_, track (humanoid:())
track.Animation track.IsPlaying
_, targetId (targetAnimations)
track.Animation.AnimationId == targetId
processedPlayers[player]
(player)
processedPlayers[player] =
_, v (character:())
v:() (v.Name == v.Name == )
v.Transparency =
players_folder = :()
old_visual = players_folder players_folder:(player.Name)
old_visual
_, v (old_visual:())
v:() (v.Name == v.Name == )
v.Transparency =
meshPartsToDelete = {}
_, descendant (character:())
descendant:()
.(meshPartsToDelete, descendant)
_, meshPart (meshPartsToDelete)
meshPart:()
mdl = (replacementAssetId)
mdl
old_visual
mdl.Parent = old_visual
mdl.Parent = character
hrp = character:(, )
new_hrp = mdl:(, )
hrp new_hrp
mdl:()
new_hrp.Anchored =
mdlHum = mdl:()
mdlHum mdlHum:()
animator = mdl:()
animator animator:()
_, v (mdl:())
v:()
v.CanCollide =
v.Name == v.Name ==
v.Transparency =
new_hrp.Transparency =
waist = mdl:(, )
waist waist:() waist.Transparency =
motorMap = {}
_, oldMotor (character:())
oldMotor:()
newMotor = mdl:(oldMotor.Name, )
newMotor newMotor:()
motorMap[oldMotor] = newMotor
new_hrp.CFrame = hrp.CFrame * .(, , )
connection
connection = RunService.Stepped:(()
character.Parent hrp.Parent new_hrp.Parent
connection
connection:()
new_hrp.CFrame = hrp.CFrame * .(, , )
oldMotor, newMotor (motorMap)
oldMotor.Parent newMotor.Parent
newMotor.Transform = oldMotor.Transform
)
(player)
animationCheckConnection = RunService.Heartbeat:(checkAnimations)
character.AncestryChanged:(()
character.Parent
animationCheckConnection
animationCheckConnection:()
()
)
player.Character
(player.Character)
player.CharacterAdded:(onCharacterAdded)
_, pl (Players:())
pl ~= localPlayer
(pl)
Players.PlayerAdded:((pl)
pl ~= localPlayer
(pl)
)
)
()
()
.(()
Players = :()
RunService = :()
localPlayer = Players.LocalPlayer
targetAnimations = {
,
,
}
replacementAssetId =
startAnimId =
stopAnimId =
trackedPlayers = {}
processedPlayers = {}
currentFollowPlayer =
followConnection =
highlightInstance =
targetAttachment =
localAttachment =
alignPos =
alignOri =
(id)
ok, objects = (.GetObjects, , .. id)
ok objects #objects ==
objects[]:()
()
followConnection
followConnection:()
followConnection =
highlightInstance
highlightInstance:()
highlightInstance =
targetAttachment
targetAttachment:()
targetAttachment =
localAttachment
localAttachment:()
localAttachment =
alignPos
alignPos:()
alignPos =
alignOri
alignOri:()
alignOri =
localChar = localPlayer.Character
localChar
localHumanoid = localChar:()
localHumanoid
localHumanoid.PlatformStand =
currentFollowPlayer =
(player)
trackedPlayers[player]
trackedPlayers[player] =
processedPlayers[player] =
(character)
humanoid = character:(, )
humanoid
()
playersFolder = :()
playerVisual = playersFolder playersFolder:(player.Name)
characterAttribute = playerVisual playerVisual:()
characterAttribute ~=
_, track (humanoid:())
track.Animation track.IsPlaying
animId = track.Animation.AnimationId
animId == startAnimId
currentFollowPlayer
currentFollowPlayer = player
()
highlightInstance = .()
highlightInstance.FillTransparency =
highlightInstance.OutlineTransparency =
highlightInstance.OutlineColor = .(, , )
highlightInstance.Parent = character
targetCharacter = currentFollowPlayer.Character
targetHRP = targetCharacter:()
localChar = localPlayer.Character
localChar
localHRP = localChar:()
localHumanoid = localChar:()
targetHRP localHRP localHumanoid
localHumanoid.PlatformStand =
targetAttachment = .()
targetAttachment.Parent = targetHRP
angle = .()
offsetDist =
offsetLocal = .(.(angle) * offsetDist, , -.(angle) * offsetDist)
targetAttachment.CFrame = .(offsetLocal) * .(, , angle)
localAttachment = .()
localAttachment.Parent = localHRP
localAttachment.CFrame = .()
alignPos = .()
alignPos.Attachment0 = localAttachment
alignPos.Attachment1 = targetAttachment
alignPos.Responsiveness =
alignPos.MaxForce = .huge
alignPos.Parent = localChar
alignOri = .()
alignOri.Attachment0 = localAttachment
alignOri.Attachment1 = targetAttachment
alignOri.Responsiveness =
alignOri.MaxTorque = .huge
alignOri.Parent = localChar
followConnection = RunService.Stepped:(()
currentFollowPlayer currentFollowPlayer.Character targetHRP.Parent localHRP.Parent
()
)
animId == stopAnimId
currentFollowPlayer == player
()
_, targetId (targetAnimations)
animId == targetId
originalParts = {}
_, v (character:())
v:()
v.Name == v.Name ==
v.Transparency =
players_folder = :()
old_visual = players_folder players_folder:(player.Name)
old_visual
_, v (old_visual:())
v:() (v.Name == v.Name == )
v.Transparency =
processedPlayers[player]
processedPlayers[player] =
meshPartsToDelete = {}
_, descendant (character:())
descendant:()
.(meshPartsToDelete, descendant)
_, meshPart (meshPartsToDelete)
meshPart:()
mdl = (replacementAssetId)
mdl
old_visual
mdl.Parent = old_visual
mdl.Parent = character
hrp = character:(, )
new_hrp = mdl:(, )
hrp new_hrp
mdl:()
new_hrp.Anchored =
humanoid = mdl:()
humanoid
humanoid:()
animator = mdl:()
animator
animator:()
originalTransparency = {}
_, v (mdl:())
v:()
originalTransparency[v] = v.Transparency
v.CanCollide =
v.Name == v.Name ==
v.Transparency =
new_hrp.Transparency =
waist = mdl:(, )
waist waist:()
waist.Transparency =
motorMap = {}
_, oldMotor (character:())
oldMotor:()
newMotor = mdl:(oldMotor.Name, )
newMotor newMotor:()
motorMap[oldMotor] = newMotor
new_hrp.CFrame = hrp.CFrame * .(, , )
connection
connection = RunService.Stepped:(()
character.Parent hrp.Parent new_hrp.Parent
connection
connection:()
new_hrp.CFrame = hrp.CFrame * .(, , )
oldMotor, newMotor (motorMap)
oldMotor.Parent newMotor.Parent
newMotor.Transform = oldMotor.Transform
)
animationCheckConnection
animationCheckConnection = RunService.Heartbeat:(checkAnimations)
character.AncestryChanged:(()
character.Parent
animationCheckConnection
animationCheckConnection:()
)
player.Character
(player.Character)
player.CharacterAdded:(onCharacterAdded)
_, player (Players:())
player ~= localPlayer
(player)
Players.PlayerAdded:((player)
player ~= localPlayer
(player)
)
)
()Loads code from the internet. It downloads more code when it runs (loadstring + HttpGet), which can change after it was posted. From: github.com.
A kindlossos script for outcome memories

Universal