# HUD values

> Every value Keystone's modules put on the player HUD, its key and what it holds — for the client half's elements and for your own HUD panels as {key}. New in 0.3.

Source: https://stygion.eu/docs/keystone/hud-values
Updated: 2026-10-25

New in 0.3. A module puts values on the HUD under a key; the module `client` collects them for every player with Keystone's client half every `hud.every` (default 2 seconds) and sends only what changed. The client half's HUD elements read the keys they know, and an owner's own HUD panels may print any of them as `{key}`. A player without the client half gets nothing.

Every value is a look-up in memory: what needs the database or a file is read off the server thread and kept by the module. A value that does not apply to a player (a module off, nothing known yet, outside a claim with no claims on the server) is left out, never faked.

| Key | Module | Holds |
|---|---|---|
| `server.tps` | `client` | the server's ticks per second, one decimal |
| `server.online` | `client` | players online (vanished ones not counted) |
| `server.max` | `client` | player slots |
| `restart.in` | `operations` | seconds to the next planned restart; left out when none is planned |
| `vote.today` | `votes` | whether the player voted today (true / false) |
| `vote.streak` | `votes` | days voted in a row |
| `vote.ready` | `votes` | how many vote sites (`votes.lists`) the player can vote on now |
| `rank` | `progress` | the highest playtime rank they hold |
| `rank.next` | `progress` | the next rank on the ladder |
| `rank.next-in` | `progress` | seconds of play left to it |
| `keys` | `crates` | crate keys held |
| `badges` | `badges` | names of the newest badges held, at most 3 (hidden ones left out) |
| `claim` | `territory` | whose claim the player stands in (FTB Chunks), `""` outside one; only with FTB Chunks |
| `quests` | `quests` | the player's quests: a list of `{title, progress, goal, done, period}` |
| `quests.resets` | `quests` | when the daily quests turn over, epoch milliseconds |
| `lists` | `lists` | the player's (and their team's) lists: `{name, done, total, items}`, with the first unfinished items `{item, have, count}` |

Which elements are shown, where, and which a player may move or hide is set in `client.toml` (`hud.elements`, `hud.shown`, `hud.locked`, `hud.anchor.*`). `GET /v1/client/hud` (scope `players.read`) lists the keys this server provides right now and the layout it suggests. An addon adds its own value through the public API (`ClientToolkit.hud(key, value)`); a key is lower-case words with dots and dashes.
