Chunker 图标

Minecraft 服务端插件

Chunker

Fast and Efficient Async Minecraft World Pre-generator

工具类世界生成bukkitfoliapaperpurpurspigot
版本范围
1.21–26.2
下载量
6,933

插件介绍

Chunker - Official Support & Downloads

Join our Discord Community for help, support, issues, feedback, and discussions. Click here to join: Join Our Discord

Contributions

PRs welcome

This repository is public. Fork the repo, create a branch, and open a pull request. I will merge changes that work and do not introduce issues. If I need changes I will leave feedback.

Quick checklist:

  • Link the related issue if any.
  • Add a short description and steps to test.
  • Build must pass with mvn clean package using Java 25.

Supported MC Versions

  • Target version: 26.1.2
  • Requires Java 25
  • Older Java 21 / pre-26.1.2 server builds are no longer supported by 26.1.2 and newer

Supported Servers

  • Paper
  • Folia
  • Paper-compatible forks such as Pufferfish, Purpur, and Leaf

Chunker still has fallback logic for non-Paper server paths, but the current plugin baseline is built for the 26.1.2 API and Java 25.

Overview

Chunker is designed to be more efficient and resilient than traditional pre-generators. Many pre-generators track thousands of chunks in memory, risking significant rollback or data loss if the server crashes. Chunker, by contrast, only tracks minimal state like the current iterator position, submitted progress, completed progress, and the generation center, so crashes or restarts have less impact on the generation process.

Chunker works best on Paper and Paper forks because it can use asynchronous chunk-loading through CompletableFuture. Folia uses its region scheduler path. On non-Paper server paths, Chunker falls back to synchronous loading behavior.

You can configure Chunker to run automatically only when there are no players online and to halt if a player joins. This behavior is controlled by auto_run in settings.yml. You can also adjust how aggressively each dimension runs by changing task_queue_timer and parallel_tasks_multiplier.

Optimized JVM Launch Parameters (start.bat)

@echo off
for %%f in (*.jar) do set JAR=%%f
REM Launching Java with Aikar-style flags
java ^
 -Xms1G ^
 -Xmx30G ^
 -XX:+UseG1GC ^
 -XX:+UnlockExperimentalVMOptions ^
 -XX:G1NewSizePercent=30 ^
 -XX:G1MaxNewSizePercent=40 ^
 -XX:G1HeapRegionSize=8M ^
 -XX:G1ReservePercent=20 ^
 -XX:G1HeapWastePercent=5 ^
 -XX:G1MixedGCCountTarget=4 ^
 -XX:InitiatingHeapOccupancyPercent=15 ^
 -XX:G1MixedGCLiveThresholdPercent=90 ^
 -XX:G1RSetUpdatingPauseTimePercent=5 ^
 -XX:SurvivorRatio=32 ^
 -XX:+PerfDisableSharedMem ^
 -XX:MaxTenuringThreshold=1 ^
 -XX:+UseCompressedOops ^
 -XX:+DisableExplicitGC ^
 -XX:+AlwaysPreTouch ^
 -XX:+ParallelRefProcEnabled ^
 -XX:+UseNUMA ^
 -XX:ParallelGCThreads=16 ^
 -XX:ConcGCThreads=16 ^
 -XX:MaxGCPauseMillis=50 ^
 -Dusing.aikars.flags=https://mcflags.emc.gs ^
 -Daikars.new.flags=true ^
 -jar "%JAR%" --nogui
pause
  • Xms1G and Xmx30G should be updated to match your server's minimum and maximum memory.
  • Update both XX:ParallelGCThreads and XX:ConcGCThreads to match your CPU thread count.

Paper Config

Note: On non-Paper servers, Paper async chunk functionality will not be used. On Paper-based servers, you can tune chunk generation and I/O parallelism for better pre-generation throughput.

In your paper-global.yml or equivalent, consider increasing the parallelism for chunk generation and I/O:

chunk-loading-advanced:
  auto-config-send-distance: true
  player-max-concurrent-chunk-generates: -1
  player-max-concurrent-chunk-loads: -1

chunk-loading-basic:
  player-max-chunk-generate-rate: -1.0
  player-max-chunk-load-rate: -1.0
  player-max-chunk-send-rate: -1.0

