Maze Generator 图标

Minecraft 服务端插件

Maze Generator

Generate custom, random and huge labyrinths. Customizable themes!

版本范围
1.20–26.1.2
下载量
4,858

插件介绍

Maze Generator

Epic showcase by KasaiSora

Usable on low end servers or big crowded servers

Graph of performance


📧 Feel free to contact me at mazegenerator@radqnico.anonaddy.com


MazeGenerator 🧩

Download on Modrinth

Build massive, themed mazes in Minecraft without freezing the server. The plugin generates the maze layout incrementally and places blocks over time with a configurable per-tick budget. Work is grouped per chunk, and chunks are only loaded on demand at the exact moment blocks need to be placed.

  • Paper

Features ✨

  • Streaming generation and placement - no giant in-memory queues.
  • On-demand chunk loading only (never preloads).
  • Autotuned per-tick time budget to protect TPS.
  • Chunk-grouped placement (multiple cells per job) to reduce overhead.
  • Weighted material themes for floor, wall, and top (themes.yml).
  • Options for hollow walls and closed roofs.
  • Tab-complete for arguments, plus /maze help, /maze stop, /maze reload.

Installation ⚙️

  1. Build or download the plugin JAR.
  2. Drop the JAR into your server’s plugins/ folder.
  3. Start the server once to generate default config and data files.

Files created/used:

  • plugins/MazeGenerator/config.yml - performance and behavior settings.
  • plugins/MazeGenerator/themes.yml - material weights per theme.
  • plugins/MazeGenerator/messages.yml - user-facing messages.

Use /maze reload after changing these files, or restart the plugin/server.


Commands ⌨️

  • /maze - starts a build with sensible defaults near your position.
  • /maze stop - stops all active maze builds.
  • /maze help - prints usage and argument reference.
  • /maze reload - reloads config.yml, themes.yml, and messages.yml.

Permissions:

  • mazegenerator.maze - use /maze and view status.
  • mazegenerator.reload - use /maze reload.

Arguments (key:value)

Order does not matter; tab-complete suggests keys and many values.

  • x, y, z: World coordinates (defaults to your position).
  • world: World name (defaults to your world).
  • mazeSizeX, mazeSizeZ: Maze size in cells (odd enforced internally).
  • cellSize: Block width and length of each cell footprint.
  • wallHeight: Vertical wall height (excluding top layer).
  • hasExits: true|false - ensure at least one exit at maze border.
  • additionalExits: Extra exits on top of the first (0..N).
  • hasRoom: true|false - carves a central rectangular room.
  • roomSizeX, roomSizeZ: Room dimensions (cells) for the central room.
  • erosion: 0..1 - occasional small holes in nearby walls while carving.
  • closed: true|false - roof over paths as well (otherwise paths are open to sky).
  • hollow: true|false - wall cells as a shell (edges only) for huge block savings.
  • themeName: Theme key from themes.yml (tab-complete lists available themes).

Examples:

  • /maze mazeSizeX:51 mazeSizeZ:51 cellSize:2 wallHeight:4 hasExits:true additionalExits:1 themeName:forest
  • /maze world:world_nether x:100 y:80 z:-200 mazeSizeX:41 mazeSizeZ:41 themeName:snowy
  • /maze mazeSizeX:75 mazeSizeZ:75 cellSize:3 wallHeight:5 hasExits:true hollow:true closed:false themeName:desert

Configuration (config.yml) 🛠️

Defaults are tuned to preserve TPS on most servers. Key settings:

  • millis-per-tick (default 3) Base time budget per tick used by the builder. Autotune adjusts this up or down within bounds.

  • jobs-batch-cells (default 64) How many maze cells the scheduler tries to collect per top-up. Larger values reduce overhead a little, but can increase burstiness.

  • cells-per-job (default 16) How many cells to pack into a single placement job for a given chunk. Higher values reduce scheduler overhead and redundant chunk loads.

  • set-block-data (default false) Attach CustomBlockData to placed blocks. For most builds this should remain false (saves I/O and memory).

  • defer-wall-fill (default false) Build order option:

    • true: carve first (corridors appear quickly), then fill remaining walls; generally fewer total writes.
    • false: fill walls first, then carve; looks like a solid mass at first, then paths appear.
  • autotune: (enabled by default)

    • min-millis-per-tick, max-millis-per-tick - bounds for the per-tick time budget.
    • increase-step, decrease-step - how fast the budget grows or shrinks.
    • spare-high, spare-low - thresholds based on remaining time in the current 50 ms tick.
  • status-interval-jobs (default 1000) Prints a progress update in chat roughly every N jobs executed.

