> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mira.party/llms.txt
> Use this file to discover all available pages before exploring further.

# Punishments

> Bans, kicks, mutes, jails and timeouts — including every temporary variant.

## Bans

<CodeGroup>
  ```javascript Standard theme={null}
  !ban @someone raiding
  ```

  ```javascript Control message deletion theme={null}
  !ban @someone 1d raiding
  ```

  ```javascript Temporary theme={null}
  !tempban @someone 7d ban evasion
  ```

  ```javascript Permanent, survives rejoins theme={null}
  !hardban @someone known raider
  ```

  ```javascript Ban then unban theme={null}
  !softban @someone spam
  ```

  ```javascript Multiple at once theme={null}
  !massban 111111 222222 333333 raid
  ```
</CodeGroup>

All require **Ban Members**.

| Command   | Aliases          | Behaviour                                                                                                            |
| --------- | ---------------- | -------------------------------------------------------------------------------------------------------------------- |
| `ban`     | `boot`           | Normal ban. The optional history argument deletes that much of their recent messages, up to **7 days** (default 7d). |
| `tempban` | `tempb`, `tb`    | Bans, then unbans automatically when the duration elapses.                                                           |
| `hardban` | `permaban`, `hb` | Ban that re-applies on every rejoin attempt. Survives someone else unbanning them.                                   |
| `softban` | `softb`          | Ban immediately followed by unban. Clears their messages but lets them return — a kick with cleanup.                 |
| `massban` | `massb`, `mb`    | Bans a list of users or IDs in one action.                                                                           |

<Warning>
  `hardban` is deliberately hard to undo. Removing one means running `!hardban @them` again to toggle it off — a plain `!unban` won't stick, because the hardban re-applies. `!hardban list` shows who's on it.
</Warning>

### Unbanning

<CodeGroup>
  ```javascript One person theme={null}
  !unban 111111 appealed
  ```

  ```javascript Everyone theme={null}
  !unban all
  ```
</CodeGroup>

`unban all` requires **Administrator** — it's a big lever. Aliases for `unban`: `ub`, `pardon`.

### Checking and searching bans

```javascript theme={null}
!ban check @someone
!ban list
!ban list raid
```

`ban check` (aliases `info`, `lookup`, `status`, or the standalone `banned`) tells you whether a user is banned and why. `ban list` pages through every ban, and takes a search term or flags:

```javascript theme={null}
!ban list --reason raid
!ban list --moderator @jake
```

`tempban list` shows active temporary bans with their expiry.

## Kicks

```javascript theme={null}
!kick @someone breaking rules
```

Requires **Kick Members**. Nothing complicated — they can rejoin with a new invite.

<Note>
  `kick` does double duty: with a member it kicks, with a Kick.com username it looks up that channel. mira works out which you meant from the argument. The [streamer feed](/social/feeds) commands live under `kick add`, `kick list` and so on.
</Note>

## Timeouts

```javascript theme={null}
!timeout @someone 1h
!timeout @someone 30m arguing
!untimeout @someone
```

Requires **Moderate Members**. Uses Discord's native timeout, so it applies everywhere — text, voice, reactions, threads — and shows on their profile. Maximum **28 days**.

| Command         | Aliases                        |
| --------------- | ------------------------------ |
| `timeout`       | `tmo`, `to`                    |
| `untimeout`     | `untmo`, `unto`, `utmo`, `uto` |
| `timeout list`  | `ls`                           |
| `untimeout all` | — (Administrator)              |

## Mutes

Three flavours, each with its own role. Run `!setup` once to create them.

<CodeGroup>
  ```javascript Text theme={null}
  !mute @someone 1h spamming
  !unmute @someone
  ```

  ```javascript Reactions only theme={null}
  !mute reactions @someone
  !rmute @someone
  ```

  ```javascript Attachments & embeds theme={null}
  !mute attachments @someone
  !imute @someone
  ```
</CodeGroup>

| Command            | Aliases              | Blocks                 |
| ------------------ | -------------------- | ---------------------- |
| `mute`             | `shutup`             | Sending messages       |
| `mute reactions`   | `rmute`, `reactmute` | Adding reactions       |
| `mute attachments` | `imute`, `amute`     | Attachments and embeds |

Requires **Moderate Members**. The duration is optional — leave it off for an indefinite mute.

```javascript theme={null}
!mute list
!mute sync
```

`mute sync` re-applies the mute role's overwrites to every channel. Run it after creating new channels, or muted members will be able to talk in them. Requires **Manage Channels** and **Manage Roles**.

<Tip>
  Mute roles and timeouts solve the same problem differently. Timeouts are enforced by Discord and can't be worked around, but cap at 28 days and are all-or-nothing. Mute roles are indefinite and granular — you can mute someone in text while leaving voice alone. Most servers use timeouts for short punishments and mutes for long ones.
</Tip>

## Jail

```javascript theme={null}
!jail @someone 1d under investigation
!unjail @someone
```

