Level System
The plugin has its own leveling system, completely separate from vanilla XP. Every player starts at level 1 and levels up by earning quest XP. The level is more than a number — it decides how many quests a player can hold, how big their daily board is, and which quests the board offers them.
Earning XP
Quest XP comes from the quest_xp reward type. Add it to any quest and the player earns XP on completion:
rewards:
- type: quest_xp
value: 250Premium players earn more from the same quest — their XP multiplier (premium.multipliers.xp) is applied automatically. Admins can also grant XP directly with /level addxp (see below).
The level curve
How much XP a level requires is controlled by two values in config.yml:
leveling:
base-xp: 100
scale: 1.5The formula for the XP needed to go from a level to the next one:
required XP = base-xp × level ^ scaleWith the defaults, that looks like this:
1 → 2
100
2 → 3
~283
5 → 6
~1,118
10 → 11
~3,162
20 → 21
~8,944
50 → 51
~35,355
base-xpshifts the whole curve up or down — double it and every level costs twice as much.scalecontrols how steep it gets.1.0is linear (level 10 costs 10× level 1), higher values make high levels progressively more expensive. Values between1.2and1.8are the practical range for most servers.
Leftover XP carries over: if a player needs 100 XP and earns 250, they level up and keep 150 toward the next level. A single large XP grant can trigger several level-ups at once — each level fires its own message, sound and rewards.
Level-up rewards
When a player levels up, three things run, all configured under leveling.level-up in config.yml:
The level-up message and sound — configured in
messages.yml.commands— run on every level-up. Good for a small flat bonus.rewards— either the milestone entry for the reached level (levels.5,levels.10, ...) or, if the level has no entry, thedefaultone. A milestone replaces the default for that level, it doesn't stack on top of it.
All commands run from console and support two placeholders: {player} (player name) and {level} (the level just reached).
Leveling commands use {player}, not %player% — that syntax belongs to quest command rewards in quests.yml. Mixing them up leaves the placeholder unreplaced in the command.
What the level affects
A player's level feeds back into almost everything:
Daily board size
quests.daily-board.per-level grants extra board slots as the level grows.
Daily board pool
Only quests within level-range of the player's level can appear, and quests closer to their level are picked more often.
Accepted/active limits
quests.limits.max-accepted.per-level and max-active.per-level raise the caps with level.
Quest objectives
The level_up and gain_quest_xp triggers let quests react to the leveling system itself ("reach a new level", "earn 500 quest XP").
See the Daily Board page for the exact math behind the per-level bonuses.
Showing the level
In the quest board GUI, the player head uses
{level},{xp},{xp-needed}and{progress}(percentage toward the next level).Everywhere else, use the PlaceholderAPI placeholders —
%quests_level%,%quests_level_formatted%,%quests_xp%— covered on the Placeholders page, including the level formatting rules (MAXlabels, custom glyphs).
Admin commands
All level commands require the mcquests.admin.level permission and work on offline players too:
/level info [player]
Shows level, XP and completed quest count.
/level set <player> <level> <xp>
Sets level and XP in one go.
/level setlevel <player> <level>
Sets the level, keeps the XP.
/level addlevel <player> <amount>
Adds levels (can't go below 1).
/level removelevel <player> <amount>
Removes levels (can't go below 1).
/level setxp <player> <xp>
Sets the XP within the current level.
/level addxp <player> <amount>
Adds XP — this goes through the normal XP pipeline, so it can trigger level-ups and their rewards.
/level removexp <player> <amount>
Removes XP (can't go below 0).
/level setcompleted <player> <amount>
Sets the completed-quest counter.
/level reset <player>
Back to level 1 with 0 XP. The completed counter is kept.
/level addxp is the only command that triggers level-ups, messages and rewards. The set/setlevel/addlevel commands change the values silently — use them for corrections, not for granting progress.
Last updated