chunk-system:
  gen-parallelism: default
  io-threads: 16
  worker-threads: 16

region-file-cache-size: 16
  • Adjust io-threads and worker-threads to match or approach your CPU's thread count.
  • By default, Paper may not use all available CPU threads for chunk work.
  • Lower region-file-cache-size if running pre-generation on a fresh world with no players online.

Command Usage

The primary commands are:

/pregen <ParallelTasksMultiplier> <PrintUpdateDelay> <dimension> <Radius or "default"> [safety]
/pregenoff [dimension]
/pregen reset <dimension>

Examples

  1. /pregen 4 10s minecraft:overworld default

    • Pre-generates the overworld.
    • Queues 4 chunk-loading tasks per scheduler cycle.
    • Prints progress logs every 10 seconds.
    • default uses the world border as the radius.
  2. /pregen 6 5s minecraft:overworld 1000b

    • Pre-generates the overworld.
    • Queues 6 tasks per scheduler cycle.
    • Prints logs every 5 seconds.
    • 1000b means a 1000-block radius, rounded to full region coverage.
  3. /pregen 16 5s minecraft:the_nether 2r safety

    • Pre-generates the Nether.
    • Queues safety-mode work in parallel using the 16 multiplier.
    • Prints logs every 5 seconds.
    • 2r means a 2-region radius, rounded to full region coverage.
    • safety forces the more conservative urgent async generation path.
  4. /pregen 1 12h minecraft:the_end 100r

    • Pre-generates The End.
    • Queues 1 task per scheduler cycle.
    • Logs every 12 hours.
    • 100r means a 100-region radius.
  5. /pregen reset minecraft:the_nether

    • Deletes saved pre-generation progress for the Nether.

Command Parameters

  • ParallelTasksMultiplier: Determines how many chunk-loading tasks are queued per scheduler cycle. On Paper, these tasks use async chunk APIs. Higher values can increase throughput but also increase CPU, memory, and disk pressure.
  • PrintUpdateDelay: How often progress logs appear. Add suffix s, m, or h.
  • dimension: The dimension to pre-generate. Use canonical namespaced keys such as minecraft:overworld or minecraft:the_nether. Tab completion is supported.
  • Radius: The target radius with a suffix:
    • b - Blocks, for example 20000b
    • c - Chunks, for example 500c
    • r - Regions, for example 30r
    • default - Uses the world border
  • safety: Optional. Forces the conservative urgent async safety path on Paper.
  • /pregenoff [dimension]:
    • No args = stops all active pre-generation tasks.
    • With a dimension key = stops that dimension only.

Permissions

Defaults to OP.

  • chunker.pregen - Allows use of /pregen
  • chunker.pregenoff - Allows use of /pregenoff
  • chunker.reset - Allows use of /pregen reset <dimension>
  • chunker.* - Grants all Chunker permissions

Configuration: settings.yml

# World Configuration for Chunker Plugin

# auto_run: Set to true if you want pre-generation to start automatically when no players are on the server.
# Acceptable values: true or false

# task_queue_timer: Determines how fast chunks are queued up. A value between 50-70 is recommended for modern AMD 5000 series and Intel 13th Gen CPUs in the Overworld.
# Adjust based on performance needs.

# parallel_tasks_multiplier: Sets how many async tasks are queued per scheduler cycle. 'auto' will distribute tasks based on your thread count for auto-run.
# You can also set a specific integer value. Higher values increase load.

# print_update_delay: How often to print information (s-Seconds, m-Minutes, h-Hours). Default is 5s.

# radius: Defines how far the pre-generator should run (b-Blocks, c-Chunks, r-Regions) or 'default' to pre-generate until the world border.

# Optional command safety mode:
# Add 'safety' after the radius to force Chunker's urgent async safety generation path on modern versions.
# Example: /pregen 4 5s minecraft:overworld 5r safety
# This keeps progress tied to completed chunks while still queuing safety work in parallel.

# center: Sets where the pregen spiral starts.
# - 'default' uses the world border center, or the world spawn if no border center is set.
# - '~ ~' always uses the current world spawn.
# - 'x z' uses fixed block coordinates, for example: "0 0" or "1500 -500".

