SchematicTrees
SchematicTrees is a Spigot or Paper plugin for Minecraft 1.13.2 through 1.21.x (server Java 11+). When a sapling grows (bone meal or natural), the normal tree is skipped and the plugin pastes your WorldEdit .schem in the right place instead. You choose which schematic goes with each tree style, use one file or a random pool, and turn on extras like random rotation, paste offset, and per-world limits in config.yml. There is also an optional mode that keeps existing blocks (stone, paths, builds) safer when you run FastAsyncWorldEdit (FAWE).
Wiki / full documentation: https://pyzatech.com/docs/schematic-trees/overview
What you get
Configuration (overview)
All options live in plugins/SchematicTrees/config.yml. Key groups:
Requirements
Commands
Main: /schematictrees (aliases: /st, /schtrees)
Subcommands: help, reload, status, list, set, setoak, clearoak, setspruce, clearspruce, clear, remember-anchor, forget-anchor, save
Use /schtrees help for full usage. remember-anchor plus save is the recommended path so paste origin matches the block you aimed at before //copy.
Installation
Support
Wiki: https://pyzatech.com/docs/schematic-trees/overview
Join the Discord for help after download: https://discord.gg/pj8auQEPJU
You can also use BuiltByBit conversations, PyzaTech.com, or the GitHub issue tracker if linked on the resource page.
License
Open source under the MIT License (see included LICENSE or repository).
SchematicTrees is a Spigot or Paper plugin for Minecraft 1.13.2 through 1.21.x (server Java 11+). When a sapling grows (bone meal or natural), the normal tree is skipped and the plugin pastes your WorldEdit .schem in the right place instead. You choose which schematic goes with each tree style, use one file or a random pool, and turn on extras like random rotation, paste offset, and per-world limits in config.yml. There is also an optional mode that keeps existing blocks (stone, paths, builds) safer when you run FastAsyncWorldEdit (FAWE).
Wiki / full documentation: https://pyzatech.com/docs/schematic-trees/overview
What you get
- Schematic-driven trees: When a sapling grows (natural or bone meal), the plugin cancels the vanilla structure and pastes your schematic instead, aligned to the sapling block.
- Pools per TreeType: Point one TreeType at several schematic ids; each growth picks one at random so players see variety without extra commands.
- In-game workflow: Remember the trunk block, //copy in WorldEdit, then save to plugins/SchematicTrees/trees/<id>.schem without leaving the server. No external editor required for the basic loop.
- Oak and spruce helpers: Commands map oak-like types (TREE, BIG_TREE, SWAMP) or spruce-like types (REDWOOD, TALL_REDWOOD, MEGA_REDWOOD) in one step, because Bukkit does not expose a single "OAK" or "SPRUCE" TreeType for saplings.
- Optional preserve mode: With preserve-existing-blocks-on-paste enabled, skip pasting over solid terrain you want to keep. Placement uses Bukkit block writes so FAWE cannot bypass the mask. Optional debug-messages logging helps staff verify paste vs skip decisions during setup.
- Configurable growth rules: Toggle natural vs bone-meal replacement, world allowlists, random yaw from a degree list, integer paste offset, and optional anchor fill material when the trunk cell is still air after paste.
- Lightweight: Hooks StructureGrowEvent only; no heavy repeating tasks or tick loops for idle servers.
Configuration (overview)
All options live in plugins/SchematicTrees/config.yml. Key groups:
- settings.enabled-worlds: Empty means all worlds; otherwise only listed world names run the plugin.
- settings.replace-natural-growth and replace-bone-meal-growth: Control whether natural growth and bone meal trigger schematic paste.
- settings.preserve-existing-blocks-on-paste: Terrain-friendly pastes with FAWE (legacy key preserve-solid-terrain still read if the new key is absent).
- settings.random-yaw and yaw-choices-degrees: Random rotation before each paste.
- settings.paste-offset: Fine-tune alignment after origin snap.
- settings.fill-anchor-if-air: Optional Bukkit material name to fix a hole at the anchor if your copy left air there.
- settings.debug-messages: Verbose logging for admins tuning preserve mode.
- trees: YAML map from uppercase TreeType name to one id or a list of ids. Files must be plugins/SchematicTrees/trees/<id>.schem with safe filenames (no slashes, no ..).
Requirements
- Server: Spigot or Paper 1.13.2 through 1.21.x (Java 11+)
- WorldEdit 7.2.9+ or FastAsyncWorldEdit (provided at runtime; not bundled). Required for clipboard save and schematic paste APIs.
- Permission for staff who configure trees: schematictrees.admin (default: op). If you still use an old LuckPerms node string slimeschematics.admin, the plugin still honors it, but prefer schematictrees.admin.
Commands
Main: /schematictrees (aliases: /st, /schtrees)
Subcommands: help, reload, status, list, set, setoak, clearoak, setspruce, clearspruce, clear, remember-anchor, forget-anchor, save
Use /schtrees help for full usage. remember-anchor plus save is the recommended path so paste origin matches the block you aimed at before //copy.
Installation
- Install WorldEdit or FAWE on the server.
- Drop the SchematicTrees jar in plugins/ and restart (or use your host’s plugin installer).
- Confirm folders exist: plugins/SchematicTrees/config.yml and plugins/SchematicTrees/trees/.
- Add or generate .schem files under plugins/SchematicTrees/trees/ and map TreeTypes in config or with commands.
- Run /schtrees reload after any config or on-disk schematic change.
Support
Wiki: https://pyzatech.com/docs/schematic-trees/overview
Join the Discord for help after download: https://discord.gg/pj8auQEPJU
You can also use BuiltByBit conversations, PyzaTech.com, or the GitHub issue tracker if linked on the resource page.
License
Open source under the MIT License (see included LICENSE or repository).
