# update-2

### Romod update — permissions, mass ban, and more

#### Command permissions (`/permissions`) — how it actually works

Romod still has the moderator role you pick in `/setup`, and that role is the default for who can run moderation-style commands.

What’s new: server admins can add per-command overrides. For a given slash command, you can say “only these Discord roles may use *this* command,” independent of the default mod role.

Important details:

* Who configures it: only people with Discord’s Administrator permission can use `/permissions`. Regular mods cannot change these rules.
* How it’s stored: each override is “this exact command → up to five allowed roles.” Setting an override again replaces that command’s allowed roles for your server (it’s not silently merging with old picks unless you use `/permissions remove`).
* Inspecting config: `/permissions list` shows every override and reminds you what the fallback mod role is. `/permissions clear` removes one command’s override so it goes back to the mod role only; `/permissions remove` drops specific roles from an override without wiping the rest.

So in practice: you can give Junior Mod only `/checkban`, give Senior Mod bans and `/editcase`, and keep everyone else on the default mod role — without creating a second bot or juggling multiple servers.

note: if an override exists, the member needs at least one of the roles you listed. If no override exists for that command, Romod falls back to “must have the setup mod role,” same as before.

Setup note: `/resetdata` for a server also clears that server’s command-permission overrides (along with other stored server data).

***

#### Mass ban (`/massban`)

What it does: permanently bans many Roblox accounts in one go from your game, with a confirmation step so it can’t fire by accident.

How to use it:

* `players`: type Roblox usernames, separated by spaces — not numeric user IDs.
* Limits: at most 50 usernames per run (abuse cap). Duplicate names in the same message are deduplicated.
* `reason`: optional in the slash definition, but if your server has “require reason” enabled in setup/config, leaving it empty/`Unspecified` is rejected. Reasons support `/preset` autocomplete the same as other ban commands.
* `ban_alts`: default on — uses Roblox’s restriction behavior to try to include known alt accounts when banning (same idea as your other ban commands).

After you run it: you get an ephemeral preview (up to 10 names shown, then “and X more”) and Confirm on the buttons view. Only after confirm does the bot loop users: resolve username → API ban → log channel embed → case tracking. You get a private summary: how many succeeded/failed and short error hints for failures.

Cooldowns (anti-spam): you can only start `/massban` once per 60 seconds per server, and once per 60 seconds per staff member (both apply).

Same rules as normal bans: each successful ban is still logged and can still participate in linked-game ban sync when your reason matches the sync rules (cheat/exploit-style cases between the paired games).

***

#### Also in this update (short)

* `/mass_unban`: bulk unban by usernames, same 50-user cap, confirmation flow, same cooldown pattern as mass ban.

<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.jbz.dev/romod/updates/update-2.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
