⚡ Ahxer Studios · Progression for Paper servers

The XP & rank system
your server levels up with

AhxerLevels turns mining, fishing, farming, PvP and mob kills into experience — then promotes players through fully configurable ranks with rewards, fireworks and a clean stats menu.

v4.3.0 Paper 1.20+ · API 1.21 Requires LuckPerms PlaceholderAPI ready
In-game rank-up title: subiste de rango, ahora eres Minero, with fireworks Rank-up title + fireworks, fired in-game on promotion

Integrates with

LPLuckPermsRequired · 5.x
WGWorldGuardOptional · region XP
{ }PlaceholderAPIOptional · 2.11+
DBMySQL / MariaDBNetwork ready
NxNxMenuTexture-pack titles
Features

Everything a progression system needs

Every source of XP, every rank, every reward — configured from a single readable config.yml. No commands required to set it up.

Earn XP

Five ways to gain experience

Players earn XP from the things they already do. Every value is tunable per block, per fish, per crop and per mob.

  • Mining — per-ore XP, from coal to ancient debris
  • Fishing & farming — XP per catch and per mature crop
  • PvP — the killer gains XP, the victim loses it, with a protected minimum
  • Mobs — XP by category, plus custom values for bosses like the Warden, Wither and Ender Dragon
  • WorldGuard regions — multiply XP up to x20 inside named regions
In-game rank-down title: bajaste de rango, ahora eres Novato
Visual menu

A stats menu players actually open

The /level menu shows rank, total XP, the next rank and a live progress bar — plus the player's full stats and a Top 3 preview. Open it with /level, /nivel, /lvl or /rango.

  • Player stats: blocks mined, fish, crops, mobs and PvP kills
  • Progress bar to the next rank, rendered live
  • Top 3 by XP, right inside the menu
  • Custom title for NxMenu & texture-pack compatibility
  • Toggle size, borders, stats, top and close button
In-game /level menu titled Estadisticas showing player statistics items
Rewards

Promotions that feel earned

Every rank can run a list of console commands the first time a player reaches it — money, items, kits or permissions. Rewards are granted once per player, even after a demotion and re-promotion.

  • Per-rank command rewards, granted a single time
  • Colored fireworks burst around the player on promotion
  • On-screen rank-up / rank-down titles with configurable timing
  • A special permission unlocked at a custom XP threshold
config.yml — rank_rewards
# Run once, the first time a player reaches the rank
rank_rewards:
  guerrero:
    commands:
      - "eco give {player} 6400"
      - "give {player} diamond 3"
      - "lp user {player} permission set vip true"
  caballero:
    commands:
      - "eco give {player} 102400"
      - "kit {player} caballero"
Sync & control

Plays nicely with your permissions

Change a player's group straight from LuckPerms and AhxerLevels reacts exactly like its own commands — title, minimum XP and fireworks included. Restrict XP to the worlds you choose, and audit every change.

  • Native LuckPerms sync on /lp user parent set
  • Per-world XP control via enabled-worlds
  • Temporary XP boosts, global or per player (/xpboost)
  • Anti-cheat XP history with /xplog
  • YAML by default, or MySQL / MariaDB for networks
config.yml — worlds & boosts
# XP is only gained or lost in these worlds
enabled-worlds:
  - "world"
  - "farm"

# Boost limit for admins (0 = unlimited)
boost:
  max_multiplier: 10.0

# /xpboost global 2 3600  -> x2 XP, 1 hour
# /xpboost Steve 3 1800   -> x3 XP for Steve
What's included

One plugin, the full system

Everything below ships in a single JAR — no add-ons, no upsells.

FeatureAhxerLevels
XP from mining, fishing, farming, PvP & mobs
7 configurable ranks with required XP
Per-rank command rewards (once per player)
Rank-up fireworks & on-screen titles
Visual /level stats menu
Leaderboard & Top 3 preview
WorldGuard region XP multipliers
Temporary XP boosts (global / per player)
Native LuckPerms sync
Per-world XP control
PlaceholderAPI support (7 placeholders)
XP history / anti-cheat log
YAML & MySQL / MariaDB storage
Live reload — no restart needed
PlaceholderAPI

Live XP data, anywhere

