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

# Overview

> How leveling works in better tickets: earning XP from messages, the level curve, rank cards, role rewards, and restrictions.

Leveling tracks XP per member from the messages they send (and, optionally, time spent in voice channels), converts that into a level using a curve you control, and gives every member a rank card via `/level rank`. It's entirely free - the only premium-gated piece is customizing the rank card's background image (see [Rank cards](#rank-cards) below).

## Enabling it

Run `/level config`. If leveling isn't enabled yet, you'll only see an enable toggle - everything else (XP pacing, rewards, restrictions, the card) appears once it's turned on, so you're not looking at a wall of settings for a feature you haven't turned on.

## Earning XP

Every message in a server with leveling enabled has a chance to earn XP, subject to:

* **A per-member cooldown** (60 seconds by default) - only one message per cooldown window earns XP, so spamming doesn't inflate XP faster than chatting normally.
* **Restrictions** - ignored roles, required roles, and ignored channels, configured on the Roles and Channels pages. An ignored role always blocks XP, even if the member also has a required role.
* **Multipliers** - optional per-role or per-channel XP boosts. If more than one applies to a message (e.g. two boosted roles, or a boosted role in a boosted channel), only the highest one is used - they don't stack.

## Voice XP

Off by default - set **Voice XP** (General page) to a non-zero XP-per-minute rate to turn it on. Once enabled, a member earns XP for every full minute they spend unmuted (not self-muted or server-muted) in a voice channel that isn't on the ignored-channels list. The same role/channel restrictions and multipliers that apply to message XP apply here too - an ignored voice channel (an AFK channel, say) never earns XP, and a channel or role multiplier applies to voice time the same way it applies to messages.

Time is tracked continuously: switching between two non-ignored channels while staying unmuted doesn't reset anything, it's still one session. Muting, leaving voice, or moving into an ignored channel pays out whatever was earned and ends the session. A session abandoned for more than 2 days straight (bot restart, connection drop, whatever) without a proper stop forfeits its unclaimed time rather than crediting it later.

## The level curve

Level 1 costs a fixed amount of XP (**Level 1 cost**, 50 by default), and each subsequent level costs a fixed amount more than the last (**Cost increase per level**, 15 by default) - a straightforward ramp, not an exponential curve. Both are editable on the General page, so you can tune how fast or slow leveling feels. A level is never stored - it's always calculated from a member's total XP, so changing these values re-levels everyone immediately and consistently, with no migration step.

## Rank cards

`/level rank` always renders an image card - avatar, level, server rank, and a progress bar to the next level - for every server, free or premium. `embed:Yes` switches to a plain text version instead, useful if you'd rather not have an image posted.

The card's background has two layers, both requiring premium (any tier):

* **A guild-wide default**, uploaded by an admin on the Card settings page. Applies to every member's card unless overridden.
* **A per-member override**, which admins can allow via the **Let members set their own card** toggle. When it's on, any member can run `/level card` to upload their own background, which takes priority over the guild default on their card only.

Free servers, and any card without a configured background, use a built-in default look. Uploaded backgrounds are capped at 2MB and automatically compressed.

## Level-up role rewards

Configured on the Roles page: give one or more roles when a member reaches a specific level. **Stack rewards** controls what happens as members pass multiple thresholds - on, they keep every role they've earned; off, only the most recently earned reward's roles are kept, and earlier ones are removed.

## Level up messages

If enabled (Channels page), a message is sent whenever a member levels up - to a fixed channel if one's set, otherwise the channel the level-up happened in. The message supports the same templating as tickets and applications (see [Variables](/docs/variables)), plus `{{level}}`.

See [Commands](/docs/leveling/commands) for every command's exact options, and [Leveling settings](/docs/leveling/settings) for a full field-by-field reference.
