
Your CPU lives its life one tick at a time.
Bons and Furious reduces the repeated work behind terrain generation, loading, rendering and server ticks. It also fixes specific freezes and crashes in the mods it supports. Add it alongside your existing performance mods, with a separate switch for every optimization and fix.
In our tested Forge pack: about 9× world-generation throughput, 5½ minutes less waiting to enter a new world, and 17% higher average FPS with 64 animated mobs.
Those results were measured with Bons and Furious 1.0.31 on Minecraft 1.20.1, on 5 October 2026. They are not measurements of the current 1.0.42 release or the NeoForge build.
Both sides kept ModernFix, FerriteCore, Radium and C2ME. The client also kept Embeddium, ImmediatelyFast and EntityCulling, plus Oculus, Distant Horizons, Complementary shaders and Fresh Animations. These gains come from adding Bons and Furious to that stack.
5 October 2026 · Forge 1.20.1 · Bons and Furious 1.0.31 · four measured runs per arm. Each comparison used the same machine and matched settings, with and without Bons. The server and client results below came from different machines.
| Workload | Without Bons | With Bons 1.0.31 | Result |
|---|---|---|---|
| Generate 512 chunks, dedicated server | 436 s | 48 s | 9.2× throughput |
| Launch the game and enter a new world | 588 s | 257 s | 56% less waiting |
| 64 animated mobs, average FPS | 54.6 | 64.0 | 17% higher |
| Same mob scene, 1% low FPS | 31.4 | 42.1 | 34% higher |
Server: Core Ultra 9 285K. Client: Ryzen 9 3900X / RTX 3080, 1080p with shaders. C2ME's reduceLockRadius was enabled. The FPS test used the same saved world, with Distant Horizons generation off and JEI's background work finished.
Generation also used 83% less CPU time and approximately 90% less memory allocation per chunk. That is less temporary garbage, not 90% less RAM: live server heap after startup was about 30 MiB higher with Bons.
Results depend on the pack, settings and hardware. CPU savings may give little extra FPS when the GPU is the limit. This test does not establish how much faster 1.0.31 is than 1.0.26: the machines and settings changed. The same-run 1.0.30 comparison showed similar generation and steady mob-scene FPS.
Full results, test method and earlier benchmarks.
These Forge 1.20.1 examples explain where the savings come from. They measure individual tasks, not an extra FPS or TPS gain to add to the whole-pack results.
| Where | What changed | Measured |
|---|---|---|
| First-night mob spawning | Prepares mob and AI classes on a background thread before their first spawn | About a quarter less time in ticks over 50 ms in the first-night tests on two CPUs with 1.0.35. Spawn rates stay the same. |
| Minecraft chunk generation | Neighbouring chunk work areas share their ground-height estimates instead of re-scanning the same columns | 95% of surface scans skipped (349,843 → 16,494 in a 144-chunk run) and about half the wall time for that run (mean 162 → 75 s, shared machine) |
| Minecraft terrain preparation | The second density-graph pass reuses what the first pass built instead of rebuilding it | 91% less CPU per NoiseChunk (10.35 → 0.89 ms) and 53% less per structure-placement height query (17.7 → 8.3 ms) |
| Embeddium + Fusion | Hidden connected-texture faces are skipped before their quads are built | 25% less chunk-meshing time (5.2 → 3.9 s for 733 sections), 41% less allocation, byte-identical vertices and indices |
| Farmer's Delight | Tool-action ingredients share their registry scan during a recipe load | Client recipe-packet decoding 8.8 → 0.4 s; recipe rebuild 5.5–6.4 → 1.4 s on the client and 3.6 → 1.2 s on the server, same ingredients |
| Create | Contraption collision boxes are built in one pass | A 400-block carriage 369 → 1.3 ms and 108 → 0.25 MB, identical boxes |
| Minecraft saving | Saved data and player files are compressed and written by a background writer | Server thread 4.9 → 0.9 s for 500 data files at once, byte-identical files |
| Minecraft networking | Packet bursts are flushed once instead of once per packet | 300 socket flushes → 1; network-thread CPU 8.7 → 2.6 µs per packet, identical bytes |
| Embeddium | A section search whose inputs are all unchanged replays the previous one | 58–68% less time per search with a still camera; the search was 14.3% of the render thread there |
| Forge | The mod and channel part of the server-list status is reused while it is unchanged | 4.5 → 0.15 ms per status update with 440 mods; it was 16.6% of the server thread during a pregeneration |
| Entity Model Features + Fresh Animations | Variable indexes and model-part lookups are reused during animation compilation | Entity-renderer rebuild 15.1–16.6 → 8.8 s, with 5.1 million variable answers and 692,000 part lookups checked in game |
| Distant Horizons | The rough-surface generator keeps the parts of the terrain density that depend only on x and z instead of recomputing them at every probe height | 85% less time per LOD column (3,351 → 494 µs) |
| Valkyrien Skies | Ship chunk bookkeeping, after seven rounds of ship work | 94% less time (329 → 21 µs, full-pack fixture); physics terrain conversion 65–69% less |
| Oculus | Empty shader render-order graphs are reused instead of rebuilt | 90% less time per reset (166 → 16 ns), 808 → 0 bytes |
| JEI | Each ingredient keeps its display stack with the same expiry semantics | 84% less time per indexing lookup (830 → 130 ns in the cache harness); the in-game index retained the same categories, recipes and stack content |
| GeckoLib | Mixed animation easing without boxed doubles | 50% less time per evaluation (67 → 34 ns) |
| Architectury API | Event dispatch without re-resolving method handles | 19× faster (649 → 34 ns per listener call) |
| Forge + Oculus | Each block remembers its chunk render layers while the shader pack's layer map is unchanged | 59% less time per lookup (122 → 50 ns), 12-14% of chunk meshing |
| Radium with C2ME | Radium's fast chunk access runs again while C2ME's replacement for it is switched off | 43% less time per loaded-chunk lookup (81 → 46 ns), getBlockState 133 → 73 ns |
| Entity Texture Features | Each sprite's texture id is worked out once instead of on every draw of a chest, sign, bed or banner | 95% less time per draw (134 → 7 ns) |
| AmbientSounds | Bounded terrain scan | 88% lower p95 (5.45 → 0.65 ms per analysis) |
| Frame pacing (client) | The FPS-limiter wait moves before the display update | 84% less frame-interval variation at p95 (7.63 → 1.25 ms) at the same 120 FPS cap |
| ImmediatelyFast | Horse-layer ordering without substrings | 46% less time (28.9 → 15.5 ns), 64 → 0 bytes |
The mob warm-up uses about 7 MB more class memory and adds roughly half a second to a singleplayer join. Other newer controls reduce chunk-save allocation, inventory advancement checks and repeated work in mods such as Cataclysm and Mekanism. Their individual measurements are in the wiki; they have not yet had a new whole-pack benchmark.
Measurements and caveats · Every control and its evidence
| Minecraft | Loader | Controls | Requirements |
|---|---|---|---|
| 1.20.1 | Forge | 313 | Forge 47.3.22 or newer |
| 1.21.1 | NeoForge | 211 | Java 21; NeoForge 21.1.252 or newer |
Each build uses one JAR for client and server, with no required target mods. Coverage differs between builds; the figures above are Forge 1.20.1 measurements.
The Forge build contains 270 optimizations, 38 fixes and 5 deliberate behaviour changes. Those five controls include frame pacing and experimental Radium options; their trade-offs are documented individually. All 313 controls are listed in config/bons_and_furious.properties. To disable one, set its key to false and restart.
Rendering, shaders and ambience: Embeddium, Oculus, ImmediatelyFast, Entity Texture Features, Entity Model Features, EntityCulling, Fusion, Colorwheel, Ryoamic Lights, Presence Footsteps, AmbientSounds, CIT Reforged, FancyMenu, Particular.
Shared libraries and server performance mods: GeckoLib, Architectury API, Curios API, Structure Gel API, Radium, ModernFix, ChunkSending, TerraBlender, Citadel, Lionfish API, Placebo, Kiwi, Cucumber, CoFH Core, L2 Library, Pehkui, Almost Unified, ElysiumAPI.
Ships, structures and distant terrain: Valkyrien Skies, Trackwork, Distant Horizons, Structurify, Sakes Structures, Oh The Biomes We've Gone, Dynamic Trees.
Content and gameplay: Alex's Caves, Ice and Fire, Ars Nouveau, JEI, Farmer's Delight, Relics, Timeless and Classics Zero (TaCZ), Terramity, Ad Astra, Fowl Play, Butterflies, Goblins Tyranny, Under the Moon, Nether Depths Upgrade, Spawn, Cryptic Foes, Hostile Villages, Scuba Gear, Occult, Scorched and Better Combat, Create, Pipez, Storage Drawers, Immersive Engineering, Slice & Dice, Cooking for Blockheads, Alex's Mobs, Mowzie's Mobs, Mutant Monsters, Critters and Companions, Bosses of Mass Destruction, FD Bosses, Legendary Monsters, Ribbits, Artifacts, Simply Swords, SlashBlade: Resharped, Dungeons Delight, Jaden's Nether Expansion, Regions Unexplored, L_Ender's Cataclysm, Mekanism, Rats, Aquaculture, XercaPaint.
Coverage means the tested build and the specific code paths of each mod, not every feature. Tested builds per mod: Compatibility and target versions.
For Minecraft 1.21.1, use bons_and_furious-neoforge-1.0.42+mc1.21.1.jar, Java 21 and NeoForge 21.1.252 or newer. MixinSquared is bundled; NeoForge supplies MixinExtras. NeoForge setup and compatibility.
For Minecraft 1.20.1 / Forge:
bons_and_furious-1.0.42.jar from the Files tab and put it in mods/ on the client and on the server. Nothing else is required; every target mod is detected at load. The two small mixin libraries it uses, MixinExtras and MixinSquared, are bundled inside it.jei_join_recipe_deferral and radium_experimental_tickets_spawning and vanilla_background_level_dat) and logs how many controls are enabled.false and restart. Client-only patches (renderer, shaders, ambience) never load on a dedicated server.JVM overrides, log messages and troubleshooting: Installation and configuration.
Keep your optimization stack: Embeddium, ImmediatelyFast, ModernFix, FerriteCore, Radium and C2ME. Bons and Furious changes paths that still did unnecessary work in the tested pack, including a few inside Embeddium, ImmediatelyFast and Oculus themselves. With C2ME installed it also gives Radium and ModernFix three optimizations back that they switch off for every C2ME build, as long as the C2ME module that would clash with each one is off in c2me.toml.
Licensed GPL-3.0-only, with upstream attribution and notices retained. Source and build instructions · Wiki · Report an issue
Pull requests sent to the projects this mod patches: 10 merged, 87 open, 15 closed without merge (status checked 11 October 2026).
| Project | Pull requests | Status |
|---|---|---|
| Ad Astra | #825 | Open |
| Alex's Caves | #1759, #1760, #1762 | Open |
| Alex's Mobs | #2385, #2386 | Open |
| Almost Unified | #144 | Closed without merge |
| AmbientSounds | #348, #349 | Merged |
| Architectury API | #747 | Open |
| Ars Nouveau | #2258 | Open |
| Artifacts | #518 | Open |
| Baked Substring Index | #1 | Open |
| Better Combat | #623 | Open |
| Bosses of Mass Destruction Forge | #31 | Open |
| Butterflies | #493 | Open |
| ChunkSending | #13 | Closed without merge |
| CIT Reforged | #16 | Open |
| Citadel | #232 | Open |
| Colorwheel | #84 | Open |
| Cooking for Blockheads | #812 | Open |
| Cryptic Foes | #7 | Closed without merge |
| Cucumber Library | #62 | Open |
| Curios API | #639, #644, #645 | Open |
| Dungeon's Delight | #126 | Open |
| Dynamic Trees | #1230, #1231 | Open |
| Embeddium | #575, #576, #577, #578, #579, #580, #581 | Open |
| Entity Model Features | #591, #592 | Merged |
| Entity Texture Features | #508 | Merged |
| Farmer's Delight | #1397, #1398 | Open |
| FDBosses | #42 | Open |
| Forge | #10893, #10894 | Merged |
| Forge | #10895 | Closed without merge. Withdrawn in favour of #10899 on the 26.3 branch, with the design the maintainer asked for. |
| Forge | #10896 | Closed without merge. Withdrawn: too little left to gain after #10893. |
| Forge | #10899 | Open |
| Fowl Play | #242, #243 | Open |
| Fusion | #316, #317, #318 | Open |
| Hostile Villages | #37, #38 | Open |
| Ice and Fire | #5641, #5642, #5643, #5644, #5645 | Open |
| ImmediatelyFast | #586, #588, #589 | Closed without merge |
| Immersive Engineering | #6448 | Open |
| Jaden's Nether Expansion | #353 | Closed without merge. Withdrawn: the 1.20.1 branch is no longer maintained and the 1.21.1 rework already covers it. |
| Just Enough Items | #4525 | Merged. Released in JEI 15.62.0.218. |
| Just Enough Items | #4527 | Closed without merge. Withdrawn: it did not fit what that cache is for. |
| L2 Library | #34, #35 | Open |
| Legendary Monsters | #13 | Open |
| Lionfish API | #5, #6 | Open |
| ModernFix | #696 | Merged |
| ModernFix | #697, #698 | Closed without merge |
| ModernFix | #699 | Open |
| Mowzie's Mobs | #65 | Open |
| Mutant Monsters | #139 | Open |
| Nether Depths Upgrade | #67 | Closed without merge. The 1.20 branch is no longer maintained. |
| OcclusionCulling (EntityCulling) | #5 | Open |
| Oculus | #869, #870, #871, #872 | Open |
| Oh The Biomes We've Gone | #421 | Open |
| Particular | #59 | Open |
| Pehkui | #636 | Open |
| Placebo | #125 | Closed without merge. The 1.20 branch is no longer maintained; newer branches removed this event. |
| Presence Footsteps (Forge) | #67 | Open |
| Radium Re-Reforged | #8, #9, #11, #15, #16, #17, #18 | Open |
| Regions Unexplored | #234 | Open |
| Relics | #357, #358 | Open |
| Ribbits | #85 | Open |
| Ryoamic Lights | #54, #55 | Open |
| Storage Drawers | #1307 | Open |
| Structurify | #93 | Closed without merge |
| TerraBlender | #241 | Merged |
| Timeless and Classics Zero (TaCZ) | #745 | Open |
| Trackwork | #70 | Open |
| Valkyrien Skies | #1981, #1982, #1983, #1984, #1985, #1997 | Open |
The majority of the code was written by others. AI assisted portions of the code, testing, packaging and documentation. Original mod authors retain credit for their work.
The project logo is AI-generated promotional concept art. It does not depict content added by this mod.