Operate the live game
universeManage a published Roblox experience live: restart servers, message all servers, ban/unban players, and look up users or inventory.
Instructions
Acts on the PUBLISHED experience and the people in it — not on the place open in Studio.
restart rolls live servers onto the version you just published. Publishing on its own changes nothing for anyone already playing: they stay on their server, running the old code, until it empties. This is the step people forget. By default it bleeds off over 10 minutes — matchmaking stops and players finish what they are doing — rather than shutting servers down under them, which is what Roblox's own default does.
message publishes to MessagingService, reaching every live server at once. Only servers with a SubscribeAsync listener on that exact topic receive it, and nothing reports whether anything was listening, so success here does not mean delivery.
ban and unban set a player's game-join restriction. A ban with no durationSeconds is PERMANENT. displayReason is shown to the player; privateReason is for your records. Scope it to one place with placeId, or leave that out to cover the whole experience. bans lists who is currently restricted.
user looks up a user id — the name-to-id step most other calls need. inventory reports what someone owns: passes, badges, assets.
Everything here needs an Open Cloud key and a universe id. The user sets both once with cloud in the Studio panel.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| op | Yes | 'restart' rolls servers onto the new version, 'message' publishes to MessagingService, 'ban'/'unban'/'bans' manage player access, 'user' and 'inventory' look someone up. | |
| limit | No | bans/inventory: how many rows to return. | |
| topic | No | message only: the MessagingService topic. | |
| filter | No | inventory only: an Open Cloud filter, e.g. `gamePassIds=123` or `assetIds=456`, to ask about specific items rather than listing everything. | |
| userId | No | ban/unban/user/inventory: the player's user id. | |
| confirm | No | Required for restart, message, ban and unban. Each of these is visible to players the moment it runs and none can be undone from here. | |
| message | No | message only: the payload, as a string. | |
| placeId | No | ban/unban: restrict to this place only, instead of the whole experience. restart: only restart this place's servers. | |
| universeId | No | Which game. Omit to use the one set with `cloud universe <id>`. | |
| displayReason | No | ban only: shown to the player when they are turned away. | |
| privateReason | No | ban only: your own record. The player never sees it. | |
| bleedOffMinutes | No | restart only: minutes to let existing servers drain. 0 shuts them down immediately, moving players mid-game. Defaults to 10. | |
| durationSeconds | No | ban only: how long, in seconds. OMIT THIS AND THE BAN IS PERMANENT — say so to the user before you do it. | |
| excludeAltAccounts | No | ban only: if true, the ban applies to this account alone rather than to alts Roblox links to it. Defaults to false. |