Run it
Copy the script and paste it into your executor.
Players = :()
UIS = :()
TweenService = :()
VIM = :()
player = Players.LocalPlayer
playerGui = player:()
MULTIPLIER =
BURST_COUNT =
BURST_GAP =
REPLAY_GAP =
PRESS_GAP =
DEBOUNCE =
STAFF_CONFIG = {
GroupIds = {},
KnownStaff = {},
TeamKeywords = {, , , , , },
FlagCreator = ,
CheckRobloxGroup = ,
ScanInterval = ,
DeepScanInterval = ,
InitialGraceTime = ,
HighlightColor = .(, , ),
HighlightOutlineColor = .(, , ),
HighlightFillTransparency = ,
HighlightOutlineTransparency = ,
IconStudsOffset = ,
IconMaxDistance = ,
IconShowLabel = ,
KnownSystems = {
[] = {, , , , },
[] = {, , , },
[] = {, , , },
[] = {, },
[] = {, , },
},
AdminKeywords = {
, , , , , , ,
, , ,
, , ,
, , ,
, , ,
, , ,
,
},
ToolKeywords = {, , , , , , , },
}
STAFF_STYLES = {
owner = { icon = , color = .(, , ) },
admin = { icon = , color = .(, , ) },
mod = { icon = , color = .(, , ) },
staff = { icon = , color = .(, , ) },
}
EMPTY_STYLE = { icon = , color = .(, , ) }
SYSTEM_STYLE = { icon = , color = .(, , ) }
enabled =
staffAlertEnabled =
staffScanRunning =
deepScanRunning =
knownStaff = {}
staffHighlights = {}
staffBillboards = {}
staffTracked = {}
detectedSystems = {}
hasWarnedNoStaff =
lastDeepScan =
simulatedUntil =
gui = .()
gui.Name =
gui.ResetOnSpawn =
gui.IgnoreGuiInset =
gui.ZIndexBehavior = .ZIndexBehavior.Sibling
gui.DisplayOrder =
gui.Parent = playerGui
NOTIF_WIDTH =
NOTIF_MARGIN =
NOTIF_TOP =
notifHolder = .()
notifHolder.Name =
notifHolder.AnchorPoint = .(, )
notifHolder.Position = .(, -NOTIF_MARGIN, , NOTIF_TOP)
notifHolder.Size = .(, NOTIF_WIDTH, , )
notifHolder.BackgroundTransparency =
notifHolder.Parent = gui
notifLayout = .()
notifLayout.Padding = .(, )
notifLayout.Parent = notifHolder
notifOrder =
(text, isOn, style)
notifOrder +=
slot = .()
slot.Size = .(, , , )
slot.BackgroundTransparency =
slot.LayoutOrder = notifOrder
slot.Parent = notifHolder
card = .()
card.Size = .(, , , )
card.Position = .(, , , )
card.BackgroundColor3 = .(, , )
card.BackgroundTransparency =
card.GroupTransparency =
card.Parent = slot
c = .()
c.CornerRadius = .(, )
c.Parent = card
s = .()
s.Thickness =
style
s.Color = style.color
s.Transparency =
s.Color = .(, , )
s.Transparency =
s.Parent = card
dot = .()
dot.Size = .(, , , )
dot.Position = .(, , , -)
dot.BorderSizePixel =
dot.BackgroundColor3 = style style.color
(isOn .(, , ) .(, , ))
dot.Parent = card
dc = .()
dc.CornerRadius = .(, )
dc.Parent = dot
label = .()
label.BackgroundTransparency =
label.Position = .(, , , )
label.Size = .(, -, , )
label.Font = .Font.GothamMedium
label.TextSize =
label.TextColor3 = style style.color .(, , )
label.TextXAlignment = .TextXAlignment.Left
label.Text = style (style.icon .. .. text) text
label.Parent = card
TweenService:(card, TweenInfo.(, .EasingStyle.Quint, .EasingDirection.Out), {
Position = .(, , , ),
GroupTransparency = ,
}):()
.(style , ()
out = TweenService:(card, TweenInfo.(, .EasingStyle.Quad, .EasingDirection.In), {
Position = .(, , , ),
GroupTransparency = ,
})
out:()
out.Completed:()
slot:()
)
bubble = .()
bubble.Name =
bubble.Size = .(, , , )
bubble.Position = .(, , , )
bubble.BackgroundColor3 = .(, , )
bubble.AutoButtonColor =
bubble.BorderSizePixel =
bubble.Text =
bubble.Font = .Font.GothamBold
bubble.TextSize =
bubble.TextColor3 = .(, , )
bubble.ZIndex =
bubble.Parent = gui
bc = .()
bc.CornerRadius = .(, )
bc.Parent = bubble
bs = .()
bs.Color = .(, , )
bs.Thickness =
bs.Transparency =
bs.Parent = bubble
panel = .()
panel.Name =
panel.Size = .(, , , )
panel.BackgroundColor3 = .(, , )
panel.BackgroundTransparency =
panel.BorderSizePixel =
panel.GroupTransparency =
panel.Visible =
panel.ZIndex =
panel.Parent = gui
pc = .()
pc.CornerRadius = .(, )
pc.Parent = panel
ps = .()
ps.Color = .(, , )
ps.Thickness =
ps.Transparency =
ps.Parent = panel
pscale = .()
pscale.Scale =
pscale.Parent = panel
blocker = .()
blocker.Size = .(, , , )
blocker.BackgroundTransparency =
blocker.Text =
blocker.AutoButtonColor =
blocker.ZIndex =
blocker.Parent = panel
(yOffset, titleText, subText)
t = .()
t.Position = .(, , , yOffset)
t.Size = .(, -, , )
t.BackgroundTransparency =
t.Font = .Font.GothamBold
t.TextSize =
t.TextColor3 = .(, , )
t.TextXAlignment = .TextXAlignment.Left
t.Text = titleText
t.ZIndex =
t.Parent = panel
s = .()
s.Position = .(, , , yOffset + )
s.Size = .(, -, , )
s.BackgroundTransparency =
s.Font = .Font.Gotham
s.TextSize =
s.TextColor3 = .(, , )
s.TextXAlignment = .TextXAlignment.Left
s.Text = subText
s.ZIndex =
s.Parent = panel
tr = .()
tr.Size = .(, , , )
tr.Position = .(, -, , yOffset + )
tr.BackgroundColor3 = .(, , )
tr.AutoButtonColor =
tr.BorderSizePixel =
tr.Text =
tr.ZIndex =
tr.Parent = panel
tc = .()
tc.CornerRadius = .(, )
tc.Parent = tr
kn = .()
kn.Size = .(, , , )
kn.Position = .(, , , -)
kn.BackgroundColor3 = .(, , )
kn.BorderSizePixel =
kn.ZIndex =
kn.Parent = tr
kc = .()
kc.CornerRadius = .(, )
kc.Parent = kn
tr, kn
multTrack, multKnob = (, , .. MULTIPLIER .. )
staffTrack, staffKnob = (, , )
()
panel.Position = .(
bubble.Position.X.Scale, bubble.Position.X.Offset,
bubble.Position.Y.Scale, bubble.Position.Y.Offset +
)
()
(track, knob, state)
info = TweenInfo.(, .EasingStyle.Quint, .EasingDirection.Out)
TweenService:(track, info, {
BackgroundColor3 = state .(, , ) .(, , ),
}):()
TweenService:(knob, info, {
Position = state .(, , , -) .(, , , -),
}):()
()
bubble.TextColor3 = (enabled staffAlertEnabled)
.(, , )
.(, , )
(plr)
char = plr.Character
char
staffHighlights[plr.UserId]
(() staffHighlights[plr.UserId]:() )
staffHighlights[plr.UserId] =
hl = .()
hl.Name =
hl.Adornee = char
hl.FillColor = STAFF_CONFIG.HighlightColor
hl.OutlineColor = STAFF_CONFIG.HighlightOutlineColor
hl.FillTransparency = STAFF_CONFIG.HighlightFillTransparency
hl.OutlineTransparency = STAFF_CONFIG.HighlightOutlineTransparency
hl.DepthMode = .HighlightDepthMode.AlwaysOnTop
hl.Parent = char
staffHighlights[plr.UserId] = hl
(userId)
staffHighlights[userId]
(() staffHighlights[userId]:() )
staffHighlights[userId] =
(plr, level)
char = plr.Character
char
head
_ = ,
head = char:()
head
.()
head
staffBillboards[plr.UserId]
(() staffBillboards[plr.UserId]:() )
staffBillboards[plr.UserId] =
style = STAFF_STYLES[level]
showLabel = STAFF_CONFIG.IconShowLabel
height = showLabel
bb = .()
bb.Name =
bb.Adornee = head
bb.Size = .(, , , height)
bb.StudsOffset = .(, STAFF_CONFIG.IconStudsOffset, )
bb.AlwaysOnTop =
bb.LightInfluence =
bb.MaxDistance = STAFF_CONFIG.IconMaxDistance
bb.Parent = head
icon = .()
icon.BackgroundTransparency =
icon.Size = .(, , , )
icon.Position = .(, , , )
icon.Font = .Font.GothamBold
icon.TextSize =
icon.Text = style.icon
icon.TextColor3 = style.color
icon.TextStrokeTransparency =
icon.TextStrokeColor3 = .(, , )
icon.Parent = bb
showLabel
label = .()
label.BackgroundTransparency =
label.Size = .(, , , )
label.Position = .(, , , )
label.Font = .Font.GothamBold
label.TextSize =
label.Text = level:()
label.TextColor3 = style.color
label.TextStrokeTransparency =
label.TextStrokeColor3 = .(, , )
label.Parent = bb
staffBillboards[plr.UserId] = bb
(userId)
staffBillboards[userId]
(() staffBillboards[userId]:() )
staffBillboards[userId] =
()
id (staffHighlights)
(id)
id (staffBillboards)
(id)
(name, keywords)
lower = name:()
_, kw (keywords)
lower:(kw, , ) kw
()
found = { systems = {}, remotes = {}, guis = {} }
services = {
:(),
:(),
}
sysName, names (STAFF_CONFIG.KnownSystems)
matched =
_, svc (services)
_, name (names)
inst = svc:(name)
inst
.(found.systems, { name = sysName, instance = inst, path = svc.Name .. .. name })
matched =
matched
containers = {
:(),
:(),
:(),
:(),
}
scanned =
_, container (containers)
ok, descendants = (() container:() )
ok descendants
_, desc (descendants)
scanned +=
scanned % == .()
kw = (desc.Name, STAFF_CONFIG.AdminKeywords)
kw
cls = desc.ClassName
cls == cls ==
.(found.remotes, { name = desc.Name, class = cls, instance = desc })
cls == cls == cls == cls ==
already =
_, sys (found.systems)
sys.instance == desc already =
_, g (found.guis)
g.instance == desc already =
already
.(found.guis, { name = desc.Name, class = cls, instance = desc })
found
(plr)
(container)
container
_, item (container:())
(item.Name, STAFF_CONFIG.ToolKeywords) item
found = (plr:())
found found
plr.Character
found = (plr.Character)
found
(plr)
STAFF_CONFIG.FlagCreator
.CreatorType == .CreatorType.User plr.UserId == .CreatorId
,
.CreatorType == .CreatorType.Group
ok, rank = (() plr:(.CreatorId) )
ok rank rank >= ,
lname = plr.Name:()
_, name (STAFF_CONFIG.KnownStaff)
lname == name:() ,
_, gid (STAFF_CONFIG.GroupIds)
ok, rank = (() plr:(gid) )
ok rank rank >
rank >= , .. rank
rank >= , .. rank
rank >= , .. rank
, .. rank
STAFF_CONFIG.CheckRobloxGroup
ok, rank = (() plr:() )
ok rank rank > ,
plr.Team plr.Team.Name
tn = plr.Team.Name:()
_, kw (STAFF_CONFIG.TeamKeywords)
tn:(kw, , )
tn:(, , ) , .. plr.Team.Name
tn:(, , ) , .. plr.Team.Name
tn:(, , ) , .. plr.Team.Name
, .. plr.Team.Name
tool = (plr)
tool , .. tool.Name
(plr)
plr == player
level, reason = (plr)
level
oldLevel = knownStaff[plr.UserId]
isNew = oldLevel ~= level
knownStaff[plr.UserId] = level
isNew
style = STAFF_STYLES[level]
suffix = reason ( .. reason .. )
(level:() .. .. plr.DisplayName .. .. plr.Name .. .. suffix, , style)
staffAlertEnabled
plr.Character
(plr)
isNew staffBillboards[plr.UserId]
(plr, level)
staffTracked[plr.UserId]
staffTracked[plr.UserId] =
plr.CharacterAdded:(()
staffAlertEnabled
knownStaff[plr.UserId]
.()
staffAlertEnabled knownStaff[plr.UserId]
(plr)
(plr, knownStaff[plr.UserId])
)
()
n =
_, p (Players:())
p ~= player knownStaff[p.UserId] n +=
n
(warnIfEmpty)
_, plr (Players:())
(plr)
warnIfEmpty
n = ()
n == hasWarnedNoStaff
hasWarnedNoStaff =
(, , EMPTY_STYLE)
n >
hasWarnedNoStaff =
()
deepScanRunning
deepScanRunning =
lastDeepScan = .()
ok, result = (deepScanAdminSystems)
ok result
deepScanRunning =
(, , EMPTY_STYLE)
_, sys (result.systems)
detectedSystems[sys.name]
detectedSystems[sys.name] =
( .. sys.name, , SYSTEM_STYLE)
#result.remotes >
seen = {}
_, r (result.remotes)
seen[r.name]
seen[r.name] =
detectedSystems[ .. r.name] =
( .. r.name .. .. r.class .. , , SYSTEM_STYLE)
#result.guis >
seen = {}
_, g (result.guis)
seen[g.name]
seen[g.name] =
detectedSystems[ .. g.name]
detectedSystems[ .. g.name] =
( .. g.name .. .. g.class .. , , SYSTEM_STYLE)
#result.systems == #result.remotes == #result.guis ==
detectedSystems[]
detectedSystems[] =
(, , EMPTY_STYLE)
detectedSystems[] =
deepScanRunning =
()
staffScanRunning
staffScanRunning =
.(()
()
.(STAFF_CONFIG.InitialGraceTime)
()
()
staffScanRunning staffAlertEnabled
.(STAFF_CONFIG.ScanInterval)
()
.() - lastDeepScan >= STAFF_CONFIG.DeepScanInterval
()
staffScanRunning =
)
(state)
staffAlertEnabled = state
(staffTrack, staffKnob, state)
()
state
hasWarnedNoStaff =
detectedSystems = {}
knownStaff = {}
staffTracked = {}
(, )
()
(, )
staffScanRunning =
()
knownStaff = {}
staffTracked = {}
detectedSystems = {}
hasWarnedNoStaff =
Players.PlayerAdded:((plr)
staffAlertEnabled
.()
(plr)
)
Players.PlayerRemoving:((plr)
knownStaff[plr.UserId] =
(plr.UserId)
(plr.UserId)
)
(state)
enabled = state
(multTrack, multKnob, state)
()
(state ( .. MULTIPLIER .. )
( .. MULTIPLIER .. ), state)
multTrack.Activated:(() ( enabled) )
staffTrack.Activated:(() ( staffAlertEnabled) )
panelOpen =
(open)
panelOpen = open
()
open
panel.Visible =
TweenService:(panel, TweenInfo.(, .EasingStyle.Quint, .EasingDirection.Out), {
GroupTransparency = ,
}):()
TweenService:(pscale, TweenInfo.(, .EasingStyle.Back, .EasingDirection.Out), {
Scale = ,
}):()
TweenService:(panel, TweenInfo.(, .EasingStyle.Quad, .EasingDirection.In), {
GroupTransparency = ,
}):()
TweenService:(pscale, TweenInfo.(, .EasingStyle.Quad, .EasingDirection.In), {
Scale = ,
}):()
.(, ()
panelOpen panel.Visible =
)
dragging =
dragged =
dragStart =
startPos =
activeTouch =
bubble.InputBegan:((input)
input.UserInputType ~= .UserInputType.Touch
dragging =
dragged =
dragStart = input.Position
startPos = bubble.Position
activeTouch = input
)
UIS.InputChanged:((input)
dragging
input.UserInputType ~= .UserInputType.Touch
activeTouch input ~= activeTouch
delta = input.Position - dragStart
dragged delta.Magnitude > dragged =
dragged
bubble.Position = .(
startPos.X.Scale, startPos.X.Offset + delta.X,
startPos.Y.Scale, startPos.Y.Offset + delta.Y
)
()
)
UIS.InputEnded:((input)
dragging
input.UserInputType ~= .UserInputType.Touch
activeTouch input ~= activeTouch
dragging =
activeTouch =
dragged ( panelOpen)
)
(x, y)
simulatedUntil = .() + PRESS_GAP +
(()
VIM:(x, y, .UserInputState.Begin, , )
.(PRESS_GAP)
VIM:(x, y, .UserInputState.End, , )
)
(obj, x, y)
obj.Visible
p, s = obj.AbsolutePosition, obj.AbsoluteSize
x >= p.X x <= p.X + s.X y >= p.Y y <= p.Y + s.Y
lastTap =
UIS.InputBegan:((input, gameProcessed)
input.UserInputType ~= .UserInputType.Touch
gameProcessed
.() < simulatedUntil
x, y = input.Position.X, input.Position.Y
(bubble, x, y)
panelOpen (panel, x, y)
enabled
now = .()
now - lastTap < DEBOUNCE
lastTap = now
.(()
i = , MULTIPLIER
enabled
(x, y)
.(i <= BURST_COUNT BURST_GAP REPLAY_GAP)
)
)
(, )Checks for any higher ups
Never paste your .ROBLOSECURITY cookie anywhere, and use an alt account with scripts.

Universal