IMPORTANT
Java 25 required
if you have a config.yml from older versions of the plugin, either delete it and let it regenerate, or edit the heuristics section to match:
Spoiler: heuristics section
Code (YAML):
heuristics
:
# Each entry defines a tree type: which log/leaf/sapling materials it uses,
# and the initial bounding box (diameter + height) for log discovery.
# Materials unknown to the running server version are silently ignored,
# so version-gated entries (e.g. PALE_OAK) are safe to leave here for all servers.
#
# Both values should not be bigger than the smallest specimen of that tree type.
#
# diameter — total horizontal search width; the plugin searches diameter/2 blocks
# in each of the 4 horizontal directions from the chopped log.
# height — maximum upward search distance from the base log.
#
# Custom / mixed-wood type example:
# MIXED:
# logs: [OAK_LOG, BIRCH_LOG, OAK_WOOD, BIRCH_WOOD]
# leaves: [OAK_LEAVES, BIRCH_LEAVES]
# sapling: OAK_SAPLING
# diameter: 2
# height: 4
tree-types :
OAK :
logs
: - OAK_WOOD
- STRIPPED_OAK_WOOD
- OAK_LOG
- STRIPPED_OAK_LOG
leaves
: - OAK_LEAVES
- BEE_NEST
- AZALEA_LEAVES
- FLOWERING_AZALEA_LEAVES
sapling
: OAK_SAPLING
diameter
: 2
height
: 4
BIRCH :
logs
: - BIRCH_WOOD
- STRIPPED_BIRCH_WOOD
- BIRCH_LOG
- STRIPPED_BIRCH_LOG
leaves
: - BIRCH_LEAVES
- BEE_NEST
sapling
: BIRCH_SAPLING
diameter
: 2
height
: 4
SPRUCE :
logs
: - SPRUCE_WOOD
- STRIPPED_SPRUCE_WOOD
- SPRUCE_LOG
- STRIPPED_SPRUCE_LOG
leaves
: - SPRUCE_LEAVES
sapling
: SPRUCE_SAPLING
diameter
: 6
height
: 16
JUNGLE :
logs
: - JUNGLE_WOOD
- STRIPPED_JUNGLE_WOOD
- JUNGLE_LOG
- STRIPPED_JUNGLE_LOG
leaves
: - JUNGLE_LEAVES
- COCOA
- VINE
sapling
: JUNGLE_SAPLING
diameter
: 6
height
: 24
DARK_OAK :
logs
: - DARK_OAK_WOOD
- STRIPPED_DARK_OAK_WOOD
- DARK_OAK_LOG
- STRIPPED_DARK_OAK_LOG
leaves
: - DARK_OAK_LEAVES
sapling
: DARK_OAK_SAPLING
diameter
: 4
height
: 12
ACACIA :
logs
: - ACACIA_WOOD
- STRIPPED_ACACIA_WOOD
- ACACIA_LOG
- STRIPPED_ACACIA_LOG
leaves
: - ACACIA_LEAVES
sapling
: ACACIA_SAPLING
diameter
: 6
height
: 14
CHERRY :
logs
: - CHERRY_WOOD
- STRIPPED_CHERRY_WOOD
- CHERRY_LOG
- STRIPPED_CHERRY_LOG
leaves
: - CHERRY_LEAVES
- BEE_NEST
sapling
: CHERRY_SAPLING
diameter
: 6
height
: 14
MANGROVE :
logs
: - MANGROVE_WOOD
- STRIPPED_MANGROVE_WOOD
- MANGROVE_LOG
- STRIPPED_MANGROVE_LOG
leaves
: - MANGROVE_LEAVES
- MOSS_CARPET
- BEE_NEST
sapling
: MANGROVE_PROPAGULE
diameter
: 2
height
: 4
PALE_OAK
:
# Requires Minecraft 1.21.4+; safely ignored on older versions
logs
: - PALE_OAK_WOOD
- STRIPPED_PALE_OAK_WOOD
- PALE_OAK_LOG
- STRIPPED_PALE_OAK_LOG
leaves
: - PALE_OAK_LEAVES
- CREAKING_HEART
- RESIN_CLUMP
sapling
: PALE_OAK_SAPLING
diameter
: 4
height
: 12
CRIMSON :
logs
: - CRIMSON_HYPHAE
- STRIPPED_CRIMSON_HYPHAE
- CRIMSON_STEM
- STRIPPED_CRIMSON_STEM
leaves
: - NETHER_WART_BLOCK
- SHROOMLIGHT
- WEEPING_VINES
sapling
: CRIMSON_FUNGUS
diameter
: 2
height
: 4
WARPED :
logs
: - WARPED_HYPHAE
- STRIPPED_WARPED_HYPHAE
- WARPED_STEM
- STRIPPED_WARPED_STEM
leaves
: - WARPED_WART_BLOCK
- SHROOMLIGHT
- TWISTING_VINES
sapling
: WARPED_FUNGUS
diameter
: 2
height
: 4
# Minima of each to be considered a tree
minimum-logs
: 4
minimum-leaves
: 12
# Less is better for performance, but too little won't capture the whole tree
# More might be needed for larger (custom world generated) trees
# 25 is a balanced value
search-attempts
: 25
# Checks whether leaves have been placed by a player (persistent)
# and excludes them from the search. Leave enabled unless It's causing problems
leaves-persistence-check
: true
# The same but for wood blocks
wood-player-placed-check
: true
# Good value is about 75% of total threads
leaf-proximity-threads
: 8
# Don't change unless you know what you're doing
leaf-voxel-size
: 4
now any mix/match of custom logs/leaves can be defined in config like this:
Code (YAML):
EXAMPLE :
logs
: - PALE_OAK_WOOD
- STRIPPED_PALE_OAK_WOOD
- PALE_OAK_LOG
- STRIPPED_PALE_OAK_LOG
- BIRCH_WOOD
- BIRCH_LOG
# etc...
leaves
: - ACACIA_LEAVES
- BIRCH_LEAVES
# etc...
- PALE_OAK_LEAVES
- CREAKING_HEART
- RESIN_CLUMP
sapling
: PALE_OAK_SAPLING
diameter
: 4
height
: 12
v1/v2 x/y/z values were deprecated and consolidated into just diameter and height values
Support for PacketEvents and Vanilla packet backends was added. Plugin no longer has hard dependency on ProtocolLib. To force select a packet backend, use this config option (requires restart):
Code (YAML):
integrations
:
# Packet interception backend for the slow-break animation and tool-break FX.
# AUTO - Vanilla NMS on Paper 26.1+; PacketEvents if present, then ProtocolLib on older servers.
# VANILLA - Always use Vanilla NMS (requires Paper 26.1+, no extra plugin needed).
# PROTOCOL_LIB - Always use ProtocolLib (requires ProtocolLib to be installed).
# PACKET_EVENTS - Always use PacketEvents (requires PacketEvents to be installed).
packet-backend
:
"AUTO"