
AcidIsland - Toxic SkyBlock
SkyBlock with a deadly twist: the ocean is acid. Survive on your island, but don't fall in the water.
1.22.0
release15 апреля 2026 г.Highlights
- ⚙️ 🔡 Purified water mechanic — acid water can now be purified by smelting a water bucket in a furnace. Drinking acid water bottles damages the player; drinking purified water bottles heals. Fixes #163.
New Features
⚙️ 🔡 Purified Water
The ocean is acid. Until now, that meant every drop of water around your island was a hazard — you couldn't drink it, couldn't farm with it, couldn't even keep it in a bottle without hurting yourself. This release changes that: acid water is still dangerous, but you can now purify it, and there are several cool ways to do it.
Every water item in the acid world is tagged behind the scenes and labelled with coloured lore so you always know what you're holding:
- Acid Water — the default. Bottles are brewed as a Poison potion, so drinking one damages you via Minecraft's vanilla Poison effect. Buckets emptied out still behave like normal water in the world, but the item itself carries the red lore tag.
- Purified Water — safe to drink, heals you, and stays purified when you move it between bottles, buckets, and cauldrons.
Drinking
- Acid water bottle — drinking it applies the vanilla Poison effect. No config knob for the damage amount; it's whatever vanilla Poison does. Simple and familiar.
- Purified water bottle — drinking it restores health, up to your maximum. The amount is configurable via
acid.purified-water.heal-amount(default: 4.0 half-hearts, i.e. 2 hearts).
How to make purified water
There are four different ways to purify water, each with its own flavour. Use whichever fits your playstyle or what you've got lying around:
-
Smelt a water bottle in a furnace. Pop a water bottle (plain vanilla or one of your red acid bottles) into a furnace with any fuel. After the normal 10-second cook time, out comes a purified water bottle. Simple, cheap, and the entry-level option.
-
Brew water bottles with coal. Put up to three water bottles in a brewing stand and use coal as the ingredient. When the brew finishes, every water bottle in the stand is converted to purified water. Great when you need a batch. (Note: only water bottles are converted — coal won't turn your splash potions of Strength into anything weird.)
-
Smelt a water bucket in a furnace. Drop a full water bucket into a furnace and it slowly "boils" for 100 seconds (2000 ticks — five times longer than a bottle, to reflect the effort of purifying a whole bucketful). Out pops a purified water bucket. This one is toggleable: set
acid.purified-water.bucket-furnace-enabled: falsein config to disable it if it feels too easy for your server's balance. -
Catch dripstone drippings in a cauldron. This is the survival-flavour method and arguably the coolest: build a cauldron, place a downward-pointing dripstone stalactite up to 12 blocks directly above it, and wait. As the dripstone slowly fills the cauldron, the water inside is tracked as purified. A purified cauldron lets you scoop out purified bottles or a purified bucket directly.
Cauldrons: the full story
Cauldrons have their own personality in this system. Each cauldron in the acid world remembers whether its water is acid or purified, and that memory persists across server restarts (stored in the addon's cauldrons.yml).
How a cauldron's purity is decided:
- Rain fills it → acid (rain on an acid island is still acid — of course it is).
- A dripstone stalactite drips into it → purified. The game looks up to 12 blocks above the cauldron for a downward-pointing dripstone tip; if one's there, drips go in as purified water.
- A player pours a water bucket into it → the cauldron inherits the bucket's tag. Purified bucket in, purified cauldron. Acid bucket in, acid cauldron.
- A player empties a bottle into it → same rule: the cauldron takes on whatever the bottle was.
- A dispenser or anything else fills it → treated as acid (safe default — if the game can't tell, it assumes the worst).
Drawing water back out:
- Fill a glass bottle from a purified cauldron → you get a purified water bottle and the cauldron level drops by one, just like vanilla.
- Fill a bucket from a purified cauldron → you get a purified water bucket.
- Fill from an acid cauldron → you get the acid version of whatever you were filling.
When a cauldron is emptied out completely, it forgets its purity and starts fresh.
Buckets & bottles in detail
- Filling a glass bottle from ocean water gives you an acid bottle (red lore). This is the 99% case — the whole ocean is acid.
- Filling a bucket from ocean water gives you an acid water bucket. You can still place it as a water source — it's water, mechanically — but the item in your hand carries the red lore so you won't confuse it with something safe to drink.
- Filling from a cauldron follows the cauldron's purity (see above).
- Tags stick to the item. Move a purified bucket between chests, hoppers, your inventory, another dimension — it stays purified. Only pouring it out or drinking it ends its life as a purified item.
Edge cases & things to know
- Where the mechanic runs. It always runs in the AcidIsland overworld. It also runs in the addon's Nether and End worlds — whether those are island or vanilla — when the per-dimension toggles
acid.purified-water.nether-enabledandacid.purified-water.end-enabledaretrue(both default on). Flip either tofalseto keep that dimension out of the system. Other worlds on your server (not managed by the addon) are untouched. - Other potions are protected from the furnace. If you try to smelt, say, a Potion of Strength, the furnace cancels the smelt instead of converting it — so you won't accidentally turn valuable potions into water.
- Brewing only converts water bottles. Coal + Strength potion = nothing happens; only plain/acid water bottles get purified.
- Plain vanilla water bottles (e.g. from creative mode or another plugin) drink as vanilla water — they do nothing, no heal and no damage. For brewing with coal and for furnace smelting, however, they are accepted as valid water input and turn into purified water, so they slot cleanly into the purification recipes.
- Disabling the feature entirely is a single switch: set
acid.purified-water.enabled: falseinconfig.ymland the whole system goes dormant — no tagging, no furnace/brewing interception, no cauldron tracking. - Two new Bukkit events are fired so other plugins can hook in:
ItemFillWithAcidEvent(cancellable, before a player gets an acid bucket/bottle) andPlayerDrinkPurifiedWaterEvent(cancellable, with a mutable heal amount).
New config keys
acid:
purified-water:
enabled: true # master switch for the whole feature
heal-amount: 4.0 # half-hearts restored by drinking purified water
bucket-furnace-enabled: true # allow smelting water buckets into purified buckets
nether-enabled: true # run in the addon's Nether (island or vanilla)
end-enabled: true # run in the addon's End (island or vanilla)
New locale keys
acidisland:
purified-water:
lore-acid: "<red>Acid Water"
lore-purified: "<green>Purified Water"
All 18 translated locales have been synced with these new keys.
⚙️ Config note: a new
acid.purified-waterblock is added toconfig.yml. Existing installs should regenerate or merge the new keys.
🔡 Locale note: the two new
acidisland.purified-water.*keys have been added toen-US.ymland all 18 translations. Translators — feel free to polish the wording for your language if you'd like.
Other Improvements
- Guarded
playSoundlocation against null inAcidEffect(S2637). - Modernised
AcidEffectwithputIfAbsentandMath.clamp(S3824, S6885). - Used pattern-matching
instanceofinAcidTaskand removed spuriousthrows(S6201, S1130). - Reduced cognitive complexity of
onPlayerMove(),getWorld(),findEntities(), andmakeNetherRoof()by extracting helpers. - Added
since/forRemovalto@Deprecatedannotations (S6355, S1123). - Test hygiene: removed unnecessary
publicmodifiers, replacedassertTrue(x == y)withassertEquals(S5785), usedassertDoesNotThrowfor no-assertion tests, removed unused imports andeq()wrappers on concrete values (S1128, S6068), renamed shadowing locals (S1117), and added explanations to@Disabledannotations (S1607). - Translated new purified-water lore keys into all 18 non-English locales.
- Updated project graphic.
- Documentation: refreshed
CLAUDE.mdwith current testing rules and SonarCloud conventions.
Compatibility
✔️ BentoBox API 3.14.0 ✔️ Minecraft 1.21.11 (Paper) - 26.1.2 ✔️ Java 21
Upgrading
- Stop the server.
- Replace the old
AcidIslandjar inplugins/BentoBox/addons/with the new one. - Start the server.
- ⚙️ (Optional) Review
config.yml— see the newacid.purified-watersection. - 🔡 (Optional) Review the translations for the acid/purified water.
Legend
- ⚙️ — config changes
- 🔡 — locale changes
What's Changed
- ⚙️ 🔡 Add purified water mechanic (issue #163) by @tastybento
- Refine purified water mechanics by @tastybento
- Guard
playSoundlocation against null inAcidEffect(S2637) by @tastybento - Remove unused import and
eq()wrappers inAcidEffectTest(S1128, S6068) by @tastybento - Remove unused imports and
eq()wrappers in test files (S1128, S6068) by @tastybento - Use pattern-matching
instanceofinAcidTask; remove spuriousthrows(S6201, S1130) by @tastybento - Replace
assertTrue(x == y)withassertEqualsinAcidEffectTest(S5785) by @tastybento - Modernise
AcidEffect:putIfAbsentandMath.clamp(S3824, S6885) by @tastybento - Rename local
ltolocto avoid hiding field inAcidTaskTest(S1117) by @tastybento - Add explanation to
@Disabledannotation inAISettingsTest(S1607) by @tastybento - Replace
assertTrue(x == y)withassertEqualsinAcidRainEventTest(S5785) by @tastybento - Add
since/forRemovalto@Deprecatedannotations (S6355, S1123) by @tastybento - Reduce complexity of
onPlayerMove()andgetWorld()by extracting helpers by @tastybento - Reduce complexity of
findEntities()by extracting helper methods by @tastybento - Reduce complexity of
makeNetherRoof()by extracting helper methods by @tastybento - Use
assertDoesNotThrowfor no-assertion tests inAcidIslandTestby @tastybento - Remove unnecessary
publicmodifiers from JUnit 5 test methods by @tastybento - Change graphic by @tastybento
- Update
CLAUDE.mdwith testing rules and SonarCloud conventions by @tastybento
Full Changelog: https://github.com/BentoBoxWorld/AcidIsland/compare/1.21.0...1.22.0
1.21.0
release12 апреля 2026 г.🎁 What's new
AcidIsland 1.21.0 introduces a Cherry Grove Sanctuary starter island blueprint, giving new players a beautiful blossom-themed start. This release also brings the long-overdue migration from legacy Bukkit color codes to Adventure MiniMessage format, aligning with BentoBox 3.12.0's modern text handling, fixes a crash when EssentialsX fails to load, and bumps the required BentoBox API to 3.14.0.
✨ Highlights
🌸 Cherry Grove Sanctuary Starter Island
- A new starter island blueprint themed around the Cherry Grove biome is now included out of the box
- Adds visual variety for players starting a new island on servers running Minecraft 1.21+
🔡 🔺 MiniMessage Locale Migration [PR #167]
- All 24 locale files have been converted from legacy
&color codes to MiniMessage tags (e.g.&c→<red>,&1→<dark_blue>) - Several pre-existing locale bugs were fixed during migration: broken full-width color codes in
ja.yml, untranslated[name]placeholders invi.yml,hr.yml, andtr.yml, a missing sign line inpl.yml, and reordered lines intr.yml - Requires BentoBox 3.12.0 or later (included in the API 3.14.0 requirement below)
🐛 Fixes
- Fixed a NullPointerException in the Essentials god mode check when EssentialsX fails to load at startup
⚙️ Compatibility
✔️ BentoBox API 3.14.0 ✔️ Minecraft 1.21.x (Paper/Purpur) ✔️ Java 21
🔺 Updating — important notes
🔺 BentoBox 3.14.0 required. This release raises the minimum BentoBox API version to 3.14.0. Ensure your BentoBox is up to date before updating AcidIsland.
🔡 Locale files have been regenerated. If you have customised locale files, compare them against the new files in plugins/BentoBox/addons/AcidIsland/locales/. The old & color codes are no longer valid — any custom entries still using them will render as plain text.
📥 How to update
- Stop the server
- Back up your
plugins/BentoBox/folder - Ensure BentoBox 3.14.0+ is installed
- Drop the new
AcidIsland-1.21.0.jarinto your addons folder and remove the old one - To get Cherry Grove Sanctuary you'll need to remove the
BentoBox/addons/AcidIsland/blueprintsfolder so they can regenerate. If you have customized islands in there then move them out and then put them back. - To obtain the latest locale files, move or delete
BentoBox/locales/AcidIslandas well - Start the server — updated locale files and blueprints will be extracted automatically
- (Optional) Review any customized locale files and convert remaining
&codes to MiniMessage
Legend
- 🔡 locale files may need to be regenerated or updated
- ⚙️ config options have been removed, renamed, or added
- 🔺 special attention needed
What's Changed
- 🔺 Add Cherry Grove Sanctuary starter island blueprint by @tastybento in https://github.com/BentoBoxWorld/AcidIsland/develop
- 🔡 Migrate locale files from legacy color codes to MiniMessage format by @tastybento in https://github.com/BentoBoxWorld/AcidIsland/pull/167
- Fix NPE in Essentials god mode check when EssentialsX fails to load by @tastybento in https://github.com/BentoBoxWorld/AcidIsland/develop
- 🔺 Update addon.yml for BentoBox API version 3.14.0 by @tastybento in https://github.com/BentoBoxWorld/AcidIsland/develop
- Add Modrinth publish GitHub Actions workflow by @tastybento in https://github.com/BentoBoxWorld/AcidIsland/develop
Full Changelog: https://github.com/BentoBoxWorld/AcidIsland/compare/1.20.1...1.21.0
AcidIsland for BentoBox 1.20.1
release11 октября 2025 г.This release fixes an issue in new world creation where water creatures were not spawning naturally because the FLAT type of world height of the world became -63, i.e., one block above -64. Unfortunately, this fix doesn't change existing worlds. It can only affect new worlds.
To fix current worlds
Use are your own risk! Take a backup copy of your world beforehand
You need to edit or replace the level.dat file in the acidisland_world folder. The simple approach is to copy a level.dat file from a generic world and paste over it, e.g. the world folder's copy. Then restart the server, and it should work. Alternatively, if you have a NBT editor, then you can change the level.dat file of the world NBT tags to look like this:
Compatibility
✔️ BentoBox API 2.7.1 or later only ✔️ Minecraft 1.21.3+ only ✔️ Java 21
Upgrading
- Make sure you are upgrading to MC 1.21.3 or later!
- Stop the server. Make a backup just in case.
- Copy this jar over the old one
- Restart the server
- You should be good to go!
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.20.1 by @tastybento in https://github.com/BentoBoxWorld/AcidIsland/pull/164
Full Changelog: https://github.com/BentoBoxWorld/AcidIsland/compare/1.20.0...1.20.1
AcidIsland for BentoBox 1.20.0
release17 декабря 2024 г.Compatibility
- ✔️ BentoBox API 2.7.1 or later only
- ✔️ Minecraft 1.21.3+ only
- ✔️ Java 21
Upgrading
- Make sure you are upgrading to MC 1.21.3 or later!
- Stop the server. Make a backup just in case.
- Copy this jar over the old one
- Restart the server
- You should be good to go!
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
- Updated to 1.21.3 by @tastybento in https://github.com/BentoBoxWorld/AcidIsland/pull/160
- Version 1.20.0 by @tastybento in https://github.com/BentoBoxWorld/AcidIsland/pull/161
Full Changelog: https://github.com/BentoBoxWorld/AcidIsland/compare/1.19.0...1.20.0
AcidIsland for BentoBox 1.18.2
release5 февраля 2024 г.This is a bug fix release. It prevents acid damage if you are in a chest boat of some kind.
Compatibility
- ✔️ BentoBox API 2.0.0
- ✔️ Minecraft 1.20.x
- ✔️ Java 17
Upgrading
- Stop the server. Make a backup just in case.
- Copy this jar over the old one
- Restart the server
- Double check config.yml settings are how you want them. If you do not want the ocean floor, change the setting to false, and restart the server.
- You should be good to go!
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 id.yml by @DustyGanteng in #148
- Prevent chest boats from causing acid damage. (commit: 198cc66)
- Release 1.18.2 by @tastybento in #147
New Contributors
@DustyGanteng made their first contribution in #148