inf build area
HighBuildA Paper26.2 plugin that removes Minecraft's build height limit and keeps the extra space for admins. What it does Vanilla stops you building above Y 319 in the overworld (Y 255 in the Nether and End). This raises the real limit to Y 2031 — the hig
Compatibility
Minecraft: Java Edition
Platforms
Creators
Details
HighBuildA Paper26.2 plugin that removes Minecraft's build height limit and keeps the extra space for admins. What it does Vanilla stops you building above Y 319 in the overworld (Y 255 in the Nether and End). This raises the real limit to Y 2031 — the highest Y the game will load at all. That's 1712 extra blocks.
It does that world-wide, then blocks players without permission from using anything above the vanilla line. Non-admins don't notice it exists.
Vanilla With HighBuild (admins) Non-admins Overworld -64 … 319 -64 … 2031 -64 … 319 Nether 0 … 255 0 … 2031 0 … 255 End 0 … 255 0 … 2031 0 … 255 No client mod. No commands needed. Install, restart twice, build normally.
How it works A dimension's height lives in its dimension_type, which is only readable from a data pack. Bukkit's World#setBlockState and every vanilla command run through Level#isInWorldBounds, which rejects anything outside the loaded column — so no plugin can raise the ceiling through the Bukkit API. The column itself has to change.
On startup the plugin:
Reads data/minecraft/dimension_type/*.json straight out of the running server jar Copies them into <world>/datapacks/highbuild/, rewriting only min_y, height and logical_height Registers the pack in level.dat Step 1 is the important design choice. Because it patches the live vanilla files rather than carrying a copy inside the plugin, every other setting — sky colour, bed rules, background music, infiniburn, default_clock, anything a future version adds — is preserved automatically instead of being silently reverted to an older shape.
Two details that took real digging:
26.2 requires all four of pack_format, supported_formats, min_format and max_format in pack.mcmeta. Three other shapes are rejected, and the server's own error messages are what revealed the rule. Bukkit.dispatchCommand truncates arguments at the /, so datapack enable file/highbuild silently becomes datapack enable file. Hence direct PackRepository access instead. Admin-only enforcement Players without highbuild.bypass have placements, breaks, block damage and bucket use above the vanilla limit cancelled. Optional: block them from flying up there at all.
The limit used is min(configured vanilla limit, the world's own ceiling), so a world the data pack didn't reach is never touched.
Commands Command What it does /hb status Build ranges per world /hb reload Re-read config, regenerate data pack /hb fill <x1 y1 z1> <x2 y2 z2> <block> [replace|air] Bulk fill, spread over ticks /hb platform <radius> <block> [y] Platform under your feet /hb tp <y> Teleport yourself to a Y level /hb and /highbuildlimit are aliases. fill is rate-limited so a500k-block build can't trip the watchdog.
Permissions: highbuild.bypass (build high) and highbuild.admin (use the commands). Both default to op.
Configuration Fully commented config.yml: target-max-y, per-dimension min-y / logical-height / vanilla-max-y, guard toggles, fill limits, and all messages in MiniMessage.
logical-height defaults to the full column, which means mobs can naturally spawn up high. Lower it if that bothers you — the trade-off is sky light stops above the threshold.
Limits worth knowing Y 2031 is a hard engine limit, not a setting. I verified on a live server: Y 2032 and Y 3000 both return "That position is out of this world!". It's the chunk format's section index, so no data pack, plugin or mod can beat it. Full restart required after install or any height change. A running world keeps the column it booted with. Back up first. Removing the pack from a world that already used it can corrupt blocks above 319. Don't lower the height of a world that already has blocks above the old limit. "Ignoring heightmap data for chunk…" appears once, the first time existing chunks load after the column grows. They get recomputed. Harmless. Verified on a real server Not just compiled — booted Paper 26.2 and tested: column raised in all three dimensions, blocks placed and confirmed present at Y 700 and at the Y 2031 ceiling, Y 2032 and Y -65 correctly refused, blocks survived a full shutdown/restart cycle, data pack auto-enable works, and reload is idempotent. Zero exceptions in the log.
Requires: Paper 26.2, Java 25. Built from HighBuild/ with build.cmd → target/HighBuild-1.0.0.jar.

