promotional bannermobile promotional banner

FastChunkGen

Blazing-fast chunk generation done right
affiliate banner image

FastChunkGen

Patreon

FastChunkGen generates chunks on all of your CPU cores, saves and loads them in the background, and fixes the vanilla threading bugs that get in the way.
On a fresh world it pregenerates about 4x faster than plain forge.

Forge 1.20.1  |  Server and client  |  Stable


What does it do?

This mod generates chunk work on every core you have (configurable) and moves chunk saving and loading off the server thread.


Features

Parallel World Generation

  • Noise, surface, carvers, features and lighting run on a worker pool sized to your CPU.
  • Several chunks generate at once instead of waiting in line.

Async Chunk IO

  • Chunks load and save in the background, so autosaves and fast travel stop freezing the server.
  • Faster compression and a cache for chunk data that was read recently.

Faster Vanilla Worldgen

  • Optimized aquifers, noise sampling, surface rules and random number generation.
  • Close chunks share the noise they would otherwise both calculate.

Vanilla Terrain

  • A seed gives you the same terrain, caves and aquifers with or without the mod.
  • Every worldgen change is compared chunk by chunk against plain Forge before it ships.

Threaded Lighting

  • The light engine gets its own thread instead of sharing one with everything else.

Safe For Modpacks

  • Async saves still fire Forge's ChunkDataEvent.Save on the server thread, so mods that store extra data in chunks keep it. Other ports just skip this..
  • Modded machines and containers are saved on the server thread, not read by a worker.
  • A chunk that loads again while its save is still queued gets the new data, not the old copy on disk.
  • Worldgen tasks that fail are retried, so no part of the map gets stuck and never generates.
  • When a mod touches the world from the wrong thread, the log names the mod and the method. The warning is rate limited so it can't spam your logs.

Compatibility

  • At startup the mod checks what else is installed. If another mod already optimizes the same code, this mods turns off
  • Used in a lot of modpacks, specifically in Linggango. I can confidently say this is the most stable C2ME port ever.
Mod Status
ModernFix Works.
Radium / Canary Works.
FerriteCore, ThreadTweak, FastNoise Works.
Chunky Works. Recommended for pregenerating.
FastNoise Eh.. FastNoise is redundant but it works?

Benchmark

Pregen of 4,225 chunks: Forge 45.1 s, FastChunkGen 11.3 s

A dedicated server, fresh world, seed is 25 (yes just 25), Chunky at its default radius. Ryzen 7 7800X3D (16 threads), 8 GB heap, everything on default settings. For accurate benchmark, I ran it 10 times!

I also wanna mention that results will vary. The amount of you mods especially. If you have ton of mods this mod will show its benefits even more! 


Config

Configuration

All settings are in config/fastchunkgen.toml.

Option Default Notes
globalExecutorParallelism Based on your CPU Worker threads for worldgen and chunk IO
threadedWorldGen.enabled On Needs at least 3 workers
ioSystem.async On Background chunk loading and saving
threadedLighting.enabled On  
ioSystem.recoverFromErrors On Regenerates a chunk that fails to load instead of crashing, like vanilla
ioSystem.gcFreeChunkSerializer Off Faster saves, but skips Forge save events. Breaks mods that store chunk data
fixes.enforceSafeWorldRandomAccess Off Crashes on unsafe thread access instead of warning. Useful for finding broken mods

FAQ

Does it change world generation?
- No. Will anyone even ask this, why is this in FAQ.

Do I need it on the client?
- No, but u should keep it on client for singleplayer use and more.

Can I add it to an existing world?
- Yes.

Something broke.
- Open an issue on GitHub


Credits

  • Original mod, C2ME, by RelativityMC and ishland.
  • Forge port base by sj-hub9796.

FastChunkGen Team

profile avatar
  • 174
    Followers
  • 68
    Projects
  • 13.4M
    Downloads

Solo Mod/Modpack Developer

More from MisanthropyView all