Compatibility
Minecraft: Java Edition
Platforms
Creators
Details

Work together to level up your multiplayer Minecraft server to unlock features and rewards!
Features
- Level up your multiplayer server by gaining XP through normal gameplay
- Reward your players for leveling up the world with:
- Items
- Increasing the world border
- Permissions and groups (requires Vault)
- Control what players can access based on World Level:
- Building Nether or The End portals
- Mining blocks
- Placing blocks
- Crafting items
- Trigger any command upon world level up
- Highly customizable with a full config schema
- Add custom XP sources globally or at a per-level basis
- Scale leveling exactly to your liking
- Exclude certain worlds from the plugin
- Support for infinite level scaling and rewards
- Optionally reward offline or new players for level gains
- Customizable messages, with MiniMessage formatting support
- Optionally add Vault for full integration with your permission plugin of choice

GIF showing leveling up, Nether access, and world border increases
Customizable Server XP Bar

Level Up Alerts
Configuration
The default configuration file will be created for you, but it can also be found here. If your text editor supports JSON/YAML schemas, you will also get configuration autocomplete suggestions and linting.
You can find a more involved example config here.
Configuration Examples
These are partial configurations for the levels section specifically.
How level ranges and XP requirements work
levels:
'1':
# level 1 should always require 0 XP
xp: 0.0
'2':
# level 2 requires 100 XP to get to
xp: 100.0
'3':
xpStep:
# level 3 adds 50 to the previous requirement, making it 150 XP to get to
add: 50.0
'4':
xpStep:
# level 4 multiplies the previous requirement by 2, making it 300 XP to get to
mult: 2.0
'5-10':
xpStep:
# levels 5-10 adds 50 to the previous requirement, making the following for each:
# level 5 requires 350
# level 6 requires 400
# level 7 requires 450
# level 8 requires 500
# level 9 requires 550
# level 10 requires 600
add: 50.0
'11-':
# Level 11 and beyond (scales infinitely) requires 1000 XP to get to
xp: 1000.0
Lock the Nether and The End at the start, and unlock them when the server reaches level 2 and 3, respectively
levels:
'1':
xp: 0.0
# Prevent Nether and End portals from being used initially
allowEnd: false
allowNether: false
'2':
xp: 2000.0
# Unlock Nether portals at level 2
allowNether: true
titles:
- title: <red>Nether</red> <green>unlocked!</green>
'3':
xp: 4000.0
# Unlock End portals at level 3
allowEnd: true
titles:
- title: <light_purple>The End</light_purple> <green>unlocked!</green>
'4-':
xp: 8000.0
Award players with different items, and unlock crafting and mining
levels:
'1':
xp: 0.0
items:
IRON_INGOT: 1
levels:
crafting:
DIAMOND_HELMET: false
DIAMOND_CHESTPLATE: false
DIAMOND_LEGGINGS: false
DIAMOND_BOOTS: false
mining:
DIAMOND_ORE: false
placing:
DIAMOND_ORE: false
'2':
xp: 2000.0
items:
COPPER_INGOT: 1
# crafting: is omitted here because by default all crafting is allowed
# so, at level 2, players can craft diamond armor
# mining: and placing: are omitted for the same reason
'3-4':
xp: 4000.0
items:
# Since '3-4' is a range, this awards a diamond for both levels 3 and 4
DIAMOND: 1
'5-':
xp: 8000.0
items:
# Since '5-' scales infinitely, this awards a netherite ingot every single
# level from 5 onwards
NETHERITE_INGOT: 1
How you can manipulate the world border for each level.
levels:
'1':
xp: 0.0
# Sets the initial world border to have a radius of 128, centered at 0,0
worldBorder:
radius: 128
center:
x: 0
z: 0
'2':
xp: 2000.0
# Sets the radius of the world border for achieving level 2 at 256
worldBorder:
radius: 256
'3':
xp: 4000.0
# Adds the radius of the world border for achieving level 3 to the previous
# radius, making it 512
worldBorder:
radiusStep:
add: 256
'4-':
xp: 8000.0
# Multiplies the radius of the world border for achieving level 4 and onward
# to the previous radius, making it 768, 1152, 1728, and so on
worldBorder:
radiusStep:
mult: 1.5
Award permissions and groups for certain levels (requires Vault)
levels:
'1':
xp: 0.0
'2':
xp: 2000.0
# Assigns 'mypermission.one' to all players
permissions:
- "mypermission.one"
'3':
xp: 4000.0
# Assigns 'mypermission.two' to all players
permissions:
- "mypermission.two"
'4':
xp: 8000.0
# Adds all players to the 'mygroup' group
groups:
- "mygroup"
Run commands on level up
levels:
'1':
xp: 0.0
'2':
xp: 2000.0
# Runs the 'time set day' command via the server console
commands:
- "time set day"
'3':
xp: 4000.0
# Runs the 'say You leveled up!' command via the server console
commands:
- "say You leveled up!"
Require the server's players to collectively mine a certain amount of different tiers of ore to get to the next level.
levels:
'1':
xp: 0.0
xpWeights:
# This makes it so no vanilla XP sources contribute world level XP
DEFAULT: 0.0
customXPSources:
mineIgnoresSilkTouch: true # set this to prevent XP gains for mining with silk touch
playerMine:
COAL_ORE: 1 # Awards 1 XP for each coal ore mined
'2':
xp: 100.0 # requires 100 coal ore mined (defined in level 1) to get this level
xpWeights:
DEFAULT: 0.0
customXPSources:
mineIgnoresSilkTouch: true
playerMine:
COPPER_ORE: 1
'3':
xp: 200.0 # requires 200 copper ore mined (defined in level 2) to get this level
xpWeights:
DEFAULT: 0.0
customXPSources:
mineIgnoresSilkTouch: true
playerMine:
IRON_ORE: 1
'4':
xp: 300.0 # requires 300 iron ore mined (defined in level 3) to get this level
xpWeights:
DEFAULT: 0.0
customXPSources:
mineIgnoresSilkTouch: true
playerMine:
DIAMOND_ORE: 1
'5':
xp: 400.0 # requires 400 diamond ore mined (defined in level 4) to get this level
Messages
The default messages file will be created for you, but it can also be found here. If your text editor supports JSON/YAML schemas, you will also get configuration autocomplete suggestions and linting.
Messages support MiniMessage, and have the following custom replacements available:
| Replacement | Description |
|---|---|
<level> |
Current world level |
<relative_xp> |
Amount of current XP relative to the current level requirements |
<level_xp> |
XP requirement to reach the next level |
<total_xp> |
Absolute total current XP |
<version> |
Plugin version |
<modrinth> |
Plugin Modrinth URL |
<click-modrinth></click-modrinth> |
Makes inner text clickable for the Modrinth URL |
Permissions
| Permission | Description |
|---|---|
worldlevels.earn.exempt |
Prohibit the player from gaining World Levels XP (by default, all players earn XP) |
worldlevels.help |
Access to the worldlevels help command |
worldlevels.reload |
Access to the worldlevels reload command |
worldlevels.reset.all |
Access to the worldlevels reset all command |
worldlevels.reset.rewards |
Access to the worldlevels reset rewards command |
worldlevels.update |
Access to the worldlevels update command |
worldlevels.version |
Access to the worldlevels version command |
worldlevels.xp.add |
Access to the worldlevels xp add command |
worldlevels.xp.get |
Access to the worldlevels xp command |
worldlevels.xp.set |
Access to the worldlevels xp set command |
Commands
All the following are prefixed with worldlevels. For example, worldlevels help.
Arguments in <> are required, arguments in [] are optional.
| Command | Description |
|---|---|
help |
Shows a list of commands |
reload |
Reload the plugin configuration and save from file |
xp |
Gets the current XP total and level |
xp add <xp> |
Add the given amount of XP to the total, supports negatives |
xp set <xp> |
Sets the total XP to the given amount |
update |
Checks for plugin updates |
version |
Prints the plugin version |
reset all |
Resets total XP back to 0 and allows all players to regain rewards |
reset rewards [player] |
Resets rewards for the given player (or all players), allowing them to regain rewards for past levels |


