FrozenStats

The ultimate replica of DonutSMP Stats

73

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 |

ADS