Links
Tags
Creators
Details
All versions
0.7.1-alpha+26.2
Alpha
Ferrite 0.7.1-alpha+26.22 weeks ago 741
Compatibility
Minecraft: Java Edition
26.2
Platform
Fabric
Supported environments
Client-side
Server-side
Client and server
Changes
[0.7.1-alpha] - 2026-07-27
Fixed
/ferrite biome validatecompared against the wrong dimension. The validator used whichever biome source was constructed last, which is the nether's, so the in-game command reported a screaming 0/2000 with all-nether answers while the boot-time validator was fine. It now picks the captured source whose biome set contains plains. The long-standing 1999/2000 was also diagnosed and closed: an exact fitness tie between lush_caves and dripstone_caves at a climate point real terrain never produces; vanilla and Ferrite break the tie in different but equally valid orders. No in-game effect.
Changed
- Fat LTO release profile for the native library. The workspace
had no release profile at all;
lto = "fat"pluscodegen-units = 1cuts the Windows dll from 2.1 MB to 794 KB (cross-crate dead code eliminated), with debuginfo stripped but the symbol table kept so native crash reports stay readable. Parity re-verified on the LTO build: noise 63/63, density 50/50 bit-exact, biome 1999/2000 (the documented tie). Nopanic = "abort": unwinding is what lets a native panic fall back to vanilla instead of killing the server. In-game A/B at a 1022-zombie cramming farm: 38-41 ms/tick LTO vs 37-40 ms/tick old profile, within noise; perf-neutral, kept for the size win. - Removed the aarch64 to x86_64 native fallback in the loader: a wrong-arch library can never load, so the fallback only replaced an honest "not bundled for this platform" log with a misleading "failed to load" one.
[0.7.0-alpha] - 2026-07-27
Known issues
- Biome parity reads 1999/2000 in the validator: the one miss is an exact fitness tie between lush_caves and dripstone_caves at a climate point outside the range real terrain produces (validator samples wider than the game's climate space). Vanilla and Ferrite break the tie in different but equally valid orders. No in-game effect; real climate points match 100%.
- The deep-marker diagnostic walk registers no interior cache routes on 26.2. Affects default-off diagnostics only; no live path reads those fingerprints.
Added
- Linux aarch64 native support (PR #8, contributed by cwright814,
tested on a Raspberry Pi 4B). The jar now bundles a fourth native
built by a new CI cross-compile job;
RustBridgepicks it byos.archat load time, and local Gradle builds on ARM hosts target it automatically. Verified in the field: a full server on a 2GB Pi 4B under OpenJ9 with memory to spare. - Building-from-source section in the README: toolchain prerequisites per platform, the one-command Gradle build, and what a locally built jar bundles versus the CI release jars.
- Pre-gen now skips chunks that are already generated. Before
paying a ticket and a FULL-status promotion, the driver checks the
live chunk holder, then stream-scans the region file for just the
chunk's Status field (no full deserialize). Re-running pre-gen over
existing terrain completes at thousands of chunks per second instead
of re-loading every chunk from disk; measured 289/289 skipped
sub-second on a fully generated area, with virgin-generation
throughput unchanged. Skip counts show in
/ferrite pregen status.
Fixed
- An unreadable region file no longer makes pre-gen skip chunks. If the Status scan failed (locked file, IO worker shutting down, a region the reader cannot open), the chunk was treated as already generated and silently left ungenerated. The scan now fails open: it names the chunk in the log and generates it. Verified by holding an exclusive lock on a region file during a 121-chunk run, which produced 121 warnings and 121 generated chunks instead of 121 silent skips. Chunks whose generation itself fails are logged too, rather than counted as done.
- Malformed IntervalSelect nodes now stop the walker instead of encoding wrong caves. A density function node whose threshold and child counts disagree used to encode as a degenerate node, which reads as valid bytecode and produces wrong cave terrain with no error anywhere. The walker now rejects it and says what it saw. Every IntervalSelect in the live 26.2 registry passes; density parity stays 50/50 bit-exact at 2000 samples.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:c2DHmFvV:PTsR1ac6"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:c2DHmFvV:PTsR1ac6"
}

