Run it
Copy the script and paste it into your executor.
Players = :()
TweenService = :()
RunService = :()
UserInputService = :()
Debris = :()
SoundService = :()
player = Players.LocalPlayer
playerGui = player:()
screenGui = .()
screenGui.Name =
screenGui.ResetOnSpawn =
screenGui.IgnoreGuiInset =
screenGui.ZIndexBehavior = .ZIndexBehavior.Sibling
screenGui.Parent = playerGui
UserInputService.InputBegan:((input)
input.KeyCode == .KeyCode.Insert
screenGui.Enabled = screenGui.Enabled
)
(obj, props, time, style, dir)
time = time
style = style .EasingStyle.Quad
dir = dir .EasingDirection.Out
info = TweenInfo.(time, style, dir)
t = TweenService:(obj, info, props)
t:()
t
(parent, radius)
c = .()
c.CornerRadius = .(, radius )
c.Parent = parent
c
(parent, thickness, color, trans)
s = .()
s.Thickness = thickness
s.Color = color .(, , )
s.Transparency = trans
s.Parent = parent
s
()
s = .()
s.SoundId =
s.Volume =
s.Parent = SoundService
s:()
Debris:(s, )
()
_, v (screenGui:())
v:() v:()
v.Name:():() v.Name:():()
v.Visible =
v.BackgroundTransparency =
bg = .()
bg.Name =
bg.Size = .(, , , )
bg.Position = .(, , , )
bg.BackgroundColor3 = .(, , )
bg.BackgroundTransparency =
bg.BorderSizePixel =
bg.Parent = screenGui
bgGrad = .()
bgGrad.Color = ColorSequence.{
ColorSequenceKeypoint.(, .(, , )),
ColorSequenceKeypoint.(, .(, , )),
}
bgGrad.Rotation =
bgGrad.Parent = bg
particle = .()
particle.Name =
particle.Size = .(, , , )
particle.Position = .(, -, , -)
particle.AnchorPoint = .(, )
particle.Image =
particle.ImageTransparency =
particle.BackgroundTransparency =
particle.ImageColor3 = .(, , )
particle.ZIndex =
particle.Parent = bg
.(()
rot = .(-, )
(particle, {Rotation = rot}, , .EasingStyle.Sine)
.()
)
overlay = screenGui:() .()
overlay.Name =
overlay.Size = .(, , , )
overlay.BackgroundColor3 = .(, , )
overlay.BackgroundTransparency =
overlay.ZIndex =
overlay.Visible =
overlay.Parent = screenGui
dockContainer = .()
dockContainer.Name =
dockContainer.AnchorPoint = .(, )
dockContainer.Position = .(, , , -)
dockContainer.Size = .(, , , )
dockContainer.BackgroundTransparency =
dockContainer.BorderSizePixel =
dockContainer.Parent = screenGui
(dockContainer, )
dockBG = .()
dockBG.Name =
dockBG.Size = .(, , , )
dockBG.Position = .(, , , )
dockBG.BackgroundColor3 = .(, , )
dockBG.BackgroundTransparency =
dockBG.BorderSizePixel =
dockBG.Parent = dockContainer
(dockBG, )
(dockBG, , .(, , ), )
glow = .()
glow.Name =
glow.Size = .(, , , )
glow.Position = .(-, , -, )
glow.BackgroundTransparency =
glow.Image =
glow.ImageTransparency =
glow.ZIndex =
glow.Parent = dockBG
dockTitle = .()
dockTitle.Name =
dockTitle.AnchorPoint = .(, )
dockTitle.Position = .(, , , )
dockTitle.Size = .(, , , )
dockTitle.BackgroundTransparency =
dockTitle.Font = .Font.GothamBold
dockTitle.Text =
dockTitle.TextSize =
dockTitle.TextColor3 = .(, , )
dockTitle.ZIndex =
dockTitle.Parent = dockBG
toggleBtn = .()
toggleBtn.Size = .(, , , )
toggleBtn.AnchorPoint = .(, )
toggleBtn.Position = .(, , , -)
toggleBtn.BackgroundColor3 = .(, , )
toggleBtn.Text =
toggleBtn.Font = .Font.GothamBold
toggleBtn.TextSize =
toggleBtn.TextColor3 = .(, , )
toggleBtn.Parent = screenGui
toggleCorner = .()
toggleCorner.CornerRadius = .(, )
toggleCorner.Parent = toggleBtn
panelVisible =
toggleBtn.Activated:(()
panelVisible = panelVisible
goalPos = panelVisible .(, , , -) .(, , , )
goalTransparency = panelVisible
posTween = TweenService:(dockContainer, TweenInfo.(, .EasingStyle.Quint), {Position = goalPos})
transTween = TweenService:(overlay, TweenInfo.(, .EasingStyle.Quint), {BackgroundTransparency = goalTransparency})
posTween:()
transTween:()
posTween.Completed:(()
overlay.Visible = panelVisible
panelVisible
()
()
)
)
toggleBtn.MouseEnter:(()
(toggleBtn, {BackgroundColor3 = .(, , )}, )
)
toggleBtn.MouseLeave:(()
(toggleBtn, {BackgroundColor3 = .(, , )}, )
)
scroll = .()
scroll.Name =
scroll.Parent = dockBG
scroll.AnchorPoint = .(, )
scroll.Position = .(, , , )
scroll.Size = .(, , , )
scroll.BackgroundTransparency =
scroll.BorderSizePixel =
scroll.ScrollBarThickness =
scroll.CanvasSize = .(, , , )
scroll.ScrollingDirection = .ScrollingDirection.X
scroll.AutomaticCanvasSize = .AutomaticSize.X
scroll.VerticalScrollBarInset = .ScrollBarInset.Always
scroll.HorizontalScrollBarInset = .ScrollBarInset.Always
dockLayout = .()
dockLayout.FillDirection = .FillDirection.Horizontal
dockLayout.HorizontalAlignment = .HorizontalAlignment.Left
dockLayout.SortOrder = .SortOrder.LayoutOrder
dockLayout.Padding = .(, )
dockLayout.Parent = scroll
()
contentWidth =
_, c (scroll:())
c:()
contentWidth = contentWidth + c.AbsoluteSize.X + dockLayout.Padding.Offset
contentWidth = .(contentWidth, scroll.AbsoluteSize.X + )
scroll.CanvasSize = .(, contentWidth + , , )
scroll:():(updateScrollCanvas)
dockLayout:():(updateScrollCanvas)
BUTTON_TEMPLATE_SIZE = .(, , , )
BUTTON_COLOR = .(, , )
(id, labelText, iconAssetId, onClick)
cont = .()
cont.Name = .. (id)
cont.Size = BUTTON_TEMPLATE_SIZE
cont.BackgroundTransparency =
cont.Parent = scroll
btn = .()
btn.Name =
btn.Size = .(, , , )
btn.Position = .(, , , )
btn.BackgroundColor3 = BUTTON_COLOR
btn.BackgroundTransparency =
btn.BorderSizePixel =
btn.AutoButtonColor =
btn.Parent = cont
(btn, )
(btn, , .(, , ), )
icon = .()
icon.Name =
icon.BackgroundTransparency =
icon.Size = .(, , , )
icon.Position = .(, , , )
icon.AnchorPoint = .(, )
icon.Image = iconAssetId ( .. (iconAssetId))
icon.ImageColor3 = .(, , )
icon.Parent = btn
txt = .()
txt.Name =
txt.Size = .(, , , )
txt.Position = .(, , , )
txt.BackgroundTransparency =
txt.Font = .Font.GothamSemibold
txt.TextSize =
txt.Text = labelText
txt.TextColor3 = .(, , )
txt.Parent = cont
btn.MouseEnter:(()
(btn, {Size = .(, , , )}, )
(btn, {BackgroundTransparency = }, )
)
btn.MouseLeave:(()
(btn, {Size = .(, , , )}, )
(btn, {BackgroundTransparency = }, )
)
btn.Activated:(()
ripple = .()
ripple.Size = .(, , , )
ripple.BackgroundColor3 = .(, , )
ripple.BackgroundTransparency =
ripple.Parent = btn
(ripple, )
rippleTween = (ripple, {BackgroundTransparency = }, )
rippleTween.Completed:(()
Debris:(ripple, )
)
()
(onClick) ==
ok, err = (onClick)
ok (, err)
)
cont, btn, icon, txt
defaultButtons = {
{label = , icon = },
{label = , icon = },
{label = , icon = },
{label = , icon = },
{label = , icon = },
{label = , icon = },
{label = , icon = },
{label = , icon = },
{label = , icon = },
}
dockButtons = {}
i, v (defaultButtons)
cont, btn, icon, txt = (i, v.label, v.icon, ()
(, v.label)
v.label == screenGui:()
screenGui.SettingsPanel.Visible =
screenGui.SettingsPanel.BackgroundTransparency =
(screenGui.SettingsPanel, {BackgroundTransparency = }, )
v.label == screenGui:()
screenGui.ProfilePanel.Visible =
screenGui.ProfilePanel.BackgroundTransparency =
(screenGui.ProfilePanel, {BackgroundTransparency = }, )
v.label == screenGui:()
screenGui.HelpPanel.Visible =
screenGui.HelpPanel.BackgroundTransparency =
(screenGui.HelpPanel, {BackgroundTransparency = }, )
)
cont.LayoutOrder = i
.(dockButtons, {cont = cont, btn = btn, label = v.label})
()
(label, iconId, callback)
order = #dockButtons +
cont, btn = (order, label, iconId, callback)
cont.LayoutOrder = order
.(dockButtons, {cont = cont, btn = btn, label = label})
()
cont, btn
touchStartY =
touchThreshold =
touchActive =
scroll.InputBegan:((input)
input.UserInputType == .UserInputType.Touch
touchStartY = input.Position.Y
touchActive =
)
scroll.InputChanged:((input)
input.UserInputType == .UserInputType.Touch touchActive touchStartY
dy = input.Position.Y - touchStartY
dy > touchThreshold panelVisible
panelVisible =
goalPos = .(, , , )
goalTransparency =
posTween = TweenService:(dockContainer, TweenInfo.(, .EasingStyle.Quint), {Position = goalPos})
transTween = TweenService:(overlay, TweenInfo.(, .EasingStyle.Quint), {BackgroundTransparency = goalTransparency})
posTween:()
transTween:()
posTween.Completed:(()
overlay.Visible =
()
)
touchActive =
touchStartY =
)
scroll.InputEnded:((input)
input.UserInputType == .UserInputType.Touch
touchStartY =
touchActive =
)
(name, title)
panel = .()
panel.Name = name ..
panel.Size = .(, , , )
panel.Position = .(, , , )
panel.AnchorPoint = .(, )
panel.BackgroundColor3 = .(, , )
panel.BackgroundTransparency =
panel.BorderSizePixel =
panel.Visible =
panel.Parent = screenGui
(panel, )
(panel, , .(, , ), )
content = .()
content.Size = .(, , , )
content.Position = .(, , , )
content.BackgroundTransparency =
content.Parent = panel
lbl = .()
lbl.Size = .(, -, , )
lbl.Position = .(, , , )
lbl.BackgroundTransparency =
lbl.Font = .Font.GothamBold
lbl.TextSize =
lbl.Text = title name
lbl.TextColor3 = .(, , )
lbl.TextXAlignment = .TextXAlignment.Left
lbl.Parent = panel
close = .()
close.Size = .(, , , )
close.Position = .(, -, , )
close.AnchorPoint = .(, )
close.Text =
close.Font = .Font.GothamBold
close.TextSize =
close.BackgroundColor3 = .(, , )
close.TextColor3 = .(, , )
close.BackgroundTransparency =
(close, )
close.Parent = panel
close.Activated:(()
fadeTween = (panel, {BackgroundTransparency = }, )
fadeTween.Completed:(()
panel.Visible =
)
)
panel, content
settingsPanel, settingsContent = (, )
profilePanel, profileContent = (, )
helpPanel, helpContent = (, )
t = .()
t.Size = .(, , , )
t.Position = .(, , , )
t.BackgroundTransparency =
t.Font = .Font.SourceSans
t.TextSize =
t.TextColor3 = .(, , )
t.Text =
t.Parent = settingsContent
btn = .()
btn.Size = .(, , , )
btn.Position = .(, , , )
btn.Text =
btn.Font = .Font.GothamSemibold
btn.TextSize =
btn.BackgroundColor3 = .(, , )
btn.TextColor3 = .(, , )
(btn, )
btn.Parent = settingsContent
btn.Activated:(()
()
pulseIn = (glow, {ImageTransparency = }, )
pulseIn.Completed:(()
(glow, {ImageTransparency = }, )
)
)
av = .()
av.Size = .(, , , )
av.Position = .(, , , )
av.Image = .. player.UserId ..
av.BackgroundTransparency =
(av, )
av.Parent = profileContent
nameLabel = .()
nameLabel.Size = .(, -, , )
nameLabel.Position = .(, , , )
nameLabel.BackgroundTransparency =
nameLabel.Font = .Font.GothamBold
nameLabel.TextSize =
nameLabel.Text = player.Name
nameLabel.TextColor3 = .(, , )
nameLabel.Parent = profileContent
helpText = .()
helpText.Size = .(, , , )
helpText.BackgroundTransparency =
helpText.Font = .Font.SourceSans
helpText.TextSize =
helpText.TextColor3 = .(, , )
helpText.TextWrapped =
helpText.Text =
helpText.Parent = helpContent
_, info (dockButtons)
info.label ==
info.btn.Activated:(()
()
settingsPanel.Visible =
settingsPanel.BackgroundTransparency =
(settingsPanel, {BackgroundTransparency = }, )
)
info.label ==
info.btn.Activated:(()
()
profilePanel.Visible =
profilePanel.BackgroundTransparency =
(profilePanel, {BackgroundTransparency = }, )
)
info.label ==
info.btn.Activated:(()
()
helpPanel.Visible =
helpPanel.BackgroundTransparency =
(helpPanel, {BackgroundTransparency = }, )
)
toast = .()
toast.Name =
toast.Size = .(, , , )
toast.AnchorPoint = .(, )
toast.Position = .(, -, , -)
toast.BackgroundColor3 = .(, , )
toast.BackgroundTransparency =
toast.BorderSizePixel =
toast.Visible =
toast.Parent = screenGui
(toast, )
(toast, , .(, , ), )
toastLabel = .()
toastLabel.Size = .(, -, , -)
toastLabel.Position = .(, , , )
toastLabel.BackgroundTransparency =
toastLabel.Font = .Font.Gotham
toastLabel.TextSize =
toastLabel.TextColor3 = .(, , )
toastLabel.Text =
toastLabel.Parent = toast
(message, timeSec)
timeSec = timeSec
toastLabel.Text = message
toast.Position = .(, -, , )
toast.Visible =
slideIn = (toast, {Position = .(, -, , -)}, )
.(timeSec, ()
slideOut = (toast, {Position = .(, -, , )}, )
slideOut.Completed:(()
toast.Visible =
)
)
idleTime =
hiddenByIdle =
RunService.RenderStepped:((dt)
idleTime = idleTime + dt
idleTime > hiddenByIdle panelVisible
hiddenByIdle =
panelVisible =
goalPos = .(, , , )
goalTransparency =
posTween = TweenService:(dockContainer, TweenInfo.(, .EasingStyle.Quint), {Position = goalPos})
transTween = TweenService:(overlay, TweenInfo.(, .EasingStyle.Quint), {BackgroundTransparency = goalTransparency})
posTween:()
transTween:()
posTween.Completed:(()
overlay.Visible =
()
)
idleTime < hiddenByIdle
hiddenByIdle =
)
UserInputService.InputBegan:(()
idleTime =
)
leftArrow = .()
leftArrow.Size = .(, , , )
leftArrow.Position = .(, , , -)
leftArrow.Image =
leftArrow.BackgroundTransparency =
leftArrow.ImageColor3 = .(, , )
leftArrow.ZIndex =
leftArrow.Parent = dockBG
rightArrow = .()
rightArrow.Size = .(, , , )
rightArrow.Position = .(, -, , -)
rightArrow.AnchorPoint = .(, )
rightArrow.Image =
rightArrow.BackgroundTransparency =
rightArrow.Rotation =
rightArrow.ImageColor3 = .(, , )
rightArrow.ZIndex =
rightArrow.Parent = dockBG
()
max = scroll.CanvasSize.X.Offset - scroll.AbsoluteSize.X
max <=
leftArrow.Visible =
rightArrow.Visible =
leftArrow.Visible = scroll.CanvasPosition.X >
rightArrow.Visible = scroll.CanvasPosition.X < max -
scroll:():(updateArrows)
scroll:():(updateArrows)
dockContainer.Position = .(, , , )
dockContainer.BackgroundTransparency =
(dockContainer, {Position = .(, , , -), BackgroundTransparency = }, )
.(, ()
(, )
)
API = {}
API.(label, iconId, callback)
(label, iconId, callback)
API.(msg, t)
(msg, t)
API.()
panelVisible
panelVisible =
goalPos = .(, , , )
goalTransparency =
posTween = TweenService:(dockContainer, TweenInfo.(, .EasingStyle.Quint), {Position = goalPos})
transTween = TweenService:(overlay, TweenInfo.(, .EasingStyle.Quint), {BackgroundTransparency = goalTransparency})
posTween:()
transTween:()
posTween.Completed:(()
overlay.Visible =
()
)
API.()
panelVisible
panelVisible =
overlay.Visible =
goalPos = .(, , , -)
goalTransparency =
posTween = TweenService:(dockContainer, TweenInfo.(, .EasingStyle.Quint), {Position = goalPos})
transTween = TweenService:(overlay, TweenInfo.(, .EasingStyle.Quint), {BackgroundTransparency = goalTransparency})
posTween:()
transTween:()
.PurpleHoloAPI = API
screenGui:(, )
screenGui:(, )
()Panel made by rizki(me)

Universal