Plugins

Leveling & XP

Premium
Message-based XP with a compounding level curve — gain, cooldown, curve parameters and the level-up announcement.

Members earn XP for messages, level up, and get a shout-out. Four numbers control the whole system; this page explains what each one actually does to the curve.

LicensePremium
NeedsMessage Content intent, Send Messages in the announcement channel

Level-up announcement

Announcement channel

Optional

Where level-up messages are posted. Leave it empty and the message goes to the channel where the member was chatting — usually the better behaviour, because the shout-out lands where the person actually is.

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.

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.

XP gain

XP per message

0–100 · default 2

Awarded per qualifying message. 0 freezes progression without disabling the plugin — existing levels stay, nobody advances.

XP cooldown

0–3600 seconds · 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–100 per minute · default 0 (off)

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

SettingDefaultEffect
Requires othersonNothing is earned while alone in a channel
Ignore mutedonMuted or deafened members earn nothing

Both defaults exist to stop the obvious exploit: parking a second client in an empty channel overnight. Turn Requires others off only if you deliberately want to reward AFK presence.

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

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

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.

TypeMatches
ChannelThat channel, or every channel in it if you pick a category
RoleEvery member holding the role
#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; a level can hand out several roles.

Reward mode

ModeBehaviour
StackEvery role ever earned is kept
Highest onlyOnly the top role is kept, lower ones are removed

Stack 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. This is the single most common reason a correctly configured reward does nothing — see Permissions.

Rewards are granted on level-up. 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
EnabledOff keeps the setup but returns the embed
Accent colourProgress bar, ticks and label. Empty = Cloudy violet
Background imageAn https image, drawn desaturated and dimmed behind the card

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

Level curve

Three numbers decide how much XP each level costs. The rule:

next threshold = previous threshold + max( minimum step, previous threshold × growth rate )

Base XP (level 1 → 2)

1–10000 · default 100

XP required for the first level-up. Everything after that is derived from it.

Growth rate

0–100 (%) · default 15

How much more expensive each level is than the one before, compounded. 15 % means level 3 costs 15 % more than level 2, level 4 costs 15 % more than level 3, 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–10000 · default 50

A floor on the jump to the next level. Without it, a small base combined with a low growth rate makes the first few levels almost free — 100 XP, then 105, then 110.

With the default 50, the increase is at least 50 XP no matter what the percentage produces.

Worked example with the defaults

LevelThresholdIncrease applied
1 → 2100Base
2 → 3150max(50, 100 × 15 % = 15) = 50
3 → 4200max(50, 150 × 15 % = 22.5) = 50
4 → 5250max(50, 200 × 15 % = 30) = 50
5 → 6300max(50, 250 × 15 % = 37.5) = 50

With these defaults the minimum step is what you feel — the growth rate only takes over once a threshold passes about 333 XP, because that is where 15 % first exceeds 50. Raise the base XP or lower the minimum step if you want the percentage to matter earlier.

The dashboard shows a live preview of the first five levels while you edit — use it.

Commands

CommandDoes
/my-levelShow your own level and XP
/level-leaderboardShow the top-leveled members

Behaviour notes

  • Only messages count. Voice activity, 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 XP total; only future thresholds change, so a curve change can push someone back a level on paper.
  • Disabling the plugin freezes everything; re-enabling continues where it left off.
  • Resetting the server on Server defaults deletes all levels and XP permanently.
  • Automations — grant a role at a certain level, or award XP for other events
  • Economy — the other progression system, with its own currency