TreeQoL
Simple plugin for cutting whole tree at once
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
TreeQoL
Tree Quality of Life
Sneak + break a log, the whole tree comes down.
TreeQoL handles the boring part of tree chopping - breaking all the logs, clearing the leaves, and replanting the sapling - so you don't have to.

Simple breaking from top to bottom animation

---
Features
Tools - You customize tools. Blacklist individual axe types (e.g. golden axe) or add custom items from ItemsAdder or Nexo as valid axe tools.
Glow highlight - shows logs that will be chopped by glowing effect. Color and duration customizable.
Smart tree validation - min/max log count, max horizontal spread (so you can include branchy oaks but exclude log walls), and a leaf-percentage check that distinguishes natural trees from player-built structures.
Animation - off by default. When enabled, logs break layer by layer, top-down or bottom-up, with configurable delay, particles, and sounds. (Very satisfying with delay 0)
Auto replant - places a sapling at the root after chopping the tree. Can require suitable soil, can consume one from the player's inventory, and can be enabled/disabled per wood type.
Fast leaf decay - removes leaves in batched waves after the logs are gone. Speed and batch size are configurable. Can also be toggled per wood type.
Language - easy to use language system. ---
Commands
| Command | Permission | What it does | |---|---|---| | `/treeqol toggle` | `treeqol.toggle` | Turn breaking trees on/off for yourself | | `/treeqol lang <code|reset>` | `treeqol.lang` | Override your language | | `/treeqol reload` | `treeqol.reload` | Reload config and lang files live | | `/treeqol info` | - | Version info | | `/treeqol help` | - | Command list |
| Permission | Notes | |---|---| | `treeqol.use` | Required to chop whole trees | | `treeqol.toggle` | Required for `/treeqol toggle` | | `treeqol.lang` | Required for `/treeqol lang` | | `treeqol.reload` | Required for `/treeqol reload` | | `treeqol.bypass.worldguard` | Ignore WorldGuard restrictions |
---
Integrations
| Plugin | Integration | |---|---| | WorldGuard | Chopping respects the BUILD flag - blocked regions stay blocked | | CoreProtect | Every broken log is logged as a player block removal | | ItemsAdder | Custom items can be configured as tools | | Nexo | Same as ItemsAdder | | Jobs Reborn | Player work by chopping trees |
---
Languages
The plugin reads the player's client locale automatically and picks the matching `lang/XX.yml` file. Players can override this with `/treeqol lang <code>`. If a translation doesn't exist for their locale, it falls back to `default-locale` in `config.yml` (English by default).
Bundled: Polish (`en`), Polish (`pl`).
To add a new language, copy `lang/en.yml` to `lang/de.yml` (or whatever the locale code is), translate the strings, and reload. No restart needed.
---
Config
```yaml
═══════════════════════════════════════════════════
TreeQoL Configuration
═══════════════════════════════════════════════════
Default locale used when the player's locale cannot be determined or their
translation file does not exist. Must match a file in the lang/ folder.
default-locale: "en"
Force all players to use this locale regardless of client locale.
Leave empty ("") to use per-player locale detection.
force-locale: ""
── Core Behaviour ──────────────────────────────────
tree-felling:
Master switch - set false to disable all features without unloading the plugin.
enabled: true
Player must hold SHIFT while breaking a log to trigger tree chopping.
require-shift: true
Permission node required to use tree chopping. Leave empty to allow everyone.
permission: "treeqol.use"
── Tool Restrictions ──────────────────────────────
tools:
Controls which items can trigger tree chopping:
ANY - any item (including bare hand)
AXES - only axe-type items (default)
SPECIAL_ONLY - only items listed in special-items below
mode: "AXES"
Axe materials for which tree chopping is DISABLED even when mode is AXES.
Use Bukkit Material names (e.g. GOLDEN_AXE, WOODEN_AXE).
disabled-axe-types: []
Special items that always activate chopping regardless of mode setting.
Supports vanilla materials and custom items from ItemsAdder / Nexo.
special-items: enabled: false items: []
Example entries:
items:
- type: VANILLA
material: NETHERITE_AXE
display-name: "" # optional: require exact display name match
- type: ITEMSADDER
id: "mypack:magic_axe"
- type: NEXO
id: "magic_axe"
── Block / Tree Type Restrictions ────────────────
blocks:
Whitelist: only these log types will trigger tree chopping.
Leave empty to allow ALL log types.
allowed-log-types: []
Blacklist: chopping is always disabled for these log types.
disabled-log-types: []
── Tree Size Limits ──────────────────────────────
size:
Minimum number of log blocks required to trigger chopping.
Prevents accidentally chopping 2-block posts or tiny structures.
min-logs: 3
Maximum number of log blocks that can be broken at once.
Safety cap to prevent lag on huge custom trees.
max-logs: 200
Maximum horizontal spread (bounding box width/depth) of the tree.
Purely vertical trees have spread 0. Increase for oak/jungle trees with branches.
max-horizontal-spread: 5
Number of topmost log layers to scan for leaves when validating the tree.
leaf-validation-layers: 3
Minimum percentage (0–100) of surrounding blocks that must be leaves
for the structure to be recognised as a natural tree.
min-leaf-percentage: 20
── Visual Effects ────────────────────────────────
effects:
Apply Mining Fatigue to the player when a tree chopping is triggered.
slow-mining: enabled: true amplifier: 0 # 0 = Mining Fatigue I, 1 = II, etc. duration-ticks: 40
Highlight (glowing outline) all log blocks that will be broken.
highlight-blocks: enabled: true duration-ticks: 20
Glow colour - must be a valid ChatColor name.
color: "WHITE"
── Break Animation ───────────────────────────────
animation:
Play a staged break animation instead of instant removal.
enabled: true
Direction of staged breaking:
TOP_DOWN - logs break from top to bottom (realistic fall)
BOTTOM_UP - logs break from bottom to top
direction: "TOP_DOWN"
Delay in ticks between each Y-layer of logs being broken.
delay-per-layer-ticks: 1
Spawn block-crack particles at each broken log position.
particles: true
Play the log break sound for each layer.
sounds: true
── Auto Replant ──────────────────────────────────
auto-replant:
Automatically place a sapling at the tree's root after chopping.
enabled: false
Delay in ticks before placing the sapling.
delay-ticks: 5
Per-tree-type control. If a type is not listed, it inherits 'enabled' above.
per-type: OAK_LOG: true BIRCH_LOG: true SPRUCE_LOG: true JUNGLE_LOG: true ACACIA_LOG: true DARK_OAK_LOG: true MANGROVE_LOG: true CHERRY_LOG: true PALE_OAK_LOG: true
Require suitable soil (grass, dirt, farmland…) under the root for replanting.
check-soil: true
Consume one sapling from the player's inventory instead of placing one for free.
If the player has no matching sapling, replanting is skipped.
consume-sapling: false
── Fast Leaf Decay ───────────────────────────────
fast-leaf-decay:
Quickly remove natural leaf blocks after a tree is chopped.
enabled: true
Delay in ticks between each wave of leaf removal.
delay-per-wave-ticks: 2
Maximum leaf blocks to remove per wave.
max-per-wave: 20
Per-tree-type control. If a type is not listed, it inherits 'enabled' above.
per-type: OAK_LOG: true BIRCH_LOG: true SPRUCE_LOG: true JUNGLE_LOG: true ACACIA_LOG: true DARK_OAK_LOG: true MANGROVE_LOG: true CHERRY_LOG: true PALE_OAK_LOG: true
── Plugin Integrations ───────────────────────────
integrations: worldguard:
Block tree chopping in regions where the player cannot build.
enabled: true check-build-flag: true
coreprotect:
Log each chopped block in CoreProtect as a player block removal.
enabled: true
Label prepended to the CoreProtect log entry (useful for filtering).
action-label: "#treeqol"
itemsadder: enabled: true
nexo: enabled: true
jobs:
Award Jobs Reborn payment/XP for every log chopped, as if the player
had broken each one individually. Requires Jobs Reborn to be installed.
enabled: true
── Command Settings ──────────────────────────────
commands-config:
Cooldown in seconds between /treeqol toggle uses. 0 disables cooldown.
toggle-cooldown: 0
```