Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
ContextActionService = :()
UserInputService = :()
player = Players.LocalPlayer
baseMaxSpeed =
topMaxSpeed =
accel =
speedBuildRate =
speedDecayRate =
boostMultiplier =
boostKey = .KeyCode.LeftShift
jumpPower =
tauntDuration =
tauntCooldownTime =
maxJumps =
runAnimId =
jumpAnimId =
tauntAnimId =
idleAnimId =
fakeDeathAnimId =
speed =
currentMaxSpeed = baseMaxSpeed
boostActive =
tauntCooldown =
jumpCount =
humanoid, rootPart, character
runTrack, jumpTrack, tauntTrack, idleTrack
leftFootSmoke, rightFootSmoke, leftFootTrail, rightFootTrail
fakeDeathTrack =
isFakingDeath =
(part, name, position)
a = .()
a.Name = name
a.Position = position
a.Parent = part
a
()
runAnim = .()
runAnim.AnimationId = runAnimId
runTrack = humanoid:(runAnim)
jumpAnim = .()
jumpAnim.AnimationId = jumpAnimId
jumpTrack = humanoid:(jumpAnim)
jumpTrack.Looped =
tauntAnim = .()
tauntAnim.AnimationId = tauntAnimId
tauntTrack = humanoid:(tauntAnim)
idleAnim = .()
idleAnim.AnimationId = idleAnimId
idleTrack = humanoid:(idleAnim)
()
tauntCooldown
tauntCooldown =
runTrack.IsPlaying runTrack:()
idleTrack.IsPlaying idleTrack:()
jumpTrack.IsPlaying jumpTrack:()
tauntTrack:()
.(tauntDuration, ()
tauntTrack:()
speed <= idleTrack:() runTrack:()
)
.(tauntCooldownTime, ()
tauntCooldown =
)
()
params = RaycastParams.()
params.FilterDescendantsInstances = {character}
params.FilterType = .RaycastFilterType.Blacklist
result = :(rootPart.Position, .(, -, ), params)
result result.Normal .(, , )
()
leftFoot = character:() character:()
rightFoot = character:() character:()
(leftFoot rightFoot)
(parent)
e = .()
e.Enabled =
e.Texture =
e.Lifetime = NumberRange.(, )
e.Speed = NumberRange.(, )
e.Size = NumberSequence.({NumberSequenceKeypoint.(, ), NumberSequenceKeypoint.(, )})
e.Transparency = NumberSequence.(, )
e.RotSpeed = NumberRange.(-, )
e.SpreadAngle = .(, )
e.Rate =
e.Parent = parent
e
leftFootSmoke = (leftFoot)
rightFootSmoke = (rightFoot)
leftStart = (leftFoot, , .(, , ))
leftEnd = (leftFoot, , .(, -, -))
rightStart = (rightFoot, ,.(, , ))
rightEnd = (rightFoot, , .(, -, -))
leftFootTrail = .()
leftFootTrail.Attachment0 = leftStart
leftFootTrail.Attachment1 = leftEnd
leftFootTrail.Enabled =
leftFootTrail.Texture =
leftFootTrail.TextureLength =
leftFootTrail.Lifetime =
leftFootTrail.LightEmission =
leftFootTrail.Transparency = NumberSequence.(, )
leftFootTrail.Parent = leftFoot
rightFootTrail = .()
rightFootTrail.Attachment0 = rightStart
rightFootTrail.Attachment1 = rightEnd
rightFootTrail.Enabled =
rightFootTrail.Texture =
rightFootTrail.TextureLength =
rightFootTrail.Lifetime =
rightFootTrail.LightEmission =
rightFootTrail.Transparency = NumberSequence.(, )
rightFootTrail.Parent = rightFoot
()
vel = rootPart.Velocity
rootPart.Velocity = .(vel.X, jumpPower, vel.Z)
jumpTrack:()
jumpTrack:()
(actionName, inputState, inputObject)
inputState == .UserInputState.Begin
isFakingDeath
fakeDeathTrack:()
isFakingDeath =
fakeDeathTrack:()
isFakingDeath =
(char)
character = char
humanoid = char:()
rootPart = char:()
speed =
currentMaxSpeed = baseMaxSpeed
boostActive =
tauntCooldown =
jumpCount =
()
idleTrack:()
()
fakeDeathAnim = .()
fakeDeathAnim.AnimationId = fakeDeathAnimId
fakeDeathTrack = humanoid:(fakeDeathAnim)
isFakingDeath =
humanoid.Jumping:((active)
active tauntCooldown
jumpCount +=
runTrack.IsPlaying runTrack:()
idleTrack.IsPlaying idleTrack:()
jumpTrack.IsPlaying jumpTrack:()
)
humanoid.StateChanged:((_, newState)
onGround = (
newState == .HumanoidStateType.Landed
newState == .HumanoidStateType.Running
newState == .HumanoidStateType.RunningNoPhysics
)
onGround
jumpCount =
jumpTrack.IsPlaying jumpTrack:()
speed > runTrack:() idleTrack:()
)
ContextActionService:(, toggleFakeDeath, , .KeyCode.F)
ContextActionService:(, )
ContextActionService:(, .(, , , ))
ContextActionService:(, fakeDeathAnimId)
UserInputService.JumpRequest:(()
humanoid
state = humanoid:()
onGround = (
state == .HumanoidStateType.Running
state == .HumanoidStateType.RunningNoPhysics
state == .HumanoidStateType.Landed
)
onGround jumpCount < maxJumps
jumpCount +=
()
)
RunService.Heartbeat:((dt)
humanoid rootPart
moveDir = humanoid.MoveDirection
state = humanoid:()
onGround = (
state == .HumanoidStateType.Running
state == .HumanoidStateType.RunningNoPhysics
state == .HumanoidStateType.Landed
)
moveDir.Magnitude >
boostActive
leftFootSmoke leftFootSmoke.Enabled =
rightFootSmoke rightFootSmoke.Enabled =
leftFootTrail leftFootTrail.Enabled =
rightFootTrail rightFootTrail.Enabled =
leftFootSmoke leftFootSmoke.Enabled =
rightFootSmoke rightFootSmoke.Enabled =
leftFootTrail leftFootTrail.Enabled =
rightFootTrail rightFootTrail.Enabled =
boostActive
currentMaxSpeed = .(currentMaxSpeed + speedBuildRate * dt, topMaxSpeed)
currentMaxSpeed = .(currentMaxSpeed, baseMaxSpeed)
currentMaxSpeed = .(currentMaxSpeed + speedBuildRate * dt, baseMaxSpeed)
targetMax = boostActive topMaxSpeed baseMaxSpeed
slopeNormal = ()
slopeMoveDir = (moveDir - slopeNormal * moveDir:(slopeNormal)).Unit
speed = .(speed + accel * dt * , targetMax)
onGround runTrack.IsPlaying tauntCooldown
idleTrack:()
runTrack:()
humanoid.WalkSpeed = speed
rootPart.Velocity = slopeMoveDir * speed + .(, rootPart.Velocity.Y, )
speed =
currentMaxSpeed = .(currentMaxSpeed - speedDecayRate * dt, baseMaxSpeed)
runTrack.IsPlaying runTrack:()
leftFootSmoke leftFootSmoke.Enabled =
rightFootSmoke rightFootSmoke.Enabled =
leftFootTrail leftFootTrail.Enabled =
rightFootTrail rightFootTrail.Enabled =
onGround idleTrack.IsPlaying tauntCooldown
idleTrack:()
humanoid.WalkSpeed =
rootPart.Velocity = .(, rootPart.Velocity.Y, )
)
ContextActionService:(, (_, state)
state == .UserInputState.Begin ()
, , .KeyCode.T)
ContextActionService:(, (_, state)
state == .UserInputState.Begin
boostActive =
state == .UserInputState.End
boostActive =
, , boostKey)
player.CharacterAdded:(setupCharacter)
player.Character (player.Character)
Like that slop retro flinger script I made but for sonic fans

Universal