
Track lifetime XP and trigger custom rewards! Includes a dynamic BossBar system.
A powerful and lightweight Paper plugin that tracks each player's lifetime XP and executes custom rewards when XP milestones are reached.
Fully configurable, translation-ready, and built for modern Paper servers (1.21+).
/xp, /experience).&a) simultaneously!@a, @p).lang.yml (including "Max Rank" text).current_rank)..jar file into your server's plugins folder.config.yml and lang.yml to your liking./txp reload
config.yml (example)bossbar:
enabled: true
# Hybrid Support: Mix Legacy (&) and MiniMessage (<gradient>)!
title: "&bCurrent Rank: &e%current_rank% &7| <gradient:blue:aqua>Next: %next_rank%</gradient> &7(&a%xp%&7/&c%required_xp%&7)"
color: BLUE
style: SOLID
dynamic-mode: true # Bar appears on XP gain and hides after timeout
timeout: 10
rewards:
"1000":
name: "<gradient:#2486B5:#3A816A>Novice</gradient>"
commands:
- "give %player% diamond 1"
- "eco give %player% 250"
broadcast: "&a%player% reached %threshold% XP (Novice)!"
"50000":
name: "Master"
commands:
- "give %player% netherite_ingot 1"
broadcast: "&6%player% is now a Master!"
Available for use in Chat, Broadcasts, and BossBar:
| Placeholder | Description |
|---|---|
%player% |
Player's name |
%xp% |
Player's total lifetime XP |
%current_rank% |
Name of the current rank (e.g. "Novice") |
%next_rank% |
Name of the next rank (e.g. "Master") |
%required_xp% |
XP required for the next rank |
%threshold% |
The specific threshold reached (Rewards only) |
| Command | Description | Permission |
|---|---|---|
/txp get <player> |
View a player’s total XP | totalxp.view |
/txp show |
Show your BossBar | totalxp.use |
/txp hide |
Hide your BossBar | totalxp.use |
/txp set <player> <amount> |
Set a player’s XP | totalxp.admin |
/txp reset <player> |
Reset player XP & history | totalxp.admin |
/txp reload |
Reload config & language | totalxp.admin |
XP and reward history are stored via SQLite, located in:plugins/TotalXPRewards/database.db
External Access:
The database now includes a current_rank and username column, making it easy to integrate with web leaderboards (e.g. Node.js apps).
The plugin does not depend on them but integrates automatically if installed.
This plugin was developed with the assistance of Google DeepMind's AI.
All code and design decisions were reviewed and finalized manually.
This project is licensed under the MIT License.
You are free to use, modify, and contribute.
Pull requests and feature suggestions are welcome!
Feel free to open an issue if you encounter bugs or have ideas.
If you enjoy this plugin, consider leaving a star on GitHub — it helps a lot!