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 ==
objects[]:()
RunService = :()
UserInputService = :()
Players = :()
TweenService = :()
player = Players.LocalPlayer
camera = .CurrentCamera
character, root, humanoid
(char)
character = char
root = char:()
humanoid = char:()
player.Character (player.Character)
player.CharacterAdded:(setupCharacter)
hookCooldown =
grappling =
pulling =
cancelPull =
cooldownTime =
maxDistance =
hookPart, tipPart, beam, rope, rootAttachment, hookAttachment
hookCooldownLbl =
footAttachment = .()
footAttachment.Name =
footAttachment.Position = .(, -, )
footAttachment.Parent = root
dustEmitter = .()
dustEmitter.Texture =
dustEmitter.Color = ColorSequence.(.(,,))
dustEmitter.Rate =
dustEmitter.Lifetime = NumberRange.(,)
dustEmitter.Speed = NumberRange.(,)
dustEmitter.Rotation = NumberRange.(,)
dustEmitter.RotSpeed = NumberRange.(-,)
dustEmitter.Size = NumberSequence.({NumberSequenceKeypoint.(,), NumberSequenceKeypoint.(,)})
dustEmitter.Enabled =
dustEmitter.Parent = footAttachment
windEmitter = .()
windEmitter.Texture =
windEmitter.Color = ColorSequence.(.(,,))
windEmitter.Rate =
windEmitter.Lifetime = NumberRange.(,)
windEmitter.Speed = NumberRange.(,)
windEmitter.VelocitySpread =
windEmitter.Size = NumberSequence.({NumberSequenceKeypoint.(,), NumberSequenceKeypoint.(,)})
windEmitter.Enabled =
windEmitter.Parent = root
()
dustEmitter.Enabled =
windEmitter.Enabled =
()
dustEmitter.Enabled =
windEmitter.Enabled =
(char, duration, color)
char
highlight = .()
highlight.Adornee = char
highlight.OutlineColor = .(,,)
highlight.FillColor = color
highlight.FillTransparency =
highlight.OutlineTransparency =
highlight.DepthMode = .HighlightDepthMode.AlwaysOnTop
highlight.Parent = char
fillTween = TweenService:(highlight, TweenInfo.(duration/, .EasingStyle.Quad, .EasingDirection.Out), {FillTransparency = })
fillTween:()
fillTween.Completed:(()
TweenService:(highlight, TweenInfo.(duration/, .EasingStyle.Quad, .EasingDirection.Out), {FillTransparency = }):()
)
outlineTween = TweenService:(highlight, TweenInfo.(duration, .EasingStyle.Quad, .EasingDirection.Out), {OutlineTransparency = })
outlineTween:()
outlineTween.Completed:(()
highlight highlight:()
)
()
nearest, shortest = , .huge
root
myPos = root.Position
_, plr (Players:())
plr ~= player plr.Character plr.Character:()
dist = (plr.Character.HumanoidRootPart.Position - myPos).Magnitude
dist < shortest dist <= maxDistance
shortest = dist
nearest = plr
nearest
()
root grappling
target = ()
target target.Character target.Character:()
targetPos = target.Character.HumanoidRootPart.Position
origin = root.Position
direction = (targetPos - origin).Unit
hookPart = .()
hookPart.Size = .(,,)
hookPart.Position = origin
hookPart.Anchored =
hookPart.CanCollide =
hookPart.Transparency =
hookPart.Parent =
tipPart = .()
tipPart.Size = .(,,)
tipPart.Position = origin
tipPart.Anchored =
tipPart.CanCollide =
tipPart.Color = .(,,)
tipPart.Parent =
rootAttachment = .(, root)
hookAttachment = .(, tipPart)
trailAttachment0 = .(); trailAttachment0.Position = .(,,); trailAttachment0.Parent = tipPart
trailAttachment1 = .(); trailAttachment1.Position = .(,,-); trailAttachment1.Parent = tipPart
trail = .()
trail.Attachment0 = trailAttachment0
trail.Attachment1 = trailAttachment1
trail.Lifetime =
trail.Color = ColorSequence.(.(,,))
trail.WidthScale = NumberSequence.({NumberSequenceKeypoint.(,),NumberSequenceKeypoint.(,),NumberSequenceKeypoint.(,),NumberSequenceKeypoint.(,)})
trail.Transparency = NumberSequence.({NumberSequenceKeypoint.(,),NumberSequenceKeypoint.(,),NumberSequenceKeypoint.(,)})
trail.MinLength =
trail.FaceCamera =
trail.Parent = tipPart
beam = .()
beam.Attachment0 = rootAttachment
beam.Attachment1 = hookAttachment
beam.Width0 =
beam.Width1 =
beam.Color = ColorSequence.(.(,,))
beam.Transparency = NumberSequence.()
beam.FaceCamera =
beam.Parent = root
(character, , .(,,))
velocity = direction * + .(,,)
gravity = .(,-.Gravity,)
pos = origin
hitSomething =
dt = .()
velocity += gravity * dt
newPos = pos + velocity * dt
rayParams = RaycastParams.()
rayParams.FilterDescendantsInstances = {character}
rayParams.FilterType = .RaycastFilterType.Blacklist
result = :(pos, newPos-pos, rayParams)
result result.Instance.CanCollide
hookPart.Position = result.Position
tipPart.Position = result.Position
hitSomething =
(character, , .(,,))
pos = newPos
hookPart.Position = pos
tipPart.Position = pos
(pos - origin).Magnitude > maxDistance
hitSomething
(character, , .(,,))
rope = .()
rope.Attachment0 = rootAttachment
rope.Attachment1 = hookAttachment
rope.Length = (root.Position - hookPart.Position).Magnitude
rope.Visible =
rope.Parent = root
hookPart hookPart:() hookPart =
tipPart tipPart:() tipPart =
grappling =
()
hookPart root
cancelPull =
()
forceAttachment = .(, root)
vectorForce = .()
vectorForce.Attachment0 = forceAttachment
vectorForce.RelativeTo = .ActuatorRelativeTo.World
vectorForce.Parent = root
forcePower =
maxSpeed =
cancelPull
distance = (hookPart.Position - root.Position).Magnitude
distance <=
(character, , .(,,))
dir = (hookPart.Position - root.Position).Unit
speed = root.AssemblyLinearVelocity.Magnitude
speed < maxSpeed
vectorForce.Force = dir * forcePower
vectorForce.Force = .(,,)
.()
vectorForce vectorForce:()
forceAttachment forceAttachment:()
()
()
()
cancelPull =
()
hookPart
hookPart:()
hookPart =
tipPart
tipPart:()
tipPart =
beam
beam:()
beam =
rope
rope:()
rope =
rootAttachment
rootAttachment:()
rootAttachment =
hookAttachment
hookAttachment:()
hookAttachment =
.(startHookCooldown)
grappling =
pulling =
()
hookCooldown =
i = cooldownTime, , -
hookCooldownLbl hookCooldownLbl.Text = .(, i)
.()
hookCooldownLbl hookCooldownLbl.Text =
hookCooldown =
()
hookCooldown
()
.()
()
(id, parent, volume)
parent
sound = .()
sound.SoundId = .. (id)
sound.Volume = volume
sound.Parent = parent
sound:()
sound.Ended:(()
sound:()
)
CONFIG = {
HitboxSize = .(, , ),
Transparency = ,
TargetAnimationId =
}
(assetId)
(assetId):()
trackedPlayers = {}
(player)
player player.Character
humanoid = player.Character:()
humanoid
animator = humanoid.Animator
animator
_, track (animator:())
anim = track.Animation
anim (anim.AnimationId) == CONFIG.TargetAnimationId
(targetPlayer)
trackedPlayers[targetPlayer]
hitbox = .()
hitbox.Size = CONFIG.HitboxSize
hitbox.Transparency = CONFIG.Transparency
hitbox.Anchored =
hitbox.CanCollide =
hitbox.Material = .Material.Neon
hitbox.BrickColor = BrickColor.()
hitbox.Parent = Workspace
data = {
hitbox = hitbox,
teleportActive = ,
cooldownActive = ,
teleportLoop = ,
touchConnection = ,
touchEndConnection = ,
followLoop =
}
data.touchConnection = hitbox.Touched:((part)
part.Parent == LocalPlayer.Character
data.cooldownActive
data.teleportActive =
data.teleportLoop
data.teleportLoop = RunService.Heartbeat:(()
data.teleportActive targetPlayer targetPlayer.Character
localChar = LocalPlayer.Character
targetChar = targetPlayer.Character
localChar targetChar
localRoot = localChar:() localChar.PrimaryPart
targetRoot = targetChar:() targetChar.PrimaryPart
localRoot targetRoot
localRoot.CFrame = targetRoot.CFrame
)
)
data.touchEndConnection = hitbox.TouchEnded:((part)
)
trackedPlayers[targetPlayer] = data
(()
trackedPlayers[targetPlayer] targetPlayer.Character
root = targetPlayer.Character:() targetPlayer.Character.PrimaryPart
root
hitbox.CFrame = root.CFrame
()
)
(targetPlayer)
data = trackedPlayers[targetPlayer]
data
data.hitbox data.hitbox:()
data.teleportLoop data.teleportLoop:()
data.touchConnection data.touchConnection:()
data.touchEndConnection data.touchEndConnection:()
trackedPlayers[targetPlayer] =
()
player, data (trackedPlayers)
(player)
(player)
_, player (Players:())
player ~= LocalPlayer (player)
trackedPlayers[player]
(player)
RunService.Heartbeat:(updateTracking)
UserInputService.InputBegan:((input, gameProcessed)
gameProcessed
input.KeyCode == .KeyCode.Space
player, data (trackedPlayers)
data.teleportActive data.cooldownActive
character = LocalPlayer.Character
character
root = character:() character.PrimaryPart
root data.hitbox
localPos = data.hitbox.CFrame:(root.Position)
halfSize = data.hitbox.Size /
.(localPos.X) <= halfSize.X
.(localPos.Y) <= halfSize.Y
.(localPos.Z) <= halfSize.Z
data.teleportActive =
data.cooldownActive =
.(, ()
trackedPlayers[player]
data.cooldownActive =
)
)
player.CharacterRemoving:(()
plr, data (trackedPlayers)
(plr)
)
( .. CONFIG.TargetAnimationId)
()
Players = :()
player = Players.LocalPlayer
player.CharacterAdded:(()
.(()
src = .Source
new = .()
new.Name = .Name
new.Source = src
new.Parent = player:()
)
)
RunService = :()
UserInputService = :()
char = player.Character player.CharacterAdded:()
humanoid = char:()
root = char:()
isMobile = UserInputService.TouchEnabled UserInputService.KeyboardEnabled
MAX_SPEEDCAP =
ACCELERATION =
DECELERATION =
VERTICAL_BOOST =
FLY = {
MaxMeter = ,
RegenDelay = ,
DrainIdle = / ,
DrainFast = / ,
HighSpeedMultiplier = ,
RegenRate =
}
FLY_ANIMATION_ID =
STAMINA_FULL_SOUND =
UI_CONFIG = {
ImageFrameSize = .(, , , ),
StaminaBarSize = .(, , , ),
StaminaBarPosition = .(, -, , ),
FadeSpeed = ,
StudsOffset = .(, , ),
MaxDistance = ,
}
flyMeter = FLY.MaxMeter
flying =
flyVelocity = .(, , )
regenLocked =
jumpHeld =
hasDrained =
wasFullLastTick =
bv, bg, highlight, windSfx
flyConn
flyAnimTrack
flyGui = .()
flyGui.Name =
flyGui.Adornee = root
flyGui.AlwaysOnTop =
flyGui.MaxDistance = UI_CONFIG.MaxDistance
flyGui.Size = UI_CONFIG.ImageFrameSize
flyGui.StudsOffset = UI_CONFIG.StudsOffset
flyGui.ResetOnSpawn =
flyGui.Parent = player.PlayerGui
anchorFrame = .()
anchorFrame.Name =
anchorFrame.AnchorPoint = .(, )
anchorFrame.Position = .(, , , )
anchorFrame.Size = .(, , , )
anchorFrame.BackgroundTransparency =
anchorFrame.Parent = flyGui
imageLabel = .()
imageLabel.Name =
imageLabel.Size = .(, , , )
imageLabel.Position = .(, , , )
imageLabel.BackgroundTransparency =
imageLabel.Image =
imageLabel.ImageTransparency =
imageLabel.ScaleType = .ScaleType.Stretch
imageLabel.ZIndex =
imageLabel.Parent = anchorFrame
staminaBg = .()
staminaBg.Name =
staminaBg.Size = UI_CONFIG.StaminaBarSize
staminaBg.Position = UI_CONFIG.StaminaBarPosition
staminaBg.BackgroundColor3 = .(, , )
staminaBg.BackgroundTransparency =
staminaBg.BorderSizePixel =
staminaBg.Rotation = -
staminaBg.ClipsDescendants =
staminaBg.ZIndex =
staminaBg.Parent = anchorFrame
bgCorner = .()
bgCorner.CornerRadius = .(, )
bgCorner.Parent = staminaBg
staminaFill = .()
staminaFill.Name =
staminaFill.AnchorPoint = .(, )
staminaFill.Size = .(, , , )
staminaFill.Position = .(, , , )
staminaFill.BackgroundColor3 = .(, , )
staminaFill.BackgroundTransparency =
staminaFill.BorderSizePixel =
staminaFill.ZIndex =
staminaFill.Parent = staminaBg
staminaFullSfx = .()
staminaFullSfx.Name =
staminaFullSfx.SoundId = STAMINA_FULL_SOUND
staminaFullSfx.Volume =
staminaFullSfx.Parent = root
()
pct = .(flyMeter / FLY.MaxMeter, , )
staminaFill.Size = .(pct, , , )
flyMeter < FLY.MaxMeter
hasDrained =
isFull = (flyMeter >= FLY.MaxMeter)
hasDrained isFull wasFullLastTick
staminaFullSfx:()
hasDrained =
wasFullLastTick = isFull
()
RunService.RenderStepped:((dt)
target = flying
alpha = .(dt * UI_CONFIG.FadeSpeed, , )
imageLabel.ImageTransparency = imageLabel.ImageTransparency + (target - imageLabel.ImageTransparency) * alpha
staminaBg.BackgroundTransparency = staminaBg.BackgroundTransparency + (target - staminaBg.BackgroundTransparency) * alpha
staminaFill.BackgroundTransparency = staminaFill.BackgroundTransparency + (target - staminaFill.BackgroundTransparency) * alpha
)
()
highlight highlight:()
highlight = .()
highlight.Adornee = char
highlight.FillColor = .(, , )
highlight.OutlineColor = .(, , )
highlight.Parent = char
()
highlight
highlight:()
highlight =
()
flying
flying =
flyConn flyConn:(); flyConn =
bv bv:(); bv =
bg bg:(); bg =
windSfx windSfx:(); windSfx:(); windSfx =
()
flyAnimTrack
flyAnimTrack:()
flyAnimTrack =
flyVelocity = .(, , )
()
flying flyMeter <=
flying =
flyVelocity = .(, , )
sfx = .()
sfx.SoundId =
sfx.Volume =
sfx.Parent = root
sfx:()
.(, () sfx:() )
windSfx = .()
windSfx.SoundId =
windSfx.Looped =
windSfx.Volume =
windSfx.Parent = root
windSfx:()
()
animator = humanoid:() humanoid:()
anim = .()
anim.AnimationId = FLY_ANIMATION_ID
success, track = (()
animator:(anim)
)
success track
flyAnimTrack = track
flyAnimTrack:()
(, FLY_ANIMATION_ID)
bv = .()
bv.MaxForce = .(, , )
bv.Velocity = .()
bv.Parent = root
bg = .()
bg.MaxTorque = .(, , )
bg.P =
bg.D =
bg.CFrame = root.CFrame
bg.Parent = root
flyConn = RunService.RenderStepped:((dt)
flying
cam = .CurrentCamera
move = .()
UserInputService.KeyboardEnabled
UserInputService:(.KeyCode.W) move += cam.CFrame.LookVector
UserInputService:(.KeyCode.S) move -= cam.CFrame.LookVector
UserInputService:(.KeyCode.A) move -= cam.CFrame.RightVector
UserInputService:(.KeyCode.D) move += cam.CFrame.RightVector
UserInputService:(.KeyCode.LeftControl) move -= .(, , )
dir = humanoid.MoveDirection
dir.Magnitude > move = dir
targetVelocity
move.Magnitude >
targetVelocity = move.Unit * MAX_SPEEDCAP + .(, MAX_SPEEDCAP * VERTICAL_BOOST, )
targetVelocity = .(, , )
accel = (move.Magnitude > ACCELERATION DECELERATION)
flyVelocity = flyVelocity:(targetVelocity, .(accel * dt / MAX_SPEEDCAP, , ))
flyVelocity ~= flyVelocity flyVelocity = .(, , )
bv.Velocity = flyVelocity
bg.CFrame = cam.CFrame
speedRatio = .(flyVelocity.Magnitude / MAX_SPEEDCAP, , )
drain = FLY.DrainIdle + (FLY.DrainFast - FLY.DrainIdle) * speedRatio
flyVelocity.Magnitude >
drain *= FLY.HighSpeedMultiplier
flyMeter = .(flyMeter - drain * dt, )
()
flyMeter <=
()
regenLocked =
.(FLY.RegenDelay, () regenLocked = )
)
.(()
flying regenLocked
flyMeter = .(flyMeter + FLY.RegenRate, FLY.MaxMeter)
()
.()
)
UserInputService.KeyboardEnabled
UserInputService.InputBegan:((i, g)
g
i.KeyCode == .KeyCode.Space
jumpHeld =
.(, ()
jumpHeld flying flyMeter > ()
)
)
UserInputService.InputEnded:((i)
i.KeyCode == .KeyCode.Space
jumpHeld =
()
)
isMobile
btn = .()
btn.Parent = player.PlayerGui
btn.Size = .(, , , )
btn.Position = .(, -, , )
btn.BackgroundTransparency =
btn.Image =
btn.ZIndex =
label = .()
label.Parent = btn
label.Size = .(, , , )
label.BackgroundTransparency =
label.TextScaled =
label.Font = .Font.GothamBold
label.TextColor3 = .(, , )
label.ZIndex =
() label.Text = flying
()
btn.InputBegan:(()
jumpHeld =
.(, ()
jumpHeld flying flyMeter >
()
()
)
)
btn.InputEnded:(()
jumpHeld =
()
()
)
()
Players = :()
lp = Players.LocalPlayer
CollectionService = :()
RunService = :()
(char)
humanoid = char:()
RunService.Heartbeat:(()
CollectionService:(char, )
CollectionService:(char, )
currentState = humanoid:()
currentState == .HumanoidStateType.Physics
currentState == .HumanoidStateType.Ragdoll
currentState == .HumanoidStateType.FallingDown
currentState == .HumanoidStateType.PlatformStanding
humanoid:(.HumanoidStateType.RunningNoPhysics)
)
lp.Character
(lp.Character)
lp.CharacterAdded:(antiStun)
Players = :()
RunService = :()
player = Players.LocalPlayer
character = player.Character player.CharacterAdded:()
humanoid = character:()
RunService.Heartbeat:(disableAnimations)
player.CharacterAdded:((newCharacter)
character = newCharacter
humanoid = character:()
)
RunService = :()
UserInputService = :()
isMobile = UserInputService.TouchEnabled
Workspace = :()
ContextActionService = :()
= Workspace
character = player.Character player.CharacterAdded:()
humanoid = character:()
humanoidRootPart = character:()
isScriptActive =
animationConnections = {}
meshReplacementConnection =
peeloutPlayed =
SPINDASH_ASSET_ID =
ASSET_ID =
LMS_ASSET_ID =
currentNormalModel =
currentLMSModel =
isInLMS =
lmsModelConnection =
CUSTOM_BUTTON_ASSET_ID =
PEEL_OUT_VOICE_ID =
INDICATOR_SOUND_ID =
lastIndicatorSound =
INDICATOR_VOICE_COOLDOWN =
highlightEnabled =
highlightCooldown =
HIGHLIGHT_COOLDOWN_TIME =
HIGHLIGHT_DURATION =
activeHighlights = {}
activeBillboards = {}
ADDITIONAL_ASSET_ID =
GUI_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 =
(actionName, inputState, inputObject)
inputState == .UserInputState.Begin
()
ContextActionService:(, onIndicatorAction, , .KeyCode.Y)
(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 =
lastDropDashState =
()
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
isCurrentlyDropDashing = (currentOffset ~= .(, ))
isCurrentlyDropDashing lastDropDashState
isDropDashActive =
()
isCurrentlyDropDashing
isDropDashActive =
lastImageRectOffset = currentOffset
lastDropDashState = isCurrentlyDropDashing
)
()
playerGui = player:(, )
playerGui
roundGui = playerGui:(, )
roundGui
gameGui = roundGui:(, )
gameGui
teamsGui = gameGui:(, )
teamsGui
playerFrame =
_ = ,
playerFrame = teamsGui:(player.Name)
teamsGui:(player.DisplayName)
playerFrame
.()
playerFrame
frame = playerFrame:()
frame
characterContainer = frame:()
characterContainer
characterContainer:()
iconLabel = .()
iconLabel.Image =
iconLabel.Size = .(, , , )
iconLabel.Position = .(, , , )
iconLabel.AnchorPoint = .(, )
iconLabel.BackgroundTransparency =
iconLabel.ScaleType = .ScaleType.Fit
iconLabel.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 =
()
()
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 = },
Jump = {id = , track = , shouldLoop = },
Fall = {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:()
()
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)
viewportModel.DescendantAdded:(() .() () )
(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
(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
currentNormalModel = mdl
oldVisual mdl.Parent = oldVisual mdl.Parent = char
hrp = char:()
newHrp = mdl:()
hrp newHrp mdl:()
newHrp.Anchored =
newHrp.Transparency =
existingHum = mdl:()
existingHum existingHum:()
existingAnim = mdl:()
existingAnim existingAnim:()
_, v (mdl:())
v:()
v.CanCollide =
v.Transparency =
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 =
(enable)
enable
_, hl (activeHighlights)
hl hl.Parent hl:()
_, b (activeBillboards)
b b.Parent b:()
activeHighlights = {}
activeBillboards = {}
_, p (Players:())
p ~= player p.Character p.Character:()
hl = .()
hl.FillColor = .(, , )
hl.FillTransparency =
hl.OutlineTransparency =
hl.OutlineColor = .(, , )
hl.Parent = p.Character
.(activeHighlights, hl)
success, billboards = (()
:( .. ADDITIONAL_ASSET_ID)
)
success #billboards >
billboard = billboards[]:()
billboard.Parent = p.Character.HumanoidRootPart
.(activeBillboards, billboard)
_, hl (activeHighlights)
hl hl.Parent hl:()
_, b (activeBillboards)
b b.Parent b:()
activeHighlights = {}
activeBillboards = {}
()
highlightCooldown
()
()
now = ()
now - lastIndicatorSound > INDICATOR_VOICE_COOLDOWN
lastIndicatorSound = now
(INDICATOR_SOUND_ID, humanoidRootPart, )
highlightCooldown =
highlightEnabled =
()
.(HIGHLIGHT_DURATION, ()
()
highlightEnabled =
)
.(HIGHLIGHT_COOLDOWN_TIME, ()
highlightCooldown =
)
(parent, x, y, color, name, key, callback)
btn = .()
btn.Name = name
btn.BackgroundTransparency =
btn.Image =
btn.ImageColor3 = color
isMobile
btn.Size = .(, , , )
btn.Position = .(, x, , y)
btn.Size = .(, , , )
btn.Position = .(, x, , y)
btn.Parent = parent
nameLbl = .()
nameLbl.Size = .(, , , )
nameLbl.Position = .(, , , )
nameLbl.BackgroundTransparency =
nameLbl.Text = name
nameLbl.TextColor3 = color
nameLbl.Font = .Font.GothamBold
nameLbl.TextScaled =
nameLbl.TextStrokeTransparency =
nameLbl.Parent = btn
cdLbl = .()
cdLbl.Name =
cdLbl.Size = .(, , , )
cdLbl.Position = .(, , , )
cdLbl.BackgroundTransparency =
cdLbl.Text =
cdLbl.TextColor3 = .(, , )
cdLbl.Font = .Font.GothamBold
cdLbl.TextScaled =
cdLbl.TextStrokeTransparency =
cdLbl.Parent = btn
keyLbl = .()
keyLbl.Size = .(, , , )
keyLbl.Position = .(, , -, )
keyLbl.BackgroundTransparency =
keyLbl.Text = key
keyLbl.TextColor3 = color
keyLbl.Font = .Font.GothamBold
keyLbl.TextScaled =
keyLbl.TextXAlignment = .TextXAlignment.Left
keyLbl.Parent = btn
btn.Activated:(()
name == highlightCooldown
callback ()
)
btn, cdLbl
()
indicatorFrame indicatorFrame:()
indicatorFrame = .()
indicatorFrame.Name =
indicatorFrame.BackgroundTransparency =
isMobile
indicatorFrame.Size = .(,,,)
indicatorFrame.Position = .(,,,-)
indicatorFrame.Size = .(,,,)
indicatorFrame.Position = .(,-,,)
indicatorFrame.Parent = player:()
:(, )
:(, )
darkRed = .(, , )
(indicatorFrame, -, , darkRed, , , activateIndicator)
(indicatorFrame, -, , .(,,), , , ()
humanoid = character:()
humanoid
animator = humanoid:()
animator
anim = .()
anim.AnimationId =
animator:(anim):()
)
(indicatorFrame, -, , .(,,), , , ()
humanoid = character:()
humanoid
animator = humanoid:()
animator
anim = .()
anim.AnimationId =
animator:(anim):()
)
hookBtn, hookCdLbl = (indicatorFrame, -, , .(,,), , , activateHook)
hookCooldownLbl = hookCdLbl
()
customButton
customButton:()
customButton =
()
isInLMS character
isInLMS =
()
currentNormalModel
_, v (currentNormalModel:())
v:()
v.Transparency =
currentLMSModel
currentLMSModel:()
currentLMSModel =
ok, objects = (.GetObjects, , .. LMS_ASSET_ID)
ok #objects ==
(, LMS_ASSET_ID)
lmsModel = objects[]:()
lmsModel.Name =
playersFolder = :()
visualFolder = playersFolder playersFolder:(player.Name)
visualFolder
lmsModel.Parent = visualFolder
lmsModel.Parent = character
hrp = character:()
newHrp = lmsModel:() lmsModel:()
hrp newHrp
newHrp.Anchored =
newHrp.Transparency =
hum = lmsModel:()
hum hum:()
anim = lmsModel:()
anim anim:()
_, v (lmsModel:())
v:()
v.CanCollide =
v.Transparency =
.(()
isInLMS lmsModel.Parent hrp.Parent character.Parent
newHrp.CFrame = hrp.CFrame * .(, , )
.()
)
currentLMSModel = lmsModel
()
()
isInLMS =
currentLMSModel
currentLMSModel:()
currentLMSModel =
currentNormalModel
_, v (currentNormalModel:())
v:()
v.Transparency =
()
(character)
()
lmsModelConnection lmsModelConnection:()
lmsModelConnection = RunService.Heartbeat:(()
isScriptActive
soloTheme = :()
:()
.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:()
isSoloPlaying = soloTheme soloTheme.IsPlaying
aliveCount =
playersFolder = :()
playersFolder
_, folder (playersFolder:())
hum = folder:()
hum hum.Health >
aliveCount +=
shouldBeInLMS = isSoloPlaying (aliveCount <= )
shouldBeInLMS isInLMS
()
shouldBeInLMS isInLMS
()
)
()
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:()
)
playerModelCache =
isCurrentlySonic =
()
playerModelCache playerModelCache.Parent
playersFolder = :()
playersFolder
playerModelCache = playersFolder:(player.Name)
playerModelCache
()
model = ()
model model:() ==
()
local sonicCheck = isSonic()
if sonicCheck ~= isCurrentlySonic then
isCurrentlySonic = sonicCheck
if isCurrentlySonic then
startScript()
else
stopScript()
end
end
end
local function checkCharacterAttribute() end
local function monitorCharacterAttribute() end
local currentAnimation = nil
local animationsToDisable = {
"rbxassetid://106608035337434343447",
"rbxassetid://9191426583290243434",
"rbxassetid://1381145986434514343434",
"rbxassetid://12355823787878779758443434",
"rbxassetid://12830070429117134343434",
"rbxassetid://8308909881303234343434",
"rbxassetid://1246987295976683434343343",
"rbxassetid://7622317178271243434343434"
}
local jumpStartTime = 0
local jumpAnimationDuration = 0.6
local runStartTime = 0
local isRunning = false
local speedBoostRate = (4 - 1) / 1.25
local lastWalkSpeed = 16
local speedChangeThreshold = 2
local isSpeedBoostActive = false
local lastSpeedCheckTime = 0
local speedCheckInterval = 0.1
local function loadAnimation(animName)
local animData = ANIMATIONS[animName]
if not animData then return nil end
local animation = Instance.new("Animation")
animation.AnimationId = animData.id
local track = humanoid:LoadAnimation(animation)
track.Looped = animData.shouldLoop
animData.track = track
return track
end
local function playAnimation(animName)
for _, animData in pairs(ANIMATIONS) do
if animData.track and animData.track.IsPlaying then
animData.track:Stop()
end
end
local animData = ANIMATIONS[animName]
if animData then
if not animData.track then loadAnimation(animName) end
if animData.track then
animData.track:Play()
if animName == "SuperRun" then
animData.track:AdjustSpeed(3.8)
end
end
end
end
local function updateAnimations()
if not isScriptActive then return end
if isPeelOutActive then
character:SetAttribute("SpeedBoost", 1.1)
isSpeedBoostActive = false
isRunning = false
stopSpindashSpeedBoost()
return
end
if isSpindashActive then
return
end
if not isSpindashActive and not isPeelOutActive and not isPeelOutReleasing then
local currentTime = tick()
if currentTime - lastSpeedCheckTime >= speedCheckInterval then
lastSpeedCheckTime = currentTime
local currentWalkSpeed = humanoid.WalkSpeed
local speedChange = currentWalkSpeed - lastWalkSpeed
if speedChange > speedChangeThreshold and currentWalkSpeed > 16 and humanoid.MoveDirection.Magnitude > 0.1 then
if not isRunning then
isRunning = true
runStartTime = tick()
end
isSpeedBoostActive = true
elseif speedChange < -speedChangeThreshold or (currentWalkSpeed <= 16 and isSpeedBoostActive) then
if isRunning then
isRunning = false
end
isSpeedBoostActive = false
character:SetAttribute("SpeedBoost", 1)
end
lastWalkSpeed = currentWalkSpeed
end
end
local state = humanoid:GetState()
local newAnimation = nil
if state == Enum.HumanoidStateType.Jumping then
if currentAnimation ~= "Jump" then jumpStartTime = tick() end
newAnimation = "Jump"
elseif state == Enum.HumanoidStateType.Freefall then
if tick() - jumpStartTime > jumpAnimationDuration then
newAnimation = "Fall"
else
newAnimation = "Jump"
end
elseif humanoid.MoveDirection.Magnitude > 0.1 then
if humanoid.WalkSpeed > 16 then
newAnimation = "Run"
else
newAnimation = "Walk"
end
else
newAnimation = "Idle"
end
if not isPeelOutActive and not isSpindashActive then
local currentSpeedBoost = character:GetAttribute("SpeedBoost") or 1
if currentSpeedBoost >= 2.5 and isSpeedBoostActive and humanoid.MoveDirection.Magnitude > 0.1 and humanoid.WalkSpeed > 16 and state ~= Enum.HumanoidStateType.Jumping and state ~= Enum.HumanoidStateType.Freefall then
newAnimation = "SuperRun"
end
if isSpeedBoostActive and isRunning then
local runDuration = tick() - runStartTime
local newSpeedBoost = math.min(1 + (runDuration * speedBoostRate), 3)
local currentBoost = character:GetAttribute("SpeedBoost")
if currentBoost ~= nil then
character:SetAttribute("SpeedBoost", newSpeedBoost)
end
end
end
if newAnimation and newAnimation ~= currentAnimation then
playAnimation(newAnimation)
currentAnimation = newAnimation
end
end
local function disableAnimations()
if not isScriptActive then return end
local animator = humanoid:FindFirstChildOfClass("Animator")
if not animator then return end
for _, track in ipairs(humanoid:GetPlayingAnimationTracks()) do
for _, animId in ipairs(animationsToDisable) do
if track.Animation and track.Animation.AnimationId == animId then
track:Stop()
break
end
end
end
end
player.CharacterAdded:Connect(function(newChar)
character = newChar
humanoid = newChar:WaitForChild("Humanoid")
humanoidRootPart = newChar:WaitForChild("HumanoidRootPart")
playerModelCache = nil
monitorSpindashMesh()
setupCharacter(newChar)
for name in pairs(ANIMATIONS) do
if ANIMATIONS[name].track then
ANIMATIONS[name].track:Stop()
ANIMATIONS[name].track = nil
end
end
for name in pairs(ANIMATIONS) do loadAnimation(name) end
playAnimation("Idle")
table.insert(animationConnections, humanoid.StateChanged:Connect(updateAnimations))
table.insert(animationConnections, RunService.Heartbeat:Connect(updateAnimations))
table.insert(animationConnections, RunService.Heartbeat:Connect(disableAnimations))
end)
if monitorSpindashMesh then monitorSpindashMesh() end
if setupCharacter and character and isScriptActive then
setupCharacter(character)
end
if isScriptActive then
for name in pairs(ANIMATIONS) do
loadAnimation(name)
end
playAnimation("Idle")
if humanoid then
table.insert(animationConnections, humanoid.StateChanged:Connect(updateAnimations))
table.insert(animationConnections, RunService.Heartbeat:Connect(updateAnimations))
table.insert(animationConnections, RunService.Heartbeat:Connect(disableAnimations))
end
end
task.spawn(function()
while true do
local playersFolder = workspace:FindFirstChild("Players")
if playersFolder then
local playerFolder = playersFolder:FindFirstChild(player.Name)
if playerFolder then
local defaultFolder = playerFolder:FindFirstChild("Default")
if defaultFolder then
local waist = defaultFolder:FindFirstChild("Waist")
local hrpDefault = defaultFolder:FindFirstChild("HumanoidRootPart")
if waist and waist:IsA("BasePart") then waist.Transparency = 1 end
if hrpDefault and hrpDefault:IsA("BasePart") then hrpDefault.Transparency = 1 end
end
end
end
task.wait(0.1)
end
end)
stopPeelOut = function()
isPeelOutActive = false
peeloutPlayed = false
isHoldingPeelOut = false
isPeelOutReleasing = true
unfreezePlayer()
stopPeelOutSpeedBoost()
isRunning = false
isSpeedBoostActive = false
runStartTime = tick()
character:SetAttribute("SpeedBoost", 1.1)
if ANIMATIONS.PeelCharge.track and ANIMATIONS.PeelCharge.track.IsPlaying then
ANIMATIONS.PeelCharge.track:Stop()
end
task.spawn(function()
task.wait(0.5)
isPeelOutReleasing = false
end)
end
monitorPeelOutSounds = function()
if not humanoidRootPart then return end
local lastPeelStart = 0
local VOICE_COOLDOWN = 8.9
local function checkForSounds()
if not isScriptActive or not humanoidRootPart.Parent then return end
local peelCharge = humanoidRootPart:FindFirstChild("DashStart")
or humanoidRootPart:FindFirstChild("DestructiveCharge")
if peelCharge and peelCharge:IsA("Sound") and not isPeelOutActive then
local now = tick()
isPeelOutActive = true
freezePlayer()
playAnimation("Charge")
currentAnimation = "Charge"
if now - lastPeelStart > VOICE_COOLDOWN then
lastPeelStart = now
playSound(PEEL_OUT_VOICE_ID, humanoidRootPart, 2.0)
print("🔊 Peel Out voice played once")
end
if startPeelOutSpeedBoost then
startPeelOutSpeedBoost()
end
end
local peelRelease = humanoidRootPart:FindFirstChild("DashEnd")
or humanoidRootPart:FindFirstChild("DestructiveRelease")
if peelRelease and peelRelease:IsA("Sound") then
if isPeelOutActive then
stopPeelOut()
end
end
end
humanoidRootPart.ChildAdded:Connect(function(child)
if child.Name == "DashStart"
or child.Name == "DashEnd"
or child.Name == "DestructiveCharge"
or child.Name == "DestructiveRelease" then
task.delay(0.08, checkForSounds)
end
end)
humanoidRootPart.ChildRemoved:Connect(function(child)
if child.Name == "DashStart"
or child.Name == "DashEnd"
or child.Name == "DestructiveCharge"
or child.Name == "DestructiveRelease" then
task.delay(0.08, checkForSounds)
end
end)
RunService.Heartbeat:Connect(function()
if tick() % 0.5 < 0.06 then
checkForSounds()
end
end)
checkForSounds()
print("✅ PeelOut monitor fixed - voice should play only once now")
end
local initialSonic = isSonic()
if initialSonic then
startScript()
else
showWaitingNotification()
end
isCurrentlySonic = initialSonic
RunService.Heartbeat:Connect(onHeartbeat)
Players.PlayerAdded:Connect(function(plr)
plr.CharacterAdded:Connect(function()
if highlightEnabled then
task.wait(0.5)
highlightPlayers(true)
end
end)
end)
-- ====================== KEYBINDS FOR ALL ABILITY BUTTONS (PC) ======================
task.wait(2)
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
local hum = character and character:FindFirstChildOfClass("Humanoid")
local animator = hum and hum:FindFirstChildOfClass("Animator")
if input.KeyCode == Enum.KeyCode.F then
if animator then
local anim = Instance.new("Animation")
anim.AnimationId = "rbxassetid://75751811262833"
local track = animator:LoadAnimation(anim)
track:Play()
end
elseif input.KeyCode == Enum.KeyCode.R then
if animator then
local anim = Instance.new("Animation")
anim.AnimationId = "rbxassetid://119975552824132"
local track = animator:LoadAnimation(anim)
track:Play()
end
elseif input.KeyCode == Enum.KeyCode.T then
if activateHook then activateHook() end
elseif input.KeyCode == Enum.KeyCode.Y then
if activateIndicator then activateIndicator() end
end
end)Loads code from the internet. It downloads more code when it runs (loadstring + HttpGet), which can change after it was posted. From: cdn.discordapp.com.
Idk if it gotta work for mobile or pc
Never paste your .ROBLOSECURITY cookie anywhere, and use an alt account with scripts.

Universal