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

Blindspot

A Minecraft Fabric mod aiming to improve multiple small performance issues.

Автор: Cheter04101,3 тыс.1обновлён 24 окт. 2026 г.
Оптимизация

Описание

GitHub GitHub Release GitHub Issues License

A Minecraft Fabric mod aiming to fix small, overlooked client-side performance issues that larger optimization mods don't cover.

Requirements

  • Minecraft 26.1.x, 26.2 or 26.3
  • Fabric Loader >= 0.19.5

Fabric API is not required.

Features

  • Friends List Optimization (Minecraft 26.2 and newer): Caches the friends list instead of rebuilding it on every call.
  • Scoreboard Sidebar Optimization: Caches the sorted sidebar entries instead of scanning and sorting every score on every frame.
  • Tab List Optimization: Caches the tab list player order instead of re-sorting all players on every frame while the list is open.

The friends list optimization isn't part of the 26.1 version, because Minecraft 26.1 has no friends list.

Technical Details & Deep Dives

Friends List presence check overhead

Minecraft 26.2 and newer only.

Vanilla's PlayerSocialManager.getFriends() converts the whole friends list into a new list through a Stream on every call, even though the underlying data only changes when a new friend list arrives. While the friends list is enabled, PresenceHandler.tick() calls it once per rendered frame (it is called from Minecraft.runTick, not from the 20-per-second game tick). The cost per call is small, but it is repeated work that produces the same result each time.

Blindspot caches the result and only recomputes it when vanilla stores new friend data.

Scoreboard sidebar rebuilt every frame

To draw the sidebar, vanilla calls Scoreboard.listPlayerScores() on every frame. This walks through every score holder the scoreboard knows about, not just the ones on the displayed objective. It then filters out hidden entries, sorts all of them and keeps the top 15. With thousands of entries this scan and sort is paid on every single frame, even when no score has changed. In a test with about 5,000 score entries on the client, the sidebar took about 0.9–1.3 ms per frame in vanilla and about 0.06–0.08 ms with Blindspot.

Blindspot keeps the final filtered, sorted and limited list and hands it to vanilla's pipeline in place of the full score list. To know when that list is outdated, Blindspot adds version counters to the scoreboard that change whenever a score is created, changed or removed, or team membership changes. The list is only rebuilt by vanilla's own code when one of these counters changed or a different objective is displayed. Everything after that step still runs every frame exactly as in vanilla: team colors and prefixes, number formats, text widths. Font, language and resource pack changes therefore behave the same as without the mod.

Tab list re-sorted every frame

While the tab list is open, vanilla sorts all listed players on every frame. Each comparison looks up both players' teams on the scoreboard. The order only depends on the server-provided list order, spectator mode, team and player name, which rarely change.

Blindspot caches the sorted order and lets vanilla rebuild it only when a player is added to or removed from the list, a player's game mode or list order changes, or team membership changes. Ping updates, display names and skins don't affect the order and don't cause a rebuild. The rows themselves (names, ping, scores, hearts) are still drawn by vanilla every frame.

Verifying the caches

Start the game with the JVM argument -Dblindspot.verifyCaches=true to make Blindspot compute the vanilla result alongside every sidebar and tab list cache hit and compare them. The log then shows any mismatch and, every 1,000 checks, the hit rate. Every check runs the full vanilla computation in addition to the cache, so the game is slower than without Blindspot while it's enabled. It's only meant for testing and bug reports.

Compatibility

Blindspot doesn't change what is drawn, what is sent to or received from a server, or how the world is simulated. Its hooks into the sidebar, tab list, scoreboard and packet handling code only cache results vanilla would compute anyway, or note when those results change.

Tested together with Sodium 0.9.2 and Lithium 0.26.2 on Minecraft 26.3, in singleplayer and multiplayer. It hasn't been tested with every mod.

Mods that completely replace the vanilla sidebar or tab list code may conflict with it. Blindspot is set up so that such a conflict usually shows up as a crash at startup instead of silently wrong results in game. If you run into one, please open an issue on GitHub with your log.

Source & Contributing

Blindspot is open source under LGPL-3.0-only. The source code is on GitHub.

Found another small, overlooked performance issue like these? Feel free to open an issue or pull request there.

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

Все версии →
release

Blindspot 0.4.0+26.3

