« Back to search

Mod

choppy

by rheo · score 306.8 · license: LGPL-3.0-or-later

choppy

Download latest release

yet another tree-cutting mod

pve survival

choppy

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)

commands

  • /toggle_choppy

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

settings

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