
AccurateFPS+
Lightweight and highly accurate FPS metrics with a fully customizable HUD
AccurateFPS+
A lightweight, client-side FPS HUD mod with an extended framerate slider and deep customization. See your performance clearly and in more detail at a glance, exactly the way you want it!
Highlights
- Extended FPS Slider - Replaces the vanilla Max Framerate slider with a precise 1–1000 range (step of 1 instead of vanilla's step of 10). Your chosen value saves and persists between sessions.
- Live FPS, AVG, MAX & MIN - Four independent metrics, each with its own update interval, decimal precision, label, display slot, and configurable history window.
- Fully Customizable HUD - Pick any screen corner or set exact X/Y coordinates. Enable text shadows, and add a semi-transparent background overlay with adjustable color and transparency.
- Per-Metric Colors - Set a custom hex color for each metric independently, or enable auto-color per metric: green (≥60), yellow (≥30), red (<30).
- Flexible FPS Calculation - Switch between Real-Time (instant), Averaged (smooth), or EMA (exponential moving average) for responsive yet stable tracking. AVG/MAX/MIN/percentile lows respect the configurable history window (1s / 3s / 5s / 10s / 30s / 60s).
- Built-in Presets - Minimal (FPS only), Competitive (FPS + AVG), Detailed (all four), or Custom.
- CSV Export - Run
/accuratefps+ exportcsvto dump your FPS history (with frametime) in a clean, readable table format.
!preview of the "All Metrics" preset
"All Metrics/Detailed" Preset + Automatic Coloring on FPS
Supported Versions
| Minecraft | Loaders |
|---|---|
| 1.21.1 | Fabric, Quilt, Forge |
| 1.21.11 | Fabric, Quilt, Forge |
Installation
- Download the jar that matches your loader and MC version
- Drop it into your
mods/folder - Launch Minecraft
- Open Mod Menu → AccurateFPS+ to configure (requires Cloth Config on Fabric/Quilt), or edit
config/accuratefpsplus.jsondirectly
Configuration
All settings are available through the in-game config screen and apply immediately - no restart needed.
HUD Settings
- Toggle HUD on/off
- Anchor corner or custom X/Y position
- Text shadow for readability
- Background overlay with configurable color and transparency
Per-Metric Settings (FPS, AVG, MAX, MIN) + Low Metrics Line
- Show/hide each metric independently
- Set display slot order (main line has four slots; the low-metrics line has two slots stacked vertically under the main HUD)
- Set decimal precision (0–4 places)
- Add custom prefix and suffix text
- Set update interval per metric
- Set custom color (hex) per metric
- 1% Low - FPS exceeded 99% of the time (competitive stability metric)
- 0.1% Low - FPS exceeded 99.9% of the time (worst-case analysis); These are displayed on a separate line to prevent the main HUD from overflowing.
Engine Settings
- Calculation Mode:
- Real-Time - instant per-frame FPS (default)
- Averaged - mean over poll window (stable)
- EMA - exponential moving average for smooth yet responsive output
- History Window - Time range for AVG/MAX/MIN/percentile calculations (1s–60s)
- Sampling Interval - How often to poll frame times (balance fidelity vs. overhead)
- Per-Metric Refresh Intervals - Configure FPS/AVG/MAX/MIN/1% Low/0.1% Low update cadence independently
Presets
- Minimal - Just the current FPS
- Competitive - FPS + Average
- Detailed - All four metrics
- Custom - Your own layout
Performance
- Zero-allocation hot path - primitive ring buffer for frame timings, no autoboxing or GC pressure per frame
- Cached HUD text - string composition is skipped when telemetry values haven't changed; fast decimal formatting without
String.format()overhead - Cached overlay color - no per-frame float math, recalculated only when settings change
- Cached screen dimensions - window size queries only when display actually resizes
- Throttled history pruning - CSV export data pruned every ~10 seconds instead of every poll tick
- Async CSV export - history snapshots on the render thread, disk I/O runs off-thread to avoid hitches
- Configurable polling intervals - balance accuracy vs. overhead to suit your hardware
- Very low performance overhead - only a single
nanoTime()call + ring buffer write per frame; all other work runs at ~10 Hz - Automatic config migration - old configs are seamlessly upgraded to the latest schema, so updates never break your settings
Tip: Polling intervals below 100 ms give faster updates but may slightly impact performance on lower-end hardware.
Troubleshooting
- HUD not visible? Make sure it's enabled in the config and that no GUI screen is open.
- Config won't save? Check write permissions on the
config/folder.
Dependencies & Compatibility
| Mod | Loaders | Requirement |
|---|---|---|
| Fabric API | Fabric, Quilt | 📦 REQUIRED |
| Cloth Config | Fabric, Quilt | 📦 REQUIRED |
| Mod Menu | Fabric, Quilt | ✅ COMPATIBLE |
| Sodium | Fabric, Quilt | ✅ COMPATIBLE |
❌ Known Incompatibilities
None at the moment. If you run into a conflict with another mod, please report it so that I can mark it as INCOMPATIBLE, or make it compatible!
Note: Forge builds bundle their own dependencies and do not require Fabric API, Cloth Config, or Mod Menu.
Links
- Modrinth
- Contact: Discord (username: matteo.sb)
MIT LICENSE - source code will be posted soon on Git Hub
You are welcome to include this mod in any modpack (private or public). Please give credit and link back to this Modrinth page.
Built with love by gingermat
!!! - I know this is an overused concept for a mod, but i just wanted to test myself and get better at coding, i have much more creative projects that i hope i finish so that yall can enojoy them! I hope you can find this mod useful and good
