Community listing page, reviews may not be monitored by the author.
AccurateFPS+
No reviews yet
Lightweight and highly accurate Metrics (not just FPS!) with a fully customizable HUD
Community voices
Reviews
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
Compatibility
Supported Environments
Runs entirely on the client. Works on vanilla servers.
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
About
Description
AccurateFPS+
A lightweight, client-side FPS HUD mod with an extended framerate slider, smooth dynamic gradient coloring, and detailed performance telemetry. See your performance clearly at a glance and customize the HUD to suit your setup.
Highlights
- 7 Performance Metrics - Track Live FPS, Frametime, AVG, MAX, MIN, 1% Low, and 0.1% Low to see current performance and framerate stability in detail.
- 1% & 0.1% Lows - Monitor lower-end framerate to identify performance drops that average FPS can hide. Low percentiles use nearest-rank selection over valid per-frame FPS values in the configured history window.
- Extended FPS Slider - When no recognized conflicting FPS-cap or textbox mod is installed, AccurateFPS+ replaces the vanilla framerate limit slider with a precise 1–1000 FPS range and 1 FPS increments. The selected limit persists in its own config file.
- Flexible FPS Calculation - Choose between Real-Time, Averaged, or EMA (exponential moving average) calculation modes.
- FPS History & Statistics - Configure the history window used for AVG and low-percentile calculations from 1s to 60s. MAX and MIN are also calculated from retained samples.
- Measured Frametime - Display the measured frame duration in milliseconds alongside the FPS metrics.
- Smooth Dynamic Gradient - Blend between customizable Low, Medium, and High colors so FPS values transition smoothly rather than switching between fixed colors.
- Adaptive or Manual Coloring - Let Automatic mode adapt color thresholds to gameplay performance using EMA baseline smoothing, or set exact thresholds in Manual mode.
- Deep HUD Customization - Customize metric visibility, order, position, decimal precision, prefixes, suffixes, colors, text shadow, and background overlay.
- HUD Size - Scale the complete HUD from 1% to 200%; default is 100%.
- Presets - Quickly switch between Minimal, Competitive, Detailed, and Custom HUD layouts.
- Preset Cycle Keybind - Cycle through Minimal, Competitive, and Detailed presets in-game; the keybind starts unbound to avoid conflicts with other mods.
- In-Game Settings - Cloth Config and YACL provide optional settings screens. On Fabric, the unbound-by-default Open Configuration keybind is available when at least one is installed; the Mod Menu entry is also available when Mod Menu is installed. NeoForge always has a Mods-list entry and native fallback screen; when Cloth Config or YACL is installed, it uses the selected optional screen instead. If both are installed, choose between them in General settings; Cloth Config is the default.
- Client API - Companion mods can read current telemetry through
com.accuratefpsplus.api.AccurateFpsApi. - Conflict Avoidance - The framerate slider integration is skipped when specific known FPS-cap or textbox mod IDs are present; this avoids replacing those controls but does not guarantee compatibility with every FPS mod.
All four target builds provide the same HUD, metrics, settings, presets, keybinds, and FPS slider. Sodium's FPS-slider integration is available on Fabric and NeoForge 1.21.1. See the compatibility notes below for NeoForge 1.21.11.

"All Metrics" preset + Fixed Auto-Coloring (before dynamic gradient) - v1.0-r1

