Repository navigation
TerraBlender
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.
Two controls for TerraBlender 3.0.1.10 (mod id terrablender), both world-generation controls: the surface rule is picked once per biome, and only the surface rules a chunk uses are built. Every 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 |
|---|---|---|---|---|
terrablender_lazy_namespace_rules |
TerraBlender 3.0.1.10 | SERVER | 1.0.28 | opt |
terrablender_namespace_rule_memo |
TerraBlender 3.0.1.10 | SERVER | 1.0.28 | opt |
Since: 1.0.28 · Target: TerraBlender 3.0.1.10 · Side: SERVER · Kind: opt
Mixin: NamespacedRuleMemoMixin
TerraBlender surface rule picked once per biome. TerraBlender's surface rule runs for every stone block a chunk's surface pass visits (about 150,000 per 768-high chunk) and each time works out the biome's namespace again: a lambda, two string lookups and an Optional. Its map is fixed for the rule's lifetime and a biome's key never changes, so the rule now keeps the last biome object and the namespace rule picked for it, and picks again only when the biome object changes.
Measured: 38.9 -> 13.4 ns per stone block on real classes (5.8 -> 2.0 ms per 768-high chunk); 2,783,033 checks identical.
Since 1.0.34. The values this control keeps on a record class are skipped by Gson. Up to 1.0.33 a mod that saves such a record with Gson failed with a NoSuchMethodException, because Gson asks a record for an accessor for every field it holds (reported with Dragon Mounts Remastered on Minecraft 1.21.1; no case is confirmed on Forge 1.20.1). Nothing else changes.
Since: 1.0.28 · Target: TerraBlender 3.0.1.10 · Side: SERVER · Kind: opt
Mixin: NamespacedSourceDeferMixin
TerraBlender builds only the surface rules a chunk uses. For every chunk's surface pass TerraBlender builds the full surface rule tree of every namespace it knows (Minecraft plus every mod that registered surface rules), hundreds of objects each, although a chunk normally reaches one or two of them (review-8 profile: 4.5-25% of all world generation worker allocation sits there). A namespace made only of vanilla rule sources is now built at its first use in the chunk, with the very same call; one that contains any other mod's rule source is built up front as before.
Measured: 16,478,967 in-game per-block comparisons with every namespace built up front, all identical (shadow mode, dedicated server without C2ME, 516 new chunks); not benchmarked on its own (review-8 profile: 4.5-25% of all world generation worker allocation sat in this method). With C2ME installed it stands down by itself: C2ME changes a vanilla rule source this switch relies on.
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