Bons and Furious 1.0.36
Curse Maven Snippet
What's new
Bons and Furious 1.0.36
306 controls for Minecraft 1.20.1 Forge, up from 255 in 1.0.35. This release adds 51 controls, many of them based on ideas that other mods and server projects published, and fixes logins next to HariPlayer. Still one JAR for client and server with nothing else required. Every target mod is optional: 85 mods now, 6 of them new.
Fixed
- Logins with HariPlayer: with HariPlayer 2.0 installed, every login stalled at the loading screen until "Took
too long to log in", or showed an endless 100% screen with Connectivity's longer login timeout. HariPlayer
removes a flush that
vanilla_connection_flush_batchingrelied on. The control now always sends its own packets, and it stands down with one log line next to HariPlayer's network-thread change. In four test logins with HariPlayer and 1.0.36, every one went through. With older releases, setvanilla_connection_flush_batching=false. - Storage Drawers next to a replaced broadcast method: a mod that replaces Minecraft's
PlayerList.broadcastwith its own version made the server stop at start, because the game refused the hook ofstoragedrawers_count_sync_holders. The control now steps aside next to such a mod, with one log line. No such mod is known on Forge 1.20.1. - Closed worlds kept in memory: after a single-player world was closed, climate lookups on long-lived threads
kept it in memory.
vanilla_climate_search_repeatnow holds its last result weakly, and the newvanilla_climate_last_result_weakdoes the same for vanilla's climate trees.
Also: some launches logged harmless Could not find parent ... SaveWriter$Job errors when a world was created,
and no longer do; the two structure-blending controls (worldgen_empty_beardifier_marker and
vanilla_beardifier_influence_bounds) now also work with Integrated API 1.8.2, with or without Integrated Patches
1.2.0, where 1.0.35 left them off; crypticfoes_howler_bone_cache is now labelled client-only, as it always
worked; and the description of vanilla_mob_class_warmup now gives the timing of the released code (1.9 to 3.2 s).
Thanks to the two players who reported stuck logins on CurseForge.
51 new controls
- World generation (both sides): ground-height queries, which structure placement and spawn checks make
all the time, fill only the column they ask about, share corner columns with neighbouring queries and reuse
what an earlier walk of the same column saw. Nearest-structure searches (
/locate, explorer maps, eyes of ender) walk only the border of each ring. Loaded structure templates are looked up without ModernFix's cache lock. Basalt columns run vanilla's own placement test before seven mods' structure checks, and ElysiumAPI's biome replacer check no longer creates throwaway objects. - Saving and loading (both sides): chunk palettes are written to NBT directly (about 37 microseconds and 210 KB less per saved chunk), and the block-state and biome codecs are reused instead of being built again for every block state and every chunk. Each world save also reuses Forge's registry snapshots while no registry changed: with the registries of a 480-mod world, the registry part of a save took 17 ms instead of 95 ms. The files come out byte for byte the same.
- Server (and the integrated server in single-player): data pack selectors such as
@e[type=...]or@e[tag=...]look only at the entities of that type or with that tag (with 1,800 loaded entities, a type scan was 5 to 16 times faster), and command results are filtered without a stream. When a slot of a player's inventory changes, only the advancement conditions that can match are tested: with all of a 480-mod pack's 21,600 conditions still open, opening a 36-slot container took 5.0 ms instead of 33.6 ms (0.5 instead of 1.7 ms with the 2,300 a typical player there has). Mekanism's radiation checks visit only the chunks that hold a radiation source, and items on long transporter routes find their place by index. - Rendering (client): with a shader pack, entity, item and block-entity vertices in Oculus's layout are written in one step (56.8 instead of 61.5 nanoseconds per vertex). The full-screen entity-outline overlay is left out of frames in which nothing glows. Entity Model Features (Fresh Animations and other packs) skips its hand-attachment walk where no part has an attachment, 424 instead of 1,785 nanoseconds per model pass, and reads animation variables without creating a new number object. Distant Horizons saves LODs without taking a lock for every byte (both sides) and blends biome tints without working out the same positions again.
- Item renderers (client): items with a 3D model in Aquaculture, Alex's Caves, Alex's Mobs, L_Ender's Cataclysm, Jaden's Nether Expansion, Rats, TaCZ (ammo, attachments and the gun smith table) and XercaPaint built a new item renderer, with seven dummy block entities, every time they were drawn: in the hand, the hotbar, inventories, JEI and item frames. One renderer per item is now kept, reused and dropped at every resource reload. Same pixels.
- L_Ender's Cataclysm (with Citadel and Lionfish API): capabilities are kept on the entity, area attacks and the Monstrous Helm search for targets only when they can act, the server skips leg probes that only the client uses, and the Leviathan's rift and the Netherite Monstrosities break blocks with less work. On the client, idle bosses skip their keyframe pass (0.2 to 0.4 microseconds instead of 24 to 62 per call), shield layers reuse the pose just computed, arm-pose events are built only when a listener can act, and Lionfish models keep their part lists and reuse their keyframe maps.
Six of the new controls are fixes:
- Memory: vanilla's simulation-distance tracker kept every chunk a player ever came near (after a 4,000-chunk walk, 361 entries instead of 55,917), vanilla's climate trees kept a closed single-player world, Entity Model Features kept every calm neutral mob in its anger table, and Cataclysm's lightning and sound caches kept old worlds.
- Embeddium: a chunk section with very many vertices made a meshing thread's buffer jump to 105 MB of native memory (206 MB with Oculus) in one step. It now doubles as intended.
- Oculus with Embeddium: under a shader pack, text drawn on Embeddium's fast path took its normal, tangent and mid-texture data from the wrong bytes. It now gets exactly what Oculus's own path writes.
Every new control is on by default.
Other changes
- Collections Of Optimizations 4.6: 52 controls now step aside while its matching option is on, and leave its copy out while the option is off, so only one copy of each change runs. With 1.0.35, fourteen older controls and Collections Of Optimizations 4.6 both ran their copy. This was checked on the game's classes with its 4.6 changes applied.
- Radium:
radium_experimental_tickets_spawningis now described as a deliberate change. Lithium documents both options it switches on as not exactly vanilla: chunks can unload in another order, and density-controlled spawn potentials can differ slightly. It stays on by default. Set it tofalseto keep both options off, as Radium ships them.
Tested
Every new control was compared with the code it replaces on the real game classes, with the other installed mods' changes to those classes applied. The release then ran on client and dedicated-server copies of a 480-mod pack with the controls on, off, and in a mode that runs the new and the original code side by side: about 1.6 billion comparisons, none different. On a dedicated server of that pack, two pregeneration tests of 256 chunks each took 42 to 47% less time with the new world-generation controls than without them.
Install
Replace the older Bons and Furious JAR with bons_and_furious-1.0.36.jar and restart. Minecraft 1.20.1, Forge
47.3.22 or newer within 47.x; tested with 47.4.16. No required dependencies. Existing config choices are kept and
new keys are added with their defaults. Every control has its own switch in config/bons_and_furious.properties,
and a control whose target mod is missing or at another build is skipped.
The whole-pack benchmark on the project page was measured with 1.0.26 and has not been repeated for this release.
SHA-256 96ec1b62d1c109cf6e24326ca4f1f50d4ee77d4ed715751bcad204ee17adf88c.
This mod has no additional files

