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

# Bans, kicks, and timeouts

> Remove or restrict a member: timeouts, kicks, the five kinds of ban, and how to reverse each one.

Bloom gives you a range of actions from a short timeout to a permanent ban. Every one of them opens a case with a number, a moderator, and a reason, so the action stays on record.

## Choosing an action

| Action    | What happens                                                                           | Undo                           |
| --------- | -------------------------------------------------------------------------------------- | ------------------------------ |
| `timeout` | The member stays but cannot talk, react, or join voice, for up to 28 days.             | Ends by itself, or `untimeout` |
| `kick`    | The member is removed and can return with a new invite.                                | Rejoin                         |
| `softban` | Banned and immediately unbanned, which deletes their recent messages. They can rejoin. | Rejoin                         |
| `tempban` | Banned until the time you set runs out, then Bloom lifts it.                           | `unban`                        |
| `ban`     | Banned until someone lifts it.                                                         | `unban`                        |
| `hackban` | Bans an account that is not in the server, by ID.                                      | `unban`                        |
| `hardban` | A ban only the server owner can place and lift.                                        | `unban`, owner only            |

<Tip>
  Reach for the mildest action that solves the problem. A timeout stops a heated argument without costing you the member, and it lifts itself.
</Tip>

## Before you act

Three things decide whether an action is allowed:

* **Your permission.** Kick needs Kick Members, timeout needs Moderate Members, and every ban needs Ban Members.
* **Your position.** Your highest role must be **above** the target's highest role. Equal is not enough.
* **Bloom's position.** Bloom's role must also be above the target's, or it replies that it cannot act on that member.

Nobody can action the server owner, and you cannot action yourself. If your server runs anti-nuke with a ban or kick threshold, reaching that threshold blocks further actions until the window passes.

## Naming the person

Every command takes a mention, a user ID, or a username. Use the ID for anyone who is not in the server, since Bloom cannot search for someone who has left.

```text Three ways to name the same person theme={null}
!kick @Someone Breaking rule 3
!kick 123456789012345678 Breaking rule 3
!kick Someone Breaking rule 3
```

## Options every punishment shares

**Silent.** Add `-s` (or `-silent`) to skip the direct message Bloom normally sends the member.

**Deleting their messages.** The ban commands can clear the member's recent messages as they go. Discord allows at most **7 days** of history to be deleted, and Bloom trims anything longer to that.

| You write         | Messages deleted                           |
| ----------------- | ------------------------------------------ |
| nothing           | None, except `softban`, which clears 1 day |
| `-p`              | The last 24 hours                          |
| `-p7`             | The last 7 days, a bare number means days  |
| `-p6h` or `-p 2d` | The period you name                        |

## The commands

<ParamField path="timeout <user> <duration> [reason] [-s]" type="Moderate Members">
  Applies a Discord timeout. The member keeps their roles but cannot send messages, react, or speak until it ends.

  * **Duration:** required, in the [standard format](/reference/time), up to 28 days.
  * **Bloom needs:** Moderate Members.
  * `!timeout @Someone 1h Spamming` replies `Successfully timed out Someone for 1 hour.`
</ParamField>

<Warning>
  `!mute` does **not** run this command. It runs Bloom's own mute system, which uses a role instead of Discord's timeout. Type `timeout` in full when you want a Discord timeout.
</Warning>

<ParamField path="untimeout <user> [reason]" type="Moderate Members">
  Ends a timeout early. Alias: `removetimeout`. The member must still be in the server.
</ParamField>

<ParamField path="kick <user> [reason] [-s]" type="Kick Members">
  Removes a member from the server. They can come back with a new invite, and nothing they posted is deleted.

  * **Bloom needs:** Kick Members.
  * `!kick @Someone Breaking rule 3` replies `Successfully kicked Someone.`
</ParamField>

<ParamField path="ban <user> [reason] [-s] [-p]" type="Ban Members">
  Bans a member until someone lifts it. Alias: `permaban`.

  * **Bloom needs:** Ban Members.
  * `!ban @Someone Raiding -p7` bans them and deletes their last seven days of messages.
</ParamField>

