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

# Fake Permissions

> Grant bot-level moderation access to roles without giving real Discord permissions

## Overview

The Fake Permissions system allows server owners to grant roles the ability to use moderation commands through the bot — without assigning actual Discord permissions to those roles. This acts as a security layer that keeps destructive native Discord actions out of reach while still allowing trusted staff to moderate through the bot.

***

## How It Works

When a role is granted a fake permission such as `BanMembers`, members with that role can use the bot's `ban` command — but they still cannot use Discord's native ban feature directly. This means even if a moderator goes rogue, they cannot mass-ban, nuke channels, or cause server-wide damage through the Discord client or external scripts.

<Tip>
  Fake permissions are enforced at the bot level only. They have no effect on what users can do natively in Discord.
</Tip>

***

## Access Control

Only the **server owner** can manage fake permissions. This is intentional — granting fake permissions is a high-trust action and should not be delegated.

***

## Commands

<AccordionGroup>
  <Accordion title="fp add" icon="plus">
    Grant one or more fake permissions to a role.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~fp add <role> <perm1, perm2, ...>
      ```

      ```bash Example theme={null}
      ~fp add @Mods ban_members, kick_members
      ~fp add @Staff manage_messages, moderate_members
      ~fp add 123456789012345678 manage_roles
      ```
    </CodeGroup>

    **Aliases:** `fakepermissions`
    **Permissions:** Server Owner only
  </Accordion>

  <Accordion title="fp edit" icon="pen">
    Override all existing fake permissions for a role with a new set. Any permissions not included in the new list will be removed.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~fp edit <role> <perm1, perm2, ...>
      ```

      ```bash Example theme={null}
      ~fp edit @Mods manage_messages, moderate_members
      ~fp edit @Admin administrator
      ```
    </CodeGroup>

    **Aliases:** `fakepermissions`
    **Permissions:** Server Owner only

    <Warning>
      This completely replaces the existing fake permissions for the role. Use `fp add` if you only want to add new ones.
    </Warning>
  </Accordion>

  <Accordion title="fp remove" icon="minus">
    Remove specific fake permissions from a role without affecting others.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~fp remove <role> <perm1, perm2, ...>
      ```

      ```bash Example theme={null}
      ~fp remove @Mods ban_members
      ~fp remove @Staff manage_roles, manage_channels
      ```
    </CodeGroup>

    **Aliases:** `fakepermissions`
    **Permissions:** Server Owner only
  </Accordion>

  <Accordion title="fp list" icon="list">
    View all roles with fake permissions in the server, or view the permissions for a specific role.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~fp list
      ~fp list <role>
      ```

      ```bash Example theme={null}
      ~fp list
      ~fp list @Mods
      ```
    </CodeGroup>

    **Aliases:** `fakepermissions`
    **Permissions:** Server Owner only
  </Accordion>

  <Accordion title="fp types" icon="key">
    View all valid fake permissions that can be assigned to a role.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~fp types
      ```
    </CodeGroup>

    **Aliases:** `fakepermissions`
    **Permissions:** Server Owner only
  </Accordion>
</AccordionGroup>

***

## Available Fake Permissions

The following permissions can be granted as fake permissions. Permission names are case-insensitive and underscores are optional (e.g. `ban_members`, `BanMembers`, and `banmembers` all work).

<CardGroup cols={2}>
  <Card title="Administrator" icon="crown">
    Grants access to all fake-permission-gated commands. Acts as a wildcard.
  </Card>

  <Card title="BanMembers" icon="gavel">
    Allows using ban-related moderation commands.
  </Card>

  <Card title="KickMembers" icon="boot">
    Allows using kick-related moderation commands.
  </Card>

  <Card title="ManageMessages" icon="message">
    Allows deleting messages and using purge commands.
  </Card>

  <Card title="ManageNicknames" icon="pen-to-square">
    Allows changing nicknames of other members.
  </Card>

  <Card title="ManageRoles" icon="user-tag">
    Allows using role management commands.
  </Card>

  <Card title="ModerateMembers" icon="clock">
    Allows timing out members.
  </Card>

  <Card title="MuteMembers" icon="microphone-slash">
    Allows muting members in voice channels.
  </Card>

  <Card title="DeafenMembers" icon="volume-xmark">
    Allows deafening members in voice channels.
  </Card>

  <Card title="MoveMembers" icon="arrow-right-arrow-left">
    Allows moving members between voice channels.
  </Card>

  <Card title="ManageChannels" icon="hashtag">
    Allows using channel management commands.
  </Card>

  <Card title="ManageGuild" icon="gear">
    Allows using server settings commands.
  </Card>

  <Card title="ViewAuditLog" icon="scroll">
    Allows viewing the server audit log via the bot.
  </Card>

  <Card title="ManageWebhooks" icon="webhook">
    Allows managing webhooks through the bot.
  </Card>

  <Card title="ManageGuildExpressions" icon="face-smile">
    Allows managing emojis, stickers, and soundboard sounds.
  </Card>

  <Card title="ManageThreads" icon="comments">
    Allows managing threads in the server.
  </Card>
</CardGroup>

***

## Administrator Fake Permission

The `Administrator` fake permission is a special wildcard that grants access to all commands gated by any fake permission check. Assigning it to a role is equivalent to granting every individual fake permission at once.

<Warning>
  Only assign the `Administrator` fake permission to highly trusted roles. Members with this fake permission will be able to use all moderation commands through the bot.
</Warning>

***

## Permission Input Formats

All of the following formats are valid when specifying permissions:

| Input             | Resolves To      |
| ----------------- | ---------------- |
| `ban_members`     | `BanMembers`     |
| `BanMembers`      | `BanMembers`     |
| `banmembers`      | `BanMembers`     |
| `manage_messages` | `ManageMessages` |
| `MANAGEMESSAGES`  | `ManageMessages` |

***

## Security Model

Fake permissions are designed with security as the primary goal:

* **No Discord-level access** — Fake perms only affect what commands the bot allows. They do not modify Discord roles or permissions in any way.
* **Owner-only management** — Only the server owner can assign or revoke fake permissions.
* **Bot-enforced** — All checks happen server-side in the bot before any action is taken.
* **Revocable instantly** — Permissions can be removed at any time with `fp remove` or overridden entirely with `fp edit`.

<Info>
  If a user has both a real Discord permission and a fake permission for the same action, either one is sufficient to use the command.
</Info>

***

## Best Practices

* Use `BanMembers` and `KickMembers` for your moderation team instead of giving them real Discord ban/kick perms.
* Use `ManageMessages` for chat moderators who need to purge messages.
* Reserve `Administrator` fake permission only for senior staff you fully trust.
* Combine fake permissions with the `permit` system to further restrict which commands each role can access.

<Warning>
  Fake permissions do not protect against users who already have real Discord permissions. Always review your server's role hierarchy alongside your fake permission setup.
</Warning>
