Plugins

Leveling & XP

Premium
Message and voice XP with a compounding level curve — gain, cooldown, curve parameters, role rewards, rank card and the level-up announcement.

Members earn XP for messages (and optionally for time in voice), level up, and get a shout-out. A handful of numbers control the whole system; this page explains what each one actually does.

LicensePremium
NeedsMessage Content intent, Send Messages in the announcement channel, Manage Roles for role rewards

Level-up announcement

Announcement channel

Optional

Where level-up messages are posted. Leave it empty and no level-up message is sent at all — the member still levels up and still receives role rewards, there is just no announcement.

Set it to a dedicated channel if level-ups would be noise in your main chat.

Level-up message

Up to 2000 characters · optional

Empty uses the built-in default in your server's language (🎉 Congratulations {user}! You reached level {level}!).

PlaceholderBecomes
{user}A mention
{level}The level just reached
{user.name}Display name, no ping
{username}Discord username
{server}Server name
{server.memberCount}Member count
GG {user}, you reached level {level}!

The announcement can also be a full embed via the embed builder. In embed mode the member is mentioned above the embed so the ping still lands.

XP gain

XP per message

0–50 · default 2

Awarded per qualifying message. A message qualifies when it contains text — attachment-only or sticker-only messages earn nothing, and bots never earn XP. 0 freezes progression without disabling the plugin — existing levels stay, nobody advances.

XP cooldown

0–600 seconds, in steps of 5 · default 60

Quiet window after each XP grant. Messages sent inside the window earn nothing. This is the anti-farming mechanism: without it, aaaa typed twenty times is twenty XP.

0 disables the cooldown entirely — do not do this unless you actively want spam to pay.

Leave the defaults alone at first. 2 XP per message with a 60-second cooldown means about 120 XP per hour of continuous chatting, which pairs well with the default curve below.

Voice XP

0–50 per minute · default 0 (off)

XP for time spent in voice channels, granted once a minute to everyone connected. 0 leaves voice out of the system entirely, which is where every server starts.

SettingDefaultEffect
Only with companyonNothing is earned unless someone else in the channel earns too. Bots never count as company, and while Ignore muted members is on, neither do muted, deafened or stage-audience members
Ignore muted membersonMuted or deafened members, and the audience of a stage channel, earn nothing

Both defaults exist to stop the obvious exploit: parking a second client in an empty channel overnight. Together they also stop the variant with a muted second client next to your own account. Turn Only with company off only if you deliberately want to reward AFK presence.

The server's AFK channel never grants XP, and the No-XP lists and multipliers below apply to voice channels exactly as they do to text channels.

Voice XP is counted per minute, not per session. A restart while somebody is in voice costs them one minute, never the whole session.

Exclusions

Two lists that remove XP entirely, before any multiplier is applied.

No-XP channels

Up to 50 entries

Channels that grant no XP at all. Naming a category covers every channel inside it, so #bot-commands, spam channels and counting games are one entry each rather than a maintenance chore.

No-XP roles

Up to 50 entries

Members holding one of these roles never earn XP. The usual candidates are a muted role and bot roles.

XP multipliers

Make XP worth more — or less — in specific channels or for specific roles.

Multipliers are percentages: 100 is normal, 200 doubles, 50 halves, 0 disables. The maximum is 1000. One rule per target.

TypeMatches
ChannelThat channel, or every channel in it if you pick a category. A channel's own rule beats the rule of its category
RoleEvery member holding the role. If a member has several role rules, the highest one counts

A channel rule and a role rule multiply: 200 % in #events for a @Booster at 150 % is 300 %. The result is rounded to whole XP, so a small grant at a low percentage can round to zero.

#events         200%   Double XP during event nights
@Booster        150%   A perk that costs you nothing
#off-topic       50%   Active, but not the room you want to reward
A category-wide multiplier is one rule instead of twelve. "Double XP in the whole Events category" is a single entry.

Role rewards

