Repository navigation
Whole modpack benchmark
Minecraft 1.20.1 / Forge: this page documents that build and its measurements. For the separate 170-control Minecraft 1.21.1 port, see Minecraft 1.21.1 NeoForge.
5.6× faster world generation. 4.8× faster spawn preparation. Previously measured: +10% average FPS with 64 animated mobs and +29% 1% lows in a GPU-bound scene.
These gains are ON TOP of the major performance mods already running in the test pack. Both sides of the comparison keep ModernFix, FerriteCore, Radium and C2ME; the client also keeps Embeddium, ImmediatelyFast and EntityCulling, along with Oculus, Distant Horizons, Complementary shaders and Fresh Animations. The comparison adds or removes Bons and Furious from that existing setup. The figures below separate the latest 1.0.26 benchmark from the earlier clean FPS test.
Four matched runs per arm, ABBA-ABBA order, same PC and seed; the reference pack had 471 server / 510 client mod JARs at the snapshot. C2ME was enabled on both sides, with reduceLockRadius=false throughout this test.
| Workload | With Bons and Furious 1.0.26 | Same stack without Bons | Result |
|---|---|---|---|
| Dedicated server, 512 new chunks | 102 s | 567 s | 5.6× throughput |
| First 4 chunks of a new world | 23.5 s | 238 s | 90% less time |
| New singleplayer world, spawn preparation | 58 s | 277 s | 4.8× faster |
| Game launch to standing in a new world | 242 s | 482 s | 50% less time |
| CPU time per generated chunk | 0.56 s | 2.91 s | 81% less CPU |
| Memory allocated per generated chunk | 308 MB | 2,460 MB | 87% less allocation |
| Distant Horizons LOD records, same 4-minute session | 8,259 | 1,960 | 4.2× as many records built |
Client start-up before loading a world was 128 vs 136 s (6% faster). Server start-up was unchanged; live heap after server start-up was 70 MB higher (2.30 vs 2.23 GB). Allocation saved while generating is separate from memory retained. These are whole-modpack results for this PC, pack and seed, not promises for every setup.
The same saved scenes were drawn with the client optimization stack above enabled in both arms, shaders and resource packs on, Distant Horizons generation off, four runs each. These are measured 1.0.21 results, retained as historical evidence; they are not a new 1.0.26 FPS measurement.
| Same-scene rendering workload | With Bons 1.0.21 | Same stack without Bons | Result |
|---|---|---|---|
| 64 animated mobs, average FPS | 72.6 | 66.1 | +10% |
| 64 animated mobs, 1% low FPS | 40 | 35 | +16% (from unrounded data) |
| GPU-bound overlook, 1% low FPS | 89 | 69 | +29% |
| GPU-bound overlook, average FPS | 172 | 171 | No significant change |
The 1.0.26 saved-world baseline froze its integrated server in all four runs, while the Bons runs kept 20 TPS. That is documented as a stability result, not used to inflate the FPS comparison. New-world sessions also draw more terrain with Bons, so their frame rates are not a like-for-like comparison.
The individual runs, baseline versions and method follow below.
| Mod | Tested version | Where |
|---|---|---|
| ModernFix | 5.27.77 | Client and dedicated server |
| FerriteCore | 6.0.1 | Client and dedicated server |
| Radium Re-Reforged | 0.14.3 | Client and dedicated server |
| C2ME (Forge port) | 0.2.0+alpha.12 | Client and dedicated server |
| Embeddium | 0.3.31+mc1.20.1 | Client |
| ImmediatelyFast | 1.5.5 Forge | Client |
| EntityCulling | 1.10.5 | Client |
The earlier FPS test also retained this client stack. Its dedicated-server generation arm had C2ME off, which is why the old 8.2× generation result and the current 5.6× result must not be compared as if only Bons changed. The newest benchmark uses C2ME on the server too. Other performance and compatibility mods remain part of each pack snapshot; these are the prominent baseline components, not an exhaustive mod list.
The 510 figure is the managed client snapshot count; the client rig's manifest records 508 base JARs before adding back Kismet Gigabyte and the on/absent Bons choice, plus the benchmark probe. The dedicated rig records 471 with Bons and 470 without. The absent arm uses a rig-only Kismet Gigabyte copy differing only in the dependency declaration required to launch without Bons; no code is changed. The same shaders, resource packs, settings and workload are used within each comparison.
Full historical 1.0.21 benchmark and FPS data
AMD Ryzen 9 5900X, 64 GB RAM, GeForce RTX 3080, Windows 10; Temurin 21.0.12.1, Forge 47.4.16. Client at 1920 × 1080, render distance 11, FPS cap removed.
| Run (512 chunks) | Switches on | Time |
|---|---|---|
| on (median of 4) | 127 of 127 | 101.8 s |
| srv11_nogivenback: the 8 switches that turn other mods' disabled options back on, off | 119 of 127 | 100.8 s |
| srv10_noterrain: only the 3 vanilla terrain switches off | 124 of 127 | 543.2 s |
| absent (median of 4) | mod removed | 567.1 s |
| srv09_off: every switch off | 0 of 127 | 560.9 s |
Same answer as the first benchmark: the generation gain is the three terrain switches (terrain_density_memo,
terrain_final_density_reuse, terrain_surface_estimate_share); every switch off gives no gain; and the 1.0.22/1.0.25
"options given back" switches (Radium/ModernFix/DH/ImmediatelyFast with C2ME) make no difference to this pregen workload.
In the same-scene test both versions load one saved world (1,185 chunks, a 21,852-record Distant Horizons database made complete beforehand by a 10-minute settle session, DH distant generation off). In all four runs without Bons the integrated server stopped ticking 22-25 s after joining and never recovered before the run ended: ModernFix's watchdog logged "A single server tick has taken 40001, more than 40000 milliseconds", 0 ticks were recorded in the overlook and mob phases, and the game took 3-4 minutes to shut down. With Bons the server ran at 20 TPS throughout (600 ticks per 30 s phase, 13 s shutdown).
The watchdog's thread dump shows the server thread stuck in recursively nested chunk waits:
ServerChunkCache.getChunk → managedBlock → runs another queued task → which is another getChunk (submitted from a
non-server thread via ServerChunkCache$MainThreadExecutor) → managedBlock → ... many levels deep. That is the pattern
of chunk reads from worker threads being routed through the main thread; in this pack the most likely source is
Distant Horizons reading saved chunks while C2ME is installed, which is what 1.0.25's distanthorizons_c2me_direct_reads
("keeps Distant Horizons reading saved chunks itself") addresses. The switch is not proven to be the cause: no client
attribution run was made. Cheapest proof: one fixed-profile client run with Bons on and only that switch off.
The new-world sessions (fresh world) did not freeze in either version.
- Same scene (fixed profile): with Bons the overlook ran 119 vs 115 FPS (+3%, not significant) and the 64-mob scene 72 vs 67 FPS (+7%, not significant); 1% lows +45% and +55%, frames over 50 ms 0 vs 3. But the version without Bons was drawing on top of a frozen server, so this is not a clean rendering comparison; do not quote these as frame-rate gains. The first benchmark's clean same-scene result (1.0.21, no freeze): +10% average FPS with 64 mobs, unchanged when GPU-bound.
- New-world sessions: with Bons far more terrain and 4.2× the Distant Horizons LOD data are loaded and drawn (sprint 175 vs 259 FPS, overlook 152 vs 175, mob scene 61 vs 68). The two versions draw different scenes; never quote these.
- The integrated-server and start-up numbers above are unaffected by this and stand.
Biomes were identical in every compared section of every pair (552 fully generated chunks, 24,288 sections per pair). Block sections equal: with vs without 91.7% and 91.4%; same version without 91.8% and 91.6%; same version with 92.3% and 90.7% (the world-identity comparisons). The pack's own run-to-run variation grew from about 7% to 8-9% of sections with C2ME on; the with/without difference is inside it.
- Pack as of the morning of 2026-10-02: server 471 mods with C2ME, its own Temurin 21.0.12.1 (run.bat), G1 GC log, DH server threads 8, spark tickguard.2 at stock settings in both arms; client 510 mods with C2ME, the Complementary + Euphoria Patches + ACLight shader pack, Fresh Animations and the other active resource packs.
-
C2ME
threadedWorldGen.reduceLockRadiuswas false throughout. A later pack configuration change to true is not part of these measurements. - One PC, one pack, one seed; 4 runs per arm; the three attribution runs are single runs. The absent arm used the rig-only Kismet Gigabyte copy without its bons_and_furious dependency (no EncodedBurst error in any run).
- The session running the harness stayed idle between check-ins; background CPU from other programs was 0.55 vs 0.54 cores during the pregen windows (equal in both arms).
- Valid-run rules: exit 0, the expected start-up line ("Bons and Furious 1.0.26: 127 of 127" / 0 / 124 / 119 of 127, none without the jar), all pregen areas complete, no crash report.
Server (in run order):
| Run | Arm | Start-up (s) | First 4 chunks (s) | 512 chunks (s) | Chunks/s | CPU-s/chunk | MB/chunk | Live heap (MB) |
|---|---|---|---|---|---|---|---|---|
| srv01_on | on | 121.2 | 24.2 | 102.8 | 4.98 | 0.61 | 299 | 2,296 |
| srv02_absent | absent | 123.3 | 235.3 | 562.9 | 0.91 | 2.86 | 2456 | 2,238 |
| srv03_absent | absent | 123.2 | 241.3 | 569.9 | 0.90 | 2.91 | 2464 | 2,225 |
| srv04_on | on | 116.7 | 22.7 | 102.9 | 4.98 | 0.57 | 324 | 2,276 |
| srv05_on | on | 121.4 | 21.2 | 99.3 | 5.16 | 0.55 | 311 | 2,309 |
| srv06_absent | absent | 122.7 | 244.9 | 580.0 | 0.88 | 2.95 | 2481 | 2,207 |
| srv07_absent | absent | 123.3 | 233.3 | 564.4 | 0.91 | 2.91 | 2432 | 2,234 |
| srv08_on | on | 129.1 | 24.2 | 100.9 | 5.08 | 0.56 | 304 | 2,303 |
| srv09_off | off | 134.4 | 234.8 | 560.9 | 0.91 | 2.89 | 2437 | 2,274 |
| srv10_noterrain | noterrain | 120.9 | 231.8 | 543.2 | 0.94 | 2.60 | 2272 | 2,250 |
| srv11_nogivenback | nogivenback | 120.0 | 21.2 | 100.8 | 5.08 | 0.59 | 304 | 2,243 |
Client, new world as played:
| Run | Arm | Start-up (s) | Spawn area (s) | World start to in game (s) | Sprint chunks mean / fewest | Chunks saved | DH records |
|---|---|---|---|---|---|---|---|
| cli01_on | on | 126.5 | 57.9 | 114.8 | 412 / 261 | 1,163 | 7,978 |
| cli02_absent | absent | 137.0 | 266.3 | 335.0 | 310 / 67 | 905 | 1,953 |
| cli03_absent | absent | 135.7 | 282.4 | 350.7 | 313 / 65 | 917 | 1,940 |
| cli04_on | on | 129.5 | 58.0 | 113.7 | 411 / 260 | 1,160 | 8,539 |
| cli05_on | on | 127.4 | 57.7 | 113.0 | 408 / 255 | 1,177 | 7,918 |
| cli06_absent | absent | 139.2 | 271.4 | 338.9 | 315 / 69 | 919 | 2,001 |
| cli07_absent | absent | 135.4 | 286.8 | 355.9 | 311 / 64 | 916 | 1,966 |
| cli08_on | on | 128.8 | 58.1 | 114.3 | 409 / 258 | 1,184 | 9,226 |
Client, saved world (same scene; server ticks in the 30 s overlook phase, 600 = 20 TPS, 0 = frozen):
| Run | Arm | World start to in game (s) | First 30 s FPS | First 30 s TPS | Overlook FPS / 1% low | Mobs FPS / 1% low | Overlook server ticks |
|---|---|---|---|---|---|---|---|
| fix01_on | on | 54.0 | 66.7 | 20.1 | 120.3 / 53.5 | 72.7 / 41.9 | 600 |
| fix02_absent | absent | 67.1 | 53.0 | 14.2 | 114.6 / 37.7 | 68.4 / 28.6 | 0 |
| fix03_absent | absent | 68.5 | 54.4 | 16.4 | 115.2 / 35.2 | 69.6 / 29.3 | 0 |
| fix04_on | on | 54.8 | 64.0 | 20.2 | 109.6 / 39.8 | 70.7 / 41.5 | 600 |
| fix05_on | on | 54.0 | 65.8 | 20.1 | 118.9 / 54.7 | 67.6 / 37.6 | 601 |
| fix06_absent | absent | 68.2 | 55.5 | 15.4 | 116.0 / 35.2 | 65.7 / 19.5 | 0 |
| fix07_absent | absent | 68.3 | 55.2 | 12.6 | 115.3 / 37.3 | 62.8 / 25.1 | 0 |
| fix08_on | on | 54.1 | 66.8 | 20.2 | 119.3 / 51.4 | 74.3 / 42.2 | 601 |
The tables above retain the individual run values. Machine-readable summaries are in benchmarks.
Bons and Furious is licensed GPL-3.0-only with upstream notices retained. Target mod names identify compatibility targets and do not imply endorsement; their code, assets and licenses remain their authors' property. All measurements on this wiki are focused method, phase or reproduction measurements from the pack the mod was built for, taken on the historical build named in each entry; they are not whole-game FPS or TPS promises and are not additive.
Bons and Furious
Minecraft 1.20.1 / Forge 1.0.34
- Home
- Installation and configuration
- How the patches are applied
- All controls
- Measurements and caveats
- Whole-modpack benchmark
- Troubleshooting and log messages
- Generation context fixes
- Version history
Compatibility
- Compatibility
- Known conflicts and workarounds
- Tested mod list
- Redundant mods
- Compatibility and target versions
Controls by mod
- Minecraft (51)
- Forge (6)
- Ad Astra (1)
- Alex's Caves (4)
- Alex's Mobs (2)
- Almost Unified (1)
- AmbientSounds (3)
- Architectury API (1)
- Ars Nouveau (2)
- Artifacts (1)
- Better Combat (1)
- Bosses of Mass Destruction (1)
- Butterflies (1)
- ChunkSending (1)
- CIT Reforged (1)
- Citadel (1)
- CoFH Core (1)
- Colorwheel (1)
- Cooking for Blockheads (1)
- Create (4)
- Critters and Companions (1)
- Cryptic Foes (2)
- Cucumber (1)
- Curios API (6)
- Distant Horizons (17)
- Dungeons Delight (1)
- Dynamic Trees (2)
- Embeddium (13)
- Entity Model Features (4)
- Entity Texture Features (1)
- EntityCulling (1)
- FancyMenu (1)
- Farmer's Delight (2)
- FD Bosses (2)
- Fowl Play (2)
- Fusion (2)
- GeckoLib (5)
- Goblins Tyranny (2)
- Hostile Villages (2)
- Ice and Fire (6)
- ImmediatelyFast (3)
- Immersive Engineering (1)
- Jaden's Nether Expansion (1)
- JEI (7)
- Kiwi (1)
- L2 Library (2)
- Legendary Monsters (1)
- Lionfish API (2)
- ModernFix (4)
- Mowzie's Mobs (1)
- Mutant Monsters (1)
- Nether Depths Upgrade (1)
- Occult (1)
- Oculus (12)
- Oh The Biomes We've Gone (1)
- Particular (1)
- Pehkui (1)
- Pipez (2)
- Placebo (1)
- Presence Footsteps (1)
- Radium Re-Reforged (8)
- Regions Unexplored (1)
- Relics (2)
- Ribbits (1)
- Ryoamic Lights (2)
- Sake's Structures (1)
- Scorched (1)
- Scuba Gear (1)
- Simply Swords (1)
- SlashBlade: Resharped (1)
- Slice & Dice (1)
- Spawn (4)
- Storage Drawers (2)
- Structure Gel API (1)
- Structurify (3)
- TaCZ (2)
- TerraBlender (2)
- Terramity (1)
- Under the Moon (1)
- Valkyrien Skies (15)
- Trackwork model repair
- Living Engineering (moved out in 1.0.20)
Links