Benchmarks
Every speed number BlueClient gives, measured on one PC: five runs of each client, taken in turns, the middle one shown with the slowest and fastest beside it. The slow results are here too. Measured on 7 and 8 October 2026.
- A draw with plain Sodium in an open field
- Flying over empty land, the clients built on Sodium finish close together: BlueClient 824, Fabric with Sodium alone 791, and the same 1% low. There, Sodium does most of the work.
- Ahead in a crowd
- A plaza with 160 mobs and armour stands: 444 frames a second against 353 for Sodium alone. With 1,000 armour stands: 71 against 54.
- Vulkan on 26.2
- On 26.2 and newer BlueClient draws with Vulkan when shaders are off: 963 frames a second against 806 with OpenGL, and the 1% low from 296 to 380.
- First to the title screen, since 1.14
- 10.9 seconds from Play to the title screen on 26.2, against 16.9 for Sodium alone and 17.3 for Fabric alone. Until 1.13.7 BlueClient was the slowest of the three, and those rows stay on this page.
- Lunar and Feather
- Not measured here. Both start the game from their own launcher with their own sign-in, which this test cannot do. The world and the steps under Check it yourself work in any client.
On players’ PCs
Every number above was measured on one laptop. These come from BlueClient players’ own games, the frame rate each launcher reports when a game closes (the launch ping, said on the privacy page, which anyone can switch off). The middle sitting of each group is shown; a group needs at least five sittings from three PCs to be shown at all.
Play to title screen
Seconds from the game starting to the title screen, loading screen gone. Lower is better. Measured on 8 October with the bench's limit for other programs at 30 % instead of 15 (a busy evening on the PC), the same for every client.
| Minecraft 26.2, BlueClient 1.14 | seconds to the title screen | runs kept |
|---|---|---|
| BlueClient | 10.89 10.77–10.98 | 5/5 |
| Fabric + Sodium | 16.93 16.68–18.18 | 5/5 |
| Fabric alone | 17.28 17.00–17.54 | 5/5 |
| Minecraft 1.21.11, BlueClient 1.14 | seconds to the title screen | runs kept |
|---|---|---|
| BlueClient | 14.24 13.79–20.05 | 5/5 |
| Fabric + Sodium | 22.55 22.00–28.54 | 5/5 |
| Fabric alone | 22.09 21.86–27.27 | 5/5 |
Most of this lead is one request. A game that is still loading has no window yet, so Windows treats it as background work, and on this laptop's processor that means the slower cores at a low speed. BlueClient's in-game mod asks Windows not to do that, and the loading that follows takes about a second where it took seven. Fabric alone, given the same request from outside, reached the title in 11.0 seconds instead of about 17: the request is the difference, and any client could make it. The rest is the Mojang screen's goodbye, 0.8 seconds where the game takes 2. The other clients here were started the same way as BlueClient, not from their own launchers, which may or may not make the same request; that is not measured here.
Before 1.14: the slowest of the three
Measured on 7 October with BlueClient 1.13.7. These rows stay here.
| Minecraft 26.2, BlueClient 1.13.7 | seconds to the title screen | runs kept |
|---|---|---|
| BlueClient | 18.21 17.63–20.71 | 6 |
| Fabric + Sodium | 16.56 16.32–17.59 | 7 |
| Fabric alone | 16.77 16.45–17.21 | 11 |
| Minecraft 1.21.11, BlueClient 1.13.7 | seconds to the title screen | runs kept |
|---|---|---|
| BlueClient | 24.47 19.53–25.11 | 5/5 |
| Fabric + Sodium | 22.18 21.74–27.24 | 5/5 |
| Fabric alone | 21.58 20.82–27.67 | 5/5 |
The fixed lap
A flight over Minecraft's own terrain: spectator mode, a square 160 blocks a side at height 130, one lap every 64 seconds, new chunks coming into view the whole time. The world flies it by itself, the same in every client.
| Minecraft 26.2 | average fps | 1% low | slowest 1% under (ms) | longest frame (ms) | garbage collection (ms a second) | memory in use (MB) |
|---|---|---|---|---|---|---|
| BlueClient | 824 803–830 | 300 266–333 | 2.29 2.18–2.57 | 22.8 21.1–33.3 | 2.0 1.9–2.8 | 1265 1232–1368 |
| Fabric + Sodium | 791 772–802 | 297 293–325 | 2.28 2.19–2.35 | 25.2 22.6–30.5 | 2.6 2.4–3.4 | 1276 1269–1352 |
| Fabric alone | 464 452–467 | 117 115–124 | 4.89 4.73–5.09 | 51.1 28.0–90.6 | 5.0 4.9–5.0 | 1359 1344–1429 |
This is a draw between the clients built on Sodium: BlueClient is 4 % ahead of Fabric with Sodium alone, with the same 1% low.
| Minecraft 1.21.11 | average fps | 1% low | slowest 1% under (ms) | longest frame (ms) | garbage collection (ms a second) | memory in use (MB) |
|---|---|---|---|---|---|---|
| BlueClient | 814 798–870 | 293 265–326 | 2.39 2.20–2.69 | 21.2 20.4–33.2 | 2.2 2.0–4.3 | 1280 1219–1353 |
| Fabric + Sodium | 805 787–850 | 305 295–316 | 2.25 2.15–2.38 | 21.3 20.2–29.1 | 2.3 2.3–4.3 | 1233 1070–1312 |
| Fabric alone | Not measured. On all five runs the game's log did not name the graphics card it drew on, and the bench refuses a run it cannot place on the right card. | |||||
On 1.21.11 it is a draw again: 814 against 805, and Sodium alone has the better 1% low (305 against 293).
Crowds
A lit plaza with 100 armour stands in armour and 60 zombies, skeletons and villagers, the camera circling them. Then the same plaza with 1,000 armour stands.
| Hub, 160 entities | average fps | 1% low | slowest 1% under (ms) | garbage collection (ms a second) |
|---|---|---|---|---|
| BlueClient | 444 431–453 | 195 184–203 | 3.93 3.78–4.09 | 2.7 2.7–2.8 |
| BlueClient without its in-game mod | 433 425–441 | 195 178–205 | 4.06 3.80–4.35 | 2.7 2.5–2.9 |
| Fabric + Sodium | 353 349–357 | 164 149–166 | 4.67 4.59–4.78 | 2.9 2.7–3.3 |
| Hub, 1,000 armour stands | average fps | 1% low | slowest 1% under (ms) | garbage collection (ms a second) |
|---|---|---|---|---|
| BlueClient | 71 68–73 | 45 41–46 | 18.60 17.18–21.32 | 3.4 3.2–3.5 |
| BlueClient without its in-game mod | 63 62–68 | 38 36–43 | 21.58 19.33–23.99 | 3.4 3.3–3.6 |
| Fabric + Sodium | 54 52–55 | 34 33–36 | 25.51 24.85–25.66 | 3.8 3.3–3.9 |
Most of the lead over Sodium comes from the mods BlueClient adds around it. BlueClient's own in-game mod makes little difference with 160 entities (444 with it, 433 without) and more with 1,000 (71 against 63).
Vulkan against OpenGL
The fixed lap on 26.2, each client drawing with OpenGL and then with Vulkan, the newer way Minecraft can talk to the graphics card. BlueClient picks Vulkan by itself on 26.2 and newer when shaders are off; shaders still need OpenGL.
| Lap, 26.2 | average fps | 1% low | slowest 1% under (ms) | garbage collection (ms a second) |
|---|---|---|---|---|
| Fabric alone, OpenGL | 456 432–457 | 119 113–120 | 4.93 4.91–5.28 | 4.8 4.3–5.0 |
| Fabric alone, Vulkan | 597 547–608 | 167 151–173 | 3.60 3.44–4.40 | 8.6 7.5–9.0 |
| Fabric + Sodium, OpenGL | 798 782–801 | 300 289–314 | 2.34 2.24–2.37 | 2.5 2.4–3.3 |
| Fabric + Sodium, Vulkan | 975 957–985 | 389 359–415 | 1.76 1.73–1.97 | 2.5 2.4–3.2 |
| BlueClient, OpenGL | 806 787–841 | 296 262–311 | 2.21 2.20–2.65 | 2.4 2.0–2.9 |
| BlueClient, Vulkan | 963 937–979 | 380 336–431 | 1.79 1.71–2.10 | 2.2 1.7–3.2 |
What Iris costs with shaders off
Iris is what runs shader packs. BlueClient keeps it installed so shaders are one switch away, and it is not free even when they are off.
| Hub, shaders off | average fps | 1% low | slowest 1% under (ms) |
|---|---|---|---|
| BlueClient (Iris installed, shaders off) | 447 437–452 | 185 178–200 | 3.93 3.80–4.02 |
| BlueClient without Iris | 465 450–481 | 201 184–205 | 3.73 3.65–3.88 |
About 4 % of the average and 8 % of the 1% low in the plaza.
Faster ticks for mobs and particles
Twenty times a second the game moves every mob and particle, and the frames that carry that work are the slow ones. BlueBoost answers two of the game's collision questions from memory when nothing around them has changed — the same answers, checked bit for bit. The scene is a working farm: ten cows dying and ten more appearing every two seconds, 64 campfires smoking.
| Working farm | average fps | 1% low | slowest 1% under (ms) | longest frame (ms) | frame with a tick (ms) | frame without (ms) |
|---|---|---|---|---|---|---|
| Off, run 1 | 317 | 110 | 7.48 | 49.5 | 6.65 | 2.92 |
| Off, run 1 again | 308 | 95 | 8.34 | 42.9 | 6.94 | 2.99 |
| On, run 1 | 295 | 129 | 6.34 | 16.5 | 5.27 | 3.25 |
| Off, run 2 | 303 | 116 | 7.10 | 26.3 | 6.29 | 3.09 |
| On, run 2 | 231 | 107 | 7.81 | 19.6 | 6.80 | 4.09 |
| Off, run 3 | 217 | 85 | 9.40 | 39.0 | 8.09 | 4.26 |
| On, run 3 | 345 | 155 | 5.28 | 16.4 | 4.75 | 2.79 |
| Off, median | 306 | 102 | 7.91 | 41.0 | 6.80 | 3.04 |
| On, median | 295 | 129 | 6.34 | 16.5 | 5.27 | 3.25 |
With it the 1% low went from 102 to 129 and the longest frame from 41 to 17 ms; the average did not move beyond the noise. This one was measured while another copy of Minecraft was open on the PC, so it is noisier than the other tables: run by run the numbers wander, and the medians are the result.
Frame generation on a slow graphics chip
When the graphics chip is the limit and a lower resolution is not enough, BlueBoost can show one extra picture between every two the game draws, made from the two around it. The hotbar and text are always the game's own. It never turns on with a fast card.
| Farm, 1080p, turning | frames the game draws a second | frames shown a second |
|---|---|---|
| FPS Boost off | 21.0 | 21.0 |
| FPS Boost Auto, lower resolution | 36.7 | 36.7 |
| FPS Boost Auto, lower resolution + frame generation | 35.0 | 70.1 |
Measured on 26.2's farm at 1080p with the camera turning, the RTX held back by a test load to the speed of a weak laptop chip — not on a real built-in chip, which we have not been able to test yet. The extra pictures add about 14 ms of delay (half of one real frame), and the in-game FPS counter keeps showing the frames the game draws.
How we measure
The PC
A laptop: Intel Core i5-14500HX, NVIDIA GeForce RTX 5050 Laptop GPU (driver 32.0.16.1742), 24 GB of memory, Windows 11, plugged in. Its built-in Intel graphics is not used, and a run that ends up on it is thrown away.
The game
Minecraft 26.2 and 1.21.11 on Fabric Loader 0.19.5, in a 1920 × 1080 window: render distance 16, simulation distance 12, Fancy, V-Sync off, no frame limit. Java is the one Mojang ships for that Minecraft (25 for 26.2, 21 for 1.21.11) with 8 GB of memory at most and 2 to start.
The same start for everyone
Every client is the same game started with the same command line, the one BlueClient's launcher builds. Only the mods folder changes.
Five runs, taken in turns
Every client runs once, then every client again, five times over, so a laptop warming up through the hour slows them all alike. Each table shows the middle run of five; the small numbers beside it are the slowest and the fastest. When those ranges overlap, the difference is not a result.
Every frame timed
A tiny test mod notes the moment every frame starts. The first 15 seconds in the world are loading and left out; the next 60 are the result. Average fps is frames divided by seconds. 1% low takes the slowest 1 % of frames, averages their length and turns it back into frames a second: what a stutter feels like. Slowest 1 % under: 99 frames in 100 were quicker than this. Garbage collection is how long Java paused the game each second to free memory.
A quiet PC, or no result
Before each run the test waits until no other Minecraft or build is running and the processor is mostly idle. During the run it watches every other program: if they used more than 15 % of the processor between them, or another Java program used 2 %, the run is thrown away and run again, twice at most. The tables say how many runs were kept.
Play to title
Seconds from Java starting to the title screen with the loading screen gone. The launcher's own work before that is not in it (BlueClient's is about 0.2 seconds). Never the first start after the PC is switched on: that one takes about twice as long for every client, because Windows has nothing in memory yet.
The clients
BlueClient: what its launcher installs — its in-game mod and BlueBoost, with Sodium, Lithium, FerriteCore, Krypton, Iris (shaders off), Entity Culling, LambDynamicLights, ImmediatelyFast, More Culling, BadOptimizations, No Chat Reports, Cloth Config and Fabric API. Fabric + Sodium: Fabric API and Sodium only, the base most performance clients are built on. Fabric alone: Fabric API only, the game's own renderer.
Dynamic FPS is left out of every test, because it only acts when the game is in the background, and so is McPvP.com Tier Tagger, which a new BlueClient profile also gets and which only shows PvP tiers beside names.
The lap, crowd, Vulkan and Iris tables were measured with BlueClient's mods as installed on 6 October 2026 (in-game mod 1.57.2, BlueBoost 0.1.0); the tick, frame generation and Play to title tables with BlueBoost 0.2.0 and the in-game mod 1.57.3.
Check it yourself
The lap is a normal Minecraft world. It works in any client, ours or anyone else's.
With any client, by hand
- Download the lap world for Minecraft 26.2 or 1.21.11 (33 MB each).
- Unzip it into that client's
savesfolder for the same Minecraft. - Set the window to 1920 × 1080, shaders off, render distance 16, simulation distance 12, V-Sync off, no frame limit.
- Open the world. It puts you in spectator mode and flies the lap by itself.
- From 15 seconds in, record 60 seconds with CapFrameX or PresentMon and note the average and the 1% low.
- Do it five times, taking turns with the client you compare it to, and take the middle result.
The zip also holds the plaza, the crowded plaza and the farm: its read-me says how to switch the world to each.
With our test, exactly
The test is a few scripts in BlueClient's source, in tools/bench. These are the commands behind the tables on this page:
node tools/bench/build-probe.js --mc=26.2
electron tools/bench/install.js
node tools/bench/make-worlds.js
node tools/bench-fps.js --runs=5
node tools/bench-fps.js --runs=5 --mc=1.21.11
node tools/bench/bench.js blueclient no-companion sodium-only --world=hub --runs=5
node tools/bench/bench.js blueclient no-companion sodium-only --world=hub1000 --runs=5
node tools/bench/bench.js vanilla vanilla+vk sodium-only sodium-only+vk blueclient blueclient+vk --world=route --runs=5
node tools/bench/bench.js blueclient no-iris --world=hub --runs=5
node tools/bench/bench.js blueclient sodium-only vanilla --title --runs=5
node tools/bench/page-tables.js
The last one writes the tables on this page from the results.