minecraft:overworld:
  center: default
  auto_run: false
  task_queue_timer: 60
  parallel_tasks_multiplier: auto
  print_update_delay: 5s
  radius: default

minecraft:the_nether:
  center: default
  auto_run: false
  task_queue_timer: 60
  parallel_tasks_multiplier: auto
  print_update_delay: 5s
  radius: default

minecraft:the_end:
  center: default
  auto_run: false
  task_queue_timer: 60
  parallel_tasks_multiplier: auto
  print_update_delay: 5s
  radius: default

Quick Tips

  1. Begin with a lower ParallelTasksMultiplier, then adjust upward while watching CPU, memory, and disk usage.
  2. Paper and Folia paths provide much better performance than synchronous Bukkit-style loading.
  3. Use print_update_delay of 10s or longer to avoid excessive log output during long runs.
  4. Use safety only when you want the more conservative Paper generation path; omit it for maximum speed.

版本与下载

推荐下载

Chunker-1.21.10.jar版本 1.21.10 · 70.5 KBSHA-1 649c1d9c120045ce2d97ff6f542a00fed393d1fc下载 Chunker-1.21.10.jar

26.2

正式版
加载器
bukkit · folia · paper · purpur · spigot
MC 版本
26.1 · 26.1.1 · 26.1.2 · 26.2
Chunker-26.2.jar88.8 KBSHA-1 6cfe3ab0be4d6700beeedd18ca99e6136679b42b获取文件 Chunker-26.2.jar
展开更新日志

What's new in Chunker 26.2

  • More accurate radius handling for pre-generation
  • Less extra chunk work around the edge of the selected area
  • Better progress tracking so runs stop closer to the requested size
  • Safer chunk unloading on Paper and Folia
  • Better handling of player-loaded chunks while pre-generation is running
  • Faster task tracking behind the scenes
  • Updated build version to 26.2

Note: Please report any bugs you find here.

26.1.2

正式版
加载器
bukkit · folia · paper · purpur · spigot
MC 版本
26.1 · 26.1.1 · 26.1.2
Chunker-26.1.2.jar79.3 KBSHA-1 3364e607c0af51e27bc1ef957aa117857516d2fe获取文件 Chunker-26.1.2.jar
展开更新日志

What's new in Chunker 26.1.2

  • Updated for Paper/Folia 26.1.2
  • Now requires Java 25 (moving forward this will not be backwards compatible with older server versions)
  • Updated world and dimension detection for the new Minecraft world folder layout
  • Commands now use names like minecraft:overworld, minecraft:the_nether, and minecraft:the_end
  • Added optional safety mode for users who want a more careful pregeneration path
  • Improved stop/restart handling during pregeneration

Most commands work the same, but world names are now based on the new dimension format.

Example: /pregen 16 5s minecraft:the_nether 2r

Optional safety mode: /pregen 16 5s minecraft:the_nether 2r safety

Note: A lot changed in this version behind the scenes, especially around world detection, Java 25, and the pregeneration safety path. Please report any bugs you find here. You can also check the full release notes here.

1.21.11

正式版
加载器
bukkit · folia · paper · purpur · spigot
MC 版本
1.21 · 1.21.1 · 1.21.2 · 1.21.3 · 1.21.4 · 1.21.5 · 1.21.6 · 1.21.7 · 1.21.8 · 1.21.9 · 1.21.10 · 1.21.11
Chunker-1.21.11.jar75 KBSHA-1 4381c6adec1a90cbbe9de4ff2d8099fe0cd49ebe获取文件 Chunker-1.21.11.jar
展开更新日志

What's new in Chunker 1.21.11

  • Performance update for pregeneration
  • Lower memory use and less lag spikes during heavy runs
  • Better handling of chunks around players while pregen is running
  • Faster chunk tracking behind the scenes
  • Updated for Paper/Folia 1.21.11

This update does not change how you use Chunker. Same commands, same config, just smoother and faster.

Note: Tested on Paper 1.21.11 so far. Please report any issues you encounter here. If you are interested you can check out the more detailed updated release notes

1.21.10

