TreeQoL

Simple plugin for cutting whole tree at once

71

Quick challenge

How far can you run before the mobs catch you?

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.

Breaking whole tree by breaking 1 block

Simple breaking from top to bottom animation

Animated from top to bottom

---

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

```

ADS