
FastChunkGen
FastChunkGen basically moves minecraft's chunk processing off the main server thread. world gen runs on multiple worker threads, and chunk reads/writes happen asynchronously so it doesn't freeze up the main tick loop!
It's a unofficial forge port of C2ME (by RelativityMC), but fixed up and improved for forge.
What it does
- Generates chunks across multiple threads instead of just one (scales based on cpu cores and ram).
- Async chunk reads & writes so autosaving doesn't stall the server.
- Puts lighting updates on a dedicated thread.
- Fixes a TON of vanilla thread-safety bugs that only happen once you run worldgen in parallel (structure pieces, shared randoms, weighted lists, etc).
- Cuts down allocations in surface rules, nbt handling, and noise sampling.
How much TPS/loading speed u gain depends on your cpu and worldgen mods, but yeah overall this mod WILL make chunks load faster.
What's different from official C2ME
Unlike a lot of c2me ports out there, this port actually fixes and improves upon the original mod for the forge environment!
- Forge chunk data isn't lost anymore: original c2me's async save path was just a copy of vanilla that omitted Forge's
ChunkDataEvent.Save. any mod saving chunk data lost it on every save. fastchunkgen actually fires the event on the main server thread. - Block entity saving fixed: block entities are serialized on the main server thread now. upstream called
saveWithFullMetadata()off-thread which caused races and corruption with forge capabilities. sections, heightmaps, palettes, and structures still stay async though. ChunkDataEvent.Loaddeferred: runs on the server thread before the chunk goes live.- Fixed infinite loop error: fixed a bug where an exception in worldgen could trap a worker thread in an infinite loop.
- Fixed scheduler deadlocks: fixed an issue where a single exception permanently froze all chunk scheduling.
- Fixed lock leaks: neighbour locks don't leak anymore when a gen task throws an error (which previously broke that region forever).
- Fixed ticket leaks: off-thread chunk requests clean up their tickets on failure instead of leaking memory.
- Better server shutdown: dedicated server doesn't instantly run
System.exit(0)anymore so your exit codes and shutdown logs actually survive. a 30s watchdog still forces exit if something hangs. - proper logging: everything logs through SLF4J with the mod name attached instead of raw stack traces spammed to stderr.
Deliberately did NOT port client-side or unrelated modules: no-tick view distance, client view distance uncapping, server utility commands, and native math.
Compatibility
Tested alongside 480+ mods. generated 5000+ chunks and played around with zero issues!
Fastchunkgen also checks installed mods on startup to auto-resolve conflicts:
- ModernFix: both mods optimize the same three surface rule and material rule methods. FastChunkGen's versions take priority! set
generalOptimizations.overrideModernFixWorldGenAllocations = falseif u want ModernFix to handle them instead. Regarding proto chunks, turn it off for faster chunk gen. - Radium / Lithium / Canary: our duplicate NBT copy patch and chunk priority patch are disabled automatically if any of these mods are installed.
- ThreadTweak, FastNoise, FerriteCore: no overlapping methods, works fine out of the box.
- ModernFix
mixin.perf.release_protochunks: doesn't auto-resolve. both it and threaded worldgen manage chunk futures. fastchunkgen logs a warning telling u which config keys to tweak if chunks ever get stuck loading.
Before you install!
BACK UP YOUR WORLD. upstream C2ME is alpha tech and anything that rewrites chunk saving deserves a backup first just in case.
Configuration
config generates at config/fastchunkgen.toml on first launch. everything has its own toggle, and defaults are set to the literal string "default". Replace it with a real value to override it.
Risky stuff is OFF by default:
ioSystem.gcFreeChunkSerializer- allocation-free chunk writer that can't fireChunkDataEvent.Save. mods lose per-chunk data with this on.ioSystem.recoverFromErrors- auto-regens corrupted chunks instead of crashing, destroying whatever was built there.fixes.enforceSafeWorldRandomAccess- hard crashes on unsafe off-thread world random access instead of logging a warning. good for finding broken worldgen mods.
Credits
C2ME by RelativityMC and ishland (MIT License). Forge port groundwork from sj-hub9796/c2meF. MIT licensed.
Welp.. this is the last archived project I had. It feels nice to be free.. ^_^