Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for firesmasher

Plan-first chunk pre-generation for Paper 1.21.11 — shows what will generate before it starts.

Report FastWorldGen?

R

1.2.0

Changelog

Unreleased

  • Fixed: /fwg wand and /fwg continue (and in principle any subcommand) could silently fall through to the usage/help message for a non-op player in-game, even when that player held the specific permission node the subcommand checks for in code (e.g. fastworldgen.wand). Cause: plugin.yml set a blanket top-level permission: fastworldgen.status on the /fwg command itself. Bukkit enforces that gate before onCommand runs at all, so a player without fastworldgen.status specifically was rejected by Bukkit itself — independent of whichever subcommand permission they actually had. Console was unaffected because ConsoleCommandSender bypasses permission checks entirely, which is why the bug only showed up in-game. Removed the top-level permission; every subcommand already enforces its own specific permission node in code.

FastWorldGen 1.2.0

  • Added self-healing configuration: on every plugin enable and every /fwg reload, config.yml is compared against the plugin's bundled defaults/schema. Missing keys are restored, keys with the wrong value type are reset to their default, and keys that aren't part of the schema at all are removed. A timestamped config.yml.bak-<epoch-ms> backup is written next to config.yml whenever a repair actually changes something, and a summary of what was repaired is logged to console.

  • Removed: Custom Generation scripting entirely. This drops the /fwg script subcommand (run/list/cancel/status), the fastworldgen.script permission, the embedded Mozilla Rhino dependency, the scripting config section, the scripts/ folder, and docs/SCRIPTING.md. Everything else (planning, start/pause/resume/cancel, the wand, the web dashboard) is unaffected.

  • Added update checking: on enable, FastWorldGen asynchronously queries Hangar (hangar.papermc.io/firesmasher/FastWorldGen) for the latest release and compares it against the running version. Result is logged to console in color; if an update is available, operators (and fastworldgen.admin holders) get a colored chat notice shortly after joining.

  • Added the wand: /fwg wand give hands out a named Blaze Rod; left-click sets position 1, right-click sets position 2 (WorldEdit-style, clicks are cancelled so nothing breaks or places). /fwg wand save <name> fills a vanilla Structure from the selection and writes it to data/structures/<name>.nbt. Also adds /fwg wand pos1|pos2|info|clear.

    • New fastworldgen.wand permission (defaults to op, included in fastworldgen.admin).
    • Selections capped at 2,000,000 blocks and must stay within a single world.

Requirements: Paper 1.21.11, Java 21+.

FastWorldGen 1.1.0

  • Added /fwg continue [world] to explicitly re-plan and continue a saved job after a restart, instead of that only happening automatically when another command triggered it.
  • Memory: regions are now streamed as compact bitmasks instead of per-chunk objects during planning, and generated chunks are unloaded once a configurable number stay loaded at once (safety.max-loaded-chunks), bounding memory growth on large-radius jobs.
  • Default config and built-in fallbacks retuned for a 4 GB heap / 2 CPU cores: lower chunks-per-tick-batch, max-chunks-per-tick-batch, max-inflight-chunk-tasks, max-loaded-chunks, and regions-per-batch, with adjusted MSPT watermarks. Requirements: Paper 1.21.11, Java 21+.

FastWorldGen 1.0.0

Initial release.

  • Plan-first pipeline: /fwg plan shows total chunks, existing chunks, chunks to generate, and region count before any generation happens.
  • /fwg start begins generation immediately after planning; works with just a world name (uses a configurable default radius) or explicit radius/bounds + optional center.
  • Existing chunks are skipped by default; pass --fresh to force regeneration.
  • Work is grouped into 32×32 chunk regions and batches, ordered for spatial locality.
  • Adaptive throughput throttles generation based on live server tick time (MSPT).
  • /fwg status shows live progress, speed, ETA, region/batch counts, and MSPT.
  • Detailed logging: per-region and per-batch completion lines as generation runs, plus a full summary (chunks generated/failed, elapsed time, average speed) when a job finishes.
  • /fwg pause / /fwg resume / /fwg cancel, all graceful — in-flight chunk operations are allowed to finish rather than being interrupted.
  • Job state survives server restarts; the world is re-inspected on startup rather than trusting stored progress.
  • Full permission set, all defaulting to op.

Requirements: Paper 1.21.11, Java 21+.

Information

Published
November 4, 2026
0Downloads

Platforms

Paper
Paper
1.21.11