FrontierTab
Tab-list stats plus the per-player playtime and deaths store the rest of the suite is built on.
What it does
Renders a two-line tab header (server name, then TPS · players · border radius with its predicted next expansion · total deaths · End padlock), decorates every player’s list entry with their death count, ping and an [AFK] tag, and gives each viewer a personal footer showing all-time playtime and session time.
Behind the display is a small per-player stats store (data/<uuid>.yml) that tracks AFK-excluded playtime in daily buckets, deaths and XP levels earned. Two decisions make it the suite’s foundation: playtime is stored per calendar day so any reader can compute week or month leaderboards without the plugin ever "closing" a period, and it keeps its own deaths counter that ignores deaths inside a FrontierEvents arena — FrontierBorder and FrontierStatsAPI both read these files straight off disk.
Requires & integrates with
- Required
- Paper 26.2+, Java 25+
- Optional
- FrontierBorder (enables the
Border: 1500 → 1750header element) · FrontierEndLock (enables theEnd: 🔒element while the End is locked) · FrontierEvents (makes deaths inside events not count) - Used by
- FrontierBorder (reads daily playtime buckets to size expansion) · FrontierStatsAPI (serves all player stats and leaderboards) · FrontierReputation (registers a name prefix so tier titles show in tab)
Commands
| Command | Who | What it does |
|---|---|---|
| /tab | Everyone | Show the subcommands you’re allowed to use |
| /tab hide | Everyone | Hide your own header and footer (saved to your data file; player-only) |
| /tab show | Everyone | Show your header and footer again |
| /tab reload | Admin | Reload config.yml and restart the refresh timer |
| /tab set <player> playtime <value> | Admin | Overwrite a player’s playtime (<value> = raw seconds or 1d2h30m style); works on offline players |
| /tab set <player> deaths <n> | Admin | Overwrite the deaths counter; works on offline players |
| /tab reset <player> [playtime|deaths] | Admin | Zero one stat, or both if omitted; works on offline players |
| /stats [player] | Everyone | Playtime, deaths, current session, AFK status for you or another (offline players found by last name) |
Permissions
Player features default to true, staff features to op. Every node follows frontier.<plugin>.<action>, so a LuckPerms setup is e.g. lp group default permission set frontier.shop.use true. Wildcards work: frontier.reputation.*.
| Node | Default | Grants |
|---|---|---|
| frontier.tab.admin | op | /tab reload, /tab set, /tab reset |
| frontier.tab.hide | true | /tab hide and /tab show |
| frontier.tab.stats | true | /stats |
Config reference
File
plugins/FrontierTab/config.yml
To apply changes
/tab reload
| Key | Default | What it controls |
|---|---|---|
| refresh-interval | 40 | Ticks between tab re-renders and AFK re-checks (also the playtime resolution); 40 = every 2 s |
| afk-timeout-minutes | 5 | Minutes without a block-level move, interact, break/place or chat before a player is tagged [AFK]; AFK time is not counted as playtime |
| playtime-bucket-retain-days | 35 | Daily buckets older than this fold into the archive total on save; keep it above the longest window any reader wants (30 d for the month leaderboard) |
| show-playtime | true | Footer ⏱ Played line |
| show-deaths | true | Reserved — deaths currently always render on the player entry |
| show-session-time | true | Footer 🕐 Session line |
| show-ping | true | Reserved — ping currently always renders on the player entry |
| show-tps | true | Header: TPS element |
| show-player-count | true | Header: online player count |
| show-border | true | Header: border radius → next expansion (needs FrontierBorder; silently skipped otherwise) |
| show-total-deaths | false | Header: sum of deaths of online players |
| show-end-lock | false | Header: End: 🔒 while locked (needs FrontierEndLock) |
| server-name | "My Server" | Header line 1 (gold, bold) |
| Key | Default | What it controls |
|---|---|---|
| tps-thresholds.green | 18.0 | TPS at or above this shows green |
| tps-thresholds.yellow | 15.0 | TPS at or above this (but below green) shows yellow; else red |
| Key | Default | What it controls |
|---|---|---|
| ping-thresholds.green | 80 | Ping (ms) at or below this shows green |
| ping-thresholds.yellow | 150 | Ping at or below this shows yellow; else red |
Good to know
- +The
deathsshown in tab (and by anything reading FrontierTab, e.g. the FrontierStatsAPI deaths leaderboard) is FrontierTab’s own counter, not the vanillaminecraft:deathsstatistic — resetting vanilla stats does not change it; use/tab setor/tab reset. - +Playtime that "freezes" is AFK exclusion working as designed: standing on a farm or only turning your head counts as AFK after
afk-timeout-minutes. - +Data is saved every 5 minutes (async), on quit, and on shutdown; a hard crash loses at most 5 minutes of playtime.
- +The code falls back to
trueforshow-total-deathsandshow-end-lockif the keys are missing, so deleting them turns those elements *on* — keep them explicit. - +Daily buckets roll at the JVM’s midnight; install FrontierBorder (or set
-Duser.timezone) if you want them to roll at your local midnight.
← Previous
FrontierBorder
Playtime-gated world border that grows on a daily schedule; sets the server timezone
Next →
FrontierGraves
Permanent graves — keep your inventory on death, claim it later
Looking for something specific? Search the whole suite.