Speed ASMR Keyboard EscapeDocumentation ← Portfolio

#Live Cross-Server Sync (Admin Console Internals)

AdminService (server) exposes a flat table of named actions (ACTIONS.GiveSpeed, ACTIONS.SetCode, …), all dispatched through a single remote (RequestAdminAction) and re-validated server-side regardless of what the client claims. AdminPanel (client) is a command-line UI over the same actions — adding a new admin command means adding one ACTIONS.X function and one define({...}) block in the panel; nothing else needs to change. See Admin Console — Basics for the player/admin-facing command list.

Two systems fan out across every live server via MessagingService, not just RequestAdminAction's own server:

  • Broadcast (topic AdminBroadcast) — every server subscribes and relays incoming messages to its own players via the Broadcast remote; Client.UI.Announcements renders the banner. See Admin — Broadcast.
  • Admin-set codes (topic AdminCodesSync, DataStore AdminCodes) — ExtrasService keeps an in-memory runtimeCodes table layered on top of Config.Codes.List; /setcode and /removecode update it locally, persist it to the DataStore, and publish the change so every other live server updates its own copy immediately rather than waiting on a DataStore poll. See Admin — Codes.

Both of these degrade gracefully if MessagingService/DataStoreService are unavailable (most commonly: Studio without "Enable Studio Access to API Services" checked) — they log a warning and keep working for the rest of that session on the current server only. See Why do I see DataStore/MessagingService warnings in Studio?.