Run it
Copy the script and paste it into your executor.
hi =
(hi, )
:() .Loaded:()
(:())()
KeyframeAnimator = (:())()
Template = :()[]
Animator = (Template.Humanoid:() .(, hum))
Animator.Parent = Template.Humanoid
AnimSaves = Template.AnimSaves
AnimSaves.Parent =
a, name ({, , })
.ReplicatedStorage.ClientAssets.Characters.EXE[].Skins[name]:()
clone = name == :()[] Template:()
clone.Name = name
clone.Parent = .ReplicatedStorage.ClientAssets.Characters.EXE[].Skins
clone:(, )
clone:(, clone.Name)
.()
req = ( .request) ( .request) (fluxus fluxus.request)
(url)
clean = url:() url
clean = clean:(, )
name = clean:()
dir = clean:()
host = clean:()
name:() name = name ..
path = .. dir .. .. name
(path)
ok, a = (getcustomasset, path)
ok a
(, name)
res = req ({Url = clean, Method = , Headers = {
[] = ,
[] = .. host .. ,
}})
data = res res.Body
data #data == data:(,) ==
(, url, res res.StatusCode)
acc =
p dir:()
acc = acc == ( .. p) (acc .. .. p)
(acc) (acc)
(path, data)
(, name)
(path)
.RewSonicAssets = {}
.LocalizationService:() .LocalizationService.Chara2011xMainReplaces:()
Chara2011xMainReplaces = .()
Chara2011xMainReplaces.Name =
Chara2011xMainReplaces.Parent = .LocalizationService
()
id = .Players.LocalPlayer.LocaleId
Chara2011xMainReplaces:({
{ Key = , Source = , Values = { [id] = } },
{ Key = , Source = , Values = { [id] = } },
{ Key = , Source = , Values = { [id] = } },
{ Key = , Source = , Values = { [id] = } },
{ Key = , Source = , Values = { [id] = } },
{ Key = , Source = , Values = { [id] = } },
{ Key = , Source = , Values = { [id] = } },
{ Key = , Source
=
..
..
.., Values = { [id] = } },
{ Key = , Source =
..
..
..,
Values = { [id]
=
..
..
..
..
..
..
..
..
..
} },
})
()
.RewSonic2011xLocaleIdConn .RewSonic2011xLocaleIdConn:()
.RewSonic2011xLocaleIdConn = .Players.LocalPlayer:():(updateTranslations)
.RewSonic2011xCharIcon =
.RewSonic2011xCharImage =
.(()
.RewSonic2011xKeepTask1 =
.()
.RewSonic2011xKeepTask1 =
.RewSonic2011xKeepTask1
(()
:().LocalPlayer.PlayerGui.GameUI.shop.display.fram2.CharSelection[].Icon.Border.Icon2.Visible =
:().LocalPlayer.PlayerGui.GameUI.shop.display.fram2.CharSelection[].Icon.Border.Icon.Image = .RewSonic2011xCharIcon
:().LocalPlayer.PlayerGui.GameUI.shop.display.fram2.CharSelection[].Icon.Border.Icon.Position = .(, )
:().LocalPlayer.PlayerGui.GameUI.shop.display.fram2.CharSelection[].Icon.Border.Icon.Size = .(, )
)
(()
:().LocalPlayer.PlayerGui.GameUI.shop.display.fram2.CharSelection[].Border.ImageLabel.Image = .RewSonic2011xCharIcon
:().LocalPlayer.PlayerGui.GameUI.shop.display.fram2.CharSelection[].Border.ImageLabel.Image.Position = .(, )
:().LocalPlayer.PlayerGui.GameUI.shop.display.fram2.CharSelection[].Border.ImageLabel.Image.Size = .(, )
)
(()
CharDisplay = :().LocalPlayer.PlayerGui.GameUI.shop.display.fram2.CharDisplay
CharDisplay.Visible
CharDisplay.CharImage.Image = CharDisplay.CharName.Text == .RewSonic2011xCharImage CharDisplay.CharImage.Image
CharInfoIcon = :().LocalPlayer.PlayerGui.GameUI.shop.display.fram2.Info.CharInfo.CharIcon.Border.ImageLabel
CharInfoIcon.Image = CharDisplay.CharName.Text == .RewSonic2011xCharIcon CharInfoIcon.Image
)
.()
(hi, )
)
(Character)
Character:()
Character:() ~=
IsPlayer = (.Players:(Character.Name) ~= ) (.Players:(Character.Name) ~= ) (:(Character.Name) ~= )
(hi, .. Character:() .. )
(Character:(Character.Name..) Character:(Character.Name..))
(hi, )
Character.DescendantRemoving:((desc)
)
ringParts, ringIdx = {},
()
#ringParts ==
raw = {}
_, v (Character:(Character.Name..):())
v.Name == v:()
dup =
_, p (raw) (p.Position - v.Position).Magnitude < dup = ;
dup .(raw, v)
.(raw, (a, b) a.Position.Y > b.Position.Y )
ringParts = raw
part = ringParts[ringIdx]
part
ring = :()[]
primary = ring.PrimaryPart ring:()
_, v (ring:())
v:() v.Anchored = ; v.CanCollide =
hrp = Character:() Character:()
startCF = hrp.CFrame * .(, -, -)
ring:(startCF)
ring.Parent =
startTime = ()
duration =
conn
conn = :().RenderStepped:(()
part.Parent ring.Parent
conn conn:()
ring.Parent ring:()
alpha = .((() - startTime) / duration, )
eased = - ( - alpha)^
targetCF = part.CFrame * .(, .(), )
ring:(startCF:(targetCF, eased))
alpha >=
conn:()
_, v (ring:())
v:() v.Anchored =
ring.Parent = part
w = .(, part)
w.Part0, w.Part1, w.C0 = part, primary, .(, .(), )
)
ringIdx +=
Character.DescendantAdded:((desc)
desc.Parent.Name == desc.Name == desc:()
desc.Parent.Name == desc.Name == desc:()
desc.Name ==
desc.Name =
depth1 = {}
depth2 = {}
depth3 = {}
_, v (Character.OverlayModel:())
v:()
#v:():() - #Character.OverlayModel:():() <= .(depth1, v)
#v:():() - #Character.OverlayModel:():() <= .(depth2, v)
#v:():() - #Character.OverlayModel:():() <= .(depth3, v)
#depth1 > desc.Parent = depth1[.(#depth1)]
#depth1 > desc:().Parent = depth1[.(#depth1)]
#depth2 > desc:().Parent = depth2[.(#depth2)]
#depth2 > desc:().Parent = depth2[.(#depth2)]
#depth2 > desc:().Parent = depth2[.(#depth2)]
#depth2 > desc:().Parent = depth2[.(#depth2)]
#depth3 > desc:().Parent = depth3[.(#depth3)]
#depth3 > desc:().Parent = depth3[.(#depth3)]
#depth3 > desc:().Parent = depth3[.(#depth3)]
#depth3 > desc:().Parent = depth3[.(#depth3)]
#depth3 > desc:().Parent = depth3[.(#depth3)]
#depth3 > desc:().Parent = depth3[.(#depth3)]
desc.ClassName ~=
(desc.SoundId):()
a = (desc.SoundId)
aa =
a:() aa =
a:() aa =
a:() aa =
a:() aa =
a:() aa =
a:() aa =
a:() aa =
a:() aa =
a:() aa =
a:() aa =
a:() aa =
a:() aa =
a:() aa =
a:() aa =
a:() aa =
a:() aa =
a:() aa =
a:() aa =
a:() aa =
desc:(, )
aa desc:(, aa)
orgID = desc.SoundId
orgName = desc.Name
desc.Name:()
desc.Parent:() desc.Parent:():()
dn = .RewSonicAssets[]
stuff = { dn[], dn[], dn[], dn[] }
desc.SoundId = stuff[.(, #stuff)]
desc.Name =
desc.Name:() desc.SoundId ==
dn = .RewSonicAssets[]
stuff = { dn[], dn[], dn[], dn[] }
desc.SoundId = stuff[.(, #stuff)]
desc.Name =
orgID == desc.Name:()
desc.SoundId = .RewSonicAssets[][.(, #.RewSonicAssets[])] desc.SoundId
desc.Volume = + desc.Volume
desc.Name =
desc.Name:() desc.SoundId = .RewSonicAssets[][.(, #.RewSonicAssets[])]
.RewSonicAssets[orgName]
desc.SoundId = .RewSonicAssets[orgName]
desc.Name =
orgName:() ()
desc.Name:() desc:()
desc.Name:() desc:()
desc.Name:() ( desc.Name:()) desc:()
desc.SoundId ~= orgID
(() desc.Parent:() desc.Parent:():() )
Clone = desc:()
Clone.Volume = desc.Volume
Clone.TimePosition =
Clone.PlaybackRegion = NumberRange.(, )
Clone.Name = desc.Name ==
Clone.Parent = Character.PrimaryPart
Clone:()
Clone.Ended:(() .() Clone:() )
.Debris:(Clone, )
desc:()
)
HasRootPart = Character:() Character:()
AKOVDMKDSOV = HasRootPart Character:(, )
HasRootPart .()
(hi, .. Character:() .. )
IsPlayer
ogHRP = Character:()
ogHRP
_, v (Character:())
v:() v.Name ~=
v.LocalTransparencyModifier =
v.Changed:((property)
property ==
v.LocalTransparencyModifier =
property == v.Name ==
_, ov ((Character:(Character.Name..) Character:(Character.Name..)):())
ov:() ov:()
(()
attr = ov:()
attr ~= ov.Transparency = attr + ( - attr) * v.Transparency
ov.Transparency = v.Transparency
)
(() ov.FillTransparency = v.Transparency )
ov:() ov.Enabled = (v.Transparency < )
.()
)
v:() v:()
v:() v:()
v:() v:()
(() Character.RootPart.waist.Lowerbody.Upperbody.Parent = Character.RootPart )
(() Character.RootPart.Root.Body.Parent = Character.RootPart )
(Obj)
OverlayModel = Obj
OverlayModel.Name = Obj.Name..
myHRP = OverlayModel:()
myHRP OverlayModel:()
_, v (OverlayModel:())
v:() v.EvaluateStateMachine =
v:() v:()
v:()
v.CanCollide =
v.Anchored =
v.CanTouch =
v.CanQuery =
v.Massless =
v.Transparency > v:(, )
v:() v.Parent.Name == v:()
hrpY = -
weld = .()
weld.Name = Obj.Name..
weld.Part0 = ogHRP
weld.Part1 = myHRP
weld.C0 = .()
weld.C1 = .(, -hrpY, ) * .(, .(), ) * .(.(), , )
weld.Parent = myHRP
myHRP:(ogHRP.CFrame * .(, hrpY, ) * .(.(), , ))
.(()
cbone = Character.RootPart:(, )
cbone = cbone cbone Character.RootPart:(, )
cbone:():(()
OverlayModel.Parent ~= Character
Character.cam.lock.Value = OverlayModel.Head
x, y, z = cbone.CFrame.Rotation:()
orientfix = cbone.Name == .(x, -y, z) .(-x, -y, -z)
OverlayModel.Body.Head.C1 = .(OverlayModel.Body.Head.C1.Position) * orientfix
)
)
OverlayModel
Default = (.ReplicatedStorage.ClientAssets.Characters:(Character:(), ).Skins[Character:()]:())
(() .ReplicatedStorage[Character.Name..]:() )
Default.Name = Character.Name..
Default.Parent = Character
Rage = (:()[])
(() .ReplicatedStorage[Character.Name..]:() )
Rage.Name = Character.Name..
Rage.Parent = Character
.(() .() Rage.Parent = .ReplicatedStorage )
Character.AttributeChanged:((Attribute)
Attribute ~=
State = Character:(Attribute)
State ==
Default.Parent = .ReplicatedStorage
Rage.Parent = Character
State == State ==
Default.Parent = Character
Rage.Parent = .ReplicatedStorage
)
(OvName)
tracks = {}
swing =
AnimsFolderName = Character:() ==
OrgAnimsFolder = .ReplicatedStorage.ClientAssets.Characters:(Character:(), ):(AnimsFolderName, )
OrgAnimsFolder = AnimsFolderName == OrgAnimsFolder OrgAnimsFolder[Character:()]
Rig = Character:(OvName) Character
MyAnimator = KeyframeAnimator.(Rig.Humanoid)
MyAnimator.AnimationMode = KeyframeAnimator.AnimationMode.C0
Character:(, )
Character:(, ).AnimationPlayed:((track)
(..track.Name....track.Animation.Name....track.Animation.AnimationId)
id = track.Animation.AnimationId
track.Name == Character:()
_, CharacterAnim (Character:())
CharacterAnim:()
id ~= CharacterAnim.AnimationId
track.Name = CharacterAnim.Name
OrgAnimsFolder:(track.Name) OrgAnimsFolder[track.Name]:()
SaveIT = track.Animation:()
SaveIT.Parent = OrgAnimsFolder
SaveIT.Name = track.Name
_, Anim (OrgAnimsFolder:())
Anim:()
track.Animation.AnimationId ~= Anim.AnimationId
Anim = Anim.Parent:()[Anim.Name]
AnimName = Anim.Name
AnimType = Anim.Parent.Name
AnimFullName = Anim:()
AnimName = AnimName:() AnimName
AnimName = AnimName:() AnimName
AnimName = AnimName:() swing AnimName
AnimName = AnimName:() AnimName
AnimName = AnimName:() AnimName
AnimName = AnimName:() AnimName
MyAnim = AnimSaves:(AnimName) AnimSaves:(AnimType .. .. AnimName)
MyAnim
AnimName:() swing = swing ==
tracks[AnimFullName] = tracks[AnimFullName] MyAnimator:(MyAnim)
tracks[AnimFullName].IsPlaying tracks[AnimFullName]:() .()
tracks[AnimFullName].Priority = track.Priority
tracks[AnimFullName].Looped = track.Looped
tracks[AnimFullName]:()
.(()
track.IsPlaying
.()
m =
m = AnimName == m
m = AnimName == m
tracks[AnimFullName]:(track.Speed * m)
track.Looped tracks[AnimFullName]:()
)
)
(Character.Name..)
IsPlayer (Character.Name..)
.(()
_, track (Character.Humanoid.Animator:())
(hi, , track.Name, track.Animation.AnimationId, track:())
)
(hi, , Character.Name .. )
.RewSonic2011xSkinTESTINGDUMMYConn .RewSonic2011xSkinTESTINGDUMMYConn:()
.RewSonic2011xSkinTESTINGDUMMYConn = .CollectionService:():(tryUpdateCharacter)
.RewSonic2011xInventoryAssetsCharConn .RewSonic2011xInventoryAssetsCharConn:()
.RewSonic2011xInventoryAssetsCharConn = .InventoryAssets.char.ChildAdded:(tryUpdateCharacter)
.RewSonic2011xSelectMapDescendantAddedConn .RewSonic2011xSelectMapDescendantAddedConn:()
.RewSonic2011xSelectMapDescendantAddedConn = .SelectMap.DescendantAdded:(tryUpdateCharacter)
(Player)
Player.Character (Player.Character)
.RewSonicOn2011xCharacterAddedConn = .RewSonicOn2011xCharacterAddedConn {}
.RewSonicOn2011xCharacterAddedConn[Player.Name] .RewSonicOn2011xCharacterAddedConn[Player.Name]:()
.RewSonicOn2011xCharacterAddedConn[Player.Name] = Player.CharacterAdded:(tryUpdateCharacter)
_, Player .Players:() (Player)
.RewSonicOn2011xPlayerAddedConn .RewSonicOn2011xPlayerAddedConn:() (hi, )
.RewSonicOn2011xPlayerAddedConn = .Players.PlayerAdded:(onPlayerAdded)
.(()
BASE_URL =
.RewSonicAssets[] = (BASE_URL .. )
.RewSonicAssets[] = (BASE_URL .. )
.RewSonicAssets[] = (BASE_URL .. )
.RewSonicAssets[] = (BASE_URL .. )
.RewSonicAssets[] = (BASE_URL .. )
.RewSonicAssets[] = (BASE_URL .. )
.RewSonicAssets[] = (BASE_URL .. )
.RewSonicAssets[] = (BASE_URL .. )
.RewSonicAssets[] = (BASE_URL .. )
.RewSonicAssets[] = (BASE_URL .. )
.RewSonicAssets[] = {
(BASE_URL .. ),
(BASE_URL .. ),
(BASE_URL .. ),
(BASE_URL .. ),
(BASE_URL .. ),
(BASE_URL .. ),
(BASE_URL .. ),
(BASE_URL .. ),
(BASE_URL .. ),
}
.RewSonicAssets[] = .RewSonicAssets[]
.RewSonicAssets[] = {} i = , .(.RewSonicAssets[], (BASE_URL .. .. i .. ))
)
.(()
themes = .ReplicatedStorage:(, ):(, )
themes.Default.Rage.SoundId = ()
themes.Default.TerrorRadius.SoundId = ()
themes.Default.NormalChase.PlaybackRegion = NumberRange.(, )
themes.Default.NormalChase.LoopRegion = NumberRange.(, )
themes.Default.NormalChase.SoundId = ()
themes.Default.NormalChase.PlaybackRegion = NumberRange.(, )
themes.Default.NormalChase.LoopRegion = NumberRange.(, )
themes.Default.LastLifeChase.SoundId = ()
themes.Default.LastLifeChase.PlaybackRegion = NumberRange.(, )
themes.Default.LastLifeChase.LoopRegion = NumberRange.(, )
themes.Default.LastLifeChase.PlaybackSpeed =
themes.Default.LastLifeChase:(, )
themes.miku:()
themes.Default:().Parent = themes
themes.Default.Name =
themes.RETRO:()
themes.Default:().Parent = themes
themes.Default.Name =
)Loads code from the internet. It downloads more code when it runs (loadstring + HttpGet), which can change after it was posted. From: lil2kki.7m.pl, github.com.
Replaces all 3 variants of 2011x to Rewrite Sonic. Have custom chase themes and voicelines. Big thanks to The_haker3000 for assets of original script that was for Fleetway – https://youtu.be/iQAl62dpIN0 !! SCRIPT DEVELOPED AND TESTED ON SOLARA !! Rage theme by Depresso54 – https://www.youtube.com/watch?v=XVAJKf12aLQ (sorry for clumsy edit i needed 1.40 time length xd) Chase theme by I_AmKwispy – https://www.youtube.com/watch?v=C4glZC_moJI Last life chase theme by Luomixer – https://youtu.be/dgVCPooYUJs Model by JadeandPals (turbosquidtom's reupload) – port to Sonic rig is made by The_haker3000 Original Character made by Springless
Stay safe
Never paste your .ROBLOSECURITY cookie anywhere, and use an alt account with scripts.

Universal