Repository navigation
Scuba Gear
Minecraft 1.20.1 / Forge: this page documents that build and its measurements. For the separate 171-control Minecraft 1.21.1 port, see Minecraft 1.21.1 NeoForge.
One control for Scuba Gear 1.20.1-1.0.6 (mod id scuba_gear), a fix: the equipment it gives drowned is set up inside the generation region (structure lookup and random source), which stops a server freeze with Distant Horizons and a crash with C2ME. Background on Generation context fixes. The switch checks the code it would change against the tested build; another build is left untouched with one WARN line (see How the patches are applied).
| Key | Target | Side | Since | Kind |
|---|---|---|---|---|
scuba_gear_generation_context |
Scuba Gear 1.0.6 | BOTH | 1.0.11 | fix |
Target: Scuba Gear 1.0.6 · Side: BOTH · Since: 1.0.11 (first as patched JARs 2026-09-10 and 2026-09-11) · Kind: fix
Patched: com.legacy.scuba_gear.ScubaEvents (new context-taking overloads of onDrownedSpawn and isRuinOrWreckNearby) and com.legacy.scuba_gear.mixin.MobEntityMixin.finalizeSpawn (Scuba Gear's Mixin into Mob) — 1.0.19 scripts bons_and_furious-ScubaEvents.js and bons_and_furious-MobEntityMixin.js. The two scripts depend on each other (the Mixin calls the overload the other script adds) and share this one switch.
Mixins (since 1.0.20): MobFinalizeSpawnMixin, ScubaEventsMixin
What upstream did. Scuba Gear equips drowned that spawn near ocean ruins and shipwrecks. Its Mob.finalizeSpawn Mixin received the ServerLevelAccessor but dropped it, so ScubaEvents searched the live world's StructureManager (up to 21,144 structure queries at radius 15) and drew from the live world's random even while the drowned was being created inside a generation region. Under Distant Horizons that blocked the server on live chunk loads; under C2ME the live random was read from a worker thread and CheckedThreadLocalRandom stopped generation with a ConcurrentModificationException.
What the patch does. The Mixin now passes its accessor to new overloads that bind the structure manager to the WorldGenRegion and use WorldGenRegion.getRandom during generation.
What stays the same. The one-argument API, the structure search order, the equipment chances and the number of random draws; ordinary, null and custom non-region contexts behave as before. Deliberate difference: a drowned created during generation rolls its gear from the region's random, so individual generated drowned can get different gear than before, with the same probabilities.
Measured. Fixes a server freeze and a C2ME crash. Distant Horizons: the ocean-ruin baseline ran 424 ticks in 70 s (6.057 TPS) with eight zero-tick windows; fixed, 3,800 ticks in 189.997 s (20 TPS); 626 fixture and 187 structural assertions. C2ME: 4,678 assertions including 2,000 concurrent spawns; the exact 172-chunk ocean-ruin replay that crashed now completes (73.094 s) and saves nine drowned, four wearing Scuba gear. The 6.057 → 20 TPS figure quoted on the project pages belongs to this reproduction alone.
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.35
- 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 (52)
- 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