Description
Open src. βββββββββββββ Lightweight utility designed for real-time player scanning. Automatically detects moderators, developers, and administrators via official group roles and internal Cmdr command hooks. Instant Detection: Scans current players on join and monitors incoming users. Rate-Limit Safe: Built-in retry queue prevents HTTP 429 errors during mass checks. Dual Check: Combines direct group rank verification with Cmdr admin whitelists. Clean Alerts: Formatted console logs and in-game UI notifications. Auto-Exec Ready: Includes PlaceId validation and load-state checks.
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. Deal with caution.
--
-- Stay safe:
-- β’ Never log in on unofficial Roblox sites or lookalike domains.
-- β’ Real Roblox links use roblox.com (check the .com ending).
-- β’ Treat fake Roblox login / "claim reward" pages as phishing.
-- [[ End BloxScripts Risk Notice ]]
if game.PlaceId ~= 5683833663 then return end
if not game:IsLoaded() then game.Loaded:Wait() end
local Players = game:GetService("Players")
local StarterGui = game:GetService("StarterGui")
local GROUP_ID = 9642354
local MIN_STAFF_RANK = 6
local EXCLUDED_RANKS = {[7] = true}
local adminWhitelist = {[1885942045] = "Hardcoded Admin"}
for _, mod in ipairs(getloadedmodules()) do
if mod.Name:lower():find("cmdr") then
local s, res = pcall(require, mod)
if s and type(res) == "table" and res.Registry then
local hooks = res.Registry.Hooks and res.Registry.Hooks.BeforeRun
if hooks and hooks[1] then
local fn = hooks[1].callback or hooks[1].Callback or hooks[1][1]
local uvs = (getupvalues and getupvalues(fn)) or {}
local list = uvs[1] and uvs[1].Admins
if type(list) == "table" then
for _, uid in pairs(list) do
adminWhitelist[tonumber(uid)] = "Cmdr Admin"
end
end
end
break
end
end
end
local cache = {}
local function notify(title, text, dur)
pcall(StarterGui.SetCore, StarterGui, "SendNotification", {
Title = title,
Text = text,
Duration = dur or 6
})
end
local execName = (identifyexecutor and identifyexecutor()) or (getexecutorname and getexecutorname()) or "Unknown"
if not (task and task.spawn and pcall and Players.LocalPlayer) then
warn(string.format("[StaffWatcher] Unsupported Executor: %s", tostring(execName)))
notify("Staff Watcher Error", "Your executor is not supported!", 8)
return
end
local function check(p, isJoin, onComplete)
if not p or not p.Parent then
if onComplete then onComplete(false) end
return
end
if cache[p.UserId] ~= nil then
if onComplete then onComplete(cache[p.UserId]) end
return
end
if adminWhitelist[p.UserId] then
cache[p.UserId] = true
local role = adminWhitelist[p.UserId]
local status = isJoin and "JOINED SERVER" or "FOUND ON SERVER"
print(string.format(
"\n[STAFF %s]\n ββ Name: %s (@%s)\n ββ UserID: %d\n ββ Role: %s (Whitelist)",
status, p.DisplayName, p.Name, p.UserId, role
))
notify(
isJoin and "β οΈ Staff Joined!" or "β οΈ Staff Alert!",
string.format("%s (@%s)\nRole: %s", p.DisplayName, p.Name, role),
8
)
if onComplete then onComplete(true) end
return
end
task.spawn(function()
local okRank, rank = pcall(p.GetRankInGroup, p, GROUP_ID)
if not okRank then
local err = tostring(rank)
if err:find("429") or err:find("Too Many Requests") or err:find("Timeout") then
task.delay(4, function()
cache[p.UserId] = nil
check(p, isJoin, onComplete)
end)
else
if onComplete then onComplete(false) end
end
return
end
rank = rank or 0
local isStaff = (rank >= MIN_STAFF_RANK) and not EXCLUDED_RANKS[rank]
cache[p.UserId] = isStaff
if isStaff and p.Parent then
local okRole, role = pcall(p.GetRoleInGroup, p, GROUP_ID)
role = (okRole and role) or "Moderator"
local status = isJoin and "JOINED SERVER" or "FOUND ON SERVER"
print(string.format(
"\n[STAFF %s]\n ββ Name: %s (@%s)\n ββ UserID: %d\n ββ Role: %s (Rank: %d)",
status, p.DisplayName, p.Name, p.UserId, role, rank
))
notify(
isJoin and "β οΈ Staff Joined!" or "β οΈ Staff Alert!",
string.format("%s (@%s)\nRole: %s", p.DisplayName, p.Name, role),
8
)
end
if onComplete then onComplete(isStaff) end
end)
end
print(string.format("[StaffWatcher] Initialized (%s) | PlaceId: %d | Group: %d", tostring(execName), game.PlaceId, GROUP_ID))
notify("Staff Watcher", "Scanning server...", 3)
local initialPlayers = Players:GetPlayers()
local total = #initialPlayers
local scanned = 0
local found = 0
for _, p in ipairs(initialPlayers) do
check(p, false, function(isStaff)
scanned += 1
if isStaff then found += 1 end
end)
task.wait(0.08)
end
task.spawn(function()
local t = os.clock()
while scanned < total and (os.clock() - t) < 15 do
task.wait(0.2)
end
if found == 0 then
print("[StaffWatcher] Scan complete. No staff members found on this server.")
notify("Staff Watcher", "Scan complete: No staff found.", 5)
else
print(string.format("[StaffWatcher] Scan complete. Staff found: %d", found))
end
end)
Players.PlayerAdded:Connect(function(p)
task.wait(1)
check(p, true)
end)
Players.PlayerRemoving:Connect(function(p)
if cache[p.UserId] then
print(string.format("[STAFF LEFT] %s (@%s)", p.DisplayName, p.Name))
notify("Staff Left", string.format("%s (@%s) left the server", p.DisplayName, p.Name), 5)
end
cache[p.UserId] = nil
end)Review the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.


Your community, in one place