Skip to content

Minecraft 1.21.1 NeoForge

BonsUnleashed edited this page Oct 10, 2026 · 7 revisions

Minecraft 1.21.1 / NeoForge

This is the Minecraft 1.21.1 port of Bons and Furious 1.0.38. It uses mod ID bons_and_furious, version 1.0.38+mc1.21.1, and requires Java 21 and NeoForge 21.1.252 or newer. Minecraft is restricted to exactly 1.21.1. The tested loader is 21.1.252; later loaders are not automatically qualified.

Download 1.0.38+mc1.21.1. This is a separate build from Forge 1.20.1.

Install

Put bons_and_furious-neoforge-1.0.38+mc1.21.1.jar in the mods folder of a Minecraft 1.21.1 NeoForge instance. Optional target mods are not required; their patches only apply when the relevant targets and method fingerprints match. MixinSquared is bundled; NeoForge supplies MixinExtras.

The first launch creates config/bons_and_furious.properties. Set a switch to false and restart to disable it. Existing JVM disable flags remain supported. Client rendering patches only run on clients. The same JAR works on dedicated servers, where client-only target mods should not be installed.

Coverage and compatibility

The port ships 205 controls: 201 switches guarded by 1,726 method or class-shape checks, three legacy mixin controls and the Scorched function fix. Bons and Furious 1.0.38 has 306 controls in all; 55 are retired because the 1.21.1 target changed or already does the work, and 46 depend on target mods with no 1.21.1 NeoForge build. NeoForge 1.21.1 control coverage accounts for every one of them.

The Oculus-prefixed switches target Iris. The tested Iris pairing is Iris 1.8.12 with Sodium 0.6.13. Embeddium 1.0.15 is tested separately; do not combine Embeddium with Sodium/Iris. Embeddium owns model bone lookup when installed. Native Lithium owns block-entity state and POI indexing when installed. The Radium compatibility paths apply to Radium 0.13.1, not native Lithium.

Some switches step aside on purpose because another mod replaces the same code: seven with C2ME (0.4.0-alpha.0.122+1.21.1, the reviewed build), whose density-function compiler also makes the three NoiseChunk switches stand down; four with Radium 0.13.1; one with native Lithium's game-event dispatch; one with ServerCore 1.5.19; six with Generator Accelerator 1.6.2; one with Structurify 2.0.42; one with Bye Pregen 1.1.3.0; and the beardifier switch whenever another mod adds code to Beardifier. The game log names each one and the reason. Distant Horizons direct reads stay disabled when C2ME's replacement chunk IO is active.

With Sable 2.0.6 (Create Aeronautics) and Storage Drawers, storagedrawers_count_sync_holders leaves Sable's PlayerList.broadcast alone and says so in one log line; ports before 1.0.38+mc1.21.1 stopped at start with this pair.

The foreign-patch coordination mechanism reads NeoForge's [[mixins]] metadata, including side lists and requiredMods. Its Collections Of Optimizations rules are retained for matching declared mixins; no 1.21.1 NeoForge build of that mod exists to test them against. Missing, changed or unknown targets stay unpatched.

Exact dependency versions, authors, licenses and hashes are in upstream-credits.json. They describe development targets, including targets inspected and then retired, not required installation lists.

Validation

See NeoForge 1.21.1 test results and the accompanying qualification receipt for the exact tested artifact and runtime results. The checks cover production server loading, optional mod integrations, in-world client rendering, deterministic enabled/disabled comparisons and in-game shadow comparisons. They are not a comprehensive modpack or long-session test. No 1.20.1 performance claim is reused for this port.

Build

Download the source ZIP, enter its source directory, and use Python 3.11+ and a Java 21 JDK:

python fetch_targets.py
gradlew.bat build

On Unix, use ./gradlew build. The wrapper pins Gradle 9.2.1 and the build pins ModDevGradle 2.0.148 and NeoForge 21.1.252. The first build needs network access. fetch_targets.py verifies publisher SHA-1 values from targets.lock.json and extracts nested compile targets. It writes into sibling targets and targets-nested directories. It does not install those mods into a game.

build checks all fingerprints against the pinned targets and refuses a stale guard table. Do not refresh fingerprints merely to silence a mismatch: review the target's behavior first. Thirty-three methods have explicitly reviewed alternate fingerprints for the equivalent NeoForm development and Mojang production instruction layouts (41 guard entries). No wildcard hashes are accepted.

The output is in build/libs/. src/probe is a separate qualification mod; gradlew.bat probeJar builds it separately. It is excluded from the release JAR. The archive order, timestamps and compression are deterministic.

License: GPL-3.0-only; see LICENSE and NOTICE.md. Optional target JARs, Minecraft, shader packs, game worlds and local account data are not included in the source archive.

Bons and Furious

Minecraft 1.20.1 / Forge 1.0.38

Compatibility

Controls by mod

Links

Clone this wiki locally