"All Metrics" preset + Dynamic Coloring on FPS - v1.2-r1
Supported Versions
| Release | Minecraft | Loader |
|---|---|---|
1.3-r1 (Latest) |
1.21.1, 1.21.11 | Fabric, NeoForge |
1.2-r2 |
1.21.1, 1.21.11 | Fabric, NeoForge |
1.2-r1 1.1-r1 |
1.21.1, 1.21.11 | Fabric |
1.0-r2 Refabricated |
1.21.11 | Fabric |
1.0-r1 |
1.21.1, 1.21.11 | Fabric, Forge, Quilt |
Configuration
Settings are grouped into up to 4 contextual categories; controls that do not apply are hidden. Engine tuning settings remain available even when their related metrics are disabled. Save changes in the configuration screen; a game restart is not required:
1. General
- Enable HUD - Toggle HUD visibility.
- HUD Toggle Keybinds - Configure the HUD toggle and preset-cycle keys in Minecraft's Controls menu under AccurateFPS+. The preset-cycle key starts unbound so it cannot conflict with another mod's default shortcut.
- Hide with F3 - Automatically hide the HUD while Minecraft's debug screen is active; enabled by default for new installations.
- Preset Profile - Choose Minimal, Competitive, Detailed, or Custom.
- HUD Anchor - Top-Left, Top-Right, Bottom-Left, Bottom-Right, or Custom.
- X & Y Offsets - Fine-tune the HUD position.
- Text Shadow - Toggle text drop shadow.
- HUD Size - Scale all HUD text and the background overlay from 1% to 200% (100% by default).
- Settings Screen - Cloth Config and YACL are optional, independent settings-screen libraries. If both are installed, choose between them in General settings; Cloth Config is selected by default. If only one is installed, AccurateFPS+ uses it without showing a redundant selector. With neither installed, Fabric has no settings entry or configuration keybind; NeoForge retains its Mods-list entry, native configuration screen, and configuration keybind.
- Background Overlay - Optional background box with customizable color and transparency.
2. Metrics
Organized into 7 metric groups:
- FPS - Current sampled framerate.
- Frametime - Measured frame duration in milliseconds.
- Average (AVG) - Average FPS over the retained history window.
- Maximum (MAX) - Maximum FPS in the retained history window.
- Minimum (MIN) - Minimum FPS in the retained history window.
- 1% Low - Nearest-rank low-percentile FPS over valid active render-frame samples.
- 0.1% Low - Nearest-rank low-percentile FPS over valid active render-frame samples.
Percentiles use one observation per rendered frame, independently of the Engine polling interval. Each low reports the nearest-rank percentile FPS sample; it is not the average FPS of the slowest 1% or 0.1% of frames. Inactive periods (HUD disabled, a screen open, or F3 hiding the HUD) pause sampling. Active frame gaps of 1 second or longer are treated as interruptions and discarded. The two low-percentile values can still match when nearest-rank selects the same frame rank or when the corresponding frame rates are equal.
Each metric can be configured with:
- Visibility toggle
- Display slot order (slots 1–4 on the main line and 1–3 on the secondary line)
- Decimal precision (0 to 4 digits)
- Custom prefix and suffix text
- Custom color and automatic coloring
- Its own refresh interval where supported; FPS and Frametime share the main refresh interval
3. Coloring
- Threshold Mode - Choose between:
- Automatic: Adapts color thresholds to gameplay performance using a smoothed baseline.
- Manual: Set exact FPS values for Low, Medium, and High transitions.
- Monitor Refresh-Rate Detection - Set manual thresholds from the detected display refresh rate (High = native Hz, Medium = 75%, Low = 50%).
- Gradient Colors - Pick custom RGB colors for Low, Medium, and High FPS states.
4. Engine
- Calculation Mode - Real-Time, Averaged, or EMA.
- History Window - 1s, 3s, 5s, 10s, 30s, or 60s for retained samples.
- Polling Interval - Set how often frame data is sampled.
- Refresh Intervals - FPS and Frametime update together; AVG, MAX, MIN, 1% Low, and 0.1% Low have independent refresh intervals. All intervals remain configurable even when their metrics are disabled.
Use Cycle HUD Preset in the Controls menu to rotate Minimal → Competitive → Detailed → Minimal. Cycling from a Custom preset starts at Minimal. The selected preset is saved immediately.
Performance
- Time-windowed telemetry history - Retains frame samples within the configured history and required statistic refresh windows.
- Frame-based low percentiles - Uses valid render-frame intervals rather than polling-window samples, so short frame drops are represented in the low metrics.
- Reusable percentile workspace - Stores frame history in a time-windowed primitive ring and reuses its Quickselect workspace.
- Cached HUD text - Skips text composition when telemetry values and configuration have not changed.
- Cached overlay rendering data - Reuses calculated overlay colors and dimensions.
- Low-percentile selection - Uses Quickselect with a median-of-three pivot rather than sorting the full sample window.
- Shared range-statistics pass - Calculates due AVG, MAX, and MIN values together when any of their refresh deadlines is reached.
- Configuration migration - Migrates supported older settings formats when loading the configuration.
Synthetic engine-only stress profile (1,000 FPS, 60-second history, 1 ms statistic and percentile refresh intervals, 3 simulated seconds): elapsed time fell from 100.4 ms to 11.5 ms (about 88.5% lower), and allocation fell from 72.4 MB to 333 KB (about 99.5% lower). This is a synthetic engine-only measurement, not an in-game benchmark; it does not establish a gameplay performance gain.
Dependencies & Compatibility
| Mod | Status |
|---|---|
| Fabric API | 📦 Required (FABRIC) |
| Cloth Config | ⚙️ Optional |
| YetAnotherConfigLib (YACL) | ⚙️ Optional |
| Mod Menu | ⚙️ Optional (FABRIC) |
| Sodium | ✅ Optional (except NeoForge 1.21.11) |
| Sodium FPS Cap Fix | ✅ Optional |
Minecraft and the selected loader are required. Cloth Config and YACL are independent, optional settings-screen choices. NeoForge also provides its own settings screen, so neither library is required there. Settings are saved in config/accuratefpsplus.json; the extended FPS limit is saved in config/accuratefpsplus-fps.json.
NeoForge 1.21.11: Sodium is not supported with this loader/version combination in 1.3-r1. The latest stable Sodium release for this target, 0.8.14, crashes during world rendering with NeoForge 21.11.48 (and also did so with NeoForge 21.11.45). The error is a ValidationGpuTexture to GlTexture cast in Sodium's chunk renderer. AccurateFPS+'s Sodium integration only changes FPS-slider controls; it does not modify chunk rendering. These tests used development clients, so whether the same crash occurs with a packaged release has not been confirmed. Without Sodium, the latest NeoForge 1.21.11 test loaded and saved a world. The latest NeoForge 1.21.1 profile with Sodium, Cloth Config, and YACL also loaded and saved a world.
Links & Modpack Policy
Modrinth is the recommended source for downloads, as releases are published there first and more frequently. Download the jar matching your Minecraft version and loader.
- Modrinth
- GitHub
- Report an issue
- Contact: Discord (
matteo.sb)
MIT License - Source code is available in this GitHub repository.
You are welcome to include AccurateFPS+ in any modpack, private or public. Please give credit and link back to the Modrinth project.
Built with love by gingermat
Note: 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 to finish soon so that y'all can enjoy them! I hope you find this mod useful!
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
Get it on
Available Platforms
On ModDex
Community snapshot
By the numbers