c2meforge-0.2.0-forge.9.9.2-all.jar
Curse Maven Snippet
What's new
C2ME-Forge 0.2.0-forge.9.9.2 (Minecraft 1.20.1) - build 2026-10-23
Hotfix for forge.9.9.1. Everything else is the same as forge.9.9.1.
Fixed
• Servers and singleplayer worlds with Architectury did not finish starting on forge.9.9.1: the log filled with "Failed to save chunk" errors and "Mixin [architectury.mixins.json:MixinChunkSerializer] ... FAILED during APPLY" (reported by SleeplessDrago). forge.9.9.1 changed how C2ME hooks Forge's chunk-load event, and that broke Architectury's own hook on the same spot, so chunks could not be loaded or saved at all. C2ME now wraps that call instead of replacing it, which leaves room for other mods' hooks. Tested with Architectury 9.2.14: forge.9.9.1 failed 24,200 times and could not save a single chunk; forge.9.9.2 starts, generates, saves and reloads chunks without an error (64 of 64 test chests kept), and mods' chunk-load handlers still run on the server thread
C2ME-Forge 0.2.0-forge.9.9.1 (Minecraft 1.20.1) - build 2026-10-22
On top of forge.9.9: a server freeze next to chunks that never finish loading, a crash with Twilight Forest, and the fixes from a full code review of forge.9.9, most importantly a rare case where chests and other block contents could be lost when a chunk's save had to be retried. Terrain is unchanged, except in two rare datapack cases (listed below) that now match vanilla.
Fixed
• Server freeze ("a single server tick took 60 seconds") when a player comes near chunks that never finish loading (reported by SleeplessDrago). While working out light, Minecraft asks blocks for their light and shape, and some mod blocks look at the world from there. C2ME's light thread then waited for a chunk that can only finish through the light thread itself, so the chunks around it never loaded and the server froze as soon as a player walked into them. The light thread now never waits for such a chunk: the block gets that chunk's blocks as they are at that moment, the same blocks the light engine is reading. The first three times it happens, the log names the code that asked (a warning with a stack trace). In a test where every chunk does this, the server froze while preparing the spawn area before and starts normally now. Vanilla's light engine would freeze the same way. Chunk contents are not affected
• Crash "Accessing LegacyRandomSource from multiple threads" with Twilight Forest (reported by Raiden Haruto / Holden). Twilight Forest's cave carver, and its labyrinths, hedge mazes and Dark Tower mazes, each share one random number generator between chunks, and C2ME generates chunks in parallel. The carver now uses a thread-safe one and the mazes take turns. A 16,129-chunk Twilight Forest pregen crashed after 19 seconds on forge.9.9 and now finishes without an error
• Chests, machines and other block contents could be lost when a chunk's unload save had to be retried: the retry saved the chunk after Minecraft had already emptied its block entities. With retries forced on every chunk, 63 of 64 test chests came back empty on forge.9.9; none do now. Retries are rare (none happened in our normal test runs) but can happen when mods ask for a chunk again while it unloads
• When a chunk's background save failed, the "falling back to sync saving" fallback saved nothing (inherited from upstream C2ME). It now saves the chunk on the server thread. With every save made to fail on purpose, all 3,278 chunks were saved, including the ones unloaded at shutdown
• Mods' chunk-load handlers (Forge's ChunkDataEvent.Load and chunk capabilities) ran on C2ME's worker threads, several at once, while mods expect the server thread. They run on the server thread again
• The adaptive Chunky feed only changed Chunky's setting for the next pregen, never for the one running. It now adjusts the running pregen too (on our test machine it ramps from 128 to 512 chunks in flight; pregen time was the same in 8 GB and 6 GB tests). -Dc2me.adaptiveFeed=false no longer changes Chunky's setting at all
• -Dc2me.dfc.enabled=false did not switch off all of the terrain compiler
• Datapacks that put min() or max() around "minecraft:beardifier" in their terrain could lose the terrain shaping around structures (vanilla terrain does not do this)
• A rare case where datapack terrain could be skipped as "sky" when it uses end_islands outside "interpolated" (vanilla terrain does not do this)
• /c2me notick crashed when the no-tick view distance had been switched off for Valkyrien Skies while incompatibility checks were ignored
• A c2me.toml with a typo that could not be backed up (for example while another program had it open) was replaced with default settings; it is now left alone. A failure to write c2me.toml no longer breaks C2ME's settings
Compatibility
• Mods that hook into Minecraft's chunk saving (inside ChunkMap.save) work again: C2ME no longer replaces it while the fast serializer is off (always, since forge.9.8)
• C2ME's skipping of provably empty or solid terrain cells switches itself off when another mod changes what it skips (aquifers, ore veins, block placement during terrain generation), and with Cave Tweaks. The log says why
• Noisium: C2ME's version of a terrain-block optimization steps aside for Noisium's (both did the same thing)
• Crash reports and launchers now point to the C2ME-Forge Discord instead of upstream C2ME's issue tracker
Improvements
• New c2me.toml settings under vanillaWorldGenOptimizations: densityCompiler, cellProofs, reuseDensityFunctions and surfaceFastPath (before, these were -D flags only)
• Hardware info for the log is read once in the background instead of on every world load
• Verify mode (-Dc2me.dfc.verify=true) now checks all of the compiled terrain: 0 mismatches in 119 million values (overworld) and 95 million (the End with End's Phantasm)
• If generation waits more than 30 seconds for a mod's feature lock, the log names what holds it
• Removed a startup banner and a leftover test switch (-Dc2me.debug.noiseCostX2)
Diagnostics
• Test-only switches (off unless set): -Dc2me.debug.forceSaveRetryChanged=true, -Dc2me.debug.failAsyncSaves=N, -Dc2me.debug.lightThreadReadsLevel=true, -Dc2me.debug.lightThreadMayWait=true
Drop-in update. Everyone on forge.9.9.1 OR forge.X.X should update; I recommend everybody to be this version.
Support: https://discord.gg/s7BYs6Njj5
--------------------------------------------------------------------------------
All Relations
- All Relations
- Embedded Library
- Optional Dependency
- Required Dependency
- Tool
- Incompatible
- Include
This mod has no related projects