Note: The plugin loads chunks on demand at placement time. There is no preloading and no background chunk budgets.

Example: Smooth (minimal TPS impact)

millis-per-tick: 2
jobs-batch-cells: 32
cells-per-job: 8
set-block-data: false

autotune:
  enabled: true
  min-millis-per-tick: 1
  max-millis-per-tick: 4
  increase-step: 1
  decrease-step: 2
  spare-high: 18
  spare-low: 12

defer-wall-fill: true
status-interval-jobs: 500

Example: Balanced (default-like)

millis-per-tick: 3
jobs-batch-cells: 64
cells-per-job: 16
set-block-data: false

autotune:
  enabled: true
  min-millis-per-tick: 1
  max-millis-per-tick: 8
  increase-step: 1
  decrease-step: 2
  spare-high: 18
  spare-low: 12

defer-wall-fill: false
status-interval-jobs: 1000

Example: Fast (accept some risk of spikes)

millis-per-tick: 5
jobs-batch-cells: 128
cells-per-job: 32
set-block-data: false

autotune:
  enabled: true
  min-millis-per-tick: 2
  max-millis-per-tick: 10
  increase-step: 1
  decrease-step: 1
  spare-high: 20
  spare-low: 10

defer-wall-fill: true
status-interval-jobs: 750

Themes (themes.yml) 🎨

Themes control weighted material selection for three sections: floor, wall, and top.

Example:

desert:
  floor:
    SANDSTONE: 20
    RED_SANDSTONE: 10
  wall:
    SAND: 40
    CHISELED_SANDSTONE: 20
  top:
    SANDSTONE: 3

forest:
  floor:
    GRASS_BLOCK: 20
    DIRT: 2
  wall:
    OAK_LOG: 30
    OAK_LEAVES: 25
  top:
    OAK_LOG: 3

Weights are positive integers. Higher weight means more likely. If a section is empty, it falls back to STONE.

Tips:

  • Use more variety in wall and top for a more organic look.
  • Keep top materials lighter for interesting silhouettes.

Messages (messages.yml) 💬

  • plugin-prefix, job-started, job-status, job-done, job-stopped, command-error, no-permission, config-reloaded.
  • Color codes use & and are translated on send.

How Autotune Works (Quick) ⚖️

  • Measures spare time within the current 50 ms server tick (based on a tick start event).
  • If there is plenty of spare time (spare >= spare-high), it increases the per-tick time budget by increase-step up to max-millis-per-tick.
  • If the tick is tight (spare < spare-low), it decreases by decrease-step down to min-millis-per-tick.
  • The builder places blocks only until now + currentMillisPerTick in each tick.

Performance Tips 🚀

  • Use hollow: true and a larger cellSize to reduce total blocks dramatically.
  • Increase cells-per-job and jobs-batch-cells to reduce scheduling overhead.
  • Keep set-block-data: false unless you really need it.
  • Prefer defer-wall-fill: true for faster time-to-visible maze and fewer writes.

Troubleshooting 🧰

  • "Maze seems stuck" or no progress:

    • Chat updates are periodic. Lower status-interval-jobs for more frequent feedback.
    • Check console for errors. If chunks are extremely far, each job will load them on demand; this can be slow but should not stall.
  • TPS dips during build:

    • Lower millis-per-tick, jobs-batch-cells, or cells-per-job.
    • Keep autotune.enabled: true so the budget backs off automatically.
  • Themes look too uniform:

    • Add more materials and weights to wall and top sections.

Have fun, cheers! 🎉

版本与下载