正式版推荐
加载器
bukkit · folia · paper · purpur · spigot
MC 版本
1.21 · 1.21.1 · 1.21.2 · 1.21.3 · 1.21.4 · 1.21.5 · 1.21.6 · 1.21.7 · 1.21.8 · 1.21.9 · 1.21.10 · 1.21.11
Chunker-1.21.10.jar70.5 KBSHA-1 649c1d9c120045ce2d97ff6f542a00fed393d1fc获取文件 Chunker-1.21.10.jar
展开更新日志

What's new

  • You can now choose where pregeneration starts instead of being stuck at one fixed center
  • New center setting per world in settings.yml
  • If you move the center, Chunker can reset and start pregeneration from the new spot
  • Old save files are upgraded automatically to support the new center system
  • Spawn chunk radius game rule is no longer touched by the plugin
  • Updated for Paper 1.21.10

Example settings.yml setup

Custom centers for two worlds, for example a lobby and a survival world:

# center: Sets where the pregen spiral starts.
# - 'default' uses the world border center, or the world spawn if no border center is set.
# - '~ ~' always uses the current world spawn.
# - 'x z' uses fixed block coordinates, for example: "0 0" or "1500 -500".
lobby:
  auto_run: false
  task_queue_timer: 60
  parallel_tasks_multiplier: auto
  print_update_delay: 5s
  radius: 3000b
  center: 0 0
survival:
  auto_run: false
  task_queue_timer: 60
  parallel_tasks_multiplier: auto
  print_update_delay: 10s
  radius: 15000b
  center: 1500 -500

Note: Tested only on Paper, and Purpur 1.21.10 so far. Please report any issues you encounter here.

If you are interested you can check out the more detailed updated release notes here

1.21.8

正式版
加载器
bukkit · folia · paper · purpur · spigot
MC 版本
1.21 · 1.21.1 · 1.21.2 · 1.21.3 · 1.21.4 · 1.21.5 · 1.21.6 · 1.21.7 · 1.21.8
Chunker-1.21.8.jar68.2 KBSHA-1 be17cb584cec7adf21cbc1065dc4d4cfc26edc58获取文件 Chunker-1.21.8.jar
展开更新日志

What's new

  • 10+ additional server optimization options (mob spawning, weather, day/night cycles, etc.)
  • Better organization, the settings split into two clean config files
  • Full control over what gets optimized or not during pregeneration
  • Fixed race conditions that could cause instant completion on first run
  • Fixed chunk saving issues on Paper 1.21.0-1.21.2 (old server versions had a bug with chunk saving so some safety was added specifically for those versions for those of you still using them)
  • Updated for Folia 1.21.8 compatibility

For Server Owners: Your existing settings will be automatically migrated. Check the new optimizations.yml file to customize which features get disabled during pregeneration for maximum speed.

Note: This is a significant update with lots of changes. Tested on Folia 1.21.8 and Leaf 1.21.8 so far. Please report any issues you encounter.

1.21.7

正式版
加载器
bukkit · folia · paper · purpur · spigot
MC 版本
1.21 · 1.21.1 · 1.21.2 · 1.21.3 · 1.21.4 · 1.21.5 · 1.21.6 · 1.21.7
Chunker-1.21.7.jar49.4 KBSHA-1 1d072724d3de45afb681acad3fd34e2fb0f9840d获取文件 Chunker-1.21.7.jar
展开更新日志

Changes

  • Update to Minecraft 1.21.7.
  • A new command /pregen reset <world> lets you restart pregeneration for a world without messing with files.

Bug Fixes

  • Fixed an issue where the pre-generation area was too small and didn’t cover what you asked for. User pointed out that when they use 10000b in the command they expect the radius to be 10000b from center outward not edge to edge, so now it is doubled to account for this.
  • Fixed extra messages showing up in the console when they weren’t needed. Chunker is smarter about when to show messages. It now only shows "already disabled" messages when a person runs the command, not when the system does it.
  • Fixed missing chunks at the edges of the pre-generated area. Chunker now rounds to nearest region if our command falls short to make sure generation is fully covered.

1.21.5

