Compatibility
Minecraft: Java Edition
Platforms
Links
Tags
Creators
Details
๐ณ ProgressTree
Unlock Your Path, Not Just Rewards.
The progression tree plugin that lets players choose their own destiny โ visual milestone trees, choice-based rewards, and zero bloat.
๐ก Why ProgressTree?
Most reward plugins hand players a fixed prize and call it a day. Your players aren't all the same โ why should their rewards be?
ProgressTree turns grinding into a decision. Every milestone unlocks a branch of reward choices: the miner takes claim blocks, the trader takes money, the PvP addict takes tokens. Players feel ownership over their progression โ and your server gets retention that generic "vote-reward" plugins never deliver.
Rebranded from MilestoneMP with a full feature expansion and one-command data migration.
โจ Features
๐ฎ For Players
- Visual Progression Tree GUI โ locked, available, and claimed states at a glance, with animated progress bars
[โโโโโโโโโโ] 80% - Choice-Based Rewards โ every milestone offers multiple rewards; the player decides
- 7 Milestone Trackers โ playtime, blocks broken/placed, mob kills, PvP kills, login streaks, and global server playtime
- Color-Coded Tiers โ 7 tier colors from
&7to&5so progression feels like progression
๐ ๏ธ For Admins
- Fully Configurable โ every milestone, icon, color, slot, and message is a config option. Up to 43 display slots for massive trees
- Works With Your Economy โ rewards are console commands, so ProgressTree integrates with any plugin: Vault economies, claims, tokens, XP, custom items โ no dependencies required
- SQLite & MySQL โ run it on a SMP or a network; swap backends with one line
- PlaceholderAPI โ 11 placeholders to surface progress in scoreboards, scoreboards, holograms, and scoreboardsโฆ everywhere
- Hot Reload โ
/pt reloadapplies config changes without a restart - Legacy Migration โ upgrading from MilestoneMP? One command transfers all player data
๐ Quick Start
# 1. Drop the jar into /plugins
# 2. Start your server (Paper/Purpur 1.21+, Java 21)
# 3. Done โ ProgressTree generates sensible defaults on first boot
Then make it yours: configure milestones in config.yml and run /progresstree reload.
๐งฉ Milestone Types
| Type | Tracks | Levels |
|---|---|---|
PLAYTIME |
Individual playtime | 7 |
BLOCK_BREAK |
Blocks broken | 7 |
BLOCK_PLACE |
Blocks placed | 7 |
MOB_KILL |
Mobs killed | 7 |
PLAYER_KILL |
PvP kills | โ |
JOIN |
Login streak (days) | โ |
COMMUNITY_PLAYTIME |
Total server playtime | โ |
โจ๏ธ Commands
| Command | Description | Permission |
|---|---|---|
/progresstree |
Open the progression tree GUI | progresstree.open |
/progresstree check |
View current progress | progresstree.check |
/progresstree claim <id> |
Claim a specific milestone | progresstree.claim |
/progresstree help |
Show command help | โ |
/progresstree reload |
Reload configuration | progresstree.admin |
/progresstree migrate |
Migrate from MilestoneMP | progresstree.admin |
Aliases: /pt, /ptree
๐ Permissions
| Permission | Description | Default |
|---|---|---|
progresstree.open |
Open the progress tree GUI | everyone |
progresstree.claim |
Claim milestones | everyone |
progresstree.check |
Check progress | everyone |
progresstree.admin |
Reload & migration commands | op |
๐ Placeholders (PlaceholderAPI)
| Placeholder | Output |
|---|---|
%progresstree_current% |
Current milestone ID |
%progresstree_next% |
Next available milestone |
%progresstree_progress% |
Progress percentage |
%progresstree_playtime% |
Playtime formatted Xh Ym |
%progresstree_blocks_broken% |
Blocks broken |
%progresstree_blocks_placed% |
Blocks placed |
%progresstree_mobs_killed% |
Mobs killed |
%progresstree_players_killed% |
PvP kills |
%progresstree_join_days% |
Login streak (days) |
%progresstree_community_playtime% |
Total server playtime (hours) |
%progresstree_can_claim% |
Yes / No |
โ๏ธ Configuration
database:
type: sqlite # or: mysql
host: localhost
port: 3306
database: progresstree
username: root
password: ""
settings:
check-interval: 60 # seconds between progress checks
community-reward-broadcast: true # announce server-wide milestones
milestones:
PlayTime_1:
type: PLAYTIME
amount: 36000 # 10 hours
icon: CLOCK
color: "&7"
choices: # โ the player picks one
- id: pt1_money
name: "&650 Server Money"
command: "eco give {player} 50"
- id: pt1_claim
name: "&a1000 Claim Blocks"
command: "adjustbonusclaimblocks {player} 1000"
๐ฐ Reward Commands
Rewards execute as console commands โ {player} is replaced automatically. If it has a command, it can be a reward:
command: "give {player} diamond 10"
command: "eco give {player} 5000"
command: "xp give {player} 50 levels"
command: "tokens give {player} 100"
command: "adjustbonusclaimblocks {player} 1000"
๐ฅ๏ธ GUI Details
- Progress bars rendered in-lore:
[โโโโโโโโโโ] 80% - 7-tier color progression per milestone rank
- Clean layout โ empty slots auto-filled with glass panes
- Instant status feedback: ๐ Locked / ๐ข Available / ๐ก Claimed
- Dedicated reward-choice screen for multi-choice milestones
- Scales to 43 milestone slots for deep progression trees
๐ Migrating from MilestoneMP
- Replace the MilestoneMP jar with ProgressTree
- Start the server
- Run
/progresstree migrate
All player progress transfers automatically. Your players won't lose a single block broken.
๐ Requirements
| Requirement | Version |
|---|---|
| Server | Paper / Purpur |
| Minecraft | 1.21+ |
| Java | 21 |
| PlaceholderAPI | (optional) |
๐ Support & Feedback
Found a bug or have a feature idea?
๐ฌ GitHub Issues โ fast responses, public roadmap.
License: MIT ย โขย Version: 2.0.0 ย โขย Author: Syaaddd
Made with โ and too many late-night test servers.