0.4.0+26.3
24 окт. 2026 г.184Minecraft: 26.3fabric
Скачать
Что нового
## Blindspot 0.4.0 ### New - **Boat status optimization:** Every tick, vanilla scans the fluids and block collision shapes around each boat to work out whether it is in water, under water, on land or in the air. This also happens for parked boats and boats moved by the server. Blindspot now reuses the last result while the boat's bounding box is exactly the same and none of the chunks around it changed. Blocks whose collision shape can change without a block change (pistons, shulker boxes, scaffolding and other blocks vanilla marks as having a dynamic shape) are never cached, so the result is always the same as in vanilla. - The cache verification mode (`-Dblindspot.verifyCaches=true`) now also covers the boat status cache. ### Changed - All Minecraft versions now use the same version naming: the Minecraft version is appended as build metadata, e.g. `0.4.0+26.3`, `0.4.0+26.2` and `0.4.0+26.1`. This now also applies to the latest Minecraft version. ### Compatibility - Tested together with Sodium 0.9.2 and Lithium 0.26.2 on Minecraft 26.3. - Fabric API is still not required. - Mods that completely replace the vanilla sidebar, tab list or boat code may conflict with Blindspot. In that case the game usually crashes at startup instead of showing wrong results. Please open an issue with your log if this happens.
release

Blindspot 0.4.0+26.2

0.4.0+26.2
24 окт. 2026 г.75Minecraft: 26.2fabric
Скачать
Что нового
## Blindspot 0.4.0 ### New - **Boat status optimization:** Every tick, vanilla scans the fluids and block collision shapes around each boat to work out whether it is in water, under water, on land or in the air. This also happens for parked boats and boats moved by the server. Blindspot now reuses the last result while the boat's bounding box is exactly the same and none of the chunks around it changed. Blocks whose collision shape can change without a block change (pistons, shulker boxes, scaffolding and other blocks vanilla marks as having a dynamic shape) are never cached, so the result is always the same as in vanilla. - The cache verification mode (`-Dblindspot.verifyCaches=true`) now also covers the boat status cache. ### Changed - All Minecraft versions now use the same version naming: the Minecraft version is appended as build metadata, e.g. `0.4.0+26.3`, `0.4.0+26.2` and `0.4.0+26.1`. This now also applies to the latest Minecraft version. ### Compatibility - Tested together with Sodium 0.9.2 and Lithium 0.26.2 on Minecraft 26.3. - Fabric API is still not required. - Mods that completely replace the vanilla sidebar, tab list or boat code may conflict with Blindspot. In that case the game usually crashes at startup instead of showing wrong results. Please open an issue with your log if this happens.
release

Blindspot 0.4.0+26.1

0.4.0+26.1
24 окт. 2026 г.31Minecraft: 26.1, 26.1.1, 26.1.2fabric
Скачать
Что нового
## Blindspot 0.4.0 ### New - **Boat status optimization:** Every tick, vanilla scans the fluids and block collision shapes around each boat to work out whether it is in water, under water, on land or in the air. This also happens for parked boats and boats moved by the server. Blindspot now reuses the last result while the boat's bounding box is exactly the same and none of the chunks around it changed. Blocks whose collision shape can change without a block change (pistons, shulker boxes, scaffolding and other blocks vanilla marks as having a dynamic shape) are never cached, so the result is always the same as in vanilla. - The cache verification mode (`-Dblindspot.verifyCaches=true`) now also covers the boat status cache. ### Changed - All Minecraft versions now use the same version naming: the Minecraft version is appended as build metadata, e.g. `0.4.0+26.3`, `0.4.0+26.2` and `0.4.0+26.1`. This now also applies to the latest Minecraft version. ### Compatibility - Tested together with Sodium 0.9.2 and Lithium 0.26.2 on Minecraft 26.3. - Fabric API is still not required. - Mods that completely replace the vanilla sidebar, tab list or boat code may conflict with Blindspot. In that case the game usually crashes at startup instead of showing wrong results. Please open an issue with your log if this happens.
release

Blindspot 0.3.0+26.1

