PerfDonation
Store purchases with live announcements, GG reward waves, community goals, Discord embeds and top-spender NPC leaderboards.
Paper and Folia 1.21 - 26.x
Support
Report bugs and get support here: https://discord.gg/VvM6k2eBDa
Features
• Folia support – runs on Paper and Folia 1.21.x
• Tebex & CraftingStore – webhooks, plugin events and periodic API sync for live purchase tracking
• Custom webstore webhook – HTTP endpoint for any store with a shared secret
• Purchase announcements – configurable chat broadcast, sound and donor fireworks
• Purchase consent – optional donor confirm/decline before a public announcement
• Purchase batching – multiple packages from one Tebex checkout in a single announcement
• GG wave – timed chat event where players type a trigger message to win configurable rewards
• Community goals – Tebex API or internal tracking with milestones, progress bar and completion modes
• Discord webhooks – purchase, goal milestone and goal complete embeds with skin images
• Top-spender NPC boards – ranked displays with player head or full skin NPCs and TextDisplay holograms
• Skin backends – FancyNpcs, ZNPCsPlus or Citizens with SkinsRestorer and Mojang fallbacks
• Leaderboard metrics – total spent or purchase count for all-time, weekly or daily periods
• Cross-server sync – optional Redis relay for network-wide donation announcements
• PlaceholderAPI – live stats, recent store purchases, goal progress and board ranks
Placeholders
%perfdonation_total_donations% – total recorded purchases on this server
%perfdonation_last_donor% – name of the most recent donor
%perfdonation_last_product% – name of the most recent purchased package
%perfdonation_gg_wave_active% – true while a GG wave is running
%perfdonation_gg_wave_seconds_left% – seconds remaining in the active GG wave
%perfdonation_store_recent_(rank)_player% – donor name for recent purchase rank (1 = latest)
%perfdonation_store_recent_(rank)_product% – product name for recent purchase rank
%perfdonation_store_recent_(rank)_amount% – amount for recent purchase rank
%perfdonation_store_recent_(rank)_currency% – currency for recent purchase rank
%perfdonation_goal_name% – active community goal name
%perfdonation_goal_description% – active community goal description
%perfdonation_goal_current% – current goal progress amount
%perfdonation_goal_target% – goal target amount
%perfdonation_goal_remaining% – amount left until the goal is complete
%perfdonation_goal_percent% – goal completion percentage
%perfdonation_goal_currency% – goal currency code
%perfdonation_goal_source% – goal data source (tebex or internal)
%perfdonation_goal_bar% – 25-segment MiniMessage progress bar
%perfdonation_goal_bar_10% – 10-segment MiniMessage progress bar
%perfdonationnpcs_(metric)(period)(rank)_name% – board player name (e.g. spent_alltime_1_name)
%perfdonationnpcs_(metric)(period)(rank)_uuid% – board player UUID
%perfdonationnpcs_(metric)(period)(rank)_raw% – raw numeric board value
%perfdonationnpcs_(metric)(period)(rank)_value% – formatted board value
Commands
/perfdonation reload – Reload plugin configs (perfdonation.admin)
/perfdonation help – Show admin command usage (perfdonation.admin)
/perfdonation trigger (player) [amount] [product...] – Simulate a store purchase (perfdonation.admin)
/perfdonation sync [count] – Pull recent payments from Tebex/CraftingStore API (perfdonation.admin)
/perfdonation setsecret (store) (key) – Save Tebex, CraftingStore or custom webhook secret in config (perfdonation.admin)
/perfdonation consent – Confirm a pending purchase announcement as the buyer (no permission)
/perfdonation decline – Decline a pending purchase announcement as the buyer (no permission)
/donationnpc – Show NPC command help (perfdonationnpcs.use)
/perfdonationnpcs create (id) (metric) (period) (rank) – Create a top-spender board at your location (perfdonationnpcs.admin)
/perfdonationnpcs setpos (id) – Move a board anchor to your location (perfdonationnpcs.admin)
/perfdonationnpcs remove (id) – Delete a board (perfdonationnpcs.admin)
/perfdonationnpcs list – List all boards (perfdonationnpcs.admin)
/perfdonationnpcs refresh [id] – Refresh one or all boards (perfdonationnpcs.admin)
/perfdonationnpcs reload – Reload plugin configs (perfdonationnpcs.admin)
/perfdonationnpcs cleanup [radius] – Remove orphaned PerfDonation NPC entities (perfdonationnpcs.admin)
/perfdonationnpcs edit (board) (action) [value] – Edit board look, period, metric, spacing or size (perfdonationnpcs.admin)
/perfdonationnpcs stats (player) – Show a player's donation totals (perfdonationnpcs.admin)
/perfdonationnpcs help – Show NPC admin usage (perfdonationnpcs.admin)
Database
• SQLite (default)
• MySQL (configurable)
