Leveling
Leveling
Voxy includes a complete leveling system that awards players experience (XP), levels them up, displays configurable progress bars, and executes rewards upon reaching specific levels.
Overview
The leveling model manages each player's level and their current XP towards the next level. A player's progression is calculated dynamically based on an experience formula. Server administrators can also configure how the progress is displayed using Bar Styles and Level Formats.
Experience Formula
The formula is a cumulative expression: evaluated at a given <level> it returns the total XP that level represents.
By default, the formula is:
1250 * (<level> ^ 2) + (6250 * <level>) - 7500
(Where <level> is the level being evaluated).
The XP needed to advance from one level to the next is the difference between the formula at consecutive levels - that is, f(level + 1) - f(level) - not the raw formula value at a single level.
You can modify this formula via the settings, along with defining the server's max level (default 1000).
Bar Styles
Progress bars visually represent a player's XP progress. You can define multiple bar styles and choose which one to display. A bar style consists of:
- Size: Total length of the progress bar (e.g., 20 characters).
- Bar Character: The symbol used to draw the bar (e.g.,
❘or■). - Done Prefix: The formatting (color/style) applied to the completed portion.
- Progress Prefix: The formatting applied to the single character representing current progress.
- Remaining Prefix: The formatting applied to the unfilled portion of the bar.
Default Styles
Voxy provides two default styles out of the box:
bar: Uses the❘character (Size: 20).box: Uses the■character (Size: 10).
Level Formats
You can customize how a level is displayed in text or chat by setting Level Formats.
A format allows you to define a displayFormat and a chatDisplayFormat (e.g., &7[☆ {level}]).
Formats are tied to specific levels. When displaying a player's level, Voxy finds the format assigned to their current level or the nearest format below it.
These formats are used by the level_chat and level_display placeholders — see Placeholders for usage.
Level Rewards
Rewards can be configured to trigger automatically when a player reaches a specific level.
A single LevelReward consists of multiple actions, which can include giving items, executing commands, sending messages, or granting currency.
Level-Up and Reminders
- When a player levels up, Voxy sends them a chat message (configured as
LEVELS_LEVELUP_CHATinmessages.yml). - When a player has claimable level rewards waiting, an unclaimed-reward reminder (
LEVELS_REWARD_UNCLAIMED) is sent on join, pointing them to/rewardsto claim.
Commands
Staff can manage a player's levels and XP, as well as configure the entire system through an in-game GUI.
| Command | Syntax | Description |
|---|---|---|
setlevel |
/level setlevel <player> <amount> |
Sets player level |
addlevel |
/level addlevel <player> <amount> |
Adds levels to player |
setexp |
/level setexp <player> <amount> |
Sets exact experience |
addexp |
/level addexp <player> <amount> |
Adds experience |
addrandomexp |
/level addrandomexp <player> <min> <max> |
Adds random experience |
settings |
/level settings |
Opens the leveling settings GUI |
The command is registered as both /level and /levels.
(Requires the voxy.admin permission).