0.3.0+26.1
7 окт. 2026 г.64Minecraft: 26.1, 26.1.1, 26.1.2fabric
Скачать
Что нового
## Blindspot 0.3.0 for Minecraft 26.1 First release of Blindspot for Minecraft 26.1. It works on 26.1, 26.1.1 and 26.1.2 and shares its mod version with the 26.2 and 26.3 releases; the Minecraft version is appended as build metadata (`0.3.0+26.1`). ### Features - **Scoreboard sidebar optimization:** The sorted sidebar entries are cached instead of scanning and sorting every score on every frame. With large scoreboards (about 5,000 entries in testing) the sidebar went from about 0.9–1.3 ms to about 0.06–0.08 ms per frame. - **Tab list optimization:** The player order in the tab list is cached instead of re-sorting all players on every frame while the list is open. It is only rebuilt when players join or leave the list, game mode or list order changes, or team membership changes. - **Cache verification mode:** Start the game with `-Dblindspot.verifyCaches=true` to compare every cache hit against the vanilla result and log any mismatches. This is only meant for testing and bug reports, because it makes the game slower. The friends list optimization from the 26.2 and 26.3 releases is not included, because Minecraft 26.1 has no friends list. ### Requirements - Minecraft 26.1, 26.1.1 or 26.1.2 - Fabric Loader 0.19.5 or newer - Fabric API is not required. ### Compatibility - Mods that completely replace the vanilla sidebar or tab list code may conflict with it. In that case the game usually crashes at startup instead of showing wrong results. Please open an issue with your log if this happens.
release

Blindspot 0.3.0+26.2

0.3.0+26.2
7 окт. 2026 г.208Minecraft: 26.2fabric
Скачать
Что нового
## Blindspot 0.3.0 for Minecraft 26.2 Brings Minecraft 26.2 up to the same feature set as the 26.3 release. From now on both Minecraft versions share one mod version; the Minecraft version is appended as build metadata (e.g. `0.3.0+26.2`). ### New - **Scoreboard sidebar optimization:** The sorted sidebar entries are now cached instead of scanning and sorting every score on every frame. With large scoreboards (about 5,000 entries in testing) the sidebar went from about 0.9–1.3 ms to about 0.06–0.08 ms per frame. - **Tab list optimization:** The player order in the tab list is now cached instead of re-sorting all players on every frame while the list is open. It is only rebuilt when players join or leave the list, game mode or list order changes, or team membership changes. - **Cache verification mode:** Start the game with `-Dblindspot.verifyCaches=true` to compare every cache hit against the vanilla result and log any mismatches. This is only meant for testing and bug reports, because it makes the game slower. ### Changed - **Fabric API is no longer required.** Blindspot now only needs Fabric Loader. If you still have Fabric API installed, you can keep it. - Requires Fabric Loader 0.19.5 or newer (previously 0.19.3). - The friends list cache now works on exactly the list vanilla read, so it can't pick up a mismatched result while the friends list is being updated in the background. ### Compatibility - Mods that completely replace the vanilla sidebar or tab list code may conflict with it. In that case the game usually crashes at startup instead of showing wrong results. Please open an issue with your log if this happens.
release

Blindspot 0.3.0

0.3.0
7 окт. 2026 г.472Minecraft: 26.3fabric
Скачать
Что нового
## Blindspot 0.3.0 for Minecraft 26.3 ### New - **Scoreboard sidebar optimization:** The sorted sidebar entries are now cached instead of scanning and sorting every score on every frame. With large scoreboards (about 5,000 entries in testing) the sidebar went from about 0.9–1.3 ms to about 0.06–0.08 ms per frame. - **Tab list optimization:** The player order in the tab list is now cached instead of re-sorting all players on every frame while the list is open. It is only rebuilt when players join or leave the list, game mode or list order changes, or team membership changes. - **Cache verification mode:** Start the game with `-Dblindspot.verifyCaches=true` to compare every cache hit against the vanilla result and log any mismatches. This is only meant for testing and bug reports, because it makes the game slower. ### Changed - **Fabric API is no longer required.** Blindspot now only needs Fabric Loader. If you still have Fabric API installed, you can keep it. - The friends list cache now works on exactly the list vanilla read, so it can't pick up a mismatched result while the friends list is being updated in the background. ### Compatibility - Tested together with Sodium 0.9.2 and Lithium 0.26.2 in singleplayer and multiplayer. - Mods that completely replace the vanilla sidebar or tab list code may conflict with it. In that case the game usually crashes at startup instead of showing wrong results. Please open an issue with your log if this happens.
release

Blindspot 0.2.0

0.2.0
21 сент. 2026 г.187Minecraft: 26.3fabric
Скачать
Что нового
- Updated to Minecraft 26.3 - Fabric Loader 0.19.5, Fabric Loom 1.18.2, Gradle 9.7.1 - Fixed authlib package move for FriendDto
release

Blindspot 0.1.0

0.1.0
2 сент. 2026 г.49Minecraft: 26.2fabric
Скачать
Что нового
Added caching to the Friendlist to improve performance