Tags
Creators
Details
3.14.1
Compatibility
Changes
A small bug-fix release for 3.14.0. If you're upgrading from 3.13.x or earlier, see the 3.14.0 changes below ā they all apply to this release.
Compatibility
āļø Paper Minecraft 1.21.5 ā 1.21.11 āļø Paper Minecraft 26.1.1 āļø Java 21+
Upgrading
- Take backups. (Make a copy of everything!)
- Stop the server.
- Replace the BentoBox jar with this one.
- Restart the server.
š Coming from 3.13.x? Existing
.blublueprint files will continue to load alongside the new.blueprintJSON format introduced in 3.14.0 ā no migration step required.
š” Coming from 3.13.x? All 22 non-English locale files were corrected in 3.14.0. If you use customised locale files, regenerating them is recommended.
3.14.1 Bug Fixes
Fix </green> leaking as literal text in flag setting tooltips
[594aaf04]
User.convertToLegacy was splitting mixed MiniMessage/legacy strings on \n before parsing, so a multi-line tag span like <green>foo\nbar</green> was processed as two independent lines ā the second line had a closing tag with no opening, and MiniMessage rendered </green> as literal text in the lore. The whole string is now parsed as a single unit so the tag span stays balanced. The now-unnecessary <green>...</green> wrapper around [description] in the flag description/menu/setting layouts has also been dropped from every bundled locale file.
Fix lava-tip hologram showing raw <orange> MiniMessage tags
[2bba02bb]
The 3.14.0 obsidian-scooping lava-tip locale entry used <orange>, which is not a valid MiniMessage named colour ā Minecraft's named-colour set tops out at <gold>. MiniMessage left the unknown tag as literal text, so the hologram rendered <orange>Scoop this up with a bucket</orange> verbatim. Switched to <gold> to match the Minecraft colour palette and the rest of the locale conventions.
3.14.1 Other Changes
Flag.Builder minimumRank API
[PR #2936]
New Flag.Builder.minimumRank(int) lets addons declare the lowest rank that may be selected for a PROTECTION flag (defaults to VISITOR_RANK, fully backwards-compatible). The auto-assigned CycleClick listener is constructed with the configured minimum so the settings-panel click-cycle won't let players select ranks below it. build() clamps defaultRank up to minimumRank (with a logged warning) so a misconfigured flag still has a selectable default. Adds Flag.getMinimumRank() and Flag.getClickHandler() getters. Binary-compatible ā additive only.
Internal: expanded test coverage
Several internal subsystems received substantial test-coverage improvements (no behaviour change):
IslandsManager(51% ā 64.6%)LocalesManager(40% ā 49.2%)YamlDatabaseHandler(13% ā 72%)AddonsManager(26% ā 46%)BlueprintsManager,BlueprintClipboard,SafeSpotTeleport,WebManager,Util,ItemParser
Documentation: CLAUDE.md now documents the MiniMessage ā legacy round-trip pitfalls that produced the two bugs above.
3.14.0 changes
The full 3.14.0 changelog is reproduced below for anyone upgrading from 3.13.x or earlier.
Release Highlights
- āļø Island Defaults tab in Admin Settings ā A new GUI tab lets admins view and edit default island protection flags directly from the settings panel ā no config editing required.
- š” Message delivery type tags ā Locale strings now support
[actionbar],[title],[subtitle], and[sound:name:volume:pitch]tags, letting you control exactly how messages are displayed to players. - ā” Chunk pre-generation ā A new background chunk pre-generation system warms island chunks ahead of time, eliminating lag spikes on first visit. Disabled by default.
- š” Obsidian scooping lava tip ā A floating hologram appears above newly formed scoopable obsidian, teaching players they can scoop it. Disappears when scooped or after a configurable timeout.
- š” Flag state placeholders ā New placeholders expose every flag's enabled/disabled state for use with PlaceholderAPI (e.g.,
%bskyblock_flag_PVP_OVERWORLD%). - š Plain JSON blueprints ā Blueprints are now stored as human-readable
.blueprintJSON files instead of zipped.blubinaries. Existing.blufiles are loaded automatically with full backward compatibility. - šŗ Minecraft 26.1.1 region purge support ā Island deletion now handles Minecraft 26.1.1's updated world file structure.
Legend
- š” locale files may need to be regenerated or updated.
- āļø config options have been removed, renamed, or added.
- šŗ special attention needed.
New Features (3.14.0)
š Plain JSON Blueprint Format ā PR #2911
Blueprints have been switched from a zipped binary .blu format to plain JSON .blueprint files. This makes blueprints human-readable, diffable, and easy to edit in any text editor. Existing .blu files are detected and loaded automatically ā no migration step required.
āļø Island Defaults Tab in Admin Settings GUI ā PR #2912
A new "Island Defaults" tab has been added to the Admin Settings panel, letting admins view and modify default protection flags for new islands directly through the GUI.
š” Message Delivery Type Tags ā PR #2910
Locale strings now support [actionbar], [title], [subtitle], and [sound:name:volume:pitch] tags placed at the start of locale values to control how messages are shown to players.
ā” Chunk Pre-Generation Manager ā PR #2916
A new chunk pre-generation system can warm island area chunks in the background, eliminating lag when players first visit. Disabled by default in config.yml.
š” Obsidian Scooping Lava Tip Hologram ā PR #2915
When scoopable obsidian forms (lava + water on an island), a small floating hologram now appears above the block to teach players they can pick it up. Removed when scooped or after a configurable duration. (See 3.14.1 fix above for the <orange> tag bug.)
š” Flag State Placeholders ā PR #2913
New PlaceholderAPI placeholders expose the enabled/disabled state of every protection, setting, and world setting flag.
āļø MythicMobs Hook: Configurable Delay & Callback ā PR #2929
The MythicMobs integration now supports a configurable delay for mob spawning and a callback that fires once the mob has been spawned.
šŗ Minecraft 26.1.1 Region Purge Support ā PR #2902
Island deletion's region file purge now handles Minecraft 26.1.1's updated world file structure.
Bug Fixes (3.14.0)
- Fix MiniMessage formatting on panel items ā PR #2903 ā default italic and cross-nested tag handling in the legacy-to-MiniMessage converter.
- Fix bold and decoration leaking across legacy round-trip ā PR #2918 (fixes #2917) ā bold/italic/underlined/strikethrough/obfuscated leaking into subsequent text segments.
- Fix bold formatting leaking past prefix substitution ā PR #2907
- Fix extra blank line in confirmation prompts ā PR #2927 (fixes #2919)
- Preserve addon placeholders across
/bbox reloadā PR #2931, PR #2932 (fixes #2930) - Skip locale files with invalid BCP-47 tags ā PR #2928
- Hide tooltip clutter in all panels ā PR #2924 ā banner patterns, potion effects, etc. hidden via the modern
TooltipDisplaydata component API. - Fix locale corrections across 22 languages ā PR #2905
- Preserve mid-text spaces in legacy/MiniMessage round-trip
- Support MiniMessage in welcome sign locale entries
- Defer island saves while settings panel is open ā PR #2926
Other Improvements (3.14.0)
- Improved warning messages for incompatible addons in AddonsManager
- Updated Russian locale translations ā PR #2925
- Added test coverage for
visited_island_rankplaceholder ā PR #2909 - Extended decoration leak tests to cover all five decoration types ā PR #2920
Full Changelog: https://github.com/BentoBoxWorld/BentoBox/compare/3.14.0...3.14.1
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:aBVLHiAW:wWYjwh9w"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:aBVLHiAW:wWYjwh9w"
}