<ParamField path="tempban <user> <duration> [reason] [-s] [-p]" type="Ban Members">
  Bans a member for a set time. Bloom lifts the ban within about a minute of it running out, with no action needed from you. Alias: `tban`.

  * **Duration:** required, and comes straight after the user.
  * `!tempban @Someone 7d Breaking rules` replies `Successfully banned Someone for 7 days.`
</ParamField>

<ParamField path="softban <user> [reason] [-s] [-p]" type="Ban Members">
  Bans and instantly unbans, which deletes the member's recent messages and removes them from the server. Use it to clean up a spam run without locking the person out.

  * Deletes **1 day** of messages unless you set a different window.
  * The member can rejoin with a new invite.
</ParamField>

<ParamField path="hackban <user_id> [reason] [-s] [-p]" type="Ban Members">
  Bans an account that is not in the server, so it cannot join later. Alias: `forceban`.

  * Takes a **user ID** only, not a mention or name.
  * Tells you if that account is already banned.
</ParamField>

<ParamField path="hardban <user_id> [reason] [-s] [-p]" type="Server owner">
  Bans an account and records it so that **only the server owner** can lift it. Other moderators with Ban Members get told the ban is protected.

  * Takes a **user ID** only.
  * Reserve it for people who must never be let back in.
</ParamField>

<Danger>
  A hardban cannot be undone by your moderators, only by the server owner. If ownership changes hands or the owner is unavailable, nobody else can lift it.
</Danger>

## Reversing and reviewing

<ParamField path="unban <user_id> [reason] [-s]" type="Ban Members">
  Lifts a ban. Takes a user ID, since the account is no longer in the server. Bloom tells the person they were unbanned unless you add `-s`.

  A hardbanned account is refused here unless the **server owner** runs the command.
</ParamField>

<ParamField path="bans [search]" type="Ban Members">
  Lists everyone currently banned, with their ID and ban reason, ten per page. Alias: `banlist`.

  * `!bans someone` filters the list by name or ID.
  * The page buttons work for two minutes, then the list freezes on its current page.
</ParamField>

## What the member is told

Unless you add `-s`, Bloom sends the member a direct message with the action, your reason, and the duration where there is one. Members who have turned off moderation DMs, or who block DMs from the server, get nothing, and the action still goes through.

If your server has ban appeals set up, ban and tempban messages include the appeal link.

<Info>
  A hackban reaches an account that shares no server with Bloom, so it cannot be notified. The action is recorded either way.
</Info>

## Troubleshooting

<AccordionGroup>
  <Accordion title="I cannot ban this user. They may have higher permissions than me.">
    Bloom's own role sits at or below the target's highest role. Move Bloom's role up in **Server Settings → Roles**, above every role it needs to action.
  </Accordion>

  <Accordion title="You cannot ban this user as they have an equal or higher role than you">
    Discord blocks moderators from acting on their equals. Someone with a higher role has to take the action, or your role has to move above theirs.
  </Accordion>

  <Accordion title="User not found">
    Bloom cannot search for someone who is not in the server. Use their user ID instead, and use `hackban` rather than `ban` if they never joined.
  </Accordion>

  <Accordion title="The tempban did not lift">
    Bloom lifts expired tempbans on a regular check, so allow a minute. If the ban was placed again by hand, or lifted and re-placed, the new ban is permanent and needs `!unban`.
  </Accordion>

  <Accordion title="Anti-nuke protection triggered">
    You crossed the ban or kick threshold your server set for anti-nuke. It is a safety limit against a compromised account, not an error. Wait for the window to pass, or have the owner adjust the threshold.
  </Accordion>
</AccordionGroup>

## Related pages

<CardGroup cols={2}>
  <Card title="Durations and time zones" icon="clock" href="/reference/time">
    The time format `timeout` and `tempban` expect.
  </Card>

  <Card title="Permissions and hierarchy" icon="user-lock" href="/getting-started/permissions">
    Why role position decides what a moderator can do.
  </Card>

  <Card title="Event logging" icon="scroll" href="/configuration/logging">
    Send every case to a staff channel as it happens.
  </Card>

  <Card title="Permission reference" icon="table-list" href="/reference/permissions">
    Which Discord permission each action checks.
  </Card>
</CardGroup>
