Unofficial site, not affiliated with modrinth.com.What is this?
BentoBox

BentoBox

SkyBlock, OneBlock, Boxed, SkyGrid, AcidIsland, CaveBlock, Poseidon, StrangerRealms - and more! These are just some of the island-based game modes that BentoBox powers. From the author of the original ASkyBlock.

17.6K
27

3.15.0

Release1 нед. назад

Список изменений

Release Highlights

  • ⚙️🔺 Island Delete & Purge Overhaul — The system has been completely redesigned: for game modes that are not void worlds, island reset/delete now soft-deletes islands instead of immediately removing blocks, region file cleanup is deferred and batched, and a new HousekeepingManager handles automated cleanup on a configurable schedule.
  • 🔺 Simplified Purge Commands/purge <days> now handles everything in one step (region file deletion included). The old subcommands /purge regions, /purge status, and /purge stop have been removed.
  • Custom Blueprint Bundle Icons — Blueprint bundles now support custom item model keys (e.g. myserver:island_tropical) and vanilla namespaced materials (e.g. minecraft:diamond) as icons, enabling resource-pack-driven island selection GUIs.
  • InvincibleVisitors XP Fix — XP orbs were incorrectly blocked from tracking visitors by the mob-targeting protection; they now properly home in on visitors while the EXPERIENCE_PICKUP flag still controls whether pickup is allowed.

Compatibility

✔️ Paper Minecraft 1.21.5 – 1.21.12 ✔️ Paper Minecraft 26.1.1 – 26.1.2 ✔️ Java 21+

Upgrading

  1. Take backups. (Make a copy of everything!)
  2. Stop the server.
  3. Replace the BentoBox jar with this one.
  4. Restart the server.
  5. The keep-previous-island-on-reset config setting has been removed — all resets now soft-delete. Remove it from your game mode configs to avoid warnings.
  6. You should be good to go!

🔺 Purge command changes: /purge regions, /purge status, and /purge stop no longer exist. The top-level /purge <days> command now identifies stale islands and deletes their region files in one pass. Update any scripts or documentation that reference the old subcommands.

⚙️ Config removal: keep-previous-island-on-reset has been removed. All island resets now soft-delete (equivalent to the old false behaviour, but with deferred disk cleanup). If you previously relied on keep-previous-island-on-reset: true to preserve old islands, use /purge protect on islands you want to keep.

🔡 Locale changes: Several purge-related locale keys have been removed, renamed, or updated. New keys for the deleted subcommand have been added. Regenerate or update your locale files.

Legend

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

New Features

⚙️🔺 Island Delete System Overhaul