正式版
加载器
bukkit · folia · paper · purpur · spigot
MC 版本
1.21 · 1.21.1 · 1.21.2 · 1.21.3 · 1.21.4 · 1.21.5
Chunker-1.21.5.jar47.3 KBSHA-1 6220f53a9ead124a4c0b8bf8d9a4b26f6245f58b获取文件 Chunker-1.21.5.jar
展开更新日志

Multi-world / Custom World Support Added

What’s new

Supports any world folder

  • If your server runs more than just the default “world”, “world_nether” and “world_the_end”, this release is for you. Now the plugin will detect every world in your server folder, whether it’s a skyblock map, a creative build, or a custom dimension created with Multiverse-Core or other tools.

Auto-update settings.yml

  • Upgrading from an older version? No problem. On startup this update will automatically add entries for any missing worlds in your settings.yml, so you can tweak your new worlds just like the originals.

Please let me know if you run into any issues and submit them on the GitHub issue page here.

1.21.4

正式版
加载器
bukkit · folia · paper · purpur · spigot
MC 版本
1.21 · 1.21.1 · 1.21.2 · 1.21.3 · 1.21.4
Chunker-1.21.4.jar46.7 KBSHA-1 aedcb2bee6fd03be2a8f00df04e0184ce732c153获取文件 Chunker-1.21.4.jar
展开更新日志

Chunker – Major Performance & Memory Optimization Update & Support for Folia

This version of Chunker brings significant improvements in memory efficiency, GC behavior, and compatibility — especially under high parallel load configurations.


Improvements

  • Coordinate Caching

    • Introduced a lightweight cache for coordinates to reduce frequent object creation and Java GC pressure.
    • This dramatically reduces heap usage during high-throughput pre-generation.
  • Memory Leak Fixes

    • Resolved an issue where tracked chunks for players were not being cleared correctly, causing memory to grow over time even after chunks were unloaded. This would only happend if players where in the server and running pregen in the background at the same time.
  • Smarter Memory Footprint

    • Optimized several internal variables and data structures to further reduce overall memory usage, especially when running across all 3 dimensions.
  • Added Support for Folia

    • Chunker is now fully compatible with Folia servers, alongside all existing supported server types.

Benchmark Results – Memory Usage Comparison

Two tests were performed to compare memory usage between the old and new versions of Chunker, using the same world seed and identical start points.

TestOld VersionNew VersionImprovement
parallel_tasks_multiplier = 16 (on all dimensions)7.2 GB3.3 GB−54.2%
parallel_tasks_multiplier = 200 (on end dimnension only)26.7 GB (crashed)11.3 GB−57.7%
  • Average memory usage reduced by about (50%)
  • New version remained stable under extreme chunk rates(about 3200 ChunksPerSecond in the end) that caused the old version to crash.

Benchmark Test Setup (Reproducible)

JVM Launch Parameters (start.bat):

@echo off
java -Xms1G -Xmx30G -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -XX:+OptimizeStringConcat -XX:+UseCompressedOops -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:+ParallelRefProcEnabled -XX:+UseNUMA -XX:ParallelGCThreads=16 -XX:ConcGCThreads=16 -XX:MaxGCPauseMillis=50 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar server.jar --nogui
pause
  • Xms1G and Xmx30G should be updated to match your minimum(Xms) and max memory(Xmx) you want for your own server
  • Update both XX:ParallelGCThreads and XX:ConcGCThreads to match your number of threads

Paper Configuration (paper-global.yml):

chunk-loading-advanced:
  auto-config-send-distance: true
  player-max-concurrent-chunk-generates: -1 # removes per-player generation limits
  player-max-concurrent-chunk-loads: -1     # removes per-player load limits

chunk-loading-basic:
  player-max-chunk-generate-rate: -1.0 # removes chunk generation rate cap
  player-max-chunk-load-rate: -1.0     # removes chunk load rate cap
  player-max-chunk-send-rate: -1.0     # removes chunk send rate cap

chunk-system:
  gen-parallelism: default             # allows Paper to scale based on system threads
  io-threads: 16                       # matches CPU thread count for optimal throughput
  worker-threads: 16                   # matches CPU thread count for chunk processing

region-file-cache-size: 16            # reduced cache size to lower memory usage while pre-generating with no players online; 16 is a balanced middle ground (lowest allowed is 4)

