Compatibility
Minecraft: Java Edition
1.21.x
Platforms
Creators
Details
Let your players plant saplings below the surface without weird hacks. Underwater Trees keeps placement safe, auto-replants when you want it, and locks configs down so griefing doesn't spiral out of control.

Why server owners love it
- 🌱 Custom soil + sapling allowlists mean only the trees you approve can grow underwater.
- 🛡️ Stability guard cancels physics + fluid breakage so underwater builds stay intact.
- 💡 Optional light override keeps saplings alive even in deep oceans.
- 🔁 Live reload + config watcher merge new defaults automatically—edit, save, done.
- 🔔 Update checker (Modrinth + Hangar) and join reminders keep your fleet current.
- 🌐 MiniMessage-powered localization lets you style player + console feedback exactly the way you like.
Requirements
- Paper 1.21.x server (Spigot/vanilla forks are not supported).
- Java 21 runtime.
- Optional: a permissions plugin (LuckPerms, etc.) for fine-grained access to
/timberellacommands.
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 the async watcher keeps your external edits synced, and reloads also refresh listeners, locales, and update status.
Everyday tips
- Use
saplings/soilsmaps to whitelist exactly what blocks are allowed underwater—unknown materials are ignored safely. protect-underwater-saplingsshields saplings from physics until your placement rules are broken; leave it on for survival worlds.- Enable
log-detailtemporarily to print a full list of active materials and catch typos fast. - Set
update-check.notify-console+update-check.notify-op-jointo true so updates are surfaced automatically, and flipupdate-check.notify-console-always-shownif you still want no-update provider summaries. - Metrics (
metrics-enabled) and update checks (update-check.enabled) are opt-out friendly if your policy requires it.
Supported languages
Underwater Trees 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)
Need deeper guidance?
This README keeps things short on purpose. All developer and deep-dive documentation (config matrices, command charts, operations guides) lives in the project wiki. Start there whenever you need advanced workflows or contribution notes.
License & Credits
- Underwater Trees is released under the Apache License 2.0 (see
LICENSE). - Third-party components (MiniMessage MIT, bStats MIT, etc.) are acknowledged inside
THIRD_PARTY_LICENSES.mdand the bundledlicenses/directory. - Parts of this plugin and documentation were produced with AI assistance (e.g., GitHub Copilot) and reviewed by the maintainer before release.



