COWMODSКаталог модов

FPSFlow

Improve FPS with smart rendering, entity culling, adaptive optimizations, and configurable performance profiles

Автор: McAffe1318,2 тыс.12обновлён 29 июл. 2026 г.
Оптимизация

Описание

FPSFlow

Real FPS improvements — no placebo, no bloat.

FPSFlow is a client-side Fabric optimization mod that targets the biggest rendering bottlenecks in vanilla Minecraft. Every feature is measurably effective, individually toggleable, and automatically adjusts to your hardware via four built-in performance profiles.


✦ Features at a Glance

FeatureWhat it does
🔍Entity CullingFrustum, occlusion, and distance culling. Dual-point raycasting prevents false-positives on small entities. Auto-disables when EntityCulling is detected.
📐Entity LODEntities beyond a configurable distance render every 2nd tick. Server NPCs and entities within nameplate range are always fully exempt — no flicker, even in busy lobbies.
🏷️Nameplate CullingHides name tags beyond a configurable distance. Server-forced labels are never hidden.
🧱Block Entity CullingSkips chests, furnaces, signs, banners, and item frames beyond the configured range.
✨Particle OptimizationCount cap + three-zone density LOD (full / ~50 % / none) based on distance from player.
🖼️Painting Back-Face CullingInstantly skips paintings when the camera is behind them — they are never visible from the back.
🌙Background FPS LimiterCaps frame rate when the window loses focus, is minimised, or on any loading/menu screen (reduces GPU spinning during startup).
🌍Singleplayer BoostMore aggressive adaptive culling in singleplayer — frees CPU for chunk generation threads so exploration stays smooth.
⚡World Join OptimizerCulling distances ramp up from 35 % on join and return to 100 % over ~10 seconds — eliminates the initial FPS spike.
🎮GUI & HUD OptimizerDirty-flag hotbar caching (including CustomModelData); HUD throttling with immediate response to actual stat changes. Caches auto-clear on resource-pack reload to prevent stale item textures.

✦ Performance Profiles

One setting, four presets — changing the profile rewrites all other settings automatically.

ProfileEntity Dist.BE Dist.LOD thresholdNameplateParticle (mid/max)BG FPS (unfoc/min/menu)
Quality128 bOff128 bOffOff30/10/120
Balanced (default)64 b64 b96 b32 b32/64 b60/30/120
Performance48 b48 b64 b24 b16/32 b10/3/120
Ultra Performance32 b32 b40 b16 b8/16 b5/2/60

Set "profile": null in the config to use fully custom values.


✦ Compatibility

FPSFlow detects installed mods at startup and automatically disables overlapping features.

ModStatus
🟢 SodiumFully compatible — FPSFlow adds entity/GUI optimizations on top
🟢 LithiumNo overlap — both run independently
🟢 FerriteCoreNo overlap — both run independently
🟢 ModernFixNo overlap — both run independently
🟢 ModMenuOptional — enables in-game config screen
⚡ EntityCulling (tr7zw)FPSFlow's built-in culling disables automatically — recommended companion for superior occlusion accuracy
⚡ ImmediatelyFastFPSFlow's HUD caching defers automatically

Recommended stack: Sodium + Lithium + FerriteCore + ImmediatelyFast + EntityCulling + ModMenu + FPSFlow


✦ Installation

  1. Install Fabric Loader for Minecraft 1.21.11
  2. Download and install Fabric API
  3. Drop the FPSFlow .jar into your mods/ folder
  4. (Optional) Install ModMenu for the in-game settings screen
  5. Launch — the config is written automatically on first run

✦ FAQ

Does FPSFlow conflict with Sodium, Lithium, or FerriteCore? No. FPSFlow is designed to complement these mods — install all of them together.

Can entities "pop in" with occlusion culling? Rarely. The cache refreshes every 10 ticks (configurable). FPSFlow samples the entity's eye position for the raycast — naturally above the geometric centre, which avoids false-positives for small entities like floating heads and armor stands.

Does this work on servers? FPSFlow is purely client-side — works with any server, no server installation required. Servers that send a custom resource pack are fully supported: FPSFlow detects the pack reload and pauses render throttles for ~3 seconds so item-frame maps and hotbar items always show the correct textures after the pack loads.


✦ Partner

