minetuner(docs)
minetuner v1.1.1 · mc ≥26.2 · loader ≥0.19.3 · java ≥25 · license GPL-3.0 · env: client-only
MineTuner HUD. Client-side Fabric mod, replaces the vanilla F3 screen with a configurable stat HUD. This site is the implementation reference, not the user manual — for install/usage instructions read the README. Everything here assumes you've read the source or are about to.
No search box. Use ctrl+F. No dark mode toggle, your browser has one. This is one CSS file,
zero JS, zero build step —
docs/ is served as-is by GitHub Pages.
pages
| page | covers |
|---|---|
| architecture.html | package layout, sampling pipeline (StatSource → SamplingDriver → MineTunerDataHolder), stat registry pattern, render pipeline, config load/save lifecycle, the tick-rate mixin |
| stats.html | all 49 StatDefinition implementations: token, decimals/graph/threshold support, category, source cadence |
| template-mode.html | TemplateEngine token grammar, modifier parsing, escaping rules, failure modes |
| config-schema.html | full minetuner.json field reference, per-list schema, migration/backfill behavior |
| hardware-sensors.html | HardwareSensorPoller internals — LHM wire format, polling thread, failure handling |
| building.html | gradle properties, dependency versions, GitHub Actions workflow, release process |
tl;dr package map
bottled.minetuner
├── MineTunerMod common entrypoint (logger only, server env is a no-op)
├── MineTunerClient client entrypoint — keybinds, HUD attach, command reg, tick hook
├── MineTunerDataHolder static bag of latest sampled values, written by StatSource impls
├── sample/ StatSource, Cadence, SamplingDriver, SourceRegistry, HardwareSensorPoller
│ └── sources/ 11 StatSource impls, grouped by what they read (perf/player/world/...)
├── stat/ StatDefinition interface + StatRegistry (token/key lookup)
│ └── stats/ 49 StatDefinition impls, one file per stat
├── hud/ render pipeline: MineTunerRenderer, LineBuilder, LineCache, GraphRenderer,
│ TemplateEngine, ColorMath, HudMotion, ListPositioner
├── gui/ custom drag/drop editor (MineTunerGuiScreen) + panel/ subpackage
├── config/ MineTunerConfig (persisted model, atomic save/load) + config/cloth/ (Cloth Config screen)
├── command/ MineTunerCommand — /minetuner gui, /minetuner config
└── mixin/ ClientPacketListenerMixin (TickingState → tick rate)
see architecture.html for the actual dataflow between these.