Skip to content

Releases: BentoBoxWorld/CaveBlock

Release 1.23.1

Choose a tag to compare

@tastybento tastybento released this 09 Jul 15:06
1d14270

CaveBlock 1.23.1

A bugfix release that closes the structure-suppression hole introduced in 1.23.0. Recommended for all servers running 1.23.0 that disable vanilla structures in a cave world.

🔺 Bug Fixes

  • Disabled structures no longer freeze the server — On a CaveBlock overworld, disabling a vanilla structure (e.g. Trial Chambers, Ancient Cities) only cancelled its placement, not its placement rules. Structure searches — /locate, Eyes of Ender, explorer/treasure maps, dolphins and villager map trades — kept proposing candidate positions that were all cancelled, scanning out to the radius cap and freezing the main thread. A new StructuresLocateEvent handler now removes disabled structures from the search up front (and cancels the search outright when nothing remains), so it returns "not found" instantly instead of hanging. Fixes #116. [PR #117]
  • Structures no longer slip through in the spawn area — The structure-suppression listener is now registered early in createWorlds(), before the initial spawn chunks generate. Previously the first structures around spawn were generated before the addon's island-world reference was assigned, so a disabled structure (such as Trial Chambers) could still appear near spawn. Fixes #116. [PR #118]

Compatibility

✔️ BentoBox API 3.14+
✔️ Minecraft 1.21.x
✔️ Java 21

Upgrading from 1.23.0

  1. Stop your server.
  2. Replace the old CaveBlock jar in plugins/BentoBox/addons/ with this one.
  3. Start your server. No config or locale changes are required.

Legend

  • 🔺 Special attention — fixes a main-thread freeze; upgrading is strongly recommended for 1.23.0 servers.

What's Changed

Full Changelog: 1.23.0...1.23.1

Release 1.23.0

Choose a tag to compare

@tastybento tastybento released this 07 Jul 02:46
f1c8ed6

CaveBlock 1.23.0

This release builds on the reworked overworld cave generation from 1.22.0 by handing server admins direct control over what fills their cave worlds. You can now switch off individual vanilla structures, thin out the dense 1.18+ cave network, and turn off the big carver ravines and tunnels — all from config.yml.

Highlights

  • ⚙️ Configurable overworld structures — Toggle individual vanilla structures (Ancient Cities, Trial Chambers, Mansions, Mineshafts, Strongholds and more) on or off in the overworld cave world. The largest, world-filling structures are disabled by default. Fixes #112.
  • ⚙️ Overworld cave density control — A new overworld-cave-fill setting re-solidifies a fraction of the vanilla cave network so worlds feel less like "nothing but passageways", while keeping biomes, ores, decorations and structures intact. Fixes #111.
  • ⚙️ Carver cave toggle — A new overworld-carvers setting lets you remove vanilla ravines and wide tunnels while keeping the noise caves.

What's New

⚙️ Configurable Overworld Structures

A new structures: section in config.yml lets you control which vanilla structures generate in the overworld cave world. Set any structure to false to stop it generating; structures not listed generate as normal. Use the vanilla structure key, for example ancient_city, trial_chambers, mineshaft, stronghold, mansion, monument, village_plains, and so on.

Large structures such as Ancient Cities and Trial Chambers can fill or unbalance a solid cave world, so they are disabled by default. This only affects the overworld.

structures:
  ancient_city: false
  trial_chambers: false
  mansion: false
  mineshaft: true
  stronghold: true

⚙️ Overworld Cave Density & Carvers

Vanilla generates a dense 1.18+ cave network (cheese and spaghetti caves) which, on a solid cave world, can feel like endless passageways. Two new settings let you tune this:

  • overworld-cave-fill (0.01.0, default 0.0) — re-solidifies a fraction of the cave air after generation using a low-frequency noise field, so whole regions close up into separate chambers rather than punching random single holes. 0.0 keeps every vanilla cave (the original behaviour); 1.0 fills nearly all caves. Try 0.40.6 to thin them out. Underground biomes, ores, decorations and structures are preserved either way.
  • overworld-carvers (default true) — generate vanilla carver caves (big ravines and long round tunnels) on top of the noise caves. Set to false to remove the ravines and wide tunnels while keeping the noise caves.

Both settings only affect newly generated chunks.

⚙️ Config note: These settings are added automatically to config.yml on first run after upgrading. Defaults preserve the existing 1.22.0 cave-generation behaviour, except that the largest structures are now off by default.