Testing Methodology:

  • All world data was reset between tests, except level.dat, to keep the same world seed.
  • Chunker plugin data was wiped to start fresh from (0, 0) in each test.
  • Each test was run for 1 hour for the parallel_tasks_multiplier 16 test and 15 min for parallel_tasks_multiplier 200 test, allowing memory to stabilize.
  • Console print statements may still cause slight memory increases due to terminal buffer growth.

Tips for Best Performance

  • Use Paper or Folia with chunk-loading limits removed (as shown above).
  • Tune parallel_tasks_multiplier and task_queue_timer based on your system’s CPU core count and available memory.
  • Use print_update_delay of 10s+ to avoid excessive log output during long runs.
  • Lower region-file-cache-size if running pregen on a fresh world with no players online.

1.21.4

正式版
加载器
bukkit · paper · purpur · spigot
MC 版本
1.21 · 1.21.1 · 1.21.2 · 1.21.3 · 1.21.4
Chunker-1.21.4.jar45.4 KBSHA-1 f395139ceb9e008b0eb0e269c0622618444892c9获取文件 Chunker-1.21.4.jar
展开更新日志

Small Fix

Fixed issue preventing the use of the 1.21.4 version in older server versions like 1.21.1, the 1.21.4 version of the plugin should now work with 1.21+ server versions.

1.21.4

正式版
加载器
bukkit · paper · purpur · spigot
MC 版本
1.21.4
Chunker-1.21.4.jar45.3 KBSHA-1 e5b2a6c96a5f4b569eed0f6caba25b975cfb0adb获取文件 Chunker-1.21.4.jar
展开更新日志
  • I’ve improved how the plugin schedules chunk generation. Previously, each task started its own timer, causing many timers to run at once and creating high CPU usage.
  • Now, Chunker only runs a single repeating process that handles multiple chunks per cycle, which lowers the initial CPU load when generating large numbers of chunks(there will still be an initial spike but not for as long). This should prevent the runaway increase in CPU usage when scheduling higher than 16 for parallelTasksMultiplier.
  • Was able to do 16 parallelTasksMultiplier for all worlds on a 9800X3D with some headroom left over.
  • chunker 1
  • chunker 2

1.21.4

正式版
加载器
bukkit · paper · purpur · spigot
MC 版本
1.21.4
Chunker-1.21.4.jar45.4 KBSHA-1 1fcb96b27dfe39699868330f6ae1f07eed83883d获取文件 Chunker-1.21.4.jar
展开更新日志

Update to 1.21.4 and bug fix

  • Updated to 1.21.4 API
  • Fixed bug that would prevent new tasks from running with the code claiming a task was already enabled when it was not.
  • Tasks are now removed from the tasks map when the pre-generation completes or is disabled, preventing "already enabled/disabled" console errors.

1.21.3

正式版
加载器
bukkit · paper · purpur · spigot
MC 版本
1.21 · 1.21.1 · 1.21.2 · 1.21.3
Chunker-1.21.3.jar36.4 KBSHA-1 7386b5646fc888c1fbfd81e0bedf30c8b7767bf3获取文件 Chunker-1.21.3.jar
展开更新日志
  • Fixed a bug were enabling autorun caused the parallel_tasks_multiplier to be ignored, always setting an equal number of tasks across all threads.
  • Updated chunker to improve performance and memory efficiency, resulting in a ~5-7% uplift in performance, with chunk processing increasing from 198-200 to 208-215 chunks per second.

EXAMPLE

1.21.1

正式版
加载器
bukkit · paper · purpur · spigot
MC 版本
1.21 · 1.21.1
Chunker-1.21.1.jar24.8 KBSHA-1 102318c20a89f87bad149d9010bdb8c771dfd8f7获取文件 Chunker-1.21.1.jar
展开更新日志

New:

  • Can now run multiple generation tasks at the same time, all with their own settings.

Image 1

  • New print to tell you how long tasks took to complete.

Image 2

  • Added settings.yml that includes more in-depth settings as well as the option to run tasks automatically when there are no players on the server. Tasks are terminated when any players connect.
# Configuration

# auto_run: Set to true if you want pre-generation to start automatically when no players are on the server.
# Acceptable values: true or false

