Hyper Sonic v02
Key Required

Hyper Sonic v02

(ANNIVERSARY) Outcome Memories v0.2MediorceExploiterMediorceExploiter 2.5K views 309 executesUpdated Feb 1, 2026
Unrated
00
Lua Script•241 lines (7159 chars)
--// 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.")

Features & Information

Flying Animations
#fair

Community Comments (10)

BrentGameDevBrentGameDevFeb 9, 2026

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

Replying to @BrentGameDev
HypersoniclikerHypersoniclikerAug 22, 2026

@BrentGameDev yeah I agree

Replying to @Hypersonicliker
MediorceExploiterMediorceExploiterAug 28, 2026

@maleekirving read my comment gng, I said it was for aesthetic purposes

Replying to @MediorceExploiter
HypersoniclikerHypersoniclikerSep 7, 2026

@MediorceExploiter ok

PapaGubbyPapaGubbyFeb 12, 2026

using gpt btw

MediorceExploiterMediorceExploiterFeb 15, 2026

mb chat, I didn't add that it was made by ChatGPT 5.2

MediorceExploiterMediorceExploiterFeb 15, 2026

The purpose of this is for cosmetic purposes. Maybe you wanna still play legit while looking stylish.

OutcomeScripterOutcomeScripterFeb 15, 2026

Is it for mobile

Area51anomlyArea51anomlyJul 1, 2026

I GOT JUMPSCARED BPMY HART FELL OF BUT JEFF

HypersoniclikerHypersoniclikerAug 22, 2026

Guess what I got the meta_blox updated hyper sonic

More Scripts for (ANNIVERSARY) Outcome Memories v0.2