# Quests

Quests keep your server active with text-based challenges/submissions that reward points. Each quest now supports two modes:

* **Automated** – Define up to five accepted answers. Matching submissions (case-insensitive exact text) auto-approve instantly; anything else auto-rejects with guidance. Users get up to three auto-rejected resubmissions per hour.
* **Manual** – Leave accepted answers empty; staff approve or reject each submission.

Admins manage everything via slash commands plus an interactive panel, while members submit quests via an the quest panel UI shown below.

***

## <mark style="color:purple;">Step 1: Place the Quests Panel UI for users</mark>

#### **Admin Command:** `/quests panel`

* Sends an interactive UI to a chosen text channel.
* Members can browse active quests, view pending/completed progress, and submit completions from the panel.

<figure><img src="https://691681724-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FS59t2C5jvoYxd5bKEx4E%2Fuploads%2FnXXGQtQNUO2DtIY768X1%2Fimage.png?alt=media&#x26;token=c3c952e4-67c4-4e1b-87e9-5c133ca6f529" alt=""><figcaption></figcaption></figure>

***

## <mark style="color:purple;">Step 2: Adding Quests</mark>

#### **Command:** `/quests add`

Options:

* **Quest Name** – Name of the quest.
* **Quest Description** – Supports `[newline]` to add a line break.
* **Quest Reward** – Points (integer).
* **Allowed Role** – Optional role gate; omit for @everyone.
* **Max Approvals** – Optional cap. Leave blank for unlimited.

By default, a newly created quest is a manual quest. You can use the **Add/Update Answers** button after adding the quest to set accepted answers for automated mode.&#x20;

### <mark style="color:$primary;">Automated Quest Details</mark>

* Accepted answers are case-insensitive exact strings. `Hello` = `hello`, but not `helloo`.
* Up to five answers per quest; configure via the Add/Update modal or the post-add helper view.
* Auto approvals:
  * Grant rewards immediately.
  * Decrement `max_approvals` if the quest has a limit.
  * Notify the configured quest log channel (if set).
* Auto rejections:
  * Provide detailed feedback to the user.
  * Log the rejection with the reason.
  * Enforce a 3-attempt-per-hour limit.

<figure><img src="https://691681724-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FS59t2C5jvoYxd5bKEx4E%2Fuploads%2F2Fdd4e8msEbBiy2GCYgs%2Fimage.png?alt=media&#x26;token=b5887ffb-8bf9-454b-8a84-9b32976760f6" alt=""><figcaption></figcaption></figure>

***

## <mark style="color:purple;">Editing & Managing Quests</mark>

#### **Command:** `/quests edit`

Opens an embed with buttons:

| Control                 | Description                                                                                                                                    |
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| **Edit Quest Settings** | Modal to adjust reward, max approvals (type `unlimited` to clear), and allowed role.                                                           |
| **Add/Update Answers**  | Modal with five slots pre-filled with current answers. Leave a slot blank to remove; fill up to five unique answers to keep/enable automation. |
| **Remove Allowed Role** | Resets the quest to @everyone.                                                                                                                 |
| **Refresh**             | Rebuilds the embed with the latest data.                                                                                                       |

<figure><img src="https://691681724-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FS59t2C5jvoYxd5bKEx4E%2Fuploads%2FMtMACsOny4lpHeSnErME%2Fimage.png?alt=media&#x26;token=f8856c24-e716-4f66-9eb8-b7d9b7bd14f9" alt=""><figcaption></figcaption></figure>

***

## <mark style="color:purple;">Deleting Quests</mark>

#### **Command:** `/quests delete`

Removes the quest and all associated submissions.

***

## <mark style="color:purple;">Viewing Quest Info</mark>

#### **Command:** `/quests info`

Displays:

* Quest name, description, reward.
* Allowed role (or @everyone).
* Remaining approvals (shows Unlimited when uncapped).
* Mode (Manual/Automated).
* Up to five accepted answers.

Autocomplete helps pick quests quickly.

#### **To view all quests use** `/quests view-all`

***

## <mark style="color:$primary;">Reviewing Submissions \[ADMIN]</mark>

#### **Command:** `/quests review`

Filters:

* **Quest Name** (optional)
* **User** (optional)

Shows pending manual submissions with Approve/Reject buttons and pagination. Automated matches never reach this queue—they’re handled instantly. Auto rejects record the reason and resubmission cooldown.

***

### <mark style="color:$primary;">Notifications & Logs</mark>

When a quest is approved or rejected (manually or automatically), the bot posts to the configured quest logs channel with the quest name, user mention, and outcome.

***

### <mark style="color:$primary;">Quick Reference Table</mark>

| Command             | Audience   | Description                            |
| ------------------- | ---------- | -------------------------------------- |
| `/quests panel`     | Admin      | Deploy the Quests UI to a channel.     |
| `/quests add`       | Admin      | Create a new quest.                    |
| `/quests edit`      | Admin      | Open the interactive edit panel.       |
| `/quests info`      | Admin      | View details for a quest.              |
| `/quests view-all`  | Admin/User | List all active quests.                |
| `/quests delete`    | Admin      | Remove a quest + submissions.          |
| `/quests review`    | Admin      | Process pending manual submissions.    |
| `/completed-quests` | Admin/User | See completed quests (self or others). |
| `/pending-quests`   | Admin/User | See pending submissions.               |
| `/rejected-quests`  | Admin/User | See rejected submissions + reasons.    |
