Download (2.2 MB)
For Minetest 5.8 and above

How do I install this?


yet another tree-cutting mod

differences from other tree-cutting mods

  • no lag
  • cuts from the top down
  • recognizes specific species of tree (new trees must be registered)
  • recognizes tree boundaries (very approximate, but can be extended)
  • axes must be whitelisted (commonly known axe names are whitelisted by default)
  • respects protection
  • can be "on by default"
  • will automatically stop before breaking your axe
  • digs nodes in proportion to the axe's true speed, and will "catch up" if there's lag.
  • differentiates player-built and natural trees when possible (NOTE: this only applies to structures built after this mod is installed)


  • /toggle_choppy

toggles whether you have to hold down "sneak" to enable choppy, or whether it will be enabled by default.


see [settingtypes.txt]

public api

  • choppy.api.register_axe(itemstring)

register a tool that will work as an axe

  • choppy.api.unregister_axe(itemstring)

unregister a tool that will work as an axe

  • choppy.api.is_enabled(player)

returns "true" if choppy mode is enabled for a player. this means that existing processes will continue, and new processes can be started.

  • choppy.api.toggle_enabled(player_name)

toggles whether the player has to hold down "sneak" to enable choppy, or whether it will be enabled by default.

  • choppy.api.register_on_choppy_start(function(process, player, start_pos, tree_node))

called when a choppy process is started. return "true" to abort the process.

  • choppy.api.register_on_choppy_stop(function(player_name))

called when a choppy process is stopped.

  • choppy.api.register_on_before_chop(function(process, player, pos, node))

called before chopping a node. return "true" to skip the node.

  • choppy.api.register_tree_shape(shape_name, def)

register a tree "shape", which allows limited ways of preventing multiple trees from being felled simultaneously. def includes two callbacks:

  • in_bounds = function(pos, start_pos, shape)

    called for each node which may be chopped.

  • player_in_bounds = function(player_pos, start_pos, shape)

    called to check whether the player has wandered away from the tree

  • choppy.api.register_tree(tree_name, def)

register a tree. def defines a shape and a map of nodes to their type (trunk, leaves, etc.)

  • choppy.api.unregister_tree(tree_name)

removes a tree from the registry



Do you recommend this mod?

  • perfect

    It works fine without insisting on shift-clicks, which is more than I have seen any other wood chopping mod do. Really fun when used on snow-covered pines.

    (Seriously, shift-clicks are bad accessability and neither windows nor ubuntu provide a solution. Choppy only has optional sift-clicks, unlike many other mods.)

  • works good

    this mod is great. with this mod you can chop trees faster than doing it manually, but you can easily control how much you cut. Great job.

  • feels weird man

    I want to like this but it feels so strange. As a player I walk up to a tree and break one log block then stop and and suddenly the entire tree starts disappearing and leaves fall. Trees other than the one I cut start disappearing too. I can walk around and the process of logs disappearing continues. I could go away from keyboard after hitting that first log block and still the tree disappears and I'd return minutes later with the log blocks automatically in my inventory.

    I don't like the default game way of trees floating midair which have had their trunks completely removed. That behavior falls short of my expectation that big heavy trees fall when their support structure is missing. I don't like the behavior of choppy either, since I think it's doing too much work and taking away from the minigame of logging in Minetest.

    I'd love to see a middleground. Trees falling when being cut is GREAT! I love that. Trees completely disappearing and immediately showing up in inventory is a complete opposite of floating upper trees and that's too much of a change for me. I think the middle ground is that trees fall once cut, and instead of flawlessly appearing in inventory, their log nodes get dropped for retrieval by the player.

    I haven't tried working with it's api yet, but maybe there's a configurable sweet spot in this mod. Something that feels less like work than default, but enough of a challenge/reward to feel just right.