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

# Installation & Permissions

> What Tessera asks Discord for, privileged intents, and who can run what.

## What the bot asks Discord for

The invite requests only what the shipped modules actually need — it is not a blanket
Administrator grant.

| Permission | Used for |
| - | - |
| Manage Roles | Role panels, autoroles, mass role, level rewards |
| Manage Channels | Ticket channels, channel manager, lock/unlock |
| Manage Server | Reading invites for invite tracking |
| Kick / Ban / Timeout Members | Moderation actions |
| Manage Messages | Sticky messages, cleanup, starboard |
| Create Invite | Invite generation and tracking |
| Manage Nicknames | Onboarding and verification flows |
| Send Messages, Embed Links, Attach Files, Read History, Add Reactions, Use External Emoji | Posting panels and responding to commands |

### Privileged intents

Two intents must be enabled in the Discord Developer Portal or parts of the bot silently do
nothing:

> **Server Members**
>
> Onboarding, invite tracking, autoroles, birthdays, and anything that reacts to a member
> joining or leaving.

> **Message Content**
>
> Prefix commands, anti-phishing scanning, sticky messages, leveling, and AFK.

### Role setup

Role panels, autoroles, and mass role all move member roles, which means Tessera's own role
needs to sit **above** any role it's asked to manage in your server's role list. Discord refuses
role changes from a lower role regardless of what permissions the bot has — this is the single
most common reason a role-related command silently does nothing.

## Who can run what

Every command declares a policy, and it is checked when the command **runs** — not only when a
panel is drawn. Reopening a panel with a stale button will not bypass it.

| Policy | Who |
| - | - |
| Public | Anyone in the server |
| Configured Staff | Manage Server or Administrator, **or** a role set with `=setstaff` |
| Configured Admin | Manage Server or Administrator, **or** a role set with `=setadmin` |
| Manage Server | Discord's Manage Server permission |
| Discord Administrator | Discord's Administrator permission |
| Bot Owner | The people who operate Tessera itself |

Set your privileged roles with `=setadmin` and `=setstaff`. Until you do, only Manage Server and
Administrator count.

> [!NOTE]
>
> The dashboard is read-only for settings. Changes happen in Discord so that permission checks
> and audit logging live in one place — there is no path where a web session can change
> something Discord would have refused.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.