Drop these placeholders into scoreboards, tab lists, holograms or chat. They resolve to the player's current progression in real time.

%ahxer_xp%Current XP, formatted
%ahxer_xp_raw%Current XP as a raw number
%ahxer_rank%Current rank name
%ahxer_rank_id%Current rank ID
%ahxer_next_rank%Next rank name, or MAX
%ahxer_xp_needed%XP left to the next rank
%ahxer_progress%Progress to next rank (0–100)
/top xpLeaderboard, YAML or MySQL
Config

Readable config, sensible defaults

The default ranks ship ready to use — from Novato to Gladiador. Rename ranks, change the XP curve and map each to a LuckPerms group. Bars show each rank's required XP relative to the top rank.

1
Novato
0 XP
2
Aldeano
30 XP
3
Minero
100 XP
4
Guerrero
300 XP
5
Cazador
1,000 XP
6
Caballero
5,000 XP
7
Gladiador
10,000 XP
config.yml — ranks & XP
ranks:
  minero:
    display-name: "Minero"
    required-xp: 100
    order: 3
  guerrero:
    display-name: "Guerrero"
    required-xp: 300
    order: 4

# Unlock a permission at an XP threshold
special_permission:
  xp_required: 30000
  permission: "elegible.rangos.superior"
config.yml — XP sources & menu
mining:
  coal_ore: 0.5
  diamond_ore: 1.0
  ancient_debris: 2.0

pvp:
  xp_on_kill: 5.0
  xp_lost_on_death: 2.0

# /level menu (NxMenu-compatible title)
gui:
  title: "Estadisticas"
  size: 27
  show-top: true
Commands & permissions

Simple for players, complete for admins

Players get a menu and their stats. Admins get full control over XP, ranks, boosts and history — every action permission-gated.

CommandDescriptionPermission
/level [player]/nivel · /lvl · /rang · /rangoOpen the progress & stats menuahxerlevels.gui
/level <player>Open another player's menuahxerlevels.gui.others
/stats [player]/estadisticas · /estadistica · /statView statisticsahxerlevels.stats
/stats <player>View another player's statisticsahxerlevels.stats.others
/top xp/ranking · /leaderboardLeaderboard of the highest-XP playersahxerlevels.top
/xp/ahxerxp · /levelsMain XP command
/xpinfo [player]Check a player's XP and rankahxerlevels.info
/xpboost <target> <mult> <sec>Start a temporary XP multiplier, global or per playerahxerlevels.admin.xpboost
/xpgive <player> <amount>Give XP to a playerahxerlevels.admin.give
/xptake <player> <amount>Take XP from a playerahxerlevels.admin.take
/xpset <player> <amount>Set a player's XPahxerlevels.admin.set
/setrank <player> <rank>Force a player's rankahxerlevels.admin.setrank
/xplog <player> [page]XP history for anti-cheat reviewahxerlevels.admin.xplog
/reloadlevelsReload the configuration without a restartahxerlevels.admin.reload
FAQ

Common questions

What Minecraft versions does it support?
AhxerLevels targets Paper 1.20+ and is built against API version 1.21. It runs on Paper, Spigot and Bukkit-based servers.
Does it need any other plugin?
LuckPerms is required, since ranks map to LuckPerms groups. WorldGuard / WorldEdit and PlaceholderAPI are optional — they unlock region multipliers and placeholders when present.
Can I change the rank names and XP curve?
Yes. Every rank lives in config.yml with its own display-name, required-xp and order. Add, remove or rename ranks freely — just create a matching LuckPerms group.
Does it work on a BungeeCord / Velocity network?
Yes. Set storage.type: MYSQL and point it at your database. Tables are created automatically, and new columns are added when you upgrade.
Will it work with my texture pack or NxMenu?
Yes. The /level menu title is configurable, and the menu is detected by an internal holder rather than its title — so you can match a texture-pack title and click-protection still works.
Do I need to restart the server to apply changes?
No. Run /reloadlevels to apply configuration changes live.
Get AhxerLevels

Give your server a progression loop players chase

Drop in the JAR, keep the defaults or tune every value, and let your players climb. One-time purchase on BuiltByBit.

$6.99One-time · AhxerLevels v4.3.0
Get AhxerLevels