Repository navigation
Installation and configuration
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.
| Minecraft | Java Edition 1.20.1 only (mods.toml pins [1.20.1]). |
| Loader |
Forge 47.3.22 or newer within the 47.x line. 47.3.22 is the declared floor (mods.toml); tested with 47.4.16. NeoForge and Fabric are not supported. |
| Java | Whatever your Forge 1.20.1 install uses (Java 17 or 21). The helper classes are compiled with --release 17. |
| Dependencies | None are mandatory. Every target mod is declared optional with an open version range, so the mod loads in any 1.20.1 Forge pack. |
| Sides | Install the same JAR on both client and server. Client-only entries (rendering, shaders, ambience) never load their classes on a dedicated server; server-side entries do nothing on a client that is not hosting a world. |
- Download
bons_and_furious-<version>.jar(1.0.15 and earlier:bons_pure_optimizations-<version>.jar) from the GitHub releases, the CurseForge files tab or Modrinth. The published 1.0.21 JAR,bons_and_furious-1.0.21.jar, is 1,193,773 bytes with SHA-256335632b1ca59829d95cf3a0c436a955968f1b71df0d6c62e72307bdf9cec1531; the 1.0.19 JAR,bons_and_furious-1.0.19.jar, is 665,686 bytes with SHA-25632b1e64538ffd0b29ce18e5f3cb07f9a538e3506e6319e36be4f65f75666c1f9; the 1.0.15 JAR,bons_pure_optimizations-1.0.15.jar, is 598,458 bytes with SHA-2561e8046b57a304b58dab66a3b1e634f5b73e767078896ba7f38ee9ba1c0807b38. - Put it in
mods/on the client and on the server. - Start the game once. The mod writes
config/bons_and_furious.properties(1.0.15 and earlier:config/bons_pure_optimizations.properties) from its bundled defaults (every switchtrue) and logs how many controls are enabled. - Optionally edit that file (see below) and restart.
Bons and Furious absorbed two former companion mods. Remove their JARs; the same work is included and the two would otherwise patch the same classes twice.
| Retired mod | Folded in at | What it carried |
|---|---|---|
| Bons Worldgen Compatibility 1.0.0 | 1.0.11 | The six generation-context fixes of 1.0.11; see Generation context fixes. |
| Bons Valkyrien Fixes 1.3.0 (displayed as Bons to Be Afloat) | 1.0.15 | All 15 valkyrien_* controls on Valkyrien Skies and the Trackwork model repair. |
Technical names changed in 1.0.16. Up to 1.0.15 the mod id (bons_pure_optimizations), the JAR and config file names, the JVM property names and the Bons Pure Optimizations log prefix kept the mod's former name; from 1.0.16 on they use bons_and_furious / Bons and Furious (full list on Version history). Updating keeps your switches: the first start of 1.0.16 or newer writes config/bons_and_furious.properties from its defaults with every switch your old config/bons_pure_optimizations.properties set to false still false, and keeps the old file as bons_pure_optimizations.properties.migrated. The old JVM flag spellings are still accepted. Because the file name changed, the new JAR does not replace the old one: remove bons_pure_optimizations-<version>.jar from mods/ on the client and the server. With both JARs present Forge refuses to start, because the two mod ids would load the same packages twice. A mod that declares a dependency on this one must name bons_and_furious from 1.0.16 on.
config/bons_and_furious.properties is a plain Java properties file. Each key is preceded by a comment block that names the target mod and version, the side, the release it first shipped in, what it changes and what was measured. The shipped default is reproduced in the repository as resources/bons_and_furious.default.properties.
# ----------------------------------------------------------------------------------------------
# Architectury event dispatch without MethodHandle re-resolution
# Target: Architectury API 9.2.14 | side: BOTH | since 1.0.2
# ... description and measurement ...
architectury_event_dispatch=trueRules the loader applies (implemented in PureConfig.java):
-
trueapplies the patch;falseleaves that target's code exactly as shipped. Every key shipstrueexceptvanilla_background_level_dat(see its section). Values are case-insensitive; anything else logs a warning and counts astrue. - Changes need a restart. Every patch is applied while its target class is being loaded, so a running game cannot pick up an edit.
- Missing keys are appended with their default and comment block on the next start, so the file stays complete after an update. Unknown keys are ignored with one warning line, so a key from a newer or older build does no harm.
- The file is read before any game class is transformed. A Mixin config plugin loads it, which Forge initialises before the game's main class is loaded.
- Fail-open. If the file cannot be read or written, every patch stays enabled and the reason is logged; the mod never refuses to load. A UTF-8 byte-order mark at the start of the file is tolerated.
At startup the log reports the outcome (1.0.15 and earlier start the line with Bons Pure Optimizations), for example:
Bons and Furious 1.0.34: 253 of 254 optimizations enabled from C:\...\config\bons_and_furious.properties; disabled: vanilla_background_level_dat
Any switch can also be forced off from the JVM command line, which wins over the file:
-Dbons_and_furious.disabled.<key>=true
1.0.15 and earlier use -Dbons_pure.disabled.<key>=true; newer builds still accept that spelling.
Three older property names from before the switches existed are still honoured, and are set automatically when their key is disabled in the file:
| Key | Legacy property |
|---|---|
frame_pacing |
-Dbons_and_furious.framePacing=false |
terrain_density_memo |
-Dac.terrain.enabled=false |
ambientsounds_terrain_scan_bound |
-Dbons_and_furious.ambientHeight=false |
In 1.0.15 and earlier the first and third are spelled -Dbons.pure.framePacing and -Dbons.pure.ambientHeight. Newer builds still accept those spellings and log once that the flag uses the mod's former name.
Client-only controls (their target classes exist only on the client): ambientsounds_biome_match_cache, ambientsounds_terrain_scan_bound, frame_pacing, presencefootsteps_duplicate_tracking, ryoamiclights_chunk_iteration, ryoamiclights_block_entity_lock_skip, distanthorizons_render_param_inverse_reuse, vanilla_model_bone_lookup, etf_sprite_texture_id_memo, emf_block_entity_type_string, every oculus_* control, every embeddium_* control, immediatelyfast_offset_layer_prefixes and valkyrien_render_interpolation. Everything else runs on both sides, and the generation-context fixes and data-pack function fixes matter on whichever side hosts the world (the dedicated server, or the client in single-player). The keys are present in both sides' config files; a client-only key on a server is simply never consulted.
Most controls are pure equivalences: same answers, same random draws, same update cadence. A few change when or where something happens, and their pages say exactly how. Switch them off individually if you want stock behaviour:
-
frame_pacing— moves the FPS-limiter wait before the display update (timing only). Minecraft -
occult_bed_scan_guard— draws the 1-in-1000 roll before reading blocks and never loads chunks for the scan. Occult -
fowlplay_air_targets_loaded_only— birds only pick flight targets in chunks that are already loaded. Fowl Play -
scorched_sandcrab_burrow_gate— buried sandcrabs are processed only within 192 blocks of a player. Scorched - The six generation-context fixes keep generation-time work inside the generation region; two of them draw their random numbers from the region's random instead of the live world's. Generation context fixes
- The four Valkyrien fixes (
valkyrien_terrain_snapshot_order,valkyrien_backoff_nan,valkyrien_weather_occlusion,valkyrien_sculk_vibrations) correct defects, so by definition they change an outcome. Valkyrien Skies
- Ship the same config file on both sides if you disable anything; there is no sync, and a control disabled on only one side is simply asymmetric (harmless, but confusing when comparing profiles).
- The mod needs no data-pack or resource-pack installation. Its two built-in data packs register themselves as required packs at the top of the stack when their conditions hold, and its resource repair is applied in memory.
- Do not also ship the retired Bons Valkyrien Fixes / Bons to Be Afloat or Bons Worldgen Compatibility JARs.
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