推荐下载

MazeGenerator-2.0.jar版本 2.0 · 98.3 KBSHA-1 3beed7cf7f874c83c4c5525234566ecf6f73c565下载 MazeGenerator-2.0.jar

2.3-1.21.11

测试版
加载器
paper · purpur
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
MazeGenerator-2.3-1.21.11.jar123.8 KBSHA-1 b2184cdff4acb1eac85f3837c5ec01443b27496e获取文件 MazeGenerator-2.3-1.21.11.jar
展开更新日志

LeafMC support testing

2.2-26.1.2

测试版
加载器
paper
MC 版本
26.1 · 26.1.1 · 26.1.2
MazeGenerator-2.2.jar98.4 KBSHA-1 af3e2c6c361fd88f7aef14708523a1143e20f5ca获取文件 MazeGenerator-2.2.jar
展开更新日志

Several bugs fixed, experimental multilayer mazes.

2.2-1.21.11

测试版
加载器
paper
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
MazeGenerator-2.2-1.21.11.jar122.3 KBSHA-1 c7c9539826d1076939e113182df560103a36ffe2获取文件 MazeGenerator-2.2-1.21.11.jar
展开更新日志

Several bugs fixed, experimental multilayer mazes.

2.1-26.1

测试版
加载器
paper
MC 版本
26.1 · 26.1.1 · 26.1.2
MazeGenerator-2.1.jar116.5 KBSHA-1 41873221165fd963ccaf40215f39105f6203bb27获取文件 MazeGenerator-2.1.jar
展开更新日志

Experimental multi-layer mazes

2.0

正式版
加载器
paper
MC 版本
26.1 · 26.1.1 · 26.1.2
MazeGenerator-2.0.jar98.3 KBSHA-1 3beed7cf7f874c83c4c5525234566ecf6f73c565获取文件 MazeGenerator-2.0.jar
展开更新日志

Dialog feature polished.

1.9

正式版
加载器
paper
MC 版本
26.1 · 26.1.1 · 26.1.2
MazeGenerator-1.9.jar98.2 KBSHA-1 b0efbabc72d6d36b4f1c5913c61248e7fd6aef0b获取文件 MazeGenerator-1.9.jar
展开更新日志

For minecraft 26.1 Added Dialogs support. Try /maze

1.8.1

正式版
加载器
paper
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
MazeGenerator-1.8.1.jar90 KBSHA-1 2ab6fc42674502849383f655dbc5daf42ecefe32获取文件 MazeGenerator-1.8.1.jar
展开更新日志

Changelog

1.8.1

  • Phase-aware progress: separate generation and placement tracking with per-phase boss bars; action bar updates every second, chat once per minute.
  • Configurable preview skip: request-confirm=false builds immediately without particle preview; new build-no-preview message.
  • Adaptive placement batching and optional disk spillover to limit RAM (placement-max-pending, disk-spill.*), with size strings (10M, 2G) parsed via SizeParser.
  • Removed maze size/height caps; only world Y-range is enforced.
  • Removed unused non-stream MazePlacer implementation.
  • Refined tab-completion to include confirm/cancel and refactored command handling.
  • Preview height columns render top-down.
  • Separated chat update cadence (1/min) from bossbar/action bar cadence (1/sec).

Changes prior to 1.7.3 are not listed here.

1.7.4

正式版
加载器
paper
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
MazeGenerator-1.7.4.jar71.3 KBSHA-1 57518b1ea9a8ab440a455df1d4489eb2f53f93e3获取文件 MazeGenerator-1.7.4.jar
展开更新日志

Compiled for Minecraft 1.21.10

1.7.3

正式版
加载器
paper
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
MazeGenerator-1.7.3.jar73.9 KBSHA-1 a598e8854b11b8c746ce6d11146c8d126e0bb047获取文件 MazeGenerator-1.7.3.jar
展开更新日志

Now capable of generating larger mazes. Autotuning the building to make it faster without impacting lag. Internal refactor to make it more efficient. New README.

1.7.2

