> 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-seasons.md).

# InHouseQueue Seasons

The Seasons feature in the In-House Queue Bot allows server admins to manage competitive seasons within their Discord server. This feature is designed to help organize and track in-house games over a set period, providing a structured way to compete and track player progress.

## Key Features

* **Season Management**: Start, extend, shorten, and end seasons.
* **Flexible Scope**: Run a season across your server's Global leaderboard, or scope it to a single [unique-leaderboard](/docs/quick-start/leaderboards-explained.md#creating-a-unique-leaderboard) queue channel - each has its own independent season, so you can run several at once.
* **Leaderboard**: Track the top players throughout the season.
* **Automated Notifications**: Notify players when a season is about to end.
* **Detailed Stats**: View season stats including start date, end date, games played, and unique players.

{% hint style="warning" %}
By default a season tracks your server's [**global leaderboard**](/docs/quick-start/leaderboards-explained.md#how-does-the-leaderboard-work). If you'd like to run a season for just one queue - separate from casual/relaxed games elsewhere in the server - give that queue a [unique leaderboard](/docs/quick-start/leaderboards-explained.md#creating-a-unique-leaderboard) first, then scope the season to that channel when you start it. A Global season and a unique-queue season (or several unique-queue seasons, one per channel) can all run side by side - you just can't start two overlapping seasons for the exact same scope.
{% endhint %}

## How to setup Seasons

1. **Starting a Season**: An admin uses `/season start`, which opens an interactive setup wizard - no need to fill in every parameter up front.
2. **Game** - select which game this season is for.

<div align="left"><figure><img src="/files/gBYhAIpesPPMth3KP0CY" alt=""><figcaption></figcaption></figure></div>

3. **Scope** - choose **Global** to track the server's whole leaderboard for that game, or **Pick a Queue Channel** to scope the season to one specific unique-leaderboard queue instead.

<div align="left"><figure><img src="/files/8xFmEeNWoBK3MZKxUwHY" alt=""><figcaption></figcaption></figure></div>

4. **Updates Channel** - select the channel season announcements and reminders should be posted in.

<div align="left"><figure><img src="/files/nTSMNkmYCbHe3nRhGrrm" alt=""><figcaption></figcaption></figure></div>

5. **Role** (optional) - pick a role to ping for those announcements, or skip.

<div align="left"><figure><img src="/files/6d798DlaScOkYe2Gz3jZ" alt=""><figcaption></figcaption></figure></div>

6. **Season Name & Duration** - a short popup form to (optionally) name the season and set its duration in days (1-90).

<div align="left"><figure><img src="/files/a5RXoiHEa6caMU7pJ5fz" alt=""><figcaption></figcaption></figure></div>

7. **Reset Stats?** - choose how to handle stats for the new season. Choosing **Soft reset** or **Full reset** will also reset wins, losses, and MVP votes for that scope:
   * **No reset** - MMR stays as it is.
   * **Soft reset** - MMR moves halfway back toward the starting value (games played resets to 0). Strong players keep some edge, but have to earn it back.
   * **Full reset** - MMR and games played go back to the starting value completely, as if everyone were new players.

We recommend at least a Soft reset for a clean competitive season.

<div align="left"><figure><img src="/files/pooWlBDyeNdxbgD7DoqN" alt=""><figcaption></figcaption></figure></div>

8. **Confirm** - review a summary of everything you've chosen before the season actually starts.

<div align="left"><figure><img src="/files/gGZ3a2GWFdbZQRgWTOTw" alt=""><figcaption></figcaption></figure></div>

9. Once confirmed, InHouseQueue will show you a short summary of the season that just started.

<div align="left"><figure><img src="/files/3t3MQR4cRSdNhKb8efrS" alt=""><figcaption></figcaption></figure></div>

10. <mark style="color:red;">InHouseQueue</mark> will also send a message to your designated Seasons Announcements channel marking the start of the season for all players.

<div align="left"><figure><img src="/files/4IEBYKQnnykpFzuAl7bQ" alt=""><figcaption></figcaption></figure></div>

11. One day before the season ends, InHouseQueue will send a reminder!

<div align="left"><figure><img src="/files/On3KiYaqzZXMwGD0mcyb" alt=""><figcaption></figcaption></figure></div>

12. Once the season reaches its end date, or you end it early, the Final standings will be sent into the Seasons Announcements channel, and all stats within that season's scope are automatically reset (Wins, Losses, MVP votes).

***MMR is not reset when a season ends** - only if you chose to reset it back when the season started.*

<div align="left"><figure><img src="/files/cYhMHwhkP4dWtsvtktL9" alt=""><figcaption></figcaption></figure></div>

## Managing the Season

Throughout the season, the admin can extend or shorten the season using `/season extend` or `/season shorten`. Both take an optional `queue_channel` parameter - leave it blank to manage the Global season, or pick a unique queue channel to manage that queue's own season instead.

## Ending the Season

When the season needs to be ended early, the admin uses `/season end` to conclude the season. Like `/season extend`/`/season shorten`, this takes an optional `queue_channel` parameter to target a specific unique queue's season instead of the Global one.

## Viewing Stats

Admins can view detailed stats about the season, including the top players, by using `/season stats`. The stats embed now also shows which **Scope** (Global, or a specific queue channel) those stats belong to.

<div align="left"><figure><img src="/files/qS6zDFPt6Jc49KFul9CA" alt=""><figcaption></figcaption></figure></div>

***

## All Seasons Commands

***

<mark style="color:red;">**Required**</mark>\*\* parameters will be in \[Square brackets]\*\*

<mark style="color:green;">**Optional**</mark>\*\* parameters will be in (Curly brackets)\*\*

<mark style="color:orange;">**/season start**</mark>

**Description**: Opens an interactive wizard to start a new season - game, scope, updates channel, role, name, duration, and whether to reset stats are all chosen step by step inside the wizard rather than as command options.

**Usage**:

```scss
/season start
```

* No parameters - running the command opens the setup wizard described above.

***

<mark style="color:orange;">**/season extend**</mark>

**Description**: Extend the current active season by a specified number of days.

**Usage**:

```scss
/season extend [game] [days] (queue_channel)
```

* **game**: Select the game for the season to extend. Choices: League Of Legends, Valorant, Overwatch, Custom.
* **days**: Number of days to extend the season (1-90).
* **queue\_channel**: Which queue's season to extend (optional) - leave blank for the Global season.

***

<mark style="color:orange;">**/season shorten**</mark>

**Description**: Shorten the current active season by a specified number of days.

**Usage**:

```scss
/season shorten [game] [days] (queue_channel)
```

* **game**: Select the game for the season to shorten. Choices: League Of Legends, Valorant, Overwatch, Custom.
* **days**: Number of days to shorten the season by (1-90)
* **queue\_channel**: Which queue's season to shorten (optional) - leave blank for the Global season.

***

<mark style="color:orange;">**/season end**</mark>

**Description**: End the current active season early for a specified game.

**Usage**:

<pre class="language-bash"><code class="lang-bash"><strong>/season end [game] (queue_channel)
</strong></code></pre>

* **game**: Select the game for the season to end. Choices: League Of Legends, Valorant, Overwatch, Custom.
* **queue\_channel**: Which queue's season to end (optional) - leave blank for the Global season.

***

<mark style="color:orange;">**/season stats**</mark>

**Description**: View the current season stats, including start date, end date, games played, unique players, scope, and top 3 players.

**Usage**:

```bash
/season stats [game] (queue_channel)
```

* **game**: Select the game to view the current season stats. Choices: League Of Legends, Valorant, Overwatch, Custom.
* **queue\_channel**: Which queue's season stats to view (optional) - leave blank for the Global season.
