⚡ TFBMCProgression ⚡
Do-Everything-Once progression tracker for Paper 1.21.8
✔ Track every first-time action, kill, craft & structure
✔ Milestone titles, fireworks, sounds & rewards
✔ Real scoreboard-friendly progress bar (PlaceholderAPI)
✔ Lightweight, plug-and-play — no commands or permissions
Make your SMP progression meaningful again.
TFBMCProgression — track everything, celebrate everything.
ㅤㅤㅤㅤㅤㅤ
![[IMG]](//proxy.spigotmc.org/45d9c61c6b9247fafc08aa00067bccb8bde83981/68747470733a2f2f6779617a6f2e636f6d2f3466623831306139633838656334386631393537326530663864373531346562)
Overview
TFBMCProgression is built for long-term servers where every achievement matters.
Instead of rushing to “the end,” players are rewarded for experiencing
everything at least once.
This plugin celebrates each unique first — whether it’s mining a block, crafting an item, killing a mob, exploring a structure, or performing special actions — and ties them all into a
true 0–100% completion bar.
Perfect for forever servers, SMPs, and progression-focused communities.
Features
- Complete first-time tracking — crafts, mining, mob kills, actions, and structure discoveries (see full lists below).
- Milestones every 10% — fully configurable titles, subtitles, and rewards (10 → 90; 100% has its own finishers).
- Progression bar — %tfb_progression% (and alias %tfb%) placeholder for any scoreboard via PlaceholderAPI.
- XP multipliers & rewards — scale PlayerExpChangeEvent with per-milestone multipliers and/or grant raw XP/levels.
- Announcements — action bar for normal firsts; optional chat lines; titles + particles + sounds + a tiny firework for milestones/100%.
- Lightweight & efficient — purely event-driven (no schedulers), YAML storage, Paper API only.
- Forever-server options — reset-on-death (wipes progression & resets XP multiplier), auto-respawn (skip death screen).
- Debug 99% mode — fast end-to-end testing: leaves “mine DIRT” as the final first to hit 100%.
- Server-first style — optional broadcast wording (“is the first to…”) in addition to the default per-player style.
- Auto-population — new items/blocks/entities discovered on startup are added automatically; a complete snapshot is exported too.
What It Tracks
Craft —
Recipes (result slot),
plus smithing table, grindstone, stonecutter, loom, cartography table, anvil result slots, and
furnace/smoker/blast-furnace extracts (smelts count as crafts).
Mine —
Any block in Mojang’s mineable tags:
MINEABLE_PICKAXE,
MINEABLE_AXE,
MINEABLE_SHOVEL,
MINEABLE_HOE.
Kill —
Every
EntityType that’s living
+
PLAYER (PvP).
Actions —
FIRST_SLEEP,
FIRST_DEATH,
FIRST_RESPAWN,
ENTER_NETHER,
ENTER_END,
FIRST_FISH,
FIRST_TRADE (villager result slot),
FIRST_ENCHANT,
FIRST_BREW,
FIRST_TAME_WOLF,
FIRST_TAME_CAT,
FIRST_TAME_HORSE,
ELYTRA_USE (glide),
FIREWORK_USE (elytra boost),
SHIELD_BLOCK,
BOW_SHOT,
TRIDENT_THROW,
RESPAWN_ANCHOR_CHARGE,
GOAT_HORN,
BRUSH_USE (archaeology),
COMPOST,
BEACON_PLACE,
TOTEM_POP,
MILK_COW,
SHEAR_SHEEP,
SHEAR_MOOSHROOM,
HONEY_BOTTLE,
HONEYCOMB (full hive/nest only).
Structures — recognized when opening naturally generated loot containers:
Shipwreck, Abandoned Mineshaft, Stronghold, Desert Pyramid, Jungle Temple, Ruined Portal, Buried Treasure, Ocean Monument, Pillager Outpost, Woodland Mansion, Bastion Remnant, Nether Fortress, End City, Ancient City, Trial Chambers.
(keys:
STRUCTURE_SHIPWRECK,
STRUCTURE_MINESHAFT,
STRUCTURE_STRONGHOLD,
STRUCTURE_PYRAMID,
STRUCTURE_JUNGLE_TEMPLE,
STRUCTURE_RUINED_PORTAL,
STRUCTURE_BURIED_TREASURE,
STRUCTURE_OCEAN_MONUMENT,
STRUCTURE_OUTPOST,
STRUCTURE_WOODLAND,
STRUCTURE_BASTION,
STRUCTURE_FORTRESS,
STRUCTURE_END_CITY,
STRUCTURE_ANCIENT_CITY,
STRUCTURE_TRIAL_CHAMBERS)
Announcements
- Normal firsts → action bar (clean; no scoreboard clash). Optional chat line (global or self-only).
- Milestones (10–90%) → title + sound + particles + mini firework.
- 100% Completion → special title + mini firework (+ optional broadcast).
- Vanilla advancement chat → can be disabled for a clean feed.
Placeholders (PlaceholderAPI)
- %tfb_progression% — compact bar + percent (and counts if enabled).
- %tfb% — alias of %tfb_progression%.
- %tfb_progression_percent% — e.g. 42%.
- %tfb_progression_counts% — e.g. 250/500.
Example (FeatherBoard):
Code (YAML):
'&6Progress'
'
%tfb_progression%'
Alternative:
Code (YAML):
'&a
%tfb_progression_percent% &7(%tfb_progression_counts%)'
Milestones & XP
Every 10% milestone can:
✔ Show titles/subtitles
✔ Play sounds/particles/fireworks
✔ Reward raw XP and/or levels
✔ Scale EXP gain with multipliers (applied in
PlayerExpChangeEvent)
At 100% → apply the final multiplier, grant rewards, and display the completion title.
⚙️ Configuration
Default highlights (see
config.yml):
-
Messaging —
use-chat,
announce-global,
use-titles,
use-particles,
use-sounds,
disable-vanilla-advancement-chat
-
Style — progress bar length/symbols/colors; percent/count toggles
-
Milestones — per-milestone titles/subtitles/rewards/multipliers
-
Forever options —
reset-on-death (also resets multiplier),
auto-respawn
-
Modes —
announce-player-firsts (default) or
announce-server-firsts
-
Power users —
populate-all-keys and
export-full-config-on-first-start to generate
config_full.yml (one giant editable config)
Per-player data is stored at:
plugins/TFBMCProgression/playerdata/<uuid>.yml
Installation
- Requirements: Paper 1.21.8, Java 21.
- (Optional but recommended) PlaceholderAPI 2.11.6+.
- Drop TFBMCProgression.jar into /plugins.
- Start once → configs generate automatically.
- Edit config.yml (copy the full message code from config_full.yml).
- Restart and play.
❓ FAQ
Do I need to author messages for every block/item/mob/action?
No — defaults are auto-populated. A complete
config_full.yml is exported to copy messages from one place.
Can I switch to server-first broadcasts?
Yes — enable
announce-server-firsts.
Will new items/blocks/entities break it?
No — new keys are auto-discovered on startup. No NMS is used.
Created by Astroolean