Run it
Copy the script and paste it into your executor.
pow2 = {}
i = , pow2[i] = ^ i
B64 =
B64MAP = {}
i = , B64MAP[.(B64, i)] = i -
(str)
out, n, buf, cnt = {}, , ,
i = , #str
v = B64MAP[.(str, i)]
v
buf = buf * + v
cnt = cnt +
cnt >=
cnt = cnt -
d = pow2[cnt]
n = n +
out[n] = .(buf / d)
buf = buf % d
parts = {}
i = , n,
parts[#parts + ] = .(.(out, i, .(i + , n)))
.(parts)
LBASE = {,,,,,,,,,,,,,,,,,,,,,,,,,,,,}
LEXT = {,,,,,,,,,,,,,,,,,,,,,,,,,,,,}
DBASE = {,,,,,,,,,,,,,,,,,,,,,,,,,,,,,}
DEXT = {,,,,,,,,,,,,,,,,,,,,,,,,,,,,,}
ORDER = {,,,,,,,,,,,,,,,,,,}
(lengths, start, n)
count = {}
i = , count[i] =
s = , n -
l = lengths[start + s]
count[l] = count[l] +
offs = {}
offs[] =
l = , offs[l + ] = offs[l] + count[l]
symbol = {}
s = , n -
l = lengths[start + s]
l ~=
symbol[offs[l]] = s
offs[l] = offs[l] +
{count = count, symbol = symbol}
(src)
pos, bitbuf, bitcnt = , ,
out, outn = {},
(need)
val = bitbuf
bitcnt < need
val = val + .(src, pos) * pow2[bitcnt]
pos = pos +
bitcnt = bitcnt +
bitbuf = .(val / pow2[need])
bitcnt = bitcnt - need
val % pow2[need]
(h)
code, first, index = , ,
len = ,
code = code + ()
count = h.count[len]
code - count < first
h.symbol[index + (code - first)]
index = index + count
first = (first + count) *
code = code *
()
(lencode, distcode)
sym = (lencode)
sym <
outn = outn +
out[outn] = sym
sym ==
sym = sym -
len = LBASE[sym + ] + (LEXT[sym + ])
ds = (distcode)
dist = DBASE[ds + ] + (DEXT[ds + ])
_ = , len
outn = outn +
out[outn] = out[outn - dist]
fixedLen, fixedDist
last = ()
btype = ()
btype ==
bitbuf, bitcnt = ,
len = .(src, pos) + .(src, pos + ) *
pos = pos +
i = , len -
outn = outn +
out[outn] = .(src, pos + i)
pos = pos + len
btype ==
fixedLen
l = {}
i = , l[i] =
i = , l[i] =
i = , l[i] =
i = , l[i] =
fixedLen = (l, , )
d = {}
i = , d[i] =
fixedDist = (d, , )
(fixedLen, fixedDist)
nlen = () +
ndist = () +
ncode = () +
lengths = {}
i = , lengths[i] =
i = , ncode lengths[ORDER[i]] = ()
lencode = (lengths, , )
lengths = {}
idx =
idx < nlen + ndist
sym = (lencode)
sym <
lengths[idx] = sym
idx = idx +
len, rep = ,
sym ==
len = lengths[idx - ]
rep = + ()
sym ==
rep = + ()
rep = + ()
_ = , rep
lengths[idx] = len
idx = idx +
((lengths, , nlen), (lengths, nlen, ndist))
last ==
parts = {}
i = , outn,
parts[#parts + ] = .(.(out, i, .(i + , outn)))
.(parts)
SONIC_B64 =
TAILS_B64 =
KNUCKLES_B64 =
Players = :()
TweenService = :()
RunService = :()
lp = Players.LocalPlayer
gui = .()
gui.Name =
gui.ResetOnSpawn =
gui.IgnoreGuiInset =
gui.DisplayOrder =
placed = (()
gui.Parent = (gethui ()) :()
)
placed gui.Parent = lp:()
BLOBS = {sonic = SONIC_B64, tails = TAILS_B64, knuckles = KNUCKLES_B64}
conns = {}
launched =
(which)
launched
launched =
_, c (conns) c:()
gui:()
ok, src = (() ((BLOBS[which])) )
ok
( .. (src))
run = load
fn, err = (src)
fn
( .. (err))
okRun, e = (fn)
okRun ( .. (e))
(parent, w, h, x, y, color, round, rot, z)
f = .()
f.AnchorPoint = .(, )
f.Size = .(w, h)
f.Position = .(x, y)
f.BackgroundColor3 = color
f.BorderSizePixel =
f.Rotation = rot
f.ZIndex = z
round
c = .()
c.CornerRadius = .(round, )
c.Parent = f
f.Parent = parent
f
bg = .()
bg.Size = .(, )
bg.BackgroundColor3 = .(, , )
bg.BorderSizePixel =
bg.Parent = gui
bgGrad = .()
bgGrad.Rotation =
bgGrad.Color = ColorSequence.({
ColorSequenceKeypoint.(, .(, , )),
ColorSequenceKeypoint.(, .(, , )),
ColorSequenceKeypoint.(, .(, , )),
ColorSequenceKeypoint.(, .(, , )),
})
bgGrad.Parent = bg
clouds, stripes = {}, {}
i = ,
c = .()
c.AnchorPoint = .(, )
c.Size = .( + (i * ) % , + (i * ) % )
c.BackgroundColor3 = .(, , )
c.BackgroundTransparency =
c.BorderSizePixel =
c.Parent = bg
cc = .()
cc.CornerRadius = .(, )
cc.Parent = c
.(clouds, {f = c, x = (i * ) % , y = + ((i * ) % ), s = + i * })
i = ,
s = .()
s.AnchorPoint = .(, )
s.Size = .( + (i * ) % , )
s.BackgroundColor3 = .(, , )
s.BackgroundTransparency =
s.BorderSizePixel =
s.Parent = bg
.(stripes, {f = s, x = (i * ) % , y = + ((i * ) % ), s = + (i % ) * })
.(conns, RunService.RenderStepped:((dt)
_, c (clouds)
c.x = c.x - c.s * dt
c.x < - c.x =
c.f.Position = .(c.x, c.y)
_, s (stripes)
s.x = s.x - s.s * dt
s.x < - s.x =
s.f.Position = .(s.x, s.y)
))
panelShadow = .()
panelShadow.AnchorPoint = .(, )
panelShadow.Size = .(, )
panelShadow.Position = .(, , , )
panelShadow.BackgroundColor3 = .(, , )
panelShadow.BackgroundTransparency =
panelShadow.BorderSizePixel =
panelShadow.ZIndex =
panelShadow.Parent = gui
psc = .()
psc.CornerRadius = .(, )
psc.Parent = panelShadow
panel = .()
panel.AnchorPoint = .(, )
panel.Size = .(, )
panel.Position = .(, , , )
panel.BackgroundColor3 = .(, , )
panel.BorderSizePixel =
panel.ZIndex =
panel.Parent = gui
pc = .()
pc.CornerRadius = .(, )
pc.Parent = panel
pg = .()
pg.Rotation =
pg.Color = ColorSequence.(.(, , ), .(, , ))
pg.Parent = panel
pst = .()
pst.Color = .(, , )
pst.Thickness =
pst.ApplyStrokeMode = .ApplyStrokeMode.Border
pst.Parent = panel
title = .()
title.Size = .(, , , )
title.Position = .(, )
title.BackgroundTransparency =
title.Font = .Font.GothamBlack
title.TextSize =
title.TextColor3 = .(, , )
title.Text =
title.ZIndex =
title.Parent = panel
BLUE, PEACH = .(, , ), .(, , )
ORANGE, RED = .(, , ), .(, , )
WHITE, BLACK = .(, , ), .(, , )
(p, y, pupil)
(p, , , , y, WHITE, , , )
(p, , , , y, WHITE, , , )
(p, , , , y + , pupil, , , )
(p, , , , y + , pupil, , , )
(p)
(p, , , , , BLUE, , -, )
(p, , , , , BLUE, , -, )
(p, , , , , BLUE, , , )
(p, , , , , BLUE, , -, )
(p, , , , , BLUE, , , )
(p, , , , , BLUE, , , )
(p, , , , , PEACH, , , )
(p, , .(, , ))
(p, , , , , BLACK, , , )
(p, , , , , BLUE, , , )
(p, , , , , RED, , , )
(p, , , , , RED, , , )
(p)
(p, , , , , ORANGE, , , )
(p, , , , , WHITE, , , )
(p, , , , , ORANGE, , -, )
(p, , , , , WHITE, , -, )
(p, , , , , ORANGE, , , )
(p, , , , , WHITE, , , )
(p, , , , , ORANGE, , -, )
(p, , , , , ORANGE, , , )
(p, , , , , ORANGE, , , )
(p, , , , , ORANGE, , , )
(p, , , , , WHITE, , , )
(p, , .(, , ))
(p, , , , , BLACK, , , )
(p, , , , , RED, , , )
(p, , , , , RED, , , )
(p)
(p, , , , , RED, , -, )
(p, , , , , RED, , , )
(p, , , , , RED, , , )
(p, , , , , RED, , , )
(p, , , , , PEACH, , , )
(p, , .(, , ))
(p, , , , , BLACK, , , )
(p, , , , , RED, , , )
(p, , , , , WHITE, , , )
(p, , , , , WHITE, , , )
(p, , , , , WHITE, , , )
(p, , , , , RED, , , )
(p, , , , , RED, , , )
(p)
(p, , , , , .(, , ), , , )
(p, , , , , .(, , ), , -, )
(p, , , , , .(, , ), , , )
(p, , , , , .(, , ), , , )
cards = {}
selected =
okBtn, hint
()
okBtn
okBtn.BackgroundColor3 = selected .(, , ) .(, , )
hint.Text = selected
(key)
selected = key
k, c (cards)
on = (k == key)
c.stroke.Color = on .(, , ) .(, , )
c.stroke.Thickness = on
c.check.Visible = on
TweenService:(c.scale, TweenInfo.(), {Scale = on }):()
()
(i, key, name, draw)
x = + (i - ) *
f = .()
f.AnchorPoint = .(, )
f.Size = .(, )
f.Position = .(x, )
f.BackgroundColor3 = .(, , )
f.BorderSizePixel =
f.AutoButtonColor =
f.Text =
f.ZIndex =
f.Parent = panel
fg = .()
fg.Rotation =
fg.Color = ColorSequence.(.(, , ), .(, , ))
fg.Parent = f
stroke = .()
stroke.Color = .(, , )
stroke.Thickness =
stroke.ApplyStrokeMode = .ApplyStrokeMode.Border
stroke.Parent = f
scale = .()
scale.Parent = f
clip = .()
clip.Size = .(, , , )
clip.BackgroundTransparency =
clip.ClipsDescendants =
clip.ZIndex =
clip.Parent = f
s = ,
sh = (clip, , , + s * , , WHITE, , , )
sh.BackgroundTransparency =
portrait = .()
portrait.Size = .(, )
portrait.Position = .(, )
portrait.BackgroundTransparency =
portrait.ZIndex =
portrait.Parent = f
(portrait)
bar = .()
bar.Size = .(, , , )
bar.Position = .(, , , -)
bar.BackgroundColor3 = .(, , )
bar.BorderSizePixel =
bar.Font = .Font.GothamBlack
bar.TextSize =
bar.TextColor3 = .(, , )
bar.Text = name
bar.ZIndex =
bar.Parent = f
check = .()
check.Size = .(, )
check.Position = .(, -, , )
check.BackgroundColor3 = .(, , )
check.BorderSizePixel =
check.Font = .Font.GothamBlack
check.TextSize =
check.TextColor3 = .(, , )
check.Text =
check.TextScaled =
check.Visible =
check.ZIndex =
check.Parent = f
key
cards[key] = {f = f, stroke = stroke, scale = scale, check = check}
f.MouseButton1Click:(()
selected == key (key) (key)
)
(, , , silhouette)
(, , , sonic)
(, , , tails)
(, , , knuckles)
(, , , silhouette)
(text, x, onClick)
dot = (panel, , , x, , BLACK, , , )
b = .()
b.AnchorPoint = .(, )
b.Size = .(, )
b.Position = .(x + , )
b.BackgroundColor3 = .(, , )
b.BorderSizePixel =
b.Font = .Font.GothamBlack
b.TextSize =
b.TextColor3 = .(, , )
b.Text = text
b.ZIndex =
b.Parent = panel
c = .()
c.CornerRadius = .(, )
c.Parent = b
b.MouseButton1Click:(onClick)
b
okBtn = (, , ()
selected (selected)
)
(, , ()
launched
launched =
_, c (conns) c:()
gui:()
)
hint = .()
hint.AnchorPoint = .(, )
hint.Position = .(, , , )
hint.Size = .(, )
hint.BackgroundTransparency =
hint.Font = .Font.GothamBlack
hint.TextSize =
hint.TextColor3 = .(, , )
hint.TextStrokeColor3 = .(, , )
hint.TextStrokeTransparency =
hint.Text =
hint.ZIndex =
hint.Parent = gui
()
.(conns, RunService.RenderStepped:(()
a = (.(() * ) + ) /
hint.TextTransparency = a *
))
panel.Position = .(, , -, )
panelShadow.Position = .(, , -, )
TweenService:(panel, TweenInfo.(, .EasingStyle.Back, .EasingDirection.Out), {Position = .(, , , )}):()
TweenService:(panelShadow, TweenInfo.(, .EasingStyle.Back, .EasingDirection.Out), {Position = .(, , , )}):()This script allows you to pick between sonic tails and knuckles recommended in r15 games brookhaven works a tiny bit in forsaken but otherwise have fun it uses some game models which makes it cooler but yeah enjoy the movesets are all unique the only thing they all share is a spindash and tails spindash is a W.I.P

Universal