🔺 Note: overworld-carvers cannot be changed mid-game — BentoBox does not support altering it on an existing world. If you need to change it, do a full reset of your worlds and databases.

Compatibility

✔️ BentoBox API 3.14.1
✔️ Minecraft 1.21.x (Paper 1.21.11)
✔️ Java 21

Upgrading

  1. Stop your server.
  2. Replace the old CaveBlock.jar in your plugins/BentoBox/addons folder with this release.
  3. Start the server — the new structures, overworld-cave-fill, and overworld-carvers options are written to config.yml automatically.
  4. Adjust the new options to taste and reload. Note these settings only affect newly generated chunks, so already-explored areas are unchanged.

Legend

  • ⚙️ Config options have been added — review the new settings in config.yml.
  • 🔺 Special attention needed.

What's Changed

  • ⚙️ Add configurable structure toggles for the overworld by @tastybento in #113
  • ⚙️ Add overworld cave-density controls by @tastybento in #115

Full Changelog: 1.22.0...1.23.0

Release 1.22.0

Choose a tag to compare

@tastybento tastybento released this 06 Jul 15:36
9acf5c1

🎁 What's new

This release rebuilds how the Nether and The End are generated. Previously both dimensions were a solid block of rock that the populator peppered with random single blocks — including stray fire, which floated in mid-air and caused noticeable lag — and there were no real caves. Now both dimensions are solid worlds carved through by proper noise-generated cave systems, the Nether has natural biome regions across each island, and cave floors and ceilings are dressed with biome-appropriate decorations.

✨ Highlights

  • 🔺 Nether & End generation overhaul — solid dimensions with connected, noise-carved caves instead of a random block soup.
  • Nether lava sea — the lowest cave voids fill with lava rather than open air; the floor and roof stay solid so the world remains enclosed.
  • Natural Nether biomes — the five Nether biomes are shared into natural, roughly equal-area regions, so several biomes appear within a single island.
  • Biome-aware decorations — crimson/warped nylium, roots, fungi and vines; soul sand valleys with soul fire and bones; basalt deltas with columns and magma fires; glowstone ceiling patches; end rods and chorus in The End.
  • No more laggy floating fire — fire is now sparse and grounded on netherrack/magma, so it stays lit without the old lag.

Compatibility

✔️ BentoBox API 3.14+
✔️ Minecraft 1.21.x
✔️ Java 21

Upgrading

  1. As always, take backups just in case. (Make a copy of everything!)
  2. Stop the server.
  3. Replace the CaveBlock jar with this one.
  4. Restart the server.
  5. You should be good to go!

🔺 Nether/End note: The new generator only affects newly generated chunks. Nether and End chunks that were already generated with the old generator will look different from new ones, so you may see a seam where old meets new. If you want a consistent look, regenerate the Nether and End (or start fresh worlds) after upgrading.

Legend

  • 🔺 special attention needed.

New Features

🔺 Nether & End generation overhaul

