Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
Debris = :()
UserInputService = :()
ContentProvider = :()
TweenService = :()
Lighting = :()
SoundService = :()
lp = Players.LocalPlayer
playerGui = lp:()
camera = .CurrentCamera
().forsakenthingyguys
().forsakenthingyguys =
ins = .new
c3 = .fromRGB
ud2 = .new
v2 = .new
v3 = .new
isMobile = UserInputService.TouchEnabled UserInputService.KeyboardEnabled
(desktop, mobile)
isMobile mobile desktop
(obj, t, props)
TweenService:(obj,
TweenInfo.(t, .EasingStyle.Quint, .EasingDirection.Out),
props
):()
(id, vol, pitch)
s = ()
s.SoundId = .. (id)
s.Volume = vol
s.PlaybackSpeed = pitch
s.Parent = SoundService
s:()
Debris:(s, )
SFX_CLICK =
SFX_OPEN =
SFX_CLOSE =
P_ID =
B_ID =
I_ID =
W_ID =
R_ID =
SL_ID =
E1_ID =
C_ID =
H_ID =
BU_ID =
MM_ID =
S3_ID =
CD_ID =
UN_ID =
DP_ID =
WW_ID =
X_ID =
LW_ID =
S_ID =
RI_ID =
FACE_IDLE_ID =
FACE_EMOTE_ID=
ANIM_LIBRARY = {
idle = {
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
},
walk = {
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
},
run = {
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
},
punch = {
{ name = , combo = { } },
{ name = , combo = { } },
{ name = , combo = { } },
{ name = ,combo = { } },
{ name = , combo = { } },
{ name = , combo = { } },
{ name = , combo = { } },
{ name = , combo = { } },
},
block = {
{ name = , id = },
{ name = , id = },
{ name = , id = },
{ name = , id = },
},
}
activeAnims = { idle=, walk=, run=, punch=, block= }
LIVE = { idle=I_ID, walk=W_ID, run=R_ID, punch=P_ID, block=B_ID }
preloadIds = {
P_ID, B_ID, I_ID, W_ID, R_ID,
E1_ID, C_ID, H_ID, BU_ID, MM_ID,
S3_ID, CD_ID, UN_ID, DP_ID,
FACE_IDLE_ID, FACE_EMOTE_ID
}
active =
isSL =
ca =
st = {}
ir =
isConga =
headTrackRef =
faceTrackRef =
renderConn =
animateConns = {}
charAddedConn =
punchComboIndex =
lastPunchTime =
COMBO_WINDOW =
loadGui = ()
loadGui.Name =
loadGui.DisplayOrder =
loadGui.ResetOnSpawn =
loadGui.IgnoreGuiInset =
loadGui.Parent = playerGui
loadBg = ()
loadBg.Size = (,,,)
loadBg.BackgroundColor3= (,,)
loadBg.BorderSizePixel =
loadBg.Parent = loadGui
loadCard = ()
loadCard.Size = (,,,)
loadCard.Position = (,,,)
loadCard.AnchorPoint = (,)
loadCard.BackgroundColor3= (,,)
loadCard.BorderSizePixel =
loadCard.Parent = loadGui
lcc = (); lcc.CornerRadius = .(,); lcc.Parent = loadCard
lcs = (); lcs.Color = (,,); lcs.Thickness = ; lcs.Transparency = ; lcs.Parent = loadCard
loadTitle = ()
loadTitle.Size = (,,,); loadTitle.Position = (,,,)
loadTitle.BackgroundTransparency = ; loadTitle.Text =
loadTitle.TextColor3 = (,,); loadTitle.Font = .Font.GothamBlack
loadTitle.TextSize = ; loadTitle.Parent = loadCard
loadSub = ()
loadSub.Size = (,,,); loadSub.Position = (,,,)
loadSub.BackgroundTransparency = ; loadSub.Text =
loadSub.TextColor3 = (,,); loadSub.Font = .Font.GothamBold
loadSub.TextSize = ; loadSub.Parent = loadCard
barTrack = ()
barTrack.Size = (,,,); barTrack.Position = (,,,)
barTrack.AnchorPoint = (,); barTrack.BackgroundColor3 = (,,)
barTrack.BorderSizePixel = ; barTrack.Parent = loadCard
bttc = (); bttc.CornerRadius = .(,); bttc.Parent = barTrack
barFill = ()
barFill.Size = (,,,); barFill.BackgroundColor3 = (,,)
barFill.BorderSizePixel = ; barFill.Parent = barTrack
bfc = (); bfc.CornerRadius = .(,); bfc.Parent = barFill
loadPct = ()
loadPct.Size = (,,,); loadPct.Position = (,,,)
loadPct.BackgroundTransparency = ; loadPct.Text =
loadPct.TextColor3 = (,,); loadPct.Font = .Font.Gotham
loadPct.TextSize = ; loadPct.Parent = loadCard
animObjects = {}
_, id (preloadIds)
a = (); a.AnimationId = id; .(animObjects, a)
i, animObj (animObjects)
ContentProvider:({animObj})
progress = i / #animObjects
TweenService:(barFill, TweenInfo.(, .EasingStyle.Quad), {Size = (progress,,,)}):()
loadSub.Text = .. .(progress*) ..
loadPct.Text = .(progress*) ..
.()
(loadCard, , {BackgroundTransparency=})
(loadTitle, , {TextTransparency=}); (loadSub, , {TextTransparency=})
(loadPct, , {TextTransparency=}); (barTrack, , {BackgroundTransparency=})
(barFill, , {BackgroundTransparency=}); (loadBg, , {BackgroundTransparency=})
.()
loadGui:()
gui = ()
gui.Name = ; gui.ResetOnSpawn =
gui.IgnoreGuiInset = ; gui.ZIndexBehavior = .ZIndexBehavior.Sibling
gui.Parent = playerGui
blur = (); blur.Size = ; blur.Parent = Lighting
hudW = (, .(.CurrentCamera.ViewportSize.X - , ))
hudH = (, )
holder = ()
holder.AnchorPoint = (,)
holder.Position = (,-,,-)
holder.Size = (,hudW,,hudH)
holder.BackgroundTransparency =
holder.Visible =
holder.Parent = gui
isMobile
holder.AnchorPoint = (,)
holder.Position = (,,,- )
bg = ()
bg.Size = (,,,)
bg.BackgroundColor3= (,,)
bg.BackgroundTransparency =
bg.BorderSizePixel =
bg.Parent = holder
bgInner = ()
bgInner.Size = (,-,,-); bgInner.Position = (,,,)
bgInner.BackgroundColor3 = (,,); bgInner.BackgroundTransparency =
bgInner.BorderSizePixel = ; bgInner.Parent = holder
(, bg).CornerRadius = .(,)
(, bgInner).CornerRadius = .(,)
portraitSize = (, )
portraitHolder = ()
portraitHolder.Size = (,portraitSize,,portraitSize)
portraitHolder.Position = (,,,-portraitSize/)
portraitHolder.BackgroundColor3= (,,)
portraitHolder.BorderSizePixel =
portraitHolder.Parent = holder
(, portraitHolder).CornerRadius = .(,)
ring = (); ring.Color = (,,); ring.Thickness = ; ring.Parent = portraitHolder
avatar = ()
avatar.BackgroundTransparency = ; avatar.Size = (,-,,-); avatar.Position = (,,,)
avatar.Parent = portraitHolder
(, avatar).CornerRadius = .(,)
ok, thumb = (()
Players:(lp.UserId, .ThumbnailType.HeadShot, .ThumbnailSize.Size420x420)
)
avatar.Image = ok thumb
nameLabel = ()
nameLabel.BackgroundTransparency =
nameLabel.Position = (,,,portraitSize + )
nameLabel.Size = (,portraitSize+,,)
nameLabel.Font = .Font.GothamBold
nameLabel.Text = lp.DisplayName
nameLabel.TextColor3= (,,)
nameLabel.TextSize = (, )
nameLabel.TextXAlignment = .TextXAlignment.Center
nameLabel.Parent = holder
barXOffset = portraitSize +
barW = (, hudW - barXOffset - )
(yOffset, iconText, iconColor, fillColor, lowColor)
icon = ()
icon.BackgroundTransparency =
icon.Position = (, portraitSize + , , yOffset)
icon.Size = (, , , )
icon.Text = iconText
icon.TextScaled =
icon.Font = .Font.GothamBold
icon.TextColor3 = iconColor
icon.Parent = holder
track = ()
track.Size = (, barW, , (,))
track.Position = (, barXOffset + , , yOffset + )
track.BackgroundColor3= (,,)
track.BorderSizePixel =
track.Parent = holder
(, track).CornerRadius = .(,)
fill = ()
fill.Size = (,,,)
fill.BackgroundColor3= fillColor
fill.BorderSizePixel =
fill.Parent = track
(, fill).CornerRadius = .(,)
shine = ()
shine.Size = (,,,); shine.BackgroundColor3 = (,,)
shine.BackgroundTransparency = ; shine.BorderSizePixel =
shine.ZIndex = ; shine.Parent = fill
(, shine).CornerRadius = .(,)
valLabel = ()
valLabel.BackgroundTransparency =
valLabel.Position = (, , , -)
valLabel.Size = (, , , )
valLabel.Font = .Font.GothamBold
valLabel.TextSize = (,)
valLabel.TextColor3 = (,,)
valLabel.Text =
valLabel.TextXAlignment = .TextXAlignment.Left
valLabel.Parent = track
fill, valLabel, fillColor, lowColor
barY1 = (, )
barY2 = (, )
healthFill, healthText, hpNorm, hpLow = (barY1, , (,,), (,,), (,,))
staminaFill, staminaText, stNorm, stLow = (barY2, , (,,),(,,),(,,))
watermark = ()
watermark.BackgroundTransparency =
watermark.Size = (,,,)
watermark.Position = (,,,-)
watermark.Font = .Font.GothamBold
watermark.Text =
watermark.TextColor3 = (,,)
watermark.TextSize =
watermark.TextXAlignment = .TextXAlignment.Center
watermark.Parent = gui
sg = ()
sg.Name = ; sg.ResetOnSpawn = ; sg.Parent = playerGui
BTN_MAIN = ((,,,), (,,,))
BTN_SMALL = ((,,,), (,,,))
(p, t)
isMobile
h = ()
h.Size = (,,,); h.Position = (,,,-)
h.BackgroundTransparency = ; h.Text = .. t ..
h.TextColor3 = (,,); h.TextStrokeTransparency =
h.Font = .Font.GothamBold; h.TextSize = ; h.Parent = p
(parent, zIdx)
b = ()
b.BackgroundColor3 = (,,); b.BackgroundTransparency =
b.BorderSizePixel = ; b.ZIndex = zIdx ; b.Parent = parent
(, b).CornerRadius = .(, (, ))
s = (); s.Color = (,,); s.Thickness = ; s.Transparency = ; s.Parent = b
b, s
mobileBar
mobileSprint, mobileBlock, mobilePunch, mobileShiftlock, mobileEmote, mobileAnims
isMobile
mobileBar = ()
mobileBar.AnchorPoint = (, )
mobileBar.Position = (, , , -)
mobileBar.Size = (, -, , )
mobileBar.BackgroundColor3= (, , )
mobileBar.BackgroundTransparency =
mobileBar.BorderSizePixel =
mobileBar.ZIndex =
mobileBar.Parent = sg
(, mobileBar).CornerRadius = .(, )
mbs = (); mbs.Color = (,,); mbs.Thickness = ; mbs.Transparency = ; mbs.Parent = mobileBar
barList = ()
barList.FillDirection = .FillDirection.Horizontal
barList.HorizontalAlignment = .HorizontalAlignment.Center
barList.VerticalAlignment = .VerticalAlignment.Center
barList.Padding = .(, )
barList.Parent = mobileBar
barPad = ()
barPad.PaddingLeft = .(,); barPad.PaddingRight = .(,)
barPad.Parent = mobileBar
(label, color, accent)
btn = ()
btn.Size = (, , , )
btn.BackgroundColor3 = color (,,)
btn.BackgroundTransparency =
btn.Text = label
btn.TextColor3 = accent (, , )
btn.Font = .Font.GothamBlack
btn.TextSize =
btn.BorderSizePixel =
btn.AutoButtonColor =
btn.ZIndex =
btn.Parent = mobileBar
(, btn).CornerRadius = .(, )
s = (); s.Color = accent (,,); s.Thickness = ; s.Transparency = ; s.Parent = btn
btn.MouseButton1Down:(() (btn,,{BackgroundTransparency=}) )
btn.MouseButton1Up:(() (btn,,{BackgroundTransparency=}) )
btn
mobileSprint = (, (,,), (,,))
mobilePunch = (, (,,), (,,))
mobileBlock = (, (,,), (,,))
mobileEmote = (, (,,), (,,))
mobileShiftlock = (, (,,), (,,))
mobileAnims = (, (,,), (,,))
rb, slb, pb, bb
isMobile
(n, id, pos, size, hotkey)
b = ()
b.Name = n; b.Size = size; b.Position = pos
b.Image = ((id)== id:() id) ..(id)
b.BackgroundColor3 = (,,); b.BackgroundTransparency =
b.BorderSizePixel = ; b.ImageColor3 = (,,); b.Parent = sg
(, b).CornerRadius = .(,)
bs = (); bs.Color = (,,); bs.Thickness = ; bs.Transparency = ; bs.Parent = b
b.MouseEnter:(()
(b, , {BackgroundTransparency=})
(SFX_CLICK, , )
)
b.MouseLeave:(() (b, , {BackgroundTransparency=}) )
b.MouseButton1Click:(() (SFX_CLICK, , ) )
hotkey (b, hotkey)
b
rb = (, , (,-,,-), BTN_MAIN, ); rb.AnchorPoint = (,)
slb = (, SL_ID, (,-,,-), BTN_SMALL, ); slb.AnchorPoint = (,)
pb = (, , (,-,,-), BTN_SMALL, ); pb.AnchorPoint = (,)
bb = (, , (,-,,-), BTN_SMALL, ); bb.AnchorPoint = (,)
eb
isMobile
eb = ()
eb.Name = ; eb.Size = BTN_SMALL
eb.Position = (, , , -); eb.AnchorPoint = (,)
eb.BackgroundColor3 = (,,); eb.BackgroundTransparency =
eb.Text = ; eb.TextColor3 = (,,)
eb.Font = .Font.GothamBold; eb.TextSize =
eb.BorderSizePixel = ; eb.AutoButtonColor = ; eb.Parent = sg
(, eb).CornerRadius = .(,)
ebs = (); ebs.Color = (,,); ebs.Thickness = ; ebs.Transparency = ; ebs.Parent = eb
dragHint = ()
dragHint.BackgroundTransparency = ; dragHint.Size = (,,,)
dragHint.Position = (,,,); dragHint.Text =
dragHint.TextColor3 = (,,); dragHint.Font = .Font.Gotham
dragHint.TextSize = ; dragHint.Parent = eb
eb.MouseEnter:(()
(eb, , {BackgroundTransparency=})
(SFX_CLICK, , )
)
eb.MouseLeave:(() (eb, , {BackgroundTransparency=}) )
draggingEmote =
dragStartPos
dragMoved =
eb.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1
input.UserInputType == .UserInputType.Touch
draggingEmote =
dragMoved =
absPos = eb.AbsolutePosition
absSize = sg.AbsoluteSize
dragStartPos = {
x = absPos.X / absSize.X,
y = absPos.Y / absSize.Y,
mx = input.Position.X,
my = input.Position.Y
}
)
UserInputService.InputChanged:((input)
draggingEmote
input.UserInputType == .UserInputType.MouseMovement
input.UserInputType == .UserInputType.Touch
dx = input.Position.X - dragStartPos.mx
dy = input.Position.Y - dragStartPos.my
.(dx*dx + dy*dy) >
dragMoved =
screenSize = sg.AbsoluteSize
newX = .(dragStartPos.x + dx/screenSize.X, , -(eb.AbsoluteSize.X/screenSize.X))
newY = .(dragStartPos.y + dy/screenSize.Y, , -(eb.AbsoluteSize.Y/screenSize.Y))
eb.AnchorPoint = (,)
eb.Position = (newX,,newY,)
)
UserInputService.InputEnded:((input)
input.UserInputType == .UserInputType.MouseButton1
input.UserInputType == .UserInputType.Touch
draggingEmote =
)
eb.MouseButton1Click:(()
dragMoved
ef.Visible = ef.Visible
ef.Visible animPanel.Visible =
(ef.Visible SFX_OPEN SFX_CLOSE, , )
)
emoteMenuW = (, .(.CurrentCamera.ViewportSize.X - , ))
emoteMenuH = (, )
ef = ()
ef.Name =
ef.Size = (, emoteMenuW, , emoteMenuH)
ef.BackgroundColor3 = (,,); ef.BackgroundTransparency =
ef.BorderSizePixel = ; ef.Visible = ; ef.Parent = sg; ef.ZIndex =
(, ef).CornerRadius = .(,)
efs = (); efs.Color = (,,); efs.Thickness = ; efs.Transparency = ; efs.Parent = ef
isMobile
ef.AnchorPoint = (, )
ef.Position = (, , , -)
ef.Position = (, , , -); ef.AnchorPoint = (,)
efTitle = ()
efTitle.Size = (,,,); efTitle.Position = (,,,)
efTitle.BackgroundTransparency = ; efTitle.Text =
efTitle.TextColor3 = (,,); efTitle.Font = .Font.GothamBlack
efTitle.TextSize = ; efTitle.ZIndex = ; efTitle.Parent = ef
sf = ()
sf.Size = (,-,,-); sf.Position = (,,,)
sf.BackgroundTransparency = ; sf.CanvasSize = (,,,)
sf.AutomaticCanvasSize = .AutomaticSize.Y; sf.ScrollBarThickness =
sf.ScrollBarImageColor3 = (,,); sf.ZIndex = ; sf.Parent = ef
uiList = (); uiList.Padding = .(,); uiList.Parent = sf
stopE = ()
stopE.Name =
stopE.Size = (,,,(,))
stopE.BackgroundColor3 = (,,); stopE.BackgroundTransparency =
stopE.Text = ; stopE.TextColor3 = (,,)
stopE.Font = .Font.GothamBold; stopE.TextSize = (,)
stopE.BorderSizePixel = ; stopE.AutoButtonColor =
stopE.Visible = ; stopE.ZIndex = ; stopE.Parent = sg
(, stopE).CornerRadius = .(,)
stopE.MouseEnter:(() (stopE,,{BackgroundColor3=(,,)}); (SFX_CLICK,,) )
stopE.MouseLeave:(() (stopE,,{BackgroundColor3=(,,)}) )
stopE.MouseButton1Click:(() (SFX_CLICK,,) )
isMobile
stopE.AnchorPoint = (,)
stopE.Position = (,,,-)
stopE.Size = (,,,)
stopE.AnchorPoint = (,)
stopE.Position = (,,,-)
animBtn
isMobile
animBtn = ()
animBtn.Name = ; animBtn.Size = BTN_SMALL
animBtn.Position = (,,,-); animBtn.AnchorPoint = (,)
animBtn.BackgroundColor3 = (,,); animBtn.BackgroundTransparency =
animBtn.Text = ; animBtn.TextColor3 = (,,)
animBtn.Font = .Font.GothamBold; animBtn.TextSize =
animBtn.BorderSizePixel = ; animBtn.AutoButtonColor = ; animBtn.Parent = sg
(, animBtn).CornerRadius = .(,)
animBtnS = (); animBtnS.Color = (,,); animBtnS.Thickness = ; animBtnS.Transparency = ; animBtnS.Parent = animBtn
animBtn.MouseEnter:(() (animBtn,,{BackgroundTransparency=}); (SFX_CLICK,,) )
animBtn.MouseLeave:(() (animBtn,,{BackgroundTransparency=}) )
animBtn.MouseButton1Click:(() (SFX_CLICK,,) )
panelW = (, .(.CurrentCamera.ViewportSize.X - , ))
panelH = (, .(.CurrentCamera.ViewportSize.Y - , ))
animPanel = ()
animPanel.Name =
animPanel.Size = (,panelW,,panelH)
animPanel.Position = (,,,); animPanel.AnchorPoint = (,)
animPanel.BackgroundColor3 = (,,); animPanel.BackgroundTransparency =
animPanel.BorderSizePixel = ; animPanel.Visible = ; animPanel.ZIndex =
animPanel.Parent = sg
(, animPanel).CornerRadius = .(,)
aps = (); aps.Color = (,,); aps.Thickness = ; aps.Transparency = ; aps.Parent = animPanel
apTitleBar = ()
apTitleBar.Size = (,,,); apTitleBar.BackgroundColor3 = (,,)
apTitleBar.BorderSizePixel = ; apTitleBar.ZIndex = ; apTitleBar.Parent = animPanel
(, apTitleBar).CornerRadius = .(,)
apTitleBarFill = ()
apTitleBarFill.Size = (,,,); apTitleBarFill.Position = (,,,-)
apTitleBarFill.BackgroundColor3 = (,,); apTitleBarFill.BorderSizePixel =
apTitleBarFill.ZIndex = ; apTitleBarFill.Parent = apTitleBar
apAccent = ()
apAccent.Size = (,,,); apAccent.Position = (,,,)
apAccent.AnchorPoint = (,); apAccent.BackgroundColor3 = (,,)
apAccent.BorderSizePixel = ; apAccent.ZIndex = ; apAccent.Parent = animPanel
(, apAccent).CornerRadius = .(,)
apTitle = ()
apTitle.BackgroundTransparency = ; apTitle.Size = (,-,,)
apTitle.Position = (,,,); apTitle.Text =
apTitle.TextColor3 = (,,); apTitle.Font = .Font.GothamBlack
apTitle.TextSize = (,); apTitle.TextXAlignment = .TextXAlignment.Left
apTitle.ZIndex = ; apTitle.Parent = apTitleBar
apCloseBtn = ()
apCloseBtn.Size = (,(,),,(,))
apCloseBtn.Position = (,-,,-((,)/))
apCloseBtn.BackgroundColor3 = (,,); apCloseBtn.BackgroundTransparency =
apCloseBtn.Text = ; apCloseBtn.TextColor3 = (,,)
apCloseBtn.Font = .Font.GothamBold; apCloseBtn.TextSize = (,)
apCloseBtn.BorderSizePixel = ; apCloseBtn.AutoButtonColor =
apCloseBtn.ZIndex = ; apCloseBtn.Parent = apTitleBar
(, apCloseBtn).CornerRadius = .(,)
apCloseBtn.MouseEnter:(() (apCloseBtn,,{BackgroundColor3=(,,)}); (SFX_CLICK,,) )
apCloseBtn.MouseLeave:(() (apCloseBtn,,{BackgroundColor3=(,,)}) )
apCloseBtn.MouseButton1Click:(()
(SFX_CLOSE,,); animPanel.Visible =
)
TAB_NAMES = {,,,,}
TAB_SLOTS = {,,,,}
TAB_COLORS = {
idle = (,,), walk = (,,),
run = (,,), punch = (,,), block = (,,),
}
tabHolder = ()
tabHolder.Size = (,-,,); tabHolder.Position = (,,,)
tabHolder.BackgroundTransparency = ; tabHolder.ZIndex = ; tabHolder.Parent = animPanel
tabLayout = ()
tabLayout.FillDirection = .FillDirection.Horizontal
tabLayout.Padding = .(,); tabLayout.Parent = tabHolder
currentTab =
tabBtns = {}
slotFrames = {}
(slot)
currentTab = slot
s, f (slotFrames) f.Visible = (s == slot)
s, btn (tabBtns)
col = TAB_COLORS[s]
s == slot
(btn,,{BackgroundColor3=col,BackgroundTransparency=})
btn.TextColor3 = (,,)
(btn,,{BackgroundColor3=(,,),BackgroundTransparency=})
btn.TextColor3 = (,,)
tabBtnW = .((panelW - - *) / )
i, name (TAB_NAMES)
slot = TAB_SLOTS[i]
tb = ()
tb.Size = (, tabBtnW, , )
tb.BackgroundColor3 = (,,); tb.BackgroundTransparency =
tb.Text = name; tb.TextColor3 = (,,)
tb.Font = .Font.GothamBold; tb.TextSize = (,)
tb.BorderSizePixel = ; tb.AutoButtonColor = ; tb.ZIndex = ; tb.Parent = tabHolder
(, tb).CornerRadius = .(,)
tb.MouseEnter:(() (SFX_CLICK,,) )
tb.MouseButton1Click:(()
(SFX_CLICK,,); (slot)
)
tabBtns[slot] = tb
contentArea = ()
contentArea.Size = (,-,,-); contentArea.Position = (,,,)
contentArea.BackgroundTransparency = ; contentArea.ZIndex = ; contentArea.Parent = animPanel
(parent, label, subLabel, zIdx)
rowH = (, )
row = ()
row.Size = (,,,rowH)
row.BackgroundColor3 = (,,); row.BackgroundTransparency =
row.Text = ; row.BorderSizePixel = ; row.AutoButtonColor =
row.ZIndex = zIdx; row.Parent = parent
(, row).CornerRadius = .(,)
rs = (); rs.Color = (,,); rs.Thickness = ; rs.Transparency = ; rs.Parent = row
nameL = ()
nameL.BackgroundTransparency = ; nameL.Size = (,-,,)
nameL.Position = (,,,(,)); nameL.Text = label
nameL.TextColor3 = (,,); nameL.Font = .Font.GothamBold
nameL.TextSize = (,); nameL.TextXAlignment = .TextXAlignment.Left
nameL.ZIndex = zIdx+; nameL.Parent = row
subLabel subLabel ~=
subL = ()
subL.BackgroundTransparency = ; subL.Size = (,-,,)
subL.Position = (,,,(,)); subL.Text = subLabel
subL.TextColor3 = (,,); subL.Font = .Font.Gotham
subL.TextSize = (,); subL.TextXAlignment = .TextXAlignment.Left
subL.ZIndex = zIdx+; subL.Parent = row
check = ()
check.BackgroundTransparency = ; check.Size = (,,,)
check.Position = (,-,,); check.Text =
check.TextColor3 = (,,); check.Font = .Font.GothamBold
check.TextSize = ; check.ZIndex = zIdx+; check.Parent = row
row.MouseEnter:(() (row,,{BackgroundColor3=(,,)}); (SFX_CLICK,,) )
row.MouseLeave:(() (row,,{BackgroundColor3=(,,)}) )
row, check, rs
activeLabels = {}
(slot, zOff)
frame = ()
frame.Size = (,,,); frame.BackgroundTransparency =
frame.CanvasSize = (,,,); frame.AutomaticCanvasSize = .AutomaticSize.Y
frame.ScrollBarThickness = ; frame.ScrollBarImageColor3 = (,,)
frame.ZIndex = +zOff; frame.Visible = ; frame.Parent = contentArea
fLayout = (); fLayout.Padding = .(,); fLayout.Parent = frame
activeLbl = ()
activeLbl.BackgroundTransparency = ; activeLbl.Size = (,,,)
activeLbl.Text = .. ANIM_LIBRARY[slot][activeAnims[slot]].name
activeLbl.TextColor3 = TAB_COLORS[slot]; activeLbl.Font = .Font.GothamBold
activeLbl.TextSize = ; activeLbl.TextXAlignment = .TextXAlignment.Left
activeLbl.ZIndex = +zOff; activeLbl.Parent = frame
activeLabels[slot] = activeLbl
checkRefs = {}
()
idx, refs (checkRefs)
refs.check.Text = (idx == activeAnims[slot])
refs.stroke.Color = (idx == activeAnims[slot]) TAB_COLORS[slot] (,,)
refs.stroke.Transparency = (idx == activeAnims[slot])
activeLbl.Text = .. ANIM_LIBRARY[slot][activeAnims[slot]].name
idx, entry (ANIM_LIBRARY[slot])
sub =
entry.combo
sub = #entry.combo == (#entry.combo .. )
btn, check, stroke = (frame, entry.name, sub, +zOff)
.(checkRefs, { check=check, stroke=stroke })
capturedIdx = idx
btn.MouseButton1Click:(()
(SFX_CLICK,,)
activeAnims[slot] = capturedIdx
slot ==
LIVE.punch = entry.combo entry.combo[] entry.id
LIVE[slot] = entry.id
st = {}
slot == punchComboIndex=; lastPunchTime=
()
)
()
frame
i, slot (TAB_SLOTS)
slotFrames[slot] = (slot, i)
()
animPanelOpen =
()
animPanelOpen = animPanelOpen
animPanel.Visible = animPanelOpen
animPanelOpen
(SFX_OPEN,,)
ef.Visible =
credPanel credPanel.Visible =
(SFX_CLOSE,,)
animBtn
animBtn.MouseButton1Click:(toggleAnimPanel)
mobileAnims
mobileAnims.MouseButton1Click:(()
(SFX_CLICK,,); ()
)
credBtn = ()
credBtn.Size = (,,,); credBtn.Position = (,,,)
credBtn.AnchorPoint = (,); credBtn.BackgroundColor3 = (,,)
credBtn.BackgroundTransparency = ; credBtn.Text =
credBtn.TextColor3 = (,,); credBtn.Font = .Font.GothamBold
credBtn.TextSize = ; credBtn.BorderSizePixel = ; credBtn.AutoButtonColor =
credBtn.Parent = sg
(, credBtn).CornerRadius = .(,)
cbs = (); cbs.Color = (,,); cbs.Thickness = ; cbs.Transparency = ; cbs.Parent = credBtn
credBtn.MouseEnter:(() (credBtn,,{BackgroundTransparency=}); (SFX_CLICK,,) )
credBtn.MouseLeave:(() (credBtn,,{BackgroundTransparency=}) )
credPanel = ()
credPanel.Size = (,,,); credPanel.Position = (,,,)
credPanel.AnchorPoint = (,); credPanel.BackgroundColor3 = (,,)
credPanel.BackgroundTransparency = ; credPanel.BorderSizePixel =
credPanel.Visible = ; credPanel.ZIndex = ; credPanel.Parent = sg
(, credPanel).CornerRadius = .(,)
cps = (); cps.Color = (,,); cps.Thickness = ; cps.Transparency = ; cps.Parent = credPanel
credAccent = ()
credAccent.Size = (,,,); credAccent.Position = (,,,)
credAccent.AnchorPoint = (,); credAccent.BackgroundColor3 = (,,)
credAccent.BorderSizePixel = ; credAccent.ZIndex = ; credAccent.Parent = credPanel
(, credAccent).CornerRadius = .(,)
credTitle = ()
credTitle.BackgroundTransparency = ; credTitle.Size = (,,,)
credTitle.Position = (,,,); credTitle.Text =
credTitle.TextColor3 = (,,); credTitle.Font = .Font.GothamBlack
credTitle.TextSize = ; credTitle.ZIndex = ; credTitle.Parent = credPanel
credEntries = {
{, , (,,)},
{, , (,,)},
{, , (,,)},
}
i, entry (credEntries)
row = ()
row.Size = (,-,,); row.Position = (,,,+(i-)*)
row.BackgroundTransparency = ; row.ZIndex = ; row.Parent = credPanel
roleLabel = ()
roleLabel.BackgroundTransparency = ; roleLabel.Size = (,,,)
roleLabel.Text = entry[]; roleLabel.TextColor3 = (,,)
roleLabel.Font = .Font.GothamBold; roleLabel.TextSize =
roleLabel.TextXAlignment = .TextXAlignment.Left; roleLabel.ZIndex = ; roleLabel.Parent = row
nameL = ()
nameL.BackgroundTransparency = ; nameL.Size = (,,,)
nameL.Position = (,,,); nameL.Text = entry[]
nameL.TextColor3 = entry[]; nameL.Font = .Font.GothamBold
nameL.TextSize = ; nameL.TextXAlignment = .TextXAlignment.Right
nameL.ZIndex = ; nameL.Parent = row
closeCredBtn = ()
closeCredBtn.Size = (,,,); closeCredBtn.Position = (,,,-)
closeCredBtn.AnchorPoint = (,); closeCredBtn.BackgroundColor3 = (,,)
closeCredBtn.BackgroundTransparency = ; closeCredBtn.Text =
closeCredBtn.TextColor3 = (,,); closeCredBtn.Font = .Font.GothamBold
closeCredBtn.TextSize = ; closeCredBtn.BorderSizePixel = ; closeCredBtn.AutoButtonColor =
closeCredBtn.ZIndex = ; closeCredBtn.Parent = credPanel
(, closeCredBtn).CornerRadius = .(,)
closeCredBtn.MouseEnter:(() (closeCredBtn,,{BackgroundColor3=(,,)}); (SFX_CLICK,,) )
closeCredBtn.MouseLeave:(() (closeCredBtn,,{BackgroundColor3=(,,)}) )
closeCredBtn.MouseButton1Click:(()
(SFX_CLOSE,,); credPanel.Visible =
)
credBtn.MouseButton1Click:(()
(SFX_OPEN,,)
credPanel.Visible = credPanel.Visible
credPanel.Visible animPanel.Visible =
)
xb = ()
xb.Size = (,,,); xb.Position = (,,,)
xb.AnchorPoint = (,); xb.Image =
xb.BackgroundColor3 = (,,); xb.BackgroundTransparency =
xb.BorderSizePixel = ; xb.Parent = sg
(, xb).CornerRadius = .(,)
xb.MouseEnter:(() (SFX_CLICK,,) )
xb.MouseButton1Click:(() (SFX_CLICK,,) )
cf = ()
cf.Size = (,,,); cf.Position = (,-,,-)
cf.BackgroundColor3 = (,,); cf.BackgroundTransparency =
cf.BorderSizePixel = ; cf.Visible = ; cf.ZIndex = ; cf.Parent = sg
(, cf).CornerRadius = .(,)
cfs2 = (); cfs2.Color = (,,); cfs2.Thickness = ; cfs2.Transparency = ; cfs2.Parent = cf
cl = ()
cl.Size = (,-,,); cl.Position = (,,,)
cl.BackgroundTransparency = ; cl.Text =
cl.TextColor3 = (,,); cl.TextWrapped =
cl.Font = .Font.GothamBold; cl.TextSize = ; cl.ZIndex = ; cl.Parent = cf
(n, t, xpos, clr)
b = ()
b.Name = n; b.Size = (,,,); b.Position = (,xpos,,)
b.BackgroundColor3 = clr; b.BackgroundTransparency =
b.Text = t; b.TextColor3 = (,,)
b.Font = .Font.GothamBold; b.TextSize =
b.BorderSizePixel = ; b.AutoButtonColor = ; b.ZIndex = ; b.Parent = cf
(, b).CornerRadius = .(,)
b.MouseEnter:(() (SFX_CLICK,,) )
b.MouseButton1Click:(() (SFX_CLICK,,) )
b
bn = (, , , (,,))
by = (, , , (,,))
bn.MouseEnter:(() (bn,,{BackgroundColor3=(,,)}) )
bn.MouseLeave:(() (bn,,{BackgroundColor3=(,,)}) )
by.MouseEnter:(() (by,,{BackgroundColor3=(,,)}) )
by.MouseLeave:(() (by,,{BackgroundColor3=(,,)}) )
(name, id)
btnH = (, )
b = ()
b.Size = (,,,btnH); b.BackgroundColor3 = (,,)
b.BackgroundTransparency = ; b.Text = name
b.TextColor3 = (,,); b.Font = .Font.GothamBold
b.TextSize = (,); b.BorderSizePixel =
b.AutoButtonColor = ; b.ZIndex = ; b.Parent = sf
(, b).CornerRadius = .(,)
b.MouseEnter:(() (b,,{BackgroundTransparency=}); (SFX_CLICK,,) )
b.MouseLeave:(() (b,,{BackgroundTransparency=}) )
b.MouseButton1Click:(()
(SFX_OPEN,,)
(id)
)
(animator, id)
anim = (); anim.AnimationId = id
animator:(anim)
(animator)
_, t (animator:())
t ~= headTrackRef t ~= ca t ~= faceTrackRef t:()
()
ca ca:(); ca =
(isEmoting, animator)
animator
isEmoting
faceTrackRef
ok2, fid = (() faceTrackRef.Animation.AnimationId )
ok2 fid == FACE_IDLE_ID faceTrackRef:(); faceTrackRef =
faceTrackRef
fa = (); fa.AnimationId = FACE_EMOTE_ID
faceTrackRef = animator:(fa)
faceTrackRef.Priority = .AnimationPriority.Action4; faceTrackRef.Looped =
faceTrackRef:()
faceTrackRef
ok2, fid = (() faceTrackRef.Animation.AnimationId )
ok2 fid == FACE_EMOTE_ID faceTrackRef:(); faceTrackRef =
faceTrackRef
fa = (); fa.AnimationId = FACE_IDLE_ID
faceTrackRef = animator:(fa)
faceTrackRef.Priority = .AnimationPriority.Action4; faceTrackRef.Looped =
faceTrackRef:()
(track)
track
ok2, id = (() track.Animation.AnimationId )
ok2 id
(char, hum, animator)
active char hum animator
ca ca.IsPlaying
rp = char:()
rp
vel = (rp.AssemblyLinearVelocity.X, , rp.AssemblyLinearVelocity.Z)
moving = vel.Magnitude >
state =
moving state = ir
liveIdle = LIVE.idle
liveWalk = LIVE.walk
liveRun = LIVE.run
k, t (st)
k ~= state t t.IsPlaying t:()
state ==
st.idle st.idle.IsPlaying (st.idle) ~= liveIdle
st.idle:(); st.idle =
st.idle st.idle.IsPlaying
(animator)
st.idle = (animator, liveIdle)
st.idle.Priority = .AnimationPriority.Idle; st.idle:()
hum.WalkSpeed =
state ==
st.walk st.walk.IsPlaying (st.walk) ~= liveWalk
st.walk:(); st.walk =
st.walk st.walk.IsPlaying
(animator)
st.walk = (animator, liveWalk)
st.walk.Priority = .AnimationPriority.Movement; st.walk:()
st.walk:(); hum.WalkSpeed =
state ==
st.run st.run.IsPlaying (st.run) ~= liveRun
st.run:(); st.run =
st.run st.run.IsPlaying
(animator)
st.run = (animator, liveRun)
st.run.Priority = .AnimationPriority.Movement; st.run:()
st.run:()
hum.WalkSpeed =
(id)
char = lp.Character
hum = char char:()
anim = hum hum:()
anim
ef.Visible = ; (); (anim)
t = (anim, id); ca = t
t.Looped = ; t.Priority = .AnimationPriority.Action3
isConga = (id == C_ID)
hum.WalkSpeed = isConga
t:(); stopE.Visible = ; (, anim)
.(()
ca == t t.IsPlaying (anim); .()
)
()
(); isConga = ; stopE.Visible =
(SFX_CLOSE, , )
char = lp.Character
hum = char char:()
anim = hum hum:()
hum hum.WalkSpeed = ir
anim (, anim)
()
stopE.Visible
char = lp.Character
hum = char char:()
rp = char char:()
anim = hum hum:()
anim rp
comboEntry = ANIM_LIBRARY.punch[activeAnims.punch]
combo = comboEntry.combo { comboEntry.id }
now = ()
now - lastPunchTime > COMBO_WINDOW punchComboIndex =
lastPunchTime = now
hitId = combo[punchComboIndex]
punchComboIndex = punchComboIndex % #combo +
(); (anim)
t = (anim, hitId); ca = t
t.Priority = .AnimationPriority.Action2
t.Length == t:():()
PUNCH_SPEED =
hum.WalkSpeed =
t:(); t:(PUNCH_SPEED)
(, anim)
att = (, rp)
vl = ()
vl.MaxForce =
vl.VectorVelocity = rp.CFrame.LookVector *
vl.Attachment0 = att; vl.Parent = rp
Debris:(vl, ); Debris:(att, )
.(t.Length / PUNCH_SPEED)
ca == t
t:(); ca =
hum.WalkSpeed = ir
(, anim)
()
stopE.Visible
char = lp.Character
hum = char char:()
anim = hum hum:()
anim
(); (anim)
t = (anim, LIVE.block); ca = t
t.Priority = .AnimationPriority.Action2
t.Length == t:():()
hum.WalkSpeed = ; t:(); t:()
(, anim)
.((t.Length * ) / ); t:(); t.Stopped:()
.()
ca == t ca = ; hum.WalkSpeed = ir ; (, anim)
(state)
ir = state
rb rb.ImageColor3 = ir (,,) (,,)
mobileSprint
mobileSprint.BackgroundColor3 = ir (,,) (,,)
char = lp.Character
hum = char char:()
hum (ca ca.IsPlaying) hum.WalkSpeed = ir
UserInputService.InputBegan:((input, gp)
gp active
input.KeyCode == .KeyCode.LeftShift ()
input.KeyCode == .KeyCode.E ()
input.KeyCode == .KeyCode.Q ()
input.KeyCode == .KeyCode.LeftControl
isSL = isSL
slb slb.ImageColor3 = isSL (,,) (,,)
)
UserInputService.InputEnded:((input, gp)
gp active
input.KeyCode == .KeyCode.LeftShift ()
)
rb rb.MouseButton1Down:(() () )
rb.MouseButton1Up:(() () )
rb.MouseLeave:(() ir () )
slb slb.MouseButton1Click:(()
isSL = isSL
slb.ImageColor3 = isSL (,,) (,,)
(SFX_CLICK, , isSL )
)
pb pb.MouseButton1Click:(doPunch)
bb bb.MouseButton1Click:(doBlock)
mobileSprint
mobileSprint.MouseButton1Down:(() () )
mobileSprint.MouseButton1Up:(() () )
mobileSprint.TouchLongPress:(() () )
mobilePunch mobilePunch.MouseButton1Click:(doPunch)
mobileBlock mobileBlock.MouseButton1Click:(doBlock)
mobileShiftlock
mobileShiftlock.MouseButton1Click:(()
isSL = isSL
mobileShiftlock.BackgroundColor3 = isSL (,,) (,,)
(SFX_CLICK,,isSL )
)
mobileEmote
mobileEmote.MouseButton1Click:(()
ef.Visible = ef.Visible
ef.Visible animPanel.Visible =
(ef.Visible SFX_OPEN SFX_CLOSE,,)
)
stopE.MouseButton1Click:(clearEmote)
xb.MouseButton1Click:(() cf.Visible = )
bn.MouseButton1Click:(() cf.Visible = )
(, E1_ID)
(, C_ID)
(, BU_ID)
(, MM_ID)
(, S3_ID)
(, CD_ID)
(, UN_ID)
(, DP_ID)
(, WW_ID)
(, X_ID)
(, LW_ID)
(, S_ID)
(, RI_ID)
hudConnections = {}
hudHidden =
buttonHolder = ()
buttonHolder.Size = (,,,); buttonHolder.Position = (,,,)
buttonHolder.BackgroundTransparency = ; buttonHolder.Parent = gui
bLayout = ()
bLayout.FillDirection = .FillDirection.Horizontal
bLayout.HorizontalAlignment = .HorizontalAlignment.Right
bLayout.Padding = .(,); bLayout.Parent = buttonHolder
(text)
btn = ()
btn.Size = (,,,); btn.BackgroundColor3 = (,,)
btn.Text = text; btn.TextColor3 = (,,)
btn.Font = .Font.GothamBold; btn.TextSize =
btn.BorderSizePixel = ; btn.AutoButtonColor =
(, btn).CornerRadius = .(,)
bs = (); bs.Color = (,,); bs.Thickness = ; bs.Transparency = ; bs.Parent = btn
btn.MouseEnter:(() (btn,,{BackgroundColor3=(,,)}); playSound(SFX_CLICK,0.1,1.4) end)
btn.MouseLeave:Connect(function() tw(btn,0.15,{BackgroundColor3=c3(20,18,28)}) end)
btn.MouseButton1Click:Connect(function() playSound(SFX_CLICK,0.4,1) end)
return btn
end
local hideButton = makeHudBtn("Hide HUD")
local unloadButton = makeHudBtn("Unload HUD")
hideButton.Parent = buttonHolder; unloadButton.Parent = buttonHolder
local hudHidePos = isMobile and ud2(0.5,0,0,-500) or ud2(0,-500,1,-20)
local hudShowPos = isMobile and ud2(0.5,0,0,16) or ud2(0,18,1,-20)
table.insert(hudConnections, hideButton.MouseButton1Click:Connect(function()
hudHidden = not hudHidden
if hudHidden then
tw(holder,0.35,{Position=hudHidePos}); hideButton.Text = "Show HUD"
else
tw(holder,0.5,{Position=hudShowPos}); hideButton.Text = "Hide HUD"
end
end))
table.insert(hudConnections, unloadButton.MouseButton1Click:Connect(function()
tw(holder,0.35,{Position=hudHidePos})
tw(buttonHolder,0.3,{Position=ud2(1,60,0,20)})
task.wait(0.4)
for _, c in pairs(hudConnections) do c:Disconnect() end
gui:Destroy()
end))
-- ─────────────────────────────────────────────────────────
-- SPLASH SCREEN
-- ─────────────────────────────────────────────────────────
local splashBG = ins("Frame")
splashBG.Size = ud2(1,0,1,0); splashBG.BackgroundColor3 = c3(6,6,10)
splashBG.BackgroundTransparency = 0; splashBG.ZIndex = 100; splashBG.Parent = gui
local splashW = mobScale(420, math.min(workspace.CurrentCamera.ViewportSize.X - 20, 360))
local splash = ins("Frame")
splash.AnchorPoint = v2(0.5,0.5); splash.Position = ud2(0.5,0,0.58,0)
splash.Size = ud2(0,splashW,0,268); splash.BackgroundColor3 = c3(14,12,22)
splash.BackgroundTransparency = 1; splash.BorderSizePixel = 0
splash.ZIndex = 101; splash.Parent = gui
ins("UICorner", splash).CornerRadius = UDim.new(0,14)
local sps = ins("UIStroke"); sps.Color = c3(90,60,150); sps.Thickness = 1.5; sps.Transparency = 0.3; sps.Parent = splash
local splashAccent = ins("Frame")
splashAccent.Size = ud2(0,0,0,2); splashAccent.Position = ud2(0.5,0,0,0)
splashAccent.AnchorPoint = v2(0.5,0); splashAccent.BackgroundColor3 = c3(130,80,230)
splashAccent.BorderSizePixel = 0; splashAccent.ZIndex = 102; splashAccent.Parent = splash
ins("UICorner", splashAccent).CornerRadius = UDim.new(1,0)
local function makeSplashLbl(text, size, color, yPos, font)
local lbl = ins("TextLabel")
lbl.BackgroundTransparency = 1; lbl.Position = ud2(0,0,0,yPos)
lbl.Size = ud2(1,0,0,size+10); lbl.Font = font or Enum.Font.GothamBlack
lbl.Text = text; lbl.TextColor3 = color; lbl.TextSize = size
lbl.TextTransparency = 1; lbl.ZIndex = 102; lbl.Parent = splash
return lbl
end
local titleLbl = makeSplashLbl("FORSAKEN", mobScale(44,38), c3(255,255,255), 36)
local subtitleLbl = makeSplashLbl("GUEST FE USE • R15", 14, c3(140,90,230), 90, Enum.Font.GothamBold)
local versionLbl = makeSplashLbl("v5.1 — Fixed + Mobile UI", 11, c3(90,75,115), 118, Enum.Font.Gotham)
local splashDiv = ins("Frame")
splashDiv.Size = ud2(0,0,0,1); splashDiv.Position = ud2(0.5,0,0,112)
splashDiv.AnchorPoint = v2(0.5,0); splashDiv.BackgroundColor3 = c3(60,50,85)
splashDiv.BackgroundTransparency = 1; splashDiv.BorderSizePixel = 0
splashDiv.ZIndex = 102; splashDiv.Parent = splash
local startBtn = ins("TextButton")
startBtn.AnchorPoint = v2(0.5,0); startBtn.Position = ud2(0.5,0,0,155)
startBtn.Size = ud2(0,mobScale(180,220),0,mobScale(46,54))
startBtn.BackgroundColor3 = c3(100,60,195); startBtn.BackgroundTransparency = 1
startBtn.Text = "START"; startBtn.TextColor3 = c3(255,255,255); startBtn.TextTransparency = 1
startBtn.Font = Enum.Font.GothamBlack; startBtn.TextSize = mobScale(15,17)
startBtn.BorderSizePixel = 0; startBtn.AutoButtonColor = false
startBtn.ZIndex = 102; startBtn.Parent = splash
ins("UICorner", startBtn).CornerRadius = UDim.new(0,10)
local sbtnS = ins("UIStroke"); sbtnS.Color = c3(160,110,255); sbtnS.Thickness = 1; sbtnS.Transparency = 0.4; sbtnS.Parent = startBtn
startBtn.MouseEnter:Connect(function()
tw(startBtn,0.15,{BackgroundColor3=c3(120,78,215)})
tw(startBtn,0.15,{Size=ud2(0,mobScale(190,230),0,mobScale(46,54))})
playSound(SFX_CLICK,0.12,1.4)
end)
startBtn.MouseLeave:Connect(function()
tw(startBtn,0.15,{BackgroundColor3=c3(100,60,195)})
tw(startBtn,0.15,{Size=ud2(0,mobScale(180,220),0,mobScale(46,54))})
end)
task.defer(function()
tw(blur,0.6,{Size=28})
tw(splash,0.4,{Position=ud2(0.5,0,0.5,0),BackgroundTransparency=0})
task.wait(0.3)
tw(splashAccent,0.5,{Size=ud2(0,splashW-60,0,2)})
task.wait(0.18)
tw(titleLbl,0.35,{TextTransparency=0}); task.wait(0.1)
tw(subtitleLbl,0.35,{TextTransparency=0}); task.wait(0.1)
tw(splashDiv,0.35,{Size=ud2(0,splashW-60,0,1),BackgroundTransparency=0}); task.wait(0.08)
tw(versionLbl,0.3,{TextTransparency=0}); task.wait(0.12)
tw(startBtn,0.35,{TextTransparency=0,BackgroundTransparency=0})
end)
startBtn.MouseButton1Click:Connect(function()
playSound(SFX_OPEN,0.5,1)
tw(startBtn,0.1,{BackgroundColor3=c3(200,160,255)})
task.wait(0.1)
TweenService:Create(splash,TweenInfo.new(0.25,Enum.EasingStyle.Quint),{BackgroundTransparency=1,Position=ud2(0.5,0,0.44,0)}):Play()
TweenService:Create(splashBG,TweenInfo.new(0.25,Enum.EasingStyle.Quint),{BackgroundTransparency=1}):Play()
for _, lbl in ipairs({titleLbl,subtitleLbl,versionLbl}) do tw(lbl,0.2,{TextTransparency=1}) end
tw(startBtn,0.2,{TextTransparency=1,BackgroundTransparency=1})
tw(splashDiv,0.2,{BackgroundTransparency=1})
tw(splashAccent,0.2,{BackgroundTransparency=1})
tw(blur,0.7,{Size=0})
task.wait(0.4)
splashBG:Destroy(); splash:Destroy(); blur:Destroy()
-- Animate HUD in
if isMobile then
tw(holder,0.55,{Position=ud2(0.5,0,0,16)})
else
tw(holder,0.55,{Position=ud2(0,18,1,-20)})
end
task.wait(0.15)
tw(buttonHolder,0.45,{Position=ud2(1,-280,0,20)})
end)
-- ─────────────────────────────────────────────────────────
-- HUD BARS UPDATE
-- ─────────────────────────────────────────────────────────
local MAX_STAMINA = 100
local stamina = 100
local function tweenBar(bar, pct)
TweenService:Create(bar,
TweenInfo.new(0.13,Enum.EasingStyle.Sine),
{Size=ud2(math.clamp(pct,0,1),0,1,0)}
):Play()
end
local prevHp = -1
local function updateHealthBar()
local char = lp.Character
local hum = char and char:FindFirstChildOfClass("Humanoid")
if not hum then return end
local hp, max = hum.Health, hum.MaxHealth
if math.abs(hp - prevHp) < 0.1 then return end
prevHp = hp
local pct = hp / max
tweenBar(healthFill, pct)
healthText.Text = math.floor(hp) .. "/" .. math.floor(max)
tw(healthFill,0.15,{BackgroundColor3 = pct < 0.3 and c3(255,30,30) or hpNorm})
end
local prevSt = -1
local function updateStaminaBar()
local pct = stamina / MAX_STAMINA
if math.abs(pct - prevSt) < 0.005 then return end
prevSt = pct
tweenBar(staminaFill, pct)
staminaText.Text = math.floor(stamina) .. "/" .. MAX_STAMINA
tw(staminaFill,0.15,{BackgroundColor3 = pct < 0.15 and stLow or stNorm})
end
-- ─────────────────────────────────────────────────────────
-- UNLOAD YES
-- ─────────────────────────────────────────────────────────
by.MouseButton1Click:Connect(function()
active = false; getgenv().forsakenthingyguys = nil
-- Stop the render loop
if renderConn then renderConn:Disconnect(); renderConn = nil end
local char = lp.Character
if char then
local hum = char:FindFirstChildOfClass("Humanoid")
local anim = hum and hum:FindFirstChildOfClass("Animator")
if anim then for _, t in ipairs(anim:GetPlayingAnimationTracks()) do t:Stop(0) end end
if hum then hum.WalkSpeed = 16; hum.JumpPower = 50; hum:SetStateEnabled(Enum.HumanoidStateType.Seated,true) end
for _, s in ipairs(char:GetDescendants()) do
if s:IsA("Script") and s.Name == "Animate" then s.Disabled=false; s.Enabled=false; s.Enabled=true; break end
end
end
for _, c in pairs(animateConns) do c:Disconnect() end
animateConns = {}
if charAddedConn then charAddedConn:Disconnect(); charAddedConn = nil end
sg:Destroy(); gui:Destroy()
end)
-- ─────────────────────────────────────────────────────────
-- CHARACTER MAIN (all the bug fixes live here)
-- ─────────────────────────────────────────────────────────
local function watchAnimate(char)
-- Disconnect old per-character animate watchers before adding new ones
for _, c in pairs(animateConns) do c:Disconnect() end
animateConns = {}
local conn = char.DescendantAdded:Connect(function(d)
if d:IsA("Script") and d.Name == "Animate" then d.Disabled = true end
end)
table.insert(animateConns, conn)
for _, o in ipairs(char:GetDescendants()) do
if o:IsA("Script") and o.Name == "Animate" then o.Disabled = true end
end
end
local function main(char)
local hum = char:WaitForChild("Humanoid")
-- ── CRITICAL: reset all animation state for this new character ──
if renderConn then renderConn:Disconnect(); renderConn = nil end
ca = nil
st = {}
headTrackRef = nil
faceTrackRef = nil
isConga = false
ir = false
punchComboIndex = 1
lastPunchTime = 0
-- ────────────────────────────────────────────────────────────────
if hum.RigType == Enum.HumanoidRigType.R6 then
sg.Enabled = false
local wGui = ins("ScreenGui"); wGui.Name = "R6Warning"; wGui.Parent = playerGui
local wBg = ins("Frame"); wBg.Size = ud2(0,300,0,75); wBg.Position = ud2(0.5,0,0.15,0)
wBg.AnchorPoint = v2(0.5,0.5); wBg.BackgroundColor3 = c3(10,9,16); wBg.BorderSizePixel = 0; wBg.Parent = wGui
ins("UICorner", wBg).CornerRadius = UDim.new(0,10)
local ws = ins("UIStroke"); ws.Color = c3(160,30,60); ws.Thickness = 1; ws.Parent = wBg
local wTxt = ins("TextLabel"); wTxt.Size = ud2(1,0,1,0); wTxt.BackgroundTransparency = 1
wTxt.Text = "R15 REQUIRED — R6 NOT SUPPORTED"; wTxt.TextColor3 = c3(255,60,80)
wTxt.Font = Enum.Font.GothamBold; wTxt.TextSize = 16; wTxt.Parent = wBg
task.spawn(function()
task.wait(3); tw(wBg,1,{BackgroundTransparency=1}); tw(wTxt,1,{TextTransparency=1}); task.wait(1); wGui:Destroy()
end)
return
else
sg.Enabled = true
local old = playerGui:FindFirstChild("R6Warning")
if old then old:Destroy() end
end
local animator = hum:WaitForChild("Animator")
-- Kill the default Animate script and stop all existing tracks
for _, o in ipairs(char:GetDescendants()) do
if o:IsA("Script") and o.Name == "Animate" then o.Disabled = true; break end
end
for _, t in ipairs(animator:GetPlayingAnimationTracks()) do t:Stop(0) end
for _, t in ipairs(hum:GetPlayingAnimationTracks()) do t:Stop(0) end
hum.JumpPower = 0; hum:SetStateEnabled(Enum.HumanoidStateType.Seated, false)
-- Load initial idle
local it = loadAnim(animator, LIVE.idle)
it.Priority = Enum.AnimationPriority.Idle; it:Play(0.25); st.idle = it
-- Head turn track
local headAnim = ins("Animation"); headAnim.AnimationId = H_ID
headTrackRef = animator:LoadAnimation(headAnim)
headTrackRef.Priority = Enum.AnimationPriority.Action4
headTrackRef:Play(0,1,0); headTrackRef:AdjustWeight(0.2)
updateFace(false, animator)
-- Per-frame state
local currentYaw = 0; local targetYaw = 0
local yawVelocity = 0; local yawAccel = 0; local prevTarget = 0
-- ── Single RenderStepped connection stored at module scope ──────
renderConn = RunService.RenderStepped:Connect(function(dt)
if not active or not char or not char.Parent then
renderConn:Disconnect(); renderConn = nil; return
end
updateLocomotion(char, hum, animator)
updateHealthBar()
stamina = math.clamp(stamina + (ir and -12 or 9)*dt, 0, MAX_STAMINA)
updateStaminaBar()
local rp = char:FindFirstChild("HumanoidRootPart")
if not rp then return end
local targetFov = (ir and hum.MoveDirection.Magnitude > 0) and 80 or 70
camera.FieldOfView = camera.FieldOfView + (targetFov - camera.FieldOfView) * math.min(dt*2,1)
if isSL then
local cl = camera.CFrame.LookVector
local targetCF = CFrame.lookAt(rp.Position, rp.Position + v3(cl.X,0,cl.Z))
rp.CFrame = rp.CFrame:Lerp(targetCF, 0.5)
elseif hum.MoveDirection.Magnitude > 0 then
local targetCF = CFrame.lookAt(rp.Position, rp.Position + hum.MoveDirection)
rp.CFrame = rp.CFrame:Lerp(targetCF, 0.1)
end
if isConga then hum:Move(rp.CFrame.LookVector) end
if not (ca and ca.IsPlaying) then
local camObj = rp.CFrame:VectorToObjectSpace(camera.CFrame.LookVector)
targetYaw = math.clamp(-math.atan2(camObj.X,-camObj.Z), -math.rad(75), math.rad(75))
local delta = targetYaw - currentYaw
local pred = (targetYaw - prevTarget) * 8
prevTarget = targetYaw
yawAccel = (yawAccel + (delta+pred)*12*dt) * 0.92
yawVelocity = yawVelocity*0.98 + yawAccel*dt
currentYaw = currentYaw + yawVelocity*dt
currentYaw = currentYaw + (targetYaw-currentYaw)*math.min(dt*3,0.15)
else
yawAccel = (yawAccel + (0-currentYaw)*12*dt) * 0.92
yawVelocity = yawVelocity*0.98 + yawAccel*dt
currentYaw = currentYaw + yawVelocity*dt
currentYaw = currentYaw + (0-currentYaw)*math.min(dt*3,0.15)
end
local yawMapped = currentYaw < 0 and currentYaw + math.pi*2 or currentYaw
if headTrackRef and headTrackRef.Length > 0 then
headTrackRef.TimePosition = (yawMapped/(math.pi*2)) * headTrackRef.Length
end
end)
end
charAddedConn = lp.CharacterAdded:Connect(function(char)
watchAnimate(char); main(char)
end)
if lp.Character then
watchAnimate(lp.Character); task.spawn(main, lp.Character)
endYO YO GUYS MADE BY TRAMBOLİNNN

Universal