NexoMaker — Use code MCAFFE13 for 15% discount

🎨 Create Custom Minecraft Content with NexoMaker

Create custom items, mobs, blocks, recipes, and more — without coding.
Compatible with Nexo, ItemsAdder, and other modern custom-content systems.

💜 Use code MCAFFE13 to get 15% off! 👉 Get started with NexoMaker

⚠️ ItemsAdder or Nexo required for exported content.


✦ Source & License

GitHub — McAffe13/FPSFlow · Licensed under the Mozilla Public License 2.0

Последние версии

Все версии →
release

FPSFlow 1.8.3

1.8.3
29 июл. 2026 г.6,1 тыс.Minecraft: 1.21.11fabric
Скачать
Что нового
## [1.8.3] ### Fixed - **ModMenu settings screen now shows the full FPSFlow configuration again in modern builds** — The modern compatibility screen now exposes the same settings layout as the 1.21.11 build instead of opening an empty or placeholder page. ### Changed - **Version bumped to 1.8.4** — Gradle property `mod_version` updated from `1.8.3` to `1.8.4`. ## [1.8.3] ### Fixed - **Particle optimization is no longer enabled by default in the Balanced profile** — The default profile now keeps particle limits off unless you enable them manually, so visible effects like fishing particles are not filtered out on a fresh install. ### Changed - **Version bumped to 1.8.3** — Gradle property `mod_version` updated from `1.8.2` to `1.8.3`.
release

FPSFlow 1.8.3

1.8.3
29 июл. 2026 г.7,1 тыс.Minecraft: 26.1, 26.1.1, 26.1.2, 26.2fabric
Скачать
Что нового
## [1.8.3] ### Fixed - **ModMenu settings screen now shows the full FPSFlow configuration again in modern builds** — The modern compatibility screen now exposes the same settings layout as the 1.21.11 build instead of opening an empty or placeholder page. ### Changed - **Version bumped to 1.8.4** — Gradle property `mod_version` updated from `1.8.3` to `1.8.4`. ## [1.8.3] ### Fixed - **Particle optimization is no longer enabled by default in the Balanced profile** — The default profile now keeps particle limits off unless you enable them manually, so visible effects like fishing particles are not filtered out on a fresh install. ### Changed - **Version bumped to 1.8.3** — Gradle property `mod_version` updated from `1.8.2` to `1.8.3`.
release

FPSFlow 1.8.2

1.8.2
26 июл. 2026 г.280Minecraft: 1.21.11fabric
Скачать
Что нового
## [1.8.2] ### Changed - **Single modern build now supports both Minecraft 26.1.2 and 26.2** — The modern build target now uses a flexible dependency range (`>=26.1` for Minecraft, `>=0.155.1` for Fabric API) in `fabric.mod.json`. A single `gradle buildModern` produces one JAR that works on both Minecraft 26.1.2 and 26.2 without separate artifacts. - **Build system improvements** — Added `minecraft_dep` and `fabric_dep` properties to `build.gradle.kts`, keeping the compile-time dependency pinned to a specific version while declaring a wider runtime compatibility range in the mod metadata. ### Fixed - **Mod rejected on Minecraft 26.1.2** — The previous hard dependency on `Minecraft >=26.2` prevented the mod from loading on 26.1.2. The runtime dependency is now `>=26.1`, accepting all 26.x releases.
release

FPSFlow 1.8.2

1.8.2
26 июл. 2026 г.352Minecraft: 26.1, 26.1.1, 26.1.2, 26.2fabric
Скачать
Что нового
## [1.8.2] ### Changed - **Single modern build now supports both Minecraft 26.1.2 and 26.2** — The modern build target now uses a flexible dependency range (`>=26.1` for Minecraft, `>=0.155.1` for Fabric API) in `fabric.mod.json`. A single `gradle buildModern` produces one JAR that works on both Minecraft 26.1.2 and 26.2 without separate artifacts. - **Build system improvements** — Added `minecraft_dep` and `fabric_dep` properties to `build.gradle.kts`, keeping the compile-time dependency pinned to a specific version while declaring a wider runtime compatibility range in the mod metadata. ### Fixed - **Mod rejected on Minecraft 26.1.2** — The previous hard dependency on `Minecraft >=26.2` prevented the mod from loading on 26.1.2. The runtime dependency is now `>=26.1`, accepting all 26.x releases.
release

