# Leveling

URL: https://zerodev.ca/docs/medusa/modules/leveling

> XP from messages and voice, levels, rank cards, XP multipliers and role rewards.



Members earn XP by chatting and by spending time in voice. Enough XP raises their level, and levels can give roles.

## XP

Going from level `L` to the next level takes `5 * L * L + 50 * L + 100` XP, so early levels come fast.

* **Messages** give a random amount between **Minimum Message XP** and **Maximum Message XP**, at most once per **Message Cooldown**.
* **Voice** gives **Voice XP Per Minute**. With **Require Unmuted** on, muted members earn nothing. With **Require 2+ Members** on, members alone in a channel earn nothing.
* **Ignored Channels** and **Ignored Roles** never earn XP.

## Multipliers

Under **Leveling Modifiers**, give a role a multiplier such as `1.5` or `2`. It applies to message and voice XP. A member with several of these roles gets the highest one.

## Role Rewards

Under **Level Role Rewards**, pick a **Target Level** and a **Reward Role**. With **Stack**, members keep every reward they reach. With **Highest**, they only keep the role for their highest level.

## Rank Card

`/rank` draws an image with the member's avatar, level, XP progress and position. Change its layout under **Rank Card** with the canvas editor.

## Level Up Messages

**Level Up Announcement** picks where level-up messages go:

| Option          | Where                                   |
| --------------- | --------------------------------------- |
| Current Channel | The channel the member was chatting in. |
| Custom Channel  | The **Announcement Channel**.           |
| Direct Message  | A DM to the member.                     |
| Disabled        | Nowhere.                                |

**Level Up Message Lifetime (Seconds)** deletes the message after that many seconds. `0` keeps it.

## Settings

**Leveling Settings**

| Setting                             | Default         | What it does                               |
| ----------------------------------- | --------------- | ------------------------------------------ |
| Enable Message XP                   | On              | Messages give XP.                          |
| Minimum Message XP                  | 15              | Lowest XP per message.                     |
| Maximum Message XP                  | 25              | Highest XP per message.                    |
| Message Cooldown (Seconds)          | 60              | Time between messages that give XP.        |
| Enable Voice XP                     | On              | Voice time gives XP.                       |
| Voice XP Per Minute                 | 10              | XP per minute in voice.                    |
| Require Unmuted                     | On              | Muted members earn no voice XP.            |
| Require 2+ Members                  | On              | Members alone earn no voice XP.            |
| Level Up Announcement               | Current Channel | Where level-up messages go.                |
| Announcement Channel                | None            | Used with Custom Channel.                  |
| Level Up Message Lifetime (Seconds) | 0               | Deletes level-up messages after this long. |
| Accent Color                        | Accent          | Color of level-up messages.                |
| Ignored Channels                    | None            | Channels that give no XP.                  |
| Ignored Roles                       | None            | Roles that earn no XP.                     |

**Leveling Modifiers**: a role and a multiplier for each entry.

**Level Role Rewards**: the reward mode, then a target level and role for each entry.

## Commands

| Command                                | What it does                                                                              |
| -------------------------------------- | ----------------------------------------------------------------------------------------- |
| `/rank [user]`                         | Show a rank card.                                                                         |
| `/level set <user> <type> <amount>`    | Set a member's XP or level.                                                               |
| `/level add <user> <type> <amount>`    | Add XP or levels.                                                                         |
| `/level remove <user> <type> <amount>` | Remove XP or levels.                                                                      |
| `/level reset <user>`                  | Reset a member's progress.                                                                |
| View Rank                              | Right-click a member, then **Apps > View Rank**. Off by default on the **Commands** page. |

`/level` belongs to the Admin rank by default. `/leaderboard` has **Level**, **Messages** and **Voice Time** boards, and the **Leveling Events** log records level-ups and XP changes.
