FrozenStats
The ultimate replica of DonutSMP Stats
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
FrozenStats
> # FrozenStats ❄️
A stats GUI plugin for Minecraft — styled like DonutSMP Stats. Built with Maven, using the exact same architecture as the original DonutStats source.
---
Supported Versions
- Minecraft 1.21 – 1.21.11
Supported Server Software
| Software | Supported | |----------|-----------| | Paper | ✅ | | Spigot | ✅ | | Purpur | ✅ | | Folia | ✅ (`folia-supported: true`) |
---
Features
- Stats GUI identical to DonutSMP (Money, Total Money Paid, Kills, Deaths, Playtime, Blocks, Mobs, Shop stats) - Shards replaced with "Total Money Paid" — tracks the lifetime total of all Vault deposits made to the player - Full `&#RRGGBB` hex colour support in all config text - PlaceholderAPI support — every lore line runs through PAPI - Configurable sounds (all keys are registry-safe for 1.21) - `/stats`, `/stats <player>`, `/stats reload` - Offline player support + tab completion with offline player cache
---
Commands & Permissions
| Command | Permission | Default | |---------|-----------|---------| | `/stats` | `stats.use` | `true` | | `/stats <player>` | `stats.other` | `op` | | `/stats reload` | `stats.reload` | `op` |
---
Soft Dependencies
- Vault — for all `%holorams_*%`, `%donutshop_*%`, `%donutsell_*%`, and `%frozenstats_*%` placeholders - Vault — for current balance display and lifetime total-paid tracking
---
Total Money Paid — How it Works
FrozenStats tracks the cumulative total money ever paid/deposited to each player via Vault.
Data is stored in `plugins/FrozenStats/data/totalpaid.yml` (UUID → double).
PlaceholderAPI placeholders
| Placeholder | Description | |-------------|-------------| | `%frozenstats_total_paid%` | Vault-formatted total (e.g. `$1,234.56`) | | `%frozenstats_total_paid_short%` | Short form (e.g. `1.2k`, `3.4M`) | | `%frozenstats_total_paid_raw%` | Raw double value |
Recording payments from another plugin
If you have a custom shop or reward plugin, call FrozenStats' API to record each payment:
```java Plugin fs = Bukkit.getPluginManager().getPlugin("FrozenStats"); if (fs instanceof FrozenStats frozenStats) { frozenStats.recordPayment(player.getUniqueId(), amount); } ```
Config Files
| File | Purpose | |------|---------| | `config.yml` | Messages & sound keys | | `gui.yml` | All GUI items (rows, title, slots, materials, names, lore) | | `data/totalpaid.yml` | Auto-generated — stores lifetime payment data per UUID |