> For the complete documentation index, see [llms.txt](https://docs.inhousequeue.xyz/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.inhousequeue.xyz/docs/features/inhousequeue-challenges.md).

# InHouseQueue Challenges

## What are challenges?

Challenges are achievements that players unlock by playing InHouseQueue games. They reward active members with Discord roles and create friendly competition within your server.

**ALL** servers get at **least** 11 free challenges. As a [Patreon](https://www.patreon.com/InHouseQueue) supporter, you get exclusive access to 20+ additional challenges. Premium challenges are more complex and engaging.

We're always adding new Free and Premium challenges, so keep an eye out!

## How it works

1. An admin enables challenges with `/challenges setup`
2. Players play games as normal
3. After every game, InHouseQueue **automatically** checks all players' progress against every active challenge
4. When a player unlocks a challenge, they receive a **Discord role** and get **announced** in the achievements channel

Challenges are evaluated in the background -- they never slow down the end-game flow.

## How do I see what challenges are available?

Run `/challenges all` to see every challenge available on your server, including difficulty, tier (Free/Premium), and descriptions.

## Can I track my progress?

Use `/challenges progress` to view your progress on all active challenges. You can also check another player's progress with `/challenges progress @user`.

## How do I unlock a challenge?

Just play games! Progress is tracked and updated automatically after every match. For example, winning **5 games in a row** will grant you the **Ultimate Flex** achievement.

Once a player unlocks a challenge, InHouseQueue:

* Grants them a Discord role (e.g., `IHQ - Ultimate Flex`)
* Announces the unlock in the achievements channel with a rich embed
* Shows what number they are to earn it (e.g., "3rd to earn this!")

## Setting up challenges (Admins)

### Getting started

Run `/challenges setup [game]` to enable challenges for your server. This will:

1. Show an overview of available challenges
2. Create an `#achievements` channel (inside your InHouseQueue category if one exists)
3. Enable challenge tracking for all future games

### Admin commands

| Command                          | Description                                                            |
| -------------------------------- | ---------------------------------------------------------------------- |
| `/challenges setup [game]`       | Enable challenges for the server                                       |
| `/challenges pause`              | Pause/unpause challenge tracking                                       |
| `/challenges channel [#channel]` | Change the announcement channel                                        |
| `/challenges toggle [name]`      | Enable or disable a specific challenge                                 |
| `/challenges edit [name]`        | Customize a challenge's threshold, role name, color, or role (Premium) |
| `/challenges restore [name]`     | Restore a challenge's customizations back to defaults (Premium)        |

### Pausing challenges

Use `/challenges pause` to temporarily stop tracking. No progress will be recorded while paused. Run `/challenges pause` again to resume. Games played during the pause period are excluded from historical evaluations.

### Disabling specific challenges

Don't want a particular challenge? Use `/challenges toggle [challenge name]` to disable it for your server. Players won't see it and it won't be evaluated.

### Customizing challenges (Premium)

Premium servers can customize individual challenges using `/challenges edit [challenge name]`. This opens a modal where you can change:

* **Threshold** -- override the default requirement (e.g., increase the number of games needed from 15 to 25)
* **Role name** -- use a custom name instead of the default `IHQ - {Challenge Name}` format
* **Role color** -- set a hex color for the challenge role (e.g., `#FF5733`)
* **Existing role ID** -- map the challenge to a Discord role that already exists on your server instead of having one auto-created

To revert any customizations, use `/challenges restore [challenge name]`. This restores the challenge to its built-in defaults, including threshold, role name, color, and role mapping.

## Challenge types

### Permanent challenges

Most challenges are permanent -- once earned, the role stays forever. Examples:

* Games played milestones (Novice, Adventurer, Centurion, etc.)
* Win streak achievements
* Total wins milestones

### Revocable challenges

Some condition-based challenges can be **revoked** if the condition is no longer met. For example:

* **MMR challenges** (Rising Star, Veteran Vanguard, Supreme Ace) -- if your MMR drops below the threshold, the role is removed
* **Win rate challenges** (The Unyielding, High Roller) -- if your win rate drops below the required percentage, the role is removed

This keeps these achievements meaningful and reflective of current performance.

## Roles

Challenge roles are created **lazily** -- only when the first player earns a challenge does InHouseQueue create the role. This means you don't need to worry about role slots upfront. Roles are named `IHQ - {Challenge Name}` by default (e.g., `IHQ - Novice`).

## Challenge leaderboard (Premium)

Premium servers have access to `/challenges leaderboard`, which shows the top 15 players ranked by total challenges completed.

## Feature requirements

Some challenges require specific features to be enabled:

* MVP-related challenges (Fan Favorite, Popular Vote) require the **MVP Voting** feature
* Duo-partner challenges (Dynamic Duo, Serial Duo, Getting Carried, Prestigious Partner) require **Duo Queue** mode to be enabled

If a required feature isn't enabled, the challenge will show as unavailable with an explanation.

Role-based challenges (Flex Player, Jack of all Trades) track wins across your server's configured queue positions (e.g. Top/Jungle/Mid/ADC/Support) instead -- they don't require a specific feature, they'll just show no progress until your server has positions set up.

{% hint style="info" %}
Challenges are evaluated automatically after every game. There is no need to manually refresh.
{% endhint %}