Give a role automatically when a member reaches a level. One entry per level-and-role pair, level 1–1000; a level can hand out several roles. Rewards are saved the moment you add or remove one — they are separate from the settings save bar.

Roles managed by an integration (bot roles, booster role) cannot be rewards; the picker hides them.

Reward mode

ModeBehaviour
Keep allEvery role ever earned is kept
Highest onlyOnly the roles of the highest reached reward level are kept, lower reward roles are removed

Keep all is the default and what members expect — collecting the set is part of the appeal. Choose Highest only when the reward roles are meant to read as one visible rank rather than a collection.

Cloudy's own role must sit above every reward role in your role list, otherwise it cannot assign them — the role is skipped silently. This is the single most common reason a correctly configured reward does nothing — see Permissions.

Rewards are granted on level-up. Every reward at or below the new level is applied, so adding a reward for a level members already passed applies it the next time they gain a level, not retroactively at the moment you save.

Rank card

/my-level can answer with a rendered image instead of an embed.

SettingEffect
Render a rank cardOff keeps the colour and background but returns the embed
Accent colourProgress bar, corner ticks and the level label. Default = Cloudy violet
Background imageAn image URL, drawn desaturated and heavily dimmed behind the card. Empty = flat black

The card shows avatar, name, level, rank, a progress bar toward the next level and the total XP. Leaving the whole card unconfigured is the same as off — every server keeps the embed until someone switches the card on.

Level curve

Three numbers decide how much XP each level costs. The cost of a level is the XP needed to get from that level to the next one; progress resets at every level-up, while the total XP keeps counting for rank and leaderboard. The rule:

cost of level L = base XP × (1 + growth rate)^(L − 1) + minimum step × (L − 1), rounded down

Base XP (level 1 → 2)

10–1000, in steps of 10 · default 100

XP required for the first level-up. The compounding part of every later level is derived from it.

Growth rate

0–100 (%) · default 15

How much more expensive the compounding part becomes per level. 15 % means the base part of level 2 costs 15 % more than the base, level 3 costs 15 % more than that, and so on.

GrowthFeel
0–5 %Almost linear — high levels stay reachable, the number inflates fast
10–20 %The sweet spot. Early levels are quick, later ones are an achievement
30 %+Brutal. Level 20 becomes effectively unreachable

Minimum step

0–500, in steps of 5 · default 50

A flat amount added on top of the compounding part, once per level already reached: level 2 costs 50 XP more than its compounding part, level 3 costs 100 more, level 4 costs 150 more, and so on.

Without it, a low growth rate makes the first levels almost free — 100 XP, then 105, then 110. With growth rate 0 the curve is a straight line that rises by exactly this amount each level.

Worked example with the defaults

LevelCompounding partMinimum-step partCost
1 → 21000100
2 → 311550165
3 → 4132100232
4 → 5152150302
5 → 6175200374
10 → 11352450801
20 → 211 4239502 373

With these defaults the minimum step is what you feel for roughly the first fifteen levels; the percentage only overtakes it from about level 15 on. Raise the base XP or lower the minimum step if you want the percentage to matter earlier.

Commands

CommandDoes
/my-level [user]Show your own level, rank and XP — or another member's
/level-leaderboardShow the ten members with the most total XP

Behaviour notes

  • Messages and, if switched on, voice minutes count. Reactions and slash commands do not award XP.
  • XP is per server. A member's level on one server means nothing on another.
  • Changing the curve does not recalculate existing XP. Members keep their level and their progress within it; only the cost of the next levels changes.
  • Disabling the plugin freezes everything; re-enabling continues where it left off.
  • Resetting the server on Server defaults deletes all levels and XP permanently.
  • No-XP channels and categories, and channel/category multipliers, also apply to threads and forum posts inside them.
  • A reward swap ("highest only") grants the new role and removes the old one role by role, so a member is never left with neither.
  • Automations — award XP for other events, or react to a reward role being gained
  • Economy — the other progression system, with its own currency