promotional bannermobile promotional banner

Bons and Furious

Push your optimized modpack further: Faster terrain, shorter waits and smoother busy scenes on top of best performance mods. 300+ optimization achieves 9x worldgen, -56% launch time and up to +17% FPS.
Back to Files

Bons and Furious 1.0.21

File namebons_and_furious-1.0.21.jar
Uploaded
Sep 30, 2026
Downloads
30
Size
1.1 MB
Mod Loaders
Forge
File ID
9014695
Type
R
Release
Supported game versions
  • 1.20.1

Curse Maven Snippet

Forge

implementation fg.deobf("curse.maven:bons-and-furious-1715359:9014695")

Learn more about Curse Maven

What's new

Bons and Furious 1.0.21

Every patch is now a mixin instead of a generated JavaScript coremod, and nine more optimizations are in. 84 controls (69 optimizations, 4 deliberate changes, 11 fixes), vanilla plus 35 optional mod targets, every one with its own switch.

Mixins instead of coremods

The 93 coremod scripts of 1.0.19 were rewritten as Mixin classes, so every patch can be read as plain Java in src/bons/furious/mixin/ and lifted into an upstream pull request. Thanks to metafive for suggesting it (issue #1). Same results as before, and the same guard: every switch still checks the bytecode fingerprint of each method it touches and is skipped whole, with one WARN line, when the installed build differs. MixinExtras 0.5.0 and MixinSquared 0.3.6-beta.1 are bundled inside the JAR.

Two things came out of the rewrite:

  • Villager level badges are drawn in ImmediatelyFast's own layer order again. immediatelyfast_offset_layer_prefixes had put them in the base layer since 1.0.14.
  • The three engineering_* switches moved into Living Engineering itself (3.0.2), which no longer depends on this mod.

Nine new optimizations (all on by default, same results)

  • etf_sprite_texture_id_memo (Entity Texture Features 7.1, client): the texture id of a chest, sign, bed, banner or shield sprite is worked out once per sprite instead of on every draw. 134 → 7 ns per call.
  • vanilla_model_bone_lookup (Minecraft, client): keyframe animations (frogs, camels, sniffers, wardens and modded mobs on the vanilla system) find their bones with a plain walk of the model tree instead of nested stream pipelines. 120 → 10 µs per frame for a 47-part model.
  • distanthorizons_render_param_inverse_reuse (Distant Horizons 3.3.2, client): the two matrix inversions and one multiply per LOD buffer are reused while the inputs stay the same, which they do for every buffer of a pass. 76 → 51 ns per buffer.
  • embeddium_serializer_lookup_snapshot (Embeddium 0.3.31, client): vertex serializer lookups are answered from an immutable copy of the cache instead of taking a read lock each time. 7.6 → 5.7 ns per lookup.
  • emf_block_entity_type_string (Entity Model Features 3.2.4, client): the type string EMF builds for every rendered block entity is built once per type. 69 → 10 ns per block entity.
  • oculus_phase_labels (Oculus 1.8.0, client): the 24 render-phase debug labels are built once instead of on every phase change. 32 → 1.4 ns.
  • ryoamiclights_block_entity_lock_skip (Ryoamic Lights 0.2.3, client): block-entity light checks answer without the global lock until a block entity is ever registered as a light source. 6.3 → 3.0 ns per check, two per ticking block entity.
  • curios_foreign_capability_fast_path (Curios 5.14.1, both sides): Curios' capability provider answers other mods' capability queries before its slot lookup instead of after it.
  • crypticfoes_sound_listener_invariant (Cryptic Foes 1.0.4, both sides): the sound listeners that wake Howlers test the sound once instead of once per entity in the level. 1,185 → 20 ns per sound with 3,000 entities.

Each figure is the named method in a fixture, not an FPS or TPS number.

Tested

Every mixin applied offline to the tested builds on both sides, 37 million comparisons of the transformed classes against the originals, and the full 470-mod server and client runs: terrain, Valkyrien Skies, the Spawn and Better Combat fixtures, and a 1,200-tick client session with shaders and Distant Horizons that checked the nine new patches against the original code on live models, sprites, block entities and Distant Horizons render events (18 of 18 equal).

Updating

Replace the old JAR on client and server; the first start adds the nine new switches to config/bons_and_furious.properties. From 1.0.15 or earlier, remove bons_pure_optimizations-<version>.jar first (Forge refuses to start with both).

Minecraft 1.20.1 · Forge 47.3.22 or newer · no required dependencies · one JAR for client and server · GPL-3.0-only

Every control is documented on the wiki: https://github.com/BonsUnleashed/bons-and-furious/wiki

This mod has no additional files