Greenhouses
1.10.2Build glass greenhouses to grow biome-specific plants, spawn mobs, and generate unique blocks on your island.
1.10.2latestSep 6, 2026 ## New in this release 🔺 Plant growth no longer crashes when a hopper runs out of bone meal.* On Paper 26.2 the console showedIllegalArgumentException: amount must be greater than 0fromEcoSystemManager.setBoneMeal, repeated on every plant tick. When the roof hopper held a single bone meal and at least one plant grew, Greenhouses wrote the remaining count back as a zero-amountItemStack. Older server versions tolerated that silently; Paper 26.2 rejects it, and the exception aborted the growth pass for that greenhouse. The last bone meal is now simply removed from the hopper ([#150](https://github.com/BentoBoxWorld/Greenhouses/pull/150)).
## CompatibilityIf you are on Paper 26.2 or newer: this update is strongly recommended. Every greenhouse whose hopper empties will otherwise log this error each tick and stop growing plants until bone meal is added again.
BentoBox API 2.7.1
Minecraft 1.21.5+
Java 21 ## Upgrading 1. Take backups of your server, for safety 2. Download this jar and put it in your addons folder - delete the old one 3. Restart the server 4. You should be good to go! ## What's Changed * Do not create a zero-amount bone meal
ItemStackwhen the hopper runs out by @tastybento in https://github.com/BentoBoxWorld/Greenhouses/pull/150 Full Changelog: https://github.com/BentoBoxWorld/Greenhouses/compare/1.10…1.10.1Sep 1, 2026 ## New in this release 🔺 Greenhouses no longer lets mobs slip past the Limits addon.* If you run Limits with entity limits, a greenhouse could keep spawning a mob type after the island was already at its cap — the reported case was ghasts at 4/3. Greenhouses did not cause the extra spawn directly: when Limits cancelled a spawn at the limit, Greenhouses carried on with the dead entity, ran its "does this mob fit inside the glass?" check and, when it did not fit (ghasts are 4×4×4, so often), calledremove()on it. Paper fires anEntityRemoveEventfor that even though the mob never entered the world, and Limits counted it as a real removal — so its counter crept downward and the next spawn was let through. Cancelled spawns are now left alone entirely ([#148](https://github.com/BentoBoxWorld/Greenhouses/pull/148)).
## CompatibilityIf you saw this: Limits' counter for the affected island is still wrong until it is rebuilt. Have the player run
/is limits recount(or use the admincalccommand) once after updating. A matching hardening in Limits so it ignores such removals is in [BentoBoxWorld/Limits#297](https://github.com/BentoBoxWorld/Limits/pull/297).BentoBox API 2.7.1
Minecraft 1.21.5+
Java 21 ## Upgrading 1. Take backups of your server, for safety 2. Download this jar and put it in your addons folder - delete the old one 3. Restart the server 4. You should be good to go! ## What's Changed * Ignore cancelled mob spawns instead of calling
remove()on them by @tastybento in https://github.com/BentoBoxWorld/Greenhouses/pull/148 Full Changelog: https://github.com/BentoBoxWorld/Greenhouses/compare/1.10…1.10.0Jul 26, 2026 ##What's new Greenhouses now has admin commands. Until this release the addon had no admin command tree at all — the README documented one, but it was never actually there. If a greenhouse record went bad, your only option was to stop the server and edit the database by hand. That gap became obvious in [#135](https://github.com/BentoBoxWorld/Greenhouses/issues/135), where two overlapping greenhouses were skipped at every startup with a message that named neither of them. 1.9.6 made the log say which records were involved; 1.10.0 lets you do something about it without leaving the game. This release also clears every open SonarCloud issue in the project — 68 of them — including four genuine bugs found along the way. ##
Highlights ###
Admin commands ([#139](https://github.com/BentoBoxWorld/Greenhouses/pull/139), closes [#137](https://github.com/BentoBoxWorld/Greenhouses/issues/137)) Registered under your game mode's admin command, e.g.
/bsbadmin greenhouses(aliasesgreenhouse,gh): | Command | What it does | |---|---| |list [player] [page]| Paginated list of greenhouses, optionally just one player's. Records that failed to load are always listed too, with the reason. | |info [id]| Recipe, owner, world, location, bounding box, area, original biome, hopper, broken status and missing blocks. With no ID, uses the greenhouse you're standing in. | |delete <id>| Deletes a record — loaded or not — after asking you to confirm. | |tp <id>| Teleports you to the middle of the greenhouse floor. | |verify [id]| Re-checks one or all greenhouses against their recipe and reports what's missing. Previously this only happened on the eco tick. | |reload| Re-readsbiomes.yml, then re-loads the greenhouses from the database. | - IDs come fromlistand can be shortened to any prefix that matches only one greenhouse. An ambiguous prefix is treated as no match rather than guessing — deleting the wrong greenhouse can't be undone. - Everything excepttpworks from the server console. - Greenhouse records that can't be loaded — overlapping, unknown recipe, missing world, no location — are now kept in memory with the reason instead of being silently dropped. That's what makes them showable and deletable; previously they existed in the database but were invisible to the running server. - Records are still never deleted automatically. Removing a player's greenhouse without being asked would be worse than a recurring warning. ###Fixes - Checking a greenhouse whose recipe no longer exists threw an NPE. When a database record names a recipe that isn't in
biomes.yml, the addon hands out a degenerateBiomeRecipewith no addon reference — and checking it crashed. It now reportsFAIL_UNKNOWN_RECIPE([#140](https://github.com/BentoBoxWorld/Greenhouses/pull/140)) - `getFloorHeight` could throw on a record with no location — the very records most likely to be broken. It now falls back to the bounding box ([#140](https://github.com/BentoBoxWorld/Greenhouses/pull/140)) -Snow reported success from only the last column it scanned.
SnowTrackeroverwrote its "did I make snow?" result on every column instead of accumulating it, so a greenhouse that made snow in ninety columns and missed the last one reported failure. That value decides whether water is consumed from the hopper ([#143](https://github.com/BentoBoxWorld/Greenhouses/pull/143)) - Floating-point loop counters inEcoSystemManager#getAvailableBlocksreplaced with integer block coordinates ([#140](https://github.com/BentoBoxWorld/Greenhouses/pull/140)) ###Code quality All 68 open SonarCloud issues resolved; the quality gate is green with zero duplicated blocks. - Five methods refactored below the cognitive-complexity threshold, the worst being
SnowTracker#getAirBlocksat 27 and a 72-line "brain method" inRecipeManager([#143](https://github.com/BentoBoxWorld/Greenhouses/pull/143)) - Dead code removed, including three command stubs that were never registered ([#141](https://github.com/BentoBoxWorld/Greenhouses/pull/141)) — see the note below - Redundant argument matchers cleaned out of the tests ([#144](https://github.com/BentoBoxWorld/Greenhouses/pull/144)) - Test suite grew from 177 to 224 tests ##Compatibility
BentoBox API 2.7.1
Minecraft 1.21.5+
Java 21 ##
Updating — important notes
New permissions. The six admin sub-commands each have their own node:
greenhouses.admin.list,.info,.delete,.tp,.verifyand.reload. They default toop, so operators need no action, but if you grant admin access through a permissions plugin you'll want to add them. They were missing fromaddon.ymlentirely before this release, which is why nothing but op access worked.Translators wanted. The admin commands add messages under
greenhouses.commands.admin.*, currently English only. The other 24 locale files will fall back to the key names until they're translated. Three player commands were deleted — but none of them worked.InfoCommand,ListCommandandRecipeCommandwere unregistered stubs whose method bodies were auto-generated placeholders and commented-out legacy code.InfoCommandeven declared itself under the label"make", which would have collided with the real make command had anyone ever enabled it. The README listedgreenhouses listandgreenhouses recipeas working player commands; they were not, and that has been corrected./is greenhouseswith no arguments still opens the recipe GUI, which is what most people were using anyway. If you have overlapping greenhouses, this release finally gives you the tool:/bsbadmin greenhouses listshows the skipped records and why, and/bsbadmin greenhouses delete <id>removes the one you don't want. No database editing, no restart. ##How to update 1. Stop the server 2. Back up your BentoBox folder 3. Drop the new jar into the addons folder and remove the old one 4. Grant the new
greenhouses.admin.*permissions if you use a permissions plugin 5. Start the server 6. Check the startup log for skipped greenhouse records, and clear any up with the new admin commands ## 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 admin commands by @tastybento in https://github.com/BentoBoxWorld/Greenhouses/pull/139 *
Fix SonarCloud bugs and correctness issues by @tastybento in https://github.com/BentoBoxWorld/Greenhouses/pull/140 * Remove dead code flagged by SonarCloud by @tastybento in https://github.com/BentoBoxWorld/Greenhouses/pull/141 *
Reduce cognitive complexity of five methods by @tastybento in https://github.com/BentoBoxWorld/Greenhouses/pull/143 * Remove redundant argument matchers from tests by @tastybento in https://github.com/BentoBoxWorld/Greenhouses/pull/144 *
Document the admin commands and declare their permissions by @tastybento in https://github.com/BentoBoxWorld/Greenhouses/pull/145 Full Changelog: https://github.com/BentoBoxWorld/Greenhouses/compare/1.9.…
1.9.6Jul 26, 2026 ## New in this release 🐛 Overlapping greenhouses are now diagnosable. If two persisted greenhouses overlap, one is skipped at startup — but the log line used to say only `Greenhouse overlaps with another greenhouse. Skipping...`, which gave you nothing to act on and repeated on every restart. The warning now names both* records:
The summary line now also reads[Greenhouses] Greenhouse overlaps with another greenhouse. Skipping... [Greenhouses] Skipped: id=<uuid>, recipe=Plains, owner=Name (uuid), world=..., location=x,y,z, bbox=[... -> ...] [Greenhouses] Overlaps: id=<uuid>, recipe=Desert, owner=Name (uuid), world=..., location=x,y,z, bbox=[... -> ...] [Greenhouses] To fix, delete one of these records from the Greenhouses database table (match on uniqueId) and restart the server.Loaded 63 greenhouses out of 65 in the database.and closes with a tally of how many were skipped, so the discrepancy is self-explanatory. 🔺 Greenhouse load order is now deterministic.* Greenhouses were loaded in whatever order the database returned, so with two overlapping records either could win — and it could flip between restarts. They are now sorted byuniqueIdbefore loading, so the outcome is stable until you remove one of the records. ⚙️ Duplicate `SQUID` entry removed from the `OCEAN` recipe* inbiomes.yml. It was listed twice, which triggers a duplicate-key warning from SnakeYAML on newer server versions. YAML keeps the last occurrence, so the effective value (20:WATER) is preserved and mob spawning is unchanged. * Modrinth publishing workflow added, with Minecraft 26.1.2 in the supported game versions. ## CompatibilityBentoBox API 2.7.1
Minecraft 1.21.5+
Java 21 ##
Updating — important notes
The `biomes.yml` fix does not apply itself. Your server already has its own
biomes.ymlon disk, and the addon will not overwrite it. If you see a SnakeYAML duplicate-key warning forSQUID, openplugins/BentoBox/addons/Greenhouses/biomes.yml, find theOCEANsection, and delete the first of the twoSQUID:lines. Servers installing Greenhouses for the first time get the corrected file automatically.If you have overlapping greenhouses, this release reports them but does not remove them. Skipped records are still left in the database on purpose — silently deleting a player's greenhouse would be worse than a recurring warning. Use the uniqueIds now printed in the log to remove the stale record yourself: stop the server, back up the database, delete the row (JSON: the file named after the uniqueId under
database/Greenhouses/; SQL/Mongo: the record whoseuniqueIdmatches), and restart. The blocks and biome are untouched, so the player can simply re-run/is greenhouse makeinside the structure. ## Upgrading 1. Take backups of your server, for safety 2. Stop the server 3. Download this jar and put it in your addons folder — delete the old one 4. Restart the server 5. Check the startup log for any overlap warnings and act on them as described above 6. You should be good to go! ## Legend *config options have been removed, renamed, or added *
special attention needed ## What's Changed * Add Modrinth publish workflow by @tastybento in https://github.com/BentoBoxWorld/Greenhouses/pull/133 * Modrinth publish by @tastybento in https://github.com/BentoBoxWorld/Greenhouses/pull/134 *
Remove duplicate SQUID key from OCEAN recipe in biomes.yml by @tastybento in https://github.com/BentoBoxWorld/Greenhouses/commit/ab2e1… *
Report details of overlapping greenhouses on load by @tastybento in https://github.com/BentoBoxWorld/Greenhouses/pull/136 Thanks to @mrfloris for the detailed report behind https://github.com/BentoBoxWorld/Greenhouses/issues/135. Full Changelog: https://github.com/BentoBoxWorld/Greenhouses/compare/1.9.…
1.9.5Jun 3, 2026 1.9.4Greenhouses for BentoBox 1.9.4Dec 28, 2025 New In This Release
* Bug fixes * New or updated language filesCompatibility
BentoBox API 3.0.0
Minecraft 1.21.x - NOTE this addon will not work with previous versions. If you need those, use an older version of the addon
Java 21
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
* mob spawning changes by @stuffyerface in https://github.com/BentoBoxWorld/Greenhouses/pull/124 * fix water being placed adjacent to waterloggable blocks in OW greenho… by @Rossterd in https://github.com/BentoBoxWorld/Greenhouses/pull/126 *New or updated locale files *
Fix for Plains recipe not loading sheep mobs * Release 1.9.4 by @tastybento in https://github.com/BentoBoxWorld/Greenhouses/pull/128 Full Changelog: https://github.com/BentoBoxWorld/Greenhouses/compare/1.9.…
1.9.2Greenhouses for BentoBox 1.9.2Jun 21, 2025 This release adds the ability to make greenhouses in the nether or end.Compatibility
BentoBox API 3.0.0
Minecraft 1.21.x - NOTE this addon will not work with previous versions. If you need those, use an older version of the addon
Java 21
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.9.2 by @tastybento in https://github.com/BentoBoxWorld/Greenhouses/pull/119 Full Changelog: https://github.com/BentoBoxWorld/Greenhouses/compare/1.9.…1.9.1Greenhouses for BentoBox 1.9.1Jun 8, 2025 This is a bug fix that will prevent game mode commands for Greenhouses to be run outside of their game world. This prevents an exploit where greenhouses could be made in other worlds by using a game mode command where they were allowed.Compatibility
BentoBox API 3.0.0
Minecraft 1.21.x - NOTE this addon will not work with previous versions. If you need those, use an older version of the addon
Java 21
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
* Fix for #114 - commands will check the world they are in * Release 1.9.1 by @tastybento in https://github.com/BentoBoxWorld/Greenhouses/pull/116 Full Changelog: https://github.com/BentoBoxWorld/Greenhouses/compare/1.9.…1.9.0Greenhouses for BentoBox 1.9.0Dec 19, 2024 Compatibility
BentoBox API 3.0.0
Minecraft 1.21.x - NOTE this addon will not work with previous versions. If you need those, use an older version of the addon
Java 21
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.8.0 by @tastybento in https://github.com/BentoBoxWorld/Greenhouses/pull/113 Full Changelog: https://github.com/BentoBoxWorld/Greenhouses/compare/1.7.…
Similar projects
Plugin →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta