Links
Tags
Creators
Details
All versions
0.6.6-alpha+26.1.2
Alpha
Ferrite 0.6.6-alpha+26.1.22 months ago 1,495
Uploaded by
Compatibility
Minecraft: Java Edition
26.1.1–26.1.2
Platform
Fabric
Supported environments
Client-side
Server-side
Client and server
Changes
[0.6.6-alpha] - 2026-07-13
Fixed
- Five latent redstone defects found in a full review of the AC port. An exception mid-cascade left stale graph state that poisoned every later cascade in that world; removed wires reached the Rust BFS kernel as phantom power-15 sources through a sign-truncation bug (this path is default-on); an out-of-range power value could abort the whole JVM via a release-mode panic across the JNI boundary (now hard-clamped on both sides); the parity oracle produced guaranteed false positives on experimental-redstone worlds (now skipped); and a single exception permanently disabled the oracle and phase counters through stuck thread-locals (they self-heal every tick now). None of these changed measured performance; all validators stay bit-exact.
Changed
- AC redstone lag machine restesting The
vanilla path held 1.4-1.8 TPS (up to 716 ms per tick); enabling
/ferrite redstone ac onmid-choke recovered to a flat 20.00 TPS in about 40 seconds, ~13x fewer cascades and ~6x cheaper gate updates on the same build. README benchmark section carries the numbers. - Chunkforce predicts flight direction. With
/ferrite chunkforce on, the force-gen ring center now leads a moving player by up to 12 chunks along their velocity instead of spending half the budget on terrain behind them. Flight test on 26.1.2 (view distance 16, simulation distance 12): 24,581 chunks forced in ~2.5 minutes at ~160 chunks/s with TPS 20.00 held; the generation front stays out of sight at top creative-fly speed. Stationary players keep the old radial behavior. - Pregen inflight cap raised 50 to 200 (+25% throughput). Four
3721-chunk virgin-terrain runs measured cap 50 at 90-96 chunks/s and
cap 200 at 114-118 chunks/s; 400 added nothing. Tunable at runtime
with
/ferrite pregen inflight <n>. - Walkability cache: fill strategy fixed, then shelved after A/B.
Session 5's pre-fill box thrashed the 512-slot cache (hit rate 1-17%,
~4400 snapshots per 5 s). Session 6 replaced it with a lazy snapshot on
first miss, restricted to sections the PathNavigationRegion actually
backs, and grew the kind cache to 2-way set-associative (2048 sets x 2
ways, LRU). That fixed the cache itself: hit rate 71-94%, snapshots
24-57 per 5 s. An A/B with 294 chasing zombies then hit 84-87% and
still moved nav tick cost at most ~5%, inside noise, because vanilla already
fronts
getPathTypeFromStatewith a per-positionPathTypeCacheand our intercept only ever serves vanilla's misses. Shelved: code stays in tree, default off, post-mortem in JOURNEY. Opt in with-Dferrite.nav.cache=true, or-Pferrite.navCache=true/-Pferrite.navParity=trueon runClient.
Added
[chunk-save]monitor. TimesSerializableChunkData.copyOf(server thread) andwrite(background encode) separately, one line per 5 s window when saves happened. First measurements settled the chunk-save port candidate: the palette bit-pack already runs on the background executor in 26.1.x, and the tick thread pays only 0.3-0.5 ms/tick of copyOf under sustained flight. Candidate closed; monitor stays.
Fixed
- Workspace is clippy-clean. All ~120 warnings cleared across the four
crates:
bind!codegen now emitsFromimpls without the Copy.clone(), the api layer'sIntoimpls flipped toFrom, slice params replace&Vec, and dead verbatim-port items carry explicit allows. Style lints that fight the vanilla ports (index loops, negated float comparisons that keep vanilla NaN semantics, JNI argument counts) are allowed at crate level in rust-mod with a justification comment. Workspace resolver pinned to 2; the macros crate declaresproc-macro = trueinstead ofcrate-type. - Unsafe JNI buffer helpers hardened.
get_i32_slice_mut(surface_jni.rs) andget_byte_slice_mut(redstone_queues_jni.rs) returned&mut [_]from a shared&JByteBuffer, so nothing stopped a caller from holding two aliased mutable slices over one direct buffer. Never a live bug (each is called once per JNI call), but the invariant was unwritten. Both are nowunsafe fnwith a# Safetycontract (no-alias, capacity, alignment) and SAFETY notes at each call site. The twoclippy::mut_from_referrors are gone, and build.yml now runs clippy on the linux job so deny-level lints fail CI.
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:LUgqYseL"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:c2DHmFvV:LUgqYseL"
}

