> ## 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.

# Confessions

> Anonymous submissions with review, filtering, replies and full logging.

Members submit anonymously through a button; the confession is posted to a channel. Optionally it goes through staff review first, and other members can reply anonymously to it.

Requires **Manage Server** for most settings.

## Setting up

<Steps>
  <Step title="Pick the channel">
    ```javascript theme={null}
    !confessions channel #confessions
    ```

    Aliases: `set`, `forward`, `ch`, `c`.
  </Step>

  <Step title="Post the submit button">
    ```javascript theme={null}
    !confessions panel
    ```

    Puts the submission button in the confession channel. Aliases: `post`, `send`, `setup`, `create`.
  </Step>

  <Step title="Turn on logging (optional)">
    ```javascript theme={null}
    !confessions log #confession-logs
    ```

    Records who submitted what, in the clear. Make sure only staff can see this channel.

    You don't need it to moderate — [blacklisting works by hash](#abuse-controls), so you can remove a repeat offender without ever deanonymising them. Turn logging on only if your server genuinely needs the accountability, and be aware it removes the anonymity guarantee for everyone.
  </Step>
</Steps>

That's a working system. Everything below is hardening.

## Review queue

```javascript theme={null}
!confessions review #confession-review
```

Confessions go to a staff channel first and are only posted once approved. Aliases: `approve`, `moderate`, `mod`, `rev`.

<CodeGroup>
  ```javascript Ping staff for new submissions theme={null}
  !confessions review ping @Moderator
  ```

  ```javascript Hide the author during review theme={null}
  !confessions anonymous on
  ```

  ```javascript Turn review off theme={null}
  !confessions review remove
  ```
</CodeGroup>

`confessions anonymous on` hides the submitter's identity **from reviewing staff too**, so approval is judged purely on content. The identity is still recorded in the log channel if you've set one.

Rejecting a confession in the review queue also **blacklists its author's hash automatically** — so declining something abusive stops that person submitting again, in one click, without revealing who they were.

<Tip>
  Turn review on. Without it, the first person to submit something genuinely awful does so directly into a public channel, and you're deleting rather than declining.
</Tip>

## Abuse controls

<AccordionGroup>
  <Accordion title="Word filter" icon="filter">
    ```javascript theme={null}
    !confessions filter slur
    !confessions filter view
    !confessions filter status off
    ```

    Toggles words in and out of the filter. `filter status off` disables filtering without clearing the list. Aliases: `wordfilter`, `words`, `wf`.
  </Accordion>

  <Accordion title="Minimum account age" icon="user-clock">
    ```javascript theme={null}
    !confessions age 7d
    !confessions age view
    !confessions age remove
    ```

    Blocks brand-new accounts from submitting. The main defence against someone banned from the server making an alt to keep harassing people. Aliases: `accountage`, `minage`.
  </Accordion>

  <Accordion title="Cooldown" icon="clock">
    ```javascript theme={null}
    !confessions cooldown 10m
    !confessions cooldown remove
    ```

    Per-user gap between submissions. Aliases: `cd`, `delay`, `wait`.
  </Accordion>

  <Accordion title="Blacklisting" icon="ban">
    The important part: **you can blacklist whoever sent a confession by replying to it**, without ever learning who they are.

    ```javascript theme={null}
    !confessions blacklist
    ```

    Reply to the confession — or to one of its anonymous replies — and run that. Every submission is stored against a **hash** of the author, and it's the hash that gets blacklisted. You never see the account, and they stay anonymous.

    ```javascript theme={null}
    !confessions blacklist @someone
    !confessions blacklist @Muted
    !confessions blacklist view
    !confessions blacklist clear
    ```

    Passing a member or role blacklists them directly, for when you *do* know who you're dealing with. The command toggles either way. Aliases: `ignore`, `block`, `bl`.

    `blacklist view` lists members and roles by mention, and hash entries as bare hashes — those are deliberately not resolvable back to an account.

    <Note>
      The hash is salted per server, so the same person produces a different hash in every server. A blacklist entry can't be correlated across servers, and it can't be reversed into a user ID.
    </Note>
  </Accordion>

  <Accordion title="Links and images" icon="image">
    ```javascript theme={null}
    !confessions links off
    !confessions images off
    ```

    Both default to allowed. Turning links off stops anonymous scam links; turning images off stops anonymous shock content. Most servers want both off.
  </Accordion>
</AccordionGroup>

## Appearance

<CodeGroup>
  ```javascript The confession itself theme={null}
  !confessions template {title: Confession #{number}} {description: {confession}} {color: #5cacec}
  ```

  ```javascript Reset it theme={null}
  !confessions template remove
  ```

  ```javascript The submit button theme={null}
  !confessions button primary "Confess"
  ```

  ```javascript The reply button theme={null}
  !confessions replybutton secondary "Reply"
  ```

  ```javascript Reply appearance theme={null}
  !confessions reply {description: **Reply to #{number}**
  {confession}}
  ```
</CodeGroup>

Templates use the [scripting language](/scripting/overview). Both buttons can be removed entirely with `!confessions button remove` / `!confessions replybutton remove`.

## Notifications

```javascript theme={null}
!confessions ping @Confessions
!confessions ping view
!confessions ping clear
```

Roles pinged when a confession is posted. Requires **Manage Server** and **Mention Everyone**.

## Reviewing the configuration

```javascript theme={null}
!confessions settings
```

Shows the channel, review channel, log channel, filters, cooldown, age requirement and blacklist.

## Command reference

| Command                                   | Aliases                 | Description                |
| ----------------------------------------- | ----------------------- | -------------------------- |
| `confessions channel <channel>`           | `set`, `forward`, `ch`  | Where confessions post     |
| `confessions panel`                       | `post`, `send`, `setup` | Post the submit button     |
| `confessions log <channel>`               | `logs`, `logging`       | Who submitted what         |
| `confessions review <channel>`            | `approve`, `moderate`   | Review queue               |
| `confessions review ping <role>`          | `notify`, `mention`     | Ping on new submissions    |
| `confessions anonymous (on/off)`          | `anon`, `hide`          | Hide authors during review |
| `confessions filter <word>`               | `wordfilter`, `wf`      | Toggle a filtered word     |
| `confessions filter view`                 | `list`, `show`          | View filtered words        |
| `confessions filter status (on/off)`      | `toggle`                | Enable/disable filtering   |
| `confessions age [duration]`              | `accountage`, `minage`  | Minimum account age        |
| `confessions cooldown [duration]`         | `cd`, `delay`           | Per-user cooldown          |
| `confessions blacklist [target]`          | `ignore`, `block`, `bl` | Toggle a blacklist entry   |
| `confessions blacklist view`              | `list`                  | View the blacklist         |
| `confessions links (on/off)`              | `link`, `urls`          | Allow links                |
| `confessions images (on/off)`             | `img`, `attachments`    | Allow images               |
| `confessions template <script>`           | `script`                | Confession appearance      |
| `confessions reply <script>`              | `replyscript`           | Reply appearance           |
| `confessions button <style> <label>`      | `submitbutton`          | Submit button              |
| `confessions replybutton <style> <label>` | —                       | Reply button               |
| `confessions ping <role>`                 | `mention`, `notify`     | Roles to ping              |
| `confessions settings`                    | `config`, `cfg`, `ov`   | Full overview              |

Group aliases: `confession`, `conf`, `cnf`.