早期版
加载器
paper
MC 版本
1.21 · 1.21.1 · 1.21.2 · 1.21.3 · 1.21.4 · 1.21.5 · 1.21.6
MazeGenerator-1.7.2.jar55.8 KBSHA-1 8c5d8cefd64f562983c20fce0a9203adca278779获取文件 MazeGenerator-1.7.2.jar
展开更新日志

Now API returns a completable future

1.7.1

早期版
加载器
paper
MC 版本
1.21 · 1.21.6
MazeGenerator-1.7.1.jar55.5 KBSHA-1 062593e6d4a1998e4aab4b5db153c141d6884fd7获取文件 MazeGenerator-1.7.1.jar
展开更新日志

Added Java APIs static class it.nicoloscialpi.mazegenerator.MazeApi in alpha testing

1.6.1

正式版
加载器
paper
MC 版本
1.21.4
MazeGenerator-1.6.1.jar31.2 KBSHA-1 31cde62b930515fabd1cd88af1e8d114392933ad获取文件 MazeGenerator-1.6.1.jar
展开更新日志

QOL: More efficiency on memory: 10000x10000 uses 8GB of memory

1.6.0

正式版
加载器
paper
MC 版本
1.21.4
MazeGenerator-1.6.0.jar29.5 KBSHA-1 11146ebb777e9de38c21392a77b511c53313970c获取文件 MazeGenerator-1.6.0.jar
展开更新日志
  • Compatibility with Paper 1.21.4

Sorry for the delay guys

1.5.0

正式版
加载器
paper
MC 版本
1.20 · 1.20.1 · 1.20.2 · 1.20.3 · 1.20.4 · 1.20.5 · 1.20.6
MazeGenerator-1.5.0.jar29.7 KBSHA-1 5817f14bedc11fa78e9f4954fe5b33944a653e35获取文件 MazeGenerator-1.5.0.jar
展开更新日志

Minecraft 1.20.6 compatiblity

1.4.0

正式版
加载器
paper
MC 版本
1.20 · 1.20.1 · 1.20.2 · 1.20.3 · 1.20.4
MazeGenerator-1.4.0.jar29.7 KBSHA-1 75e8580d3f27d90818c057b0f19e1145b23e8804获取文件 MazeGenerator-1.4.0.jar
展开更新日志

Changes:

  • Now you can generate enclosed mazes! Closed maze animation
  • Autocompletion for x,y,z coordinates while looking a block Autocompletion

1.3.3

正式版
加载器
paper
MC 版本
1.20 · 1.20.1 · 1.20.2 · 1.20.3 · 1.20.4
MazeGenerator-1.3.3.jar28.5 KBSHA-1 2529170400887dfe77f084d27f68685b8a59a39f获取文件 MazeGenerator-1.3.3.jar
展开更新日志

Changes:

  • Bug fixes.

1.3.1

正式版
加载器
paper
MC 版本
1.20 · 1.20.1 · 1.20.2 · 1.20.3 · 1.20.4
MazeGenerator-1.3.1.jar28.5 KBSHA-1 1dd29f5c3e297cf272c29b8c596b9a93335c73a3获取文件 MazeGenerator-1.3.1.jar
展开更新日志

Changes:

  • Fixed a little problem with the progress percentage display
  • Added command permission

1.3.0

正式版
加载器
paper
MC 版本
1.20.4
MazeGenerator-1.3.0.jar28.4 KBSHA-1 0d968b1befa9fbe95ab3507e9ecd7e96ee4068f9获取文件 MazeGenerator-1.3.0.jar
展开更新日志

Changes:

  • More memory efficent in "normal mode"
  • Much better "low memory" mode
  • Variuos code enhancements

1.2

正式版
加载器
paper
MC 版本
1.20.4
MazeGenerator-1.2.jar26.8 KBSHA-1 1cf11f15077dd2cd8ceef0672f6d716b129b72e4获取文件 MazeGenerator-1.2.jar
展开更新日志

v1.2

Fixes:

  • Plugin prefix

v1.1

Adds:

  • Added roomsAmount parameter to generate open spaces in the labyrinth (if possible)

v1.0

First version with basic but solid functionalities.