Timber-style tree felling for Minecraft 1.21.11 on Fabric. Trees take a few chops based on size, then the whole tree falls — while avoiding player-built structures.
- Size-based chops: required swings scale with log count (capped at 32).
- Sneak to opt out: crouching (
Shift) does normal single-block breaking. - Safe detection: only fells structures with nearby leaves and up to 256 logs.
- Clean drops: final hit uses the original (unstripped) log state for correct drops.
- Fair durability: every swing costs durability; timbering only fells as many logs as your axe has durability for, leaving the rest if it breaks.
- Shared effort: chop progress is tracked per tree, so multiple players can contribute swings to the same timber.
- Client-agnostic: no client-side setup required; works server-side.
- Jade integration (optional): hovering a shrinking stump shows the original log's name and icon plus a chop-progress bar, instead of the placeholder block.
- Minecraft
1.20.1/1.21.8/1.21.10/1.21.11/26.1/26.1.1/26.1.2/26.2/26.3 - Fabric Loader
>=0.18.2(>=0.19.3on 26.x) - Fabric API for your MC version
- Java 21 (Java 17 for the 1.20.x profile, Java 25 for the 26.x profiles)
- Optional: Jade — not required, and not bundled
- Install Fabric Loader for 1.21.11.
- Place
chopt-*.jar(from releases/build) and Fabric API in yourmods/folder. - Launch the game; no config screen is needed.
- Break any log with an axe; progress is tracked per tree.
- Keep swinging the same log until the quota is met; the rest of the tree is felled automatically.
- If your axe breaks mid-timber, only the logs you could afford are felled—finish the remainder with a fresh tool.
- Hold
Shiftwhile breaking to disable timbering for that action. - Player-placed log piles without leaves nearby will not be felled.
./gradlew buildOutputs are under build/libs/ (-dev jars are for development, the remapped jar is for players/servers).
To switch Minecraft targets, use the built-in profiles:
./gradlew useMc1201
./gradlew useMc1218
./gradlew useMc12110
./gradlew useMc12111
./gradlew useMc261
./gradlew useMc2611
./gradlew useMc2612
./gradlew useMc262
./gradlew useMc263Each profile pins its own Minecraft, Fabric, Loom and Jade versions, and switching
profiles clears the previous one's toolchain settings, so they can be run in any order.
The 26.x profiles are deobfuscated (no mappings) and target Java 25.
- Uses official Mojang mappings; see
AGENTS.mdfor cache and inspection tips. - Tree scanning lives in
src/main/java_v*/mod/chopt/TreeChopper.java. - Jade compat lives in
src/main/java_v*/mod/chopt/compat/jade/(entrypoint, loaded on servers too) andsrc/client/java_v*/mod/chopt/compat/jade/(the tooltip itself). Jade is acompileOnlydependency, so the mod runs fine without it.
- Hard cap of 256 logs per tree scan.
- No configuration file yet; behavior is fixed (shift-to-skip, leaf check, caps).
polaron-games https://github.com/polaron-games
Sphvy https://github.com/Sphvy