Removes access to every channel except a dedicated jail channel. Useful when you need someone contained but reachable — appeals, investigations, cooling off.

Requires **Manage Roles**. Set up via `!setup`.

<CodeGroup>
  ```javascript Who's jailed theme={null}
  !jail list
  ```

  ```javascript Customise the jail channel message theme={null}
  !jail message {title: You're in jail} {description: A moderator will be with you shortly.}
  ```

  ```javascript Preview it theme={null}
  !jail message view
  ```

  ```javascript Fix permissions after adding channels theme={null}
  !jail sync
  ```
</CodeGroup>

## Voice moderation

<CodeGroup>
  ```javascript Disconnect theme={null}
  !voicekick @someone @someoneelse
  ```

  ```javascript Move everyone theme={null}
  !moveall #other-vc
  ```

  ```javascript Move members you specify theme={null}
  !drag #other-vc
  ```
</CodeGroup>

Requires **Manage Channels**. `voicekick` aliases: `vckick`, `vkick`, `vk`. `moveall` alias: `mvall`. `drag all` is the same as `moveall`.

## Stripping staff

```javascript theme={null}
!stripstaff @someone
!stripstaff restore @someone
```

Removes every role that carries meaningful permissions, leaving cosmetic roles alone. `restore` puts back exactly what was taken.

Requires **Administrator**. This is what [antinuke](/security/antinuke#punishment) uses when its punishment is set to `stripstaff` — it neutralises an account without banning it, and is fully reversible once you've worked out what happened.

## Nicknames

<CodeGroup>
  ```javascript Change one theme={null}
  !nickname @someone newname
  ```

  ```javascript Remove it theme={null}
  !nickname remove @someone
  ```

  ```javascript Lock it theme={null}
  !nickname force @someone approvedname
  ```

  ```javascript Unlock theme={null}
  !nickname force cancel @someone
  ```

  ```javascript Make an unmentionable name typeable theme={null}
  !fix @someone
  ```
</CodeGroup>

`nickname force` prevents the member changing their nickname — every attempt is reverted. `forcenickname` (`forcenick`, `fn`) is the shortcut. `nickname force list` shows everyone currently locked.

`fix` (alias `taggable`) rewrites a nickname made of unusual unicode into something you can actually type to mention them.

Requires **Manage Nicknames**.

## Command reference

| Command                               | Permission              | Description                        |
| ------------------------------------- | ----------------------- | ---------------------------------- |
| `ban <user> [history] [reason]`       | Ban Members             | Ban, deleting up to 7d of messages |
| `ban check <user>`                    | Ban Members             | Check whether a user is banned     |
| `ban list [search]`                   | Ban Members             | Search the ban list                |
| `tempban <member> <time> [reason]`    | Ban Members             | Ban with an automatic unban        |
| `tempban list`                        | Ban Members             | Active temporary bans              |
| `hardban <user> [history] [reason]`   | Ban Members             | Ban that survives rejoins          |
| `hardban list`                        | Ban Members             | View hardbanned users              |
| `softban <member> [history] [reason]` | Ban Members             | Ban then unban                     |
| `massban <users> [history] [reason]`  | Ban Members             | Ban several at once                |
| `unban <user> [reason]`               | Ban Members             | Lift a ban                         |
| `unban all [reason]`                  | Administrator           | Lift every ban                     |
| `kick <member> [reason]`              | Kick Members            | Remove from the server             |
| `timeout <member> <when>`             | Moderate Members        | Discord timeout                    |
| `untimeout <member> [reason]`         | Moderate Members        | Lift a timeout                     |
| `untimeout all`                       | Administrator           | Lift every timeout                 |
| `mute <member> [when] [reason]`       | Moderate Members        | Text mute                          |
| `mute reactions <member>`             | Moderate Members        | Reaction mute                      |
| `mute attachments <member>`           | Moderate Members        | Attachment/embed mute              |
| `unmute <member> [reason]`            | Moderate Members        | Lift a mute                        |
| `mute sync`                           | Manage Channels + Roles | Re-apply mute overwrites           |
| `jail <member> [when]`                | Manage Roles            | Remove channel access              |
| `unjail <member> [reason]`            | Manage Roles            | Restore access                     |
| `jail message <script>`               | Manage Roles            | Customise the jail message         |
| `jail sync`                           | Manage Channels + Roles | Re-apply jail overwrites           |
| `stripstaff <member>`                 | Administrator           | Remove all staff roles             |
| `stripstaff restore <member>`         | Administrator           | Give them back                     |
| `voicekick <members> [reason]`        | Manage Channels         | Disconnect from voice              |
| `moveall <channel>`                   | Manage Channels         | Move everyone to another VC        |
| `nickname <member> <nickname>`        | —                       | Set a nickname                     |
| `nickname force <member> [nickname]`  | Manage Nicknames        | Lock a nickname                    |
| `fix <member>`                        | Manage Nicknames        | Make a nickname typeable           |
| `setup`                               | Manage Roles + Channels | Create mute and jail roles         |