FPSFlow 1.8.1

1.8.1
24 июл. 2026 г.182Minecraft: 1.21.11fabric
Скачать
Что нового
## [1.8.1] ### Added - **Lithium-inspired performance optimizations** — FPSFlow 1.8.1 integrates several key optimization techniques adapted from CaffeineMC's excellent [Lithium](https://github.com/CaffeineMC/lithium) mod, reimplemented from scratch to respect Lithium's license and ensure full compatibility with the FPSFlow codebase: - **Compact Sine Table** (`CompactSineTable.java`) — A memory-efficient sine LUT that reduces table size from 256 KB to 64 KB using trigonometric identities (sin(-x) = -sin(x), sin(x) = sin(π/2 - x)). Reduces CPU cache pressure during rotation-heavy rendering while maintaining bit-for-bit compatibility with Minecraft's MathHelper. - **Direction Constants Caching** (`DirectionValuesMixin.java`, `FastDirection.java`) — Prevents repeated defensive array copies from `Direction.values()` in hot code paths by providing cached references. Every call to `Enum.values()` in Java creates a new array allocation; this optimization eliminates that overhead in frequently-called redstone, block update, and entity collision code. - **Fast BlockPos Utilities** (`FastBlockPos.java`) — Thread-local mutable BlockPos for iteration contexts plus efficient long-packing for hash-based collections, reducing GC pressure in chunk scanning and neighbor-iteration hot loops. - **Collection Helper** (`FastCollectionHelper.java`) — Pre-sized HashMap/HashSet factories with optimal initial capacities, identity-based sets for entity classification, and utility methods that avoid the common allocation pitfalls found in vanilla's collection usage. - **Full Lithium attribution** — All adapted code paths include Javadoc `@see` references and `Inspired by` comments linking to the upstream Lithium repository. ### Changed - **Version bumped to 1.8.1** — Gradle property `mod_version` updated from `1.8` to `1.8.1`. - **OptimizationManager module list extended** — New lightweight utility modules are registered on startup (no tick overhead, no Minecraft class dependencies). ### Fixed - None.
release

FPSFlow 1.8.1

1.8.1
24 июл. 2026 г.253Minecraft: 26.1, 26.1.1, 26.1.2, 26.2fabric
Скачать
Что нового
## [1.8.1] ### Added - **Lithium-inspired performance optimizations** — FPSFlow 1.8.1 integrates several key optimization techniques adapted from CaffeineMC's excellent [Lithium](https://github.com/CaffeineMC/lithium) mod, reimplemented from scratch to respect Lithium's license and ensure full compatibility with the FPSFlow codebase: - **Compact Sine Table** (`CompactSineTable.java`) — A memory-efficient sine LUT that reduces table size from 256 KB to 64 KB using trigonometric identities (sin(-x) = -sin(x), sin(x) = sin(π/2 - x)). Reduces CPU cache pressure during rotation-heavy rendering while maintaining bit-for-bit compatibility with Minecraft's MathHelper. - **Direction Constants Caching** (`DirectionValuesMixin.java`, `FastDirection.java`) — Prevents repeated defensive array copies from `Direction.values()` in hot code paths by providing cached references. Every call to `Enum.values()` in Java creates a new array allocation; this optimization eliminates that overhead in frequently-called redstone, block update, and entity collision code. - **Fast BlockPos Utilities** (`FastBlockPos.java`) — Thread-local mutable BlockPos for iteration contexts plus efficient long-packing for hash-based collections, reducing GC pressure in chunk scanning and neighbor-iteration hot loops. - **Collection Helper** (`FastCollectionHelper.java`) — Pre-sized HashMap/HashSet factories with optimal initial capacities, identity-based sets for entity classification, and utility methods that avoid the common allocation pitfalls found in vanilla's collection usage. - **Full Lithium attribution** — All adapted code paths include Javadoc `@see` references and `Inspired by` comments linking to the upstream Lithium repository. ### Changed - **Version bumped to 1.8.1** — Gradle property `mod_version` updated from `1.8` to `1.8.1`. - **OptimizationManager module list extended** — New lightweight utility modules are registered on startup (no tick overhead, no Minecraft class dependencies). ### Fixed - None.
release

FPSFlow 1.8

