
Keyless

--// HYPER SONIC (COSMETIC ONLY + FLY ANIMATION)
--// No speed, jump, FOV, gravity, velocity, or movement cheats
--// Walking stays normal, animation LOOKS like flying
--// Press M to unload
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer
-- ================== CONFIG ==================
local EMERALDS_ID = "rbxassetid://132942718178268"
local TRANSFORM_SOUND_ID = "rbxassetid://9048375065"
local HYPER_THEME_ID = "rbxassetid://1843237513"
-- Reused flying animation (from your script)
-- Reused flying animations (from your script)
local FLY_SLOW_ANIM_ID = "rbxassetid://86229317461320" -- your current fly anim
local FLY_FAST_ANIM_ID = "rbxassetid://137747804761111" -- from your big script
local FLY_FAST_WALKSPEED = 20
local flyTrackSlow, flyTrackFast = nil, nil
local flyAnimSlow, flyAnimFast = nil, nil
local flyHBConn = nil
local function stopFlyTracks(fade)
fade = fade or 0.2
if flyTrackSlow and flyTrackSlow.IsPlaying then pcall(function() flyTrackSlow:Stop(fade) end) end
if flyTrackFast and flyTrackFast.IsPlaying then pcall(function() flyTrackFast:Stop(fade) end) end
end
local SONIC_PARTS = {
"Cube.001","Cube.002","Cube.003","Cube.004","Ear1","Ear2","normal",
"Body","LArm1","LArm2","LArm3","LArm4","LArm5",
"LFoot1","LFoot2","LFoot3","LFoot4","LFoot5",
"RArm1","RArm2","RArm3","RArm4","RArm5",
"RLeg1","RLeg2","RLeg3","RLeg4","RLeg5",
"left backspike","right backspike","tail"
}
-- ================== INTERNAL ==================
local alive = true
local conns = {}
local insts = {}
local originalProps = {}
local flyTrack = nil
local flyAnim = nil
local function trackConn(c) table.insert(conns,c) return c end
local function trackInst(i) table.insert(insts,i) return i end
local function remember(p)
if originalProps[p] then return end
originalProps[p] = {Color=p.Color, Material=p.Material}
end
local function unload()
alive = false
for _,c in ipairs(conns) do pcall(function() c:Disconnect() end) end
for _,i in ipairs(insts) do pcall(function() if i.Parent then i:Destroy() end end) end
for p,props in pairs(originalProps) do
if p and p.Parent then
p.Color = props.Color
p.Material = props.Material
end
end
pcall(function() if flyTrack then flyTrack:Stop() end end)
end
-- ================== FLY ANIMATION (VISUAL ONLY) ==================
local function startFlyVisual(humanoid)
-- cleanup previous
if flyHBConn then flyHBConn:Disconnect() flyHBConn = nil end
stopFlyTracks(0)
if flyAnimSlow then flyAnimSlow:Destroy() flyAnimSlow = nil end
if flyAnimFast then flyAnimFast:Destroy() flyAnimFast = nil end
flyTrackSlow, flyTrackFast = nil, nil
-- load anims
flyAnimSlow = trackInst(Instance.new("Animation"))
flyAnimSlow.AnimationId = FLY_SLOW_ANIM_ID
flyAnimFast = trackInst(Instance.new("Animation"))
flyAnimFast.AnimationId = FLY_FAST_ANIM_ID
local ok1, t1 = pcall(function() return humanoid:LoadAnimation(flyAnimSlow) end)
local ok2, t2 = pcall(function() return humanoid:LoadAnimation(flyAnimFast) end)
if not ok1 or not t1 then return end
if not ok2 or not t2 then return end
flyTrackSlow, flyTrackFast = t1, t2
flyTrackSlow.Looped = true
flyTrackFast.Looped = true
-- make sure they override default movement anims while active
flyTrackSlow.Priority = Enum.AnimationPriority.Action
flyTrackFast.Priority = Enum.AnimationPriority.Action
local current = "none"
local function setWhich(which)
if which == current then return end
current = which
if which == "slow" then
if flyTrackFast.IsPlaying then flyTrackFast:Stop(0.15) end
if not flyTrackSlow.IsPlaying then flyTrackSlow:Play(0.15) end
elseif which == "fast" then
if flyTrackSlow.IsPlaying then flyTrackSlow:Stop(0.15) end
if not flyTrackFast.IsPlaying then flyTrackFast:Play(0.15) end
else
stopFlyTracks(0.2)
end
end
-- update loop: only play while moving; pick fast vs slow by WalkSpeed
flyHBConn = trackConn(RunService.Heartbeat:Connect(function()
if not alive then return end
local moving = humanoid.MoveDirection.Magnitude > 0.05
if not moving then
setWhich("none")
return
end
if humanoid.WalkSpeed > FLY_FAST_WALKSPEED then
setWhich("fast")
else
setWhich("slow")
end
end))
end
-- ================== VISUAL RGB ==================
local function applyHyperVisuals(char)
local parts = {}
for _,name in ipairs(SONIC_PARTS) do
local p = (char:FindFirstChild("hed") and char.hed:FindFirstChild(name)) or char:FindFirstChild(name)
if p and p:IsA("BasePart") then
remember(p)
p.Material = Enum.Material.Neon
table.insert(parts,p)
end
end
local hue = 0
trackConn(RunService.Heartbeat:Connect(function(dt)
if not alive then return end
hue = (hue + dt * 1.2) % 1
local col = Color3.fromHSV(hue,0.45,1)
for _,p in ipairs(parts) do
if p.Parent then p.Color = col end
end
for _,d in ipairs(char:GetDescendants()) do
if d:IsA("Trail") or d:IsA("Beam") then
d.Color = ColorSequence.new(col)
end
end
end))
end
-- ================== INTRO ==================
local function playIntro(callback)
local char = player.Character
if not char then return end
local root = char:WaitForChild("HumanoidRootPart")
local ok,objs = pcall(game.GetObjects,game,EMERALDS_ID)
local mdl = ok and objs[1] and objs[1]:Clone()
if not mdl then return end
mdl.Parent = workspace
trackInst(mdl)
local emeralds = {}
for _,p in ipairs(mdl:GetDescendants()) do
if p:IsA("BasePart") then
p.Anchored = true
p.CanCollide = false
table.insert(emeralds,p)
end
end
local t = 0
local spin
spin = trackConn(RunService.Heartbeat:Connect(function(dt)
t += dt
for i,e in ipairs(emeralds) do
local a = (i * math.pi*2/#emeralds) + t*5
e.Position = root.Position + Vector3.new(math.cos(a)*9,2,math.sin(a)*9)
end
if t >= 8 then
spin:Disconnect()
for _,e in ipairs(emeralds) do
TweenService:Create(e,TweenInfo.new(0.35),{Position=root.Position,Size=Vector3.zero}):Play()
end
task.delay(0.4,function()
local s = Instance.new("Sound",root)
s.SoundId = TRANSFORM_SOUND_ID
s.Volume = 3
s:Play()
if callback then callback() end
mdl:Destroy()
end)
end
end))
end
-- ================== START ==================
task.spawn(function()
while alive do
local pf = workspace:FindFirstChild("Players")
if pf then
local f = pf:FindFirstChild(player.Name)
if f and f:FindFirstChild("Dodges") then
playIntro(function()
local char = player.Character
if not char then return end
applyHyperVisuals(char)
local hum = char:FindFirstChildOfClass("Humanoid")
if hum then
startFlyVisual(hum)
end
end)
return
end
end
task.wait(0.1)
end
end)
-- ================== UNLOAD ==================
trackConn(UserInputService.InputBegan:Connect(function(i,gp)
if gp then return end
if i.KeyCode == Enum.KeyCode.M then
unload()
end
end))
print("[Hyper Sonic] Cosmetic + flying animation loaded (fair mode). Press M to unload.")
Cool I Guess, But Also. Why? If I Came All The Way Here, Downloading An Android Emulator, Getting A Key For Delta, And Having The Risk Of Getting Banned. All For Hyper Sonic? At That Point I Might As Well Just Use OM Hub. And I Must Say This Again. What Purpose Does This Fulfill? There Are Plenty Of Other Scripts Just Like This But Way Better. Do Better Next Time, Make A Real Cheat Hub Or Something. We Are All Getting Tired Of The Hyper Sonic Scripters. -Brent
@BrentGameDev yeah I agree
@maleekirving read my comment gng, I said it was for aesthetic purposes
@MediorceExploiter ok
using gpt btw
mb chat, I didn't add that it was made by ChatGPT 5.2
The purpose of this is for cosmetic purposes. Maybe you wanna still play legit while looking stylish.
Is it for mobile
I GOT JUMPSCARED BPMY HART FELL OF BUT JEFF
Guess what I got the meta_blox updated hyper sonic