Allows placing and growing tree saplings underwater with optional lightning requirements override.
UnderwaterTrees 🌊
Let your players plant saplings below the surface without weird hacks. UnderwaterTrees keeps placement safe, respects your land-protection plugins, and helps underwater saplings actually grow.

Why server owners love it
- 🌱 Custom soil + sapling allowlists mean only the trees you approve can grow underwater.
- 🌳 Oak, spruce, birch, jungle, acacia, dark oak, pale oak, cherry and poplar saplings work underwater, and dark and pale oaks grow with their full trunk.
- 🛡️ Stability guard keeps flowing water and physics updates from breaking saplings that sit underwater on an allowed soil.
- 🔐 Saplings are only placed where the target is actually water, protection plugins (WorldGuard, GriefPrevention, …) can veto placement and the growth of underwater trees, and the
underwatertrees.placepermission lets you disable underwater planting per player or group. - 💡 Optional light override lets saplings grow underwater where the light is too low for vanilla, down to the pitch-dark deep-sea floor.
- 🔁 Live reload + config watcher merge new defaults automatically—edit, save, done.
- 🔔 Update checker (Modrinth + Hangar) and join reminders keep your fleet current.
- 🌐 14 bundled languages, all MiniMessage-powered, so you can style player + console feedback exactly the way you like.
Requirements (as of UwTrees 2.0.0)
- Paper 26.3.x (Spigot and vanilla are not supported).
- Java 25 runtime.
- Optional: a permissions plugin (LuckPerms, etc.) for fine-grained access to
/underwatertreescommands and underwater planting.
Setup in 3 steps
- Drop
underwatertrees-paper-<version>.jarintoplugins/. - Start the server once.
config.yml,lang/, and defaults appear underplugins/UnderwaterTrees/. - Adjust the config (materials, chat prefix, watcher flags) and run
/underwatertrees reload.
From here, edits to config.yml are picked up automatically by the config watcher; after editing lang/, run /underwatertrees reload.
Upgrading from 1.x
Swap the jar and start the server: your old files move to plugins/UnderwaterTrees/backup-1.x/, fresh files are created with every setting you had changed carried over, and the console lists exactly what happened. The upgrade notes list what behaves differently in 2.0.0, such as the new underwatertrees.place permission.
Everyday tips
- Use the
saplingsandsoilslists to allow exactly the blocks you want underwater—unknown materials are ignored safely, and entries you delete stay deleted. protect_underwater_saplingskeeps flowing water from washing away underwater saplings; leave it on for survival worlds.growth_light_override.minimum_levelsets how dark it may be for saplings to still grow:0(default) works even on the deep-sea floor,9matches vanilla.- Negate
underwatertrees.placeto disable underwater planting for specific players or groups. - Enable
log_detailtemporarily to list every active soil and sapling in the console; a misspelled material won't show up there. - Update notifications show up in the console and, with
underwatertrees.update.notify, for ops on join. Setupdate_check.notify_console_always_showntotrueif you also want the "no update" summary. - Metrics (
metrics_enabled) and update checks (update_check.enabled) can be switched off if your policy requires it.
Supported languages
UnderwaterTrees bundles each locale as a MiniMessage YAML file so you can recolor or restyle them freely:
- 🇺🇸 English (en_US)
- 🇩🇪 German (de_DE)
- 🇸🇦 Arabic (ar_SA)
- 🇪🇸 Spanish (es_ES)
- 🇫🇷 French (fr_FR)
- 🇮🇹 Italian (it_IT)
- 🇯🇵 Japanese (ja_JP)
- 🇰🇷 Korean (ko_KR)
- 🇳🇱 Dutch (nl_NL)
- 🇵🇱 Polish (pl_PL)
- 🇵🇹 Portuguese (pt_PT)
- 🇹🇷 Turkish (tr_TR)
- 🇺🇦 Ukrainian (uk_UA)
- 🇨🇳 Simplified Chinese (zh_CN)
Updates add new texts to your language files without touching your edits, and /underwatertrees reload applies language changes.
Need deeper guidance?
This page keeps things short on purpose. The wiki explains every setting, commands and permissions, languages and troubleshooting. Building from source and contributing are covered in the developer guide.
License & Credits
- UnderwaterTrees is released under the MIT License, Copyright (c) 2025-2026 kroet.net. Releases before 2.0.0 were published under the Apache License 2.0; kroet.net additionally makes them available under the MIT License.
- The MIT License covers the code, not the name: forks should use a different plugin name and must not suggest they are the official UnderwaterTrees.
- Includes TurtleLib by kroet.net (MIT) and bStats Metrics (MIT); MiniMessage and Gson are provided by Paper. All libraries and their licenses are listed in THIRD_PARTY_LICENSES.md, and the license texts ship inside the jar.
- Parts of this plugin and its documentation were produced with AI assistance and reviewed by the maintainer before release.
Pinned Versions
- R26.3
Pages
Donate
Members
1Owner