1.8
23 июл. 2026 г.64Minecraft: 26.1, 26.1.1, 26.1.2, 26.2fabric
Скачать
Что нового
## [1.8.0] ### Changed - **Configurable Java target** — The Java version is no longer hardcoded in `build.gradle.kts`. It is now read from the `java_version` property in `gradle.properties` (default: `21`). Set `java_version=25` to build with Java 25. The Mixin compatibility level (`JAVA_21` / `JAVA_25`) and the `remapJar` classifier (`mc1.21.11-java21` / `mc1.21.11-java25`) are derived automatically from this value — nothing is hardcoded. - **Removed broken Java 21 / Java 25 multi-target build** — The previous `targetJavaVersion` switch that attempted to produce separate artifacts for different Minecraft generations never functioned correctly. The build now uses a single, configurable Java version. - **Removed Java 25 properties from `gradle.properties`** — The `minecraft_version_java25`, `yarn_mappings_java25`, `loader_version_java25`, `fabric_version_java25`, and `modmenu_version_java25` properties have been removed. All builds now use the single set of Fabric properties. - **Simplified `build.gradle.kts`** — Dead code removed, all comments translated to English, ModMenu removed from compile-time dependencies. The integration class now uses a matching method signature that ModMenu calls via reflection, eliminating the compile-time dependency that caused build failures when ModMenu artifacts were unavailable. - **Fixed TerraformersMC Maven repository URL** — Changed from `https://terraformersmc.com` to `https://maven.terraformersmc.com` for correct dependency resolution. - **Improved `fabric.mod.json`** — Description updated to match the Modrinth page; `fabricloader` and `fabric-api` dependency minimums tightened to `>=0.19.3` and `>=0.141.4` respectively. - **Updated `how_to_build.md`** — Rewritten for the single configurable Java build path; references to the removed `buildJava21` / `buildJava25` tasks eliminated. - **Updated `settings.gradle.kts`** — Removed version lock for fabric-loom and simplified plugin repository configuration. - **Fabric API version corrected** — Changed from `0.19.3+26.2` (invalid) to `0.141.4+1.21.11` (correct for MC 1.21.11). - **Build verified with Java 25** — Successfully compiled and remapped `fpsflow-1.8.0-mc1.21.11-java25.jar`. - **Version migration guide** — Added `VERSION_MIGRATION.md` documenting short-term (Yarn) and long-term (Mojang mappings) strategies. ### Fixed - **ModMenu integration was broken** — `FPSFlowModMenuIntegration.createConfigScreen()` returned `null`, causing a `NullPointerException` when a player clicked the Config button in ModMenu. The class now properly implements `ModMenuFactory` and returns a `FPSFlowConfigScreen` instance. - **Duplicate translation keys in `en_us.json` and `de_de.json`** — The `entity_lod` and `item_frame` key blocks were duplicated, with the first occurrence silently overwritten by the second. All duplicate blocks have been merged into single, complete entries. - **Missing translation keys** — Added `entity_culling.painting_backface_culling`, `entity_culling.painting_backface_culling.tooltip`, and `nameplate_culling.enabled.tooltip` to both language files. These keys were referenced by the config screen but had no translations, causing fallback to the raw key string. - **Dead variable in `settings.gradle.kts`** — The `mcVersion` variable was read from Gradle properties but never used in the `fabric-loom` resolution strategy. Removed. ### Removed - **`i18n_pending_keys.txt` and `README_UI_KEYS.txt`** — These development artifacts tracked missing translation keys. All keys are now present in both language files, so these files are no longer needed. - **`gradlew` and `gradle/wrapper/`** — The Gradle wrapper is unnecessary when Gradle is installed system-wide. Users can build directly with `gradle build`. - **Yarn OFFICIAL mapping mode** — Temporarily removed; Loom 1.17.3 requires explicit Yarn mappings.
release

FPSFlow 1.8

