Custom Admin Panel Architecture
HeadlessHeadless server-authoritative administration architecture, client SDK, and custom UI design freedom.
# Headless & Decoupled by Design
R Anti-Cheat adopts a Headless Architecture for in-game moderation and administration.
Instead of forcing an inflexible, opinionated pre-baked GUI that clashes with your game's visual design, font choices, or screen layout, RAC separates the server-authoritative moderation engine from the client presentation layer:
┌────────────────────────────────────────────────────────────────────────┐
│ SERVER: RAC AdminServer │
│ - Authoritative RBAC validation (UserId verification) │
│ - Telemetry collation & live threat scoring │
│ - Direct access to PunishmentManager & DetectionEngine │
└───────────────────────────────────┬────────────────────────────────────┘
│ Remotes: RAC_AdminRequest & RAC_AdminEvent
▼
┌────────────────────────────────────────────────────────────────────────┐
│ CLIENT SDK: ReplicatedStorage.RAC.ClientAPI │
│ - Typed Luau wrapper for all admin RPCs & live events │
│ - Real-time event hooks (OnDetection, OnWarning) │
└───────────────────────────────────┬────────────────────────────────────┘
│ Developer Hooks
▼
┌────────────────────────────────────────────────────────────────────────┐
│ DEVELOPER'S CUSTOM ADMIN GUI │
│ Choose any UI framework that matches your game: │
│ • Native Roblox ScreenGui (Frames, TextLabels, ImageButtons) │
│ • Roact / React-lua / Roact-Rodux │
│ • Fusion / Iris ImGui / Custom Canvas │
│ • In-Game Chat Commands (/warn, /kick, /ban, /freeze) │
└────────────────────────────────────────────────────────────────────────┘
# Why Decoupled Admin Panels are Superior
- Brand & Art Direction Matching: Your admin interface can match your game's exact UI theme (cyberpunk, fantasy, minimalist, cartoon, or sci-fi).
- Zero Bloat in Game Client: Regular players never download heavy UI components or assets they don't have permission to see.
- Framework Freedom: Use vanilla Roblox instances, modern reactive UI libraries (Fusion, Roact, React-lua), or custom mobile-optimized interfaces.
- Uncompromised Security: Regardless of what your UI looks like, every single action is verified on the server by
PermissionManagerbefore execution. Exploiters cannot spoof admin privileges by modifying client UI code.
# Client API Overview
RAC provides an official client-side SDK located at:
game.ReplicatedStorage.RAC.ClientAPI
Developers can require this module in any client LocalScript to query live telemetry, inspect active player risks, listen to detection events, and execute punishments with simple, typed Luau calls:
local RACClient = require(game.ReplicatedStorage.RAC.ClientAPI)
-- 1. Fetch live system overview
local success, stats, userRole = RACClient.GetOverviewData()
print(string.format("Logged in as %s. Total players monitored: %d", userRole, stats.totalMonitored))
-- 2. Fetch active players and their threat scores
local ok, players = RACClient.GetLivePlayers()
for _, p in ipairs(players) do
print(string.format("[%s] Risk: %d | Ping: %dms", p.username, p.riskScore, p.ping))
end
-- 3. Moderate an exploiter
RACClient.PunishPlayer("Kick", 12345678, "SpeedExploiter99", "Speed Hack Anomaly")
# Next Steps
- Follow the step-by-step tutorial in Building Custom Admin GUIs with Native ScreenGui and Roact examples.
- Inspect the complete method signatures in Client API & Remotes Reference.