# task_queue_timer: Determines how fast chunks are queued up. A value between 50-70 is recommended for modern AMD 5000 series and Intel 13th Gen CPUs in the Overworld,
# Adjust based on performance needs.

# parallel_tasks_multiplier: Sets the number of async tasks running concurrently. 'auto' will distribute the tasks based on your thread count.
# You can also set a specific integer value (e.g., 2, 4). It's recommended to stay below your total thread count.
# Example with 'auto' and 12 threads:
# world: 
#   parallel_tasks_multiplier: 4
# world_nether: 
#   parallel_tasks_multiplier: 4
# world_the_end: 
#   parallel_tasks_multiplier: 4

# print_update_delay: How often to print information (s-Seconds, m-Minutes, h-Hours). Default is 5s (5 seconds).

# radius: Defines how far the pre-generator should run (b-Blocks, c-Chunks, r-Regions) or 'default' to pre-generate until the world border.

# Settings
world:
  auto_run: false # Acceptable values: true or false
  task_queue_timer: 60 # Acceptable range: positive integer
  parallel_tasks_multiplier: auto # 'auto' or a positive integer value
  print_update_delay: 5s # Format: [value][s|m|h]. Example: 5s, 2h, 1d
  radius: default # Format: [value][b|c|r]. Example: 100b, 1c, 10r, or 'default'

world_nether:
  auto_run: false
  task_queue_timer: 60
  parallel_tasks_multiplier: auto
  print_update_delay: 5s
  radius: default

world_the_end:
  auto_run: false
  task_queue_timer: 60
  parallel_tasks_multiplier: auto
  print_update_delay: 5s
  radius: default

Changes:

  • /pregenoff has been updated to allow you to shut off specific generation tasks per world by using /pregenoff [world]. The default behavior for /pregenoff with no arguments will shut down all pre-generation tasks.
  • Parallel task multiplier increases load more linearly, allowing for better control of the load each task puts on the server. This means you won't have to push the parallel task multiplier past your thread count anymore.
  • Moved away from using PaperLib implementation and are instead using Paper's methods directly. This improved performance slightly for Paper server forks.
  • Improved printing for Bukkit/Spigot as well as performance. Default Bukkit/Spigot behavior with PaperLib was quite slow, only loading about 20 chunks per second. The new custom implementation for pre-generating chunks with Bukkit/Spigot is about 2-3x faster.

Fixes:

  • Reworked printing to make it more accurate and removed unnecessary/redundant prints that serve no use.

1.21

正式版
加载器
bukkit · paper · purpur · spigot
MC 版本
1.21
Chunker-1.21.jar35.9 KBSHA-1 52b03d53ac729dc79aabeee3cb3a851431cacef8获取文件 Chunker-1.21.jar
展开更新日志

Change Log:

  • Changed chunk unload threshold of Chunk.LoadLevel to TICKING instead ENTITY_TICKING, this improves performance by ~ 3 to 8%

1.21

正式版
加载器
bukkit · paper · purpur · spigot
MC 版本
1.21
Chunker-1.21.jar35.9 KBSHA-1 5f19ab862632d393117a4c4c0a70e00e7fb0f892获取文件 Chunker-1.21.jar
展开更新日志

Old Approach:

  • Utilizes the BukkitScheduler to run chunk unload tasks.
  • Tasks are scheduled within the game loop, which introduces some overhead and can limit concurrency.
  • Uses a scheduler to repeatedly check and unload chunks.

New Approach:

  • Uses virtual threads to handle chunk unload tasks.
  • Virtual threads are lightweight, allowing for many more concurrent tasks without significant performance penalties.
  • Runs tasks asynchronously, removing the dependency on the game loop scheduler.

Why the New Approach is Better:

  • The new approach using virtual threads offers lightweight concurrency and reduced overhead compared to the old scheduler-based method, simplifying the code and improving scalability for handling chunk unloading in Minecraft.

1.21

正式版
加载器
bukkit · paper · purpur · spigot
MC 版本
1.21
Chunker-1.21.jar36.9 KBSHA-1 cfea020092efc0235ac6743a8f310d15fef58e08获取文件 Chunker-1.21.jar