mc.pvpers.us
Online
← The Frontier Suite

FrontierTab

v1.2.1QoL · foundation

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 → 1750 header element) · FrontierEndLock (enables the End: 🔒 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

CommandWhoWhat it does
/tabEveryoneShow the subcommands you’re allowed to use
/tab hideEveryoneHide your own header and footer (saved to your data file; player-only)
/tab showEveryoneShow your header and footer again
/tab reloadAdminReload config.yml and restart the refresh timer
/tab set <player> playtime <value>AdminOverwrite a player’s playtime (<value> = raw seconds or 1d2h30m style); works on offline players
/tab set <player> deaths <n>AdminOverwrite the deaths counter; works on offline players
/tab reset <player> [playtime|deaths]AdminZero one stat, or both if omitted; works on offline players
/stats [player]EveryonePlaytime, 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.*.

NodeDefaultGrants
frontier.tab.adminop/tab reload, /tab set, /tab reset
frontier.tab.hidetrue/tab hide and /tab show
frontier.tab.statstrue/stats

Config reference

File

plugins/FrontierTab/config.yml

To apply changes

/tab reload

KeyDefaultWhat it controls
refresh-interval40Ticks between tab re-renders and AFK re-checks (also the playtime resolution); 40 = every 2 s
afk-timeout-minutes5Minutes 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-days35Daily 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-playtimetrueFooter ⏱ Played line
show-deathstrueReserved — deaths currently always render on the player entry
show-session-timetrueFooter 🕐 Session line
show-pingtrueReserved — ping currently always renders on the player entry
show-tpstrueHeader: TPS element
show-player-counttrueHeader: online player count
show-bordertrueHeader: border radius → next expansion (needs FrontierBorder; silently skipped otherwise)
show-total-deathsfalseHeader: sum of deaths of online players
show-end-lockfalseHeader: End: 🔒 while locked (needs FrontierEndLock)
server-name"My Server"Header line 1 (gold, bold)
KeyDefaultWhat it controls
tps-thresholds.green18.0TPS at or above this shows green
tps-thresholds.yellow15.0TPS at or above this (but below green) shows yellow; else red
KeyDefaultWhat it controls
ping-thresholds.green80Ping (ms) at or below this shows green
ping-thresholds.yellow150Ping at or below this shows yellow; else red

Good to know

  • +The deaths shown in tab (and by anything reading FrontierTab, e.g. the FrontierStatsAPI deaths leaderboard) is FrontierTab’s own counter, not the vanilla minecraft:deaths statistic — resetting vanilla stats does not change it; use /tab set or /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 true for show-total-deaths and show-end-lock if 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.

Looking for something specific? Search the whole suite.