1.8
23 июл. 2026 г.90Minecraft: 1.21.11fabric
Скачать
Что нового
## [1.8.0] ### Changed - **Configurable Java target** — The Java version is no longer hardcoded in `build.gradle.kts`. It is now read from the `java_version` property in `gradle.properties` (default: `21`). Set `java_version=25` to build with Java 25. The Mixin compatibility level (`JAVA_21` / `JAVA_25`) and the `remapJar` classifier (`mc1.21.11-java21` / `mc1.21.11-java25`) are derived automatically from this value — nothing is hardcoded. - **Removed broken Java 21 / Java 25 multi-target build** — The previous `targetJavaVersion` switch that attempted to produce separate artifacts for different Minecraft generations never functioned correctly. The build now uses a single, configurable Java version. - **Removed Java 25 properties from `gradle.properties`** — The `minecraft_version_java25`, `yarn_mappings_java25`, `loader_version_java25`, `fabric_version_java25`, and `modmenu_version_java25` properties have been removed. All builds now use the single set of Fabric properties. - **Simplified `build.gradle.kts`** — Dead code removed, all comments translated to English, ModMenu removed from compile-time dependencies. The integration class now uses a matching method signature that ModMenu calls via reflection, eliminating the compile-time dependency that caused build failures when ModMenu artifacts were unavailable. - **Fixed TerraformersMC Maven repository URL** — Changed from `https://terraformersmc.com` to `https://maven.terraformersmc.com` for correct dependency resolution. - **Improved `fabric.mod.json`** — Description updated to match the Modrinth page; `fabricloader` and `fabric-api` dependency minimums tightened to `>=0.19.3` and `>=0.141.4` respectively. - **Updated `how_to_build.md`** — Rewritten for the single configurable Java build path; references to the removed `buildJava21` / `buildJava25` tasks eliminated. - **Updated `settings.gradle.kts`** — Removed version lock for fabric-loom and simplified plugin repository configuration. - **Fabric API version corrected** — Changed from `0.19.3+26.2` (invalid) to `0.141.4+1.21.11` (correct for MC 1.21.11). - **Build verified with Java 25** — Successfully compiled and remapped `fpsflow-1.8.0-mc1.21.11-java25.jar`. - **Version migration guide** — Added `VERSION_MIGRATION.md` documenting short-term (Yarn) and long-term (Mojang mappings) strategies. ### Fixed - **ModMenu integration was broken** — `FPSFlowModMenuIntegration.createConfigScreen()` returned `null`, causing a `NullPointerException` when a player clicked the Config button in ModMenu. The class now properly implements `ModMenuFactory` and returns a `FPSFlowConfigScreen` instance. - **Duplicate translation keys in `en_us.json` and `de_de.json`** — The `entity_lod` and `item_frame` key blocks were duplicated, with the first occurrence silently overwritten by the second. All duplicate blocks have been merged into single, complete entries. - **Missing translation keys** — Added `entity_culling.painting_backface_culling`, `entity_culling.painting_backface_culling.tooltip`, and `nameplate_culling.enabled.tooltip` to both language files. These keys were referenced by the config screen but had no translations, causing fallback to the raw key string. - **Dead variable in `settings.gradle.kts`** — The `mcVersion` variable was read from Gradle properties but never used in the `fabric-loom` resolution strategy. Removed. ### Removed - **`i18n_pending_keys.txt` and `README_UI_KEYS.txt`** — These development artifacts tracked missing translation keys. All keys are now present in both language files, so these files are no longer needed. - **`gradlew` and `gradle/wrapper/`** — The Gradle wrapper is unnecessary when Gradle is installed system-wide. Users can build directly with `gradle build`. - **Yarn OFFICIAL mapping mode** — Temporarily removed; Loom 1.17.3 requires explicit Yarn mappings.
release

FPSFlow 1.7.14

1.7.14
24 июн. 2026 г.2 тыс.Minecraft: 1.21.11fabric
Скачать
Что нового
## [1.7.14] ### Fixed - Crash on launch on Minecraft 26.1.2 caused by lingering `net/minecraft/class_####` (intermediary) references in the release artifact mapping/remap pipeline. - Mixin loading is now fail-soft (`defaultRequire=0`) so missing/renamed targets from mapping drift no longer hard-crash the mod. - Updated mixin Java compatibility level to `JAVA_21` to match the project/toolchain.
release

FPSFlow 1.7.13

1.7.13
23 июн. 2026 г.108Minecraft: 1.21.11fabric
Скачать
Что нового
## [1.7.13] ### Fixed - Crash on launch on Minecraft 26.1.2 caused by lingering `net/minecraft/class_####` (intermediary) references in the release artifact mapping/remap pipeline.