[PR #109] Fixes #108

Both dimensions are now filled solid and then carved by a 3D Simplex noise cave generator (intersecting folded noise fields for winding tunnels, plus a lower-frequency field for larger chambers), keeping a solid margin against the floor and roof. The Nether gains a lava sea at the bottom of its caves. A new biome provider distributes the five Nether biomes (wastes, crimson forest, warped forest, soul sand valley, basalt deltas) into natural, roughly equal-area regions so several biomes appear within one island. A biome-aware decoration pass then dresses cave floors and ceilings — nylium, roots, fungi, vines, soul fire, bones, basalt columns, glowstone, end rods and chorus flowers — always resting on solid ground so nothing floats. The old random single-block fill (including the laggy floating fire, scattered cave-air and stray lava) has been removed; ore and rock veins remain embedded in the walls.


Other Improvements

  • Update API version, bump the build version, and save air in blueprints [cdd15e3]
  • Add Modrinth publish workflow [d7bf7f8]

What's Changed

Full Changelog: 1.21.0...1.22.0

Release 1.21.0

Choose a tag to compare

@tastybento tastybento released this 27 Jun 23:44
915da50

Release Highlights

  • 🔺 Vanilla cave world generation — The overworld now delegates to Minecraft's own 1.18+ noise generator, so islands are carved through genuine cheese, spaghetti, lush, dripstone and deep-dark caves, complete with vanilla ores, decorations, structures and underground biomes. The sky is capped with stone so the world stays solid rock from bedrock to the roof.
  • 💎 Reworked nether & end ore veins — Nether and End keep the fill-and-decorate approach with a new vein populator that places properly sized ore blobs (ancient debris, quartz, obsidian, glowstone and more).
  • 🔺 Paper 1.21.11 & Java 21 — CaveBlock now builds against the Paper API on Java 21 and targets the BentoBox 3.14 API.
  • 🔡 MiniMessage locales — All locale files have been converted from legacy colour codes to the MiniMessage format.
  • ⚙️ Config cleanup — World generation settings were reworked and dead options removed.
  • 🧪 Full test suite — A JUnit 5 + MockBukkit test suite was added to guard generation, height limits and addon lifecycle.

Compatibility

✔️ BentoBox API 3.14+
✔️ Paper Minecraft 1.21.5 – 26.2
✔️ Java 21

Upgrading

  1. As always, take backups just in case. (Make a copy of everything!)
  2. Stop the server.
  3. Replace the CaveBlock jar with this one.
  4. Make sure your server runs Paper Minecraft 1.21.5–26.2 on Java 21 and BentoBox 3.14 or newer.
  5. Review your config.yml — regenerate it or merge the new world-generation options (see callout below).
  6. Restart the server.
  7. You should be good to go!

🔺 World generation changed: Newly generated overworld chunks now use vanilla noise caves instead of solid-fill carving. Already-generated chunks are untouched, but new terrain at the edges of your world will look different from older areas. Test on a copy first if this matters to you.

⚙️ Config note: The dead netherBlocks, endBlocks and debug settings were removed and world-generation options were reworked. Back up your existing config.yml before letting the addon write the new defaults.

🔡 Locale note: Locale files were migrated to MiniMessage and a height-limit message key was renamed to caveblock.general.errors.cave-limit-reached. Regenerate your locale files if you have customised them.

Legend

  • 🔡 locale files may need to be regenerated or updated.
  • ⚙️ config options have been removed, renamed, or added.
  • 🔺 special attention needed.

New Features

🔺 Vanilla cave world generation

[PR #105]

The overworld generator was rewritten to delegate entirely to vanilla 1.18+ noise generation. This brings the full modern cave system — cheese caves, spaghetti caves, lush caves, dripstone caves, the deep dark and aquifer water pockets — along with vanilla ore distribution, cave decorations (dripstone, moss, glow berries, sculk) and structures such as mineshafts, dungeons, trial chambers, amethyst geodes and ancient cities. After vanilla terrain is generated, every column is capped with stone so there is no open sky, keeping CaveBlock's signature "solid rock" feel while the caves themselves are authentic. Underground biomes are placed naturally by the vanilla biome engine.

💎 Reworked nether and end ore generation

[PR #105] [PR #106]

The Nether and End continue to use a fill-and-decorate approach, now driven by a new NewMaterialPopulator and per-environment generators. Ore veins are placed with configurable sizes so resources such as ancient debris, nether quartz, obsidian and glowstone appear as proper veins rather than single blocks.

🧪 JUnit 5 test suite

[PR #105]

A complete JUnit 5 + MockBukkit test suite was added covering the chunk generator, the custom height-limit listener, world creation and the addon lifecycle, raising confidence for future changes.


Bug Fixes

Height limit checked the wrong world

[PR #101]

The custom height-limit listener compared against the player's current (from) world instead of the destination (to) world, which could misjudge cross-world movement. It now checks the destination world.

Nether/End ores generated as specks

[PR #106]

The ore populator ignored each ore's configured blob size, so every Nether and End ore generated as a 1–4 block speck. Veins are now sized from the configured value so ores generate as proper clusters.

Config reload did not refresh generators

[PR #107]

After a /caveblock reload, the generators kept the settings captured at startup, so changes to world depth, roof/floor and main blocks did not apply to newly generated chunks until a full restart. The generators now re-read settings on reload.


Other Improvements

  • ⚙️ Removed dead settings (netherBlocks, endBlocks, debug) and reworked world-generation config defaults.
  • 🔡 Converted all locale files from legacy colour codes to MiniMessage.
  • Added new cave blueprints and updated the existing cave configurations.
  • Switched the build from Spigot to Paper 1.21.11 on Java 21 and updated the BentoBox API to 3.14.
  • Updated all Maven plugins to their latest versions and pinned MockBukkit to Maven Central 4.110.0.
  • Updated the copyright year and added CLAUDE.md developer guidance.

What's Changed

  • 🔺 World generation overhaul, Paper 1.21.11 / Java 21, MiniMessage locales and config cleanup (Release 1.21.0) by @tastybento in #105
  • Check world based on to location not from location by @tastybento in #101
  • 💎 Honor Ore.blob() vein size in nether/end ore generation by @tastybento in #106
  • Refresh generators on config reload by @tastybento in #107

Full Changelog: 1.20.1...1.21.0

Version 1.20.1

Choose a tag to compare

@tastybento tastybento released this 06 Sep 15:43
dc95395

Bug fix release.

Compatibility

✔️ BentoBox API 2.7.1 - not backwards compatible
✔️ Minecraft 1.21.3 - not backward compatible
✔️ Java 17

Changelog

Legend

  • 🔡 locale files may need to be regenerated or updated.
  • ⚙️ config options have been removed, renamed or added.
  • 🔺 special attention needed.

What's Changed

Full Changelog: 1.20.0...1.20.1

Version 1.20.0

Choose a tag to compare

@tastybento tastybento released this 17 Nov 03:25
bff7ea9

This release updates to the latest API's and adds a few config.yml settings for multiple caves and teams.

Compatibility

✔️ BentoBox API 2.7.1 - not backwards compatible
✔️ Minecraft 1.21.3 - not backward compatible
✔️ Java 17

Changelog

Legend

  • 🔡 locale files may need to be regenerated or updated.
  • ⚙️ config options have been removed, renamed or added.
  • 🔺 special attention needed.

What's Changed

Full Changelog: 1.19.0...1.20.0

Release 1.19.0

Choose a tag to compare

@tastybento tastybento released this 17 Aug 17:59
bde6c49

This release updates to the latest API's and adds a few config.yml settings for multiple caves and teams.

Compatibility

✔️ BentoBox API 2.5.0
✔️ Minecraft 1.20.2 - 1.21.x
✔️ Java 17

Changelog

Legend

  • 🔡 locale files may need to be regenerated or updated.
  • ⚙️ config options have been removed, renamed or added.
  • 🔺 special attention needed.

What's Changed

  • Release 1.19.0 by @tastybento in #92
  • Avoid min and max y settings for ores. Fixes #91 [commit: 9e51156]
  • Return the Pladdon that was created. [commit: 3694f86]
  • ⚙️Add config settings for latest BentoBox API [commit: 30534ec]
  • ⚙️Update config.yml [commit: 0513f71]

Full Changelog: 1.18.0...1.19.0

Release 1.18.0

Choose a tag to compare

@BONNe BONNe released this 17 Apr 06:05

Compatibility

✔️ BentoBox API 1.23.0.
✔️ Minecraft 1.19
✔️ Java 17

Changelog

Legend

  • 🔡 locale files may need to be regenerated or updated.
  • ⚙️ config options have been removed, renamed or added.
  • 🔺 special attention needed.

What's Changed

  • Update to BentoBox 1.21 and 1.23 API changes
  • Update DE by @gitlocalize-app in #84
  • Update RU by @gitlocalize-app in #85
  • Caveblock TR locale by @gitlocalize-app in #87
  • Return to plugin.yml by @BONNe in #89

Full Changelog: 1.17.0...1.18.0

Release 1.17.0

Choose a tag to compare

@BONNe BONNe released this 05 Jan 19:26
3070abe

Compatibility

✔️ BentoBox API 1.21.0.
✔️ Minecraft 1.19
✔️ Java 17

Changelog

Legend

  • 🔡 locale files may need to be regenerated or updated.
  • ⚙️ config options have been removed, renamed or added.
  • 🔺 special attention needed.

What's Changed

  • Fixes a crash when entities are placed into the world.
  • Fixes an issue when ores were not generated in the correct form #77
  • Fixes the grass layer issue that cripples server performance if bedrock ceiling were enabled.

Full Changelog: 1.16.0...1.17.0

Release 1.16.0

Choose a tag to compare

@BONNe BONNe released this 17 May 19:23
0cbb775

Compatibility

✔️ BentoBox API 1.19.0.
✔️ Minecraft 1.18.1
✔️ Java 16

Changelog

Legend

  • 🔡 locale files may need to be regenerated or updated.
  • ⚙️ config options have been removed, renamed or added.
  • 🔺 special attention needed.

What's Changed

  • ⚙️New config option natural-surface - generates surface that is natural(-ish). Currently, it may be just grass and dirt layers.
  • ⚙️New config option natural-caves - generate caves inside the world.
  • ⚙️New config option natural-bedrock - generates natural looking bedrock pattern.
  • Fixes bugs with floor and ceiling options not working.
  • Fixes bugs with incorrect ore generation #77

Full Changelog: 1.15.0...1.16.0