[PR #2933] [PR #2949]

The system has been fundamentally redesigned for reliability and safety. Island resets in non-void worlds now always soft-delete (setting a deletable flag) rather than immediately destroying chunks. A new HousekeepingManager runs on a configurable schedule to sweep region files for soft-deleted islands and free disk space asynchronously.

IMPORTANT: The server can store a lot of the world chunks in RAM and so the Housekeeping or Purging will not appear to do anything until you restart the server. Please do not report that an island is not deleting until you have restarted the server.

The new /purge <days> command now identifies and deletes region files in one step — the previous behaviour only set the deletable flag in the database, leaving region files on disk until a separate /purge regions run. The new /purge deleted subcommand reaps region files for any island already flagged as deletable, regardless of age. /purge unowned now flags orphaned islands and prompts the admin to run /purge deleted afterwards. Again, the changes will not be seen in-game until server restart.

For game modes that use non-void world generation (Boxed, AcidIsland, CaveBlock, etc.), AdminDeleteCommand now soft-deletes and defers physical cleanup; simple void/overworld game modes (AOneBlock, BSkyBlock, etc.) keep the existing DeleteIslandChunks path. Island database rows are removed at server shutdown after region files are confirmed gone, ensuring crash-safe recovery.

The keep-previous-island-on-reset config setting has been removed — all resets now soft-delete by default.

💎 Custom Blueprint Bundle Icons

[PR #2941] Closes #2940

The "icon" field in blueprint bundle JSON files now accepts three formats:

  • Plain material name (existing): "icon": "DIAMOND"
  • Vanilla namespaced material (new): "icon": "minecraft:diamond"
  • Custom item model key (new): "icon": "myserver:island_tropical"

Custom model keys are applied to a PAPER base item using ItemMeta.setItemModel(), allowing resource-pack-defined icons to appear on island selection panels. A new getIconItemStack() API method returns the full ItemStack with model data applied; the existing getIcon() method returning Material remains unchanged for addon compatibility.


Bug Fixes

InvincibleVisitors: XP Orbs Blocked from Tracking Visitors

[PR #2948]

InvincibleVisitorsListener cancelled EntityTargetLivingEntityEvent for any entity targeting a visitor — including XP orbs. Since XP orbs use this event to home in on players, visitors could never pick up XP even when the EXPERIENCE_PICKUP flag allowed it. The fix skips cancellation when the entity is an ExperienceOrb; the flag listener remains responsible for controlling whether pickup is actually granted.

BungeeCord Hex Colour Not Recognised in Legacy Conversion

BungeeCords &#RRGGBB hex colour format was not being recognised in legacyToMiniMessage, causing hex colours from BungeeCord-formatted strings to fall through as literal text. The parser now handles this format correctly.

Spurious defaultRank Warnings for PVP Setting Flags

PVP-related setting flags were triggering incorrect defaultRank warning log messages on startup. These warnings were harmless but noisy; the condition is now correctly filtered.


Other Improvements

  • 🔡 Accept underscore locale filenames by auto-renaming to BCP-47 hyphen form on startup (e.g. pt_BR.ymlpt-BR.yml) — carries forward from 3.14.2 [PR note]
  • 🔡 Fix typo in Japanese locale file for block count message
  • Add PURGED event reason; fire IslandDeleteEvent immediately on soft-delete so addons receive timely notification
  • Add warning logs when island grid is null to aid debugging of rare world-unload edge cases
  • Extract AbstractPurgeCommand base class to remove duplication across purge subcommands
  • Remove accidentally committed .paper-nms/ build artifact and add to .gitignore [PR #2942]

FAQ: Island Delete & Purge for Admins

Island Delete

Q: I ran /bbox admin delete <player> but the island is still visible. Why?

It depends on your game mode. For game modes that use custom chunk generation — Boxed, AcidIsland, CaveBlock, and similar — the island is soft-deleted: it is marked as deletable in the database but its chunks remain on disk. The actual .mca region files are cleaned up later by the HousekeepingManager (if enabled) or when you run /purge deleted. Even after the files are deleted, Papers in-memory chunk cache means the island may still appear in-game until the next server restart. This is normal — do not report the island as not deleting until you have restarted.

Q: Why soft-delete instead of immediately removing chunks?

For worlds with non-trivial terrain (AcidIslands ocean, Boxeds generated box, CaveBlocks cave world), chunk regeneration is slow and expensive. Soft-delete defers the work safely: the island is immediately invisible to the gameplay systems (it can no longer be claimed or teleported to), and disk cleanup happens when the server has breathing room. It also means a crash before cleanup leaves data intact — the island stays deletable and is picked up by the next purge cycle.

Q: My game mode (BSkyBlock, AOneBlock) deletes island chunks immediately. Why is it different?

Void-world game modes use the DeleteIslandChunks / WorldRegenerator path, which regenerates the island area back to void immediately. Since there is no complex terrain to preserve, this is fast and safe. Soft-delete was not needed.

Q: Can I recover a soft-deleted island before the region files are reaped?

Yes — if the region files have not yet been deleted, you can clear the deletable flag via the database or an admin command and the island will be restored. Once the region files are gone, however, only a backup can save it. Take backups before mass deletes.


Purge

Q: What does /purge <days> do exactly?

It scans every .mca region file in the current game modes world (overworld, and nether/end if island-nether/end is enabled) that is older than <days> days. It then filters out:

  • regions containing the spawn island
  • regions containing purge-protected islands (/purge protect)
  • regions containing islands whose owner logged in within <days> days
  • regions containing islands above the configured Level addon threshold (if installed)

The remaining regions are shown in the server log with a summary, and you are asked to type confirm before anything is deleted.

Q: What is the difference between /purge <days> and /purge deleted?

CommandFilterWhat it deletes
/purge <days>Region files older than N days, minus active/protected islands.mca files (plus player data for absent players)
/purge deletedIslands flagged deletable in the DB (from resets, soft-deletes).mca files for those islands regions

Use /purge <days> for periodic housekeeping of abandoned islands. Use /purge deleted to immediately reap region files for islands that have already been marked for deletion (e.g. after a batch of /is reset or /admin delete operations).

Q: How do I delete orphaned (unowned) islands?

Run /purge unowned. This flags every unowned, non-protected, non-spawn island in the world as deletable (with confirmation). Then run /purge deleted to reap their region files. Restart the server to see the changes.

Q: I ran the purge but the island chunks are still visible in-game. What happened?

Paper caches chunk data in RAM. The .mca files have been deleted from disk, but the cache still has them until the server shuts down cleanly. Restart the server — on the next start, Paper will find no region file and treat those chunks as empty/void. This is expected behaviour, not a bug.

Q: What is the HousekeepingManager and how do I configure it?

HousekeepingManager is an automated background task that runs the purge on a schedule without admin intervention. It has two independent cycles:

  • Age sweep — runs every interval-days days and behaves like /purge <days> using the configured region-age-days value.
  • Deleted sweep — runs every deleted-interval-hours hours and behaves like /purge deleted, reaping region files for any island already flagged deletable.

Both cycles are disabled by default (housekeeping.enabled: false). Enable and configure them in your BentoBox config.yml under the housekeeping section.

Q: What does /purge protect do, and when should I use it?

It marks an island as purge-protected, permanently exempting it from all purge operations regardless of owner activity or region file age. Use it for community builds, showcase islands, or any island you never want auto-cleaned.

Q: What is /purge age-regions?

This is a developer/testing utility that artificially ages the per-chunk timestamps inside .mca files so they become candidates for /purge <days> without waiting real time. It is not intended for production use — it exists to make testing the purge pipeline practical.


Whats Changed

Full Changelog: https://github.com/BentoBoxWorld/BentoBox/compare/3.14.2...3.15.0

Файлы

BentoBox-3.15.0.jar(2.33 MiB)
Основной
Скачать

Метаданные

Канал релиза

Release

Номер версии

3.15.0

Загрузчики

Paper
Purpur

Версии игры

1.21.5–26.1.1

Загрузок

430

Дата публикации

1 нед. назад

Загрузил

ID версии

Главная