Host your Minecraft server on BisectHosting - get 25% off your first month with code MODRINTH.

AutoTools looks through your whole inventory and finds the best tool to mine a block or attack a mob. The tool is determined by mining speed, mining level, enchantments, and the DPS. the Mod features a high level of customisation with many config options. For blocks where SilkTouch is preferred see silk_touch.json and for Fortune fortune.json. Shears will always pre preferred for shears.json

  • Selection Config [default]:

    • toggle [false]: AutoTools will always be active and try to get you the best tool. Can be toggled with the set key.
    • disableCreative [true]: Disables AutoTools in creative-mode if toggle is enabled.
    • keepSlot [false]: Keeps the selected slot when swapping to a new tool instead of using the vanilla mechanics.
    • preferHotBarTool [true]: AutoTools will prefer the tool already in your hotbar if multiple tools have the same mining speed, regardless their durability.
    • preferLowDurability [false]: AutoTools will prefer the tool with the lower durability, instead of the higher one, if they have the same mining speed and enchantments.
    • switchBack [false]: AutoTools will switch back to the item you had in your hand before breaking the block
    • showDPS [true]: Displays the weapons Damage when hovering over it as a tooltip
    • changeForEntities [true]: AutoTools will change to the tool with the most DPS when looking at an entity
  • Block Behaviour:

    • onlySwitchIfNecessary [false]: AutoTools only tries to get a new tool if it is needed to break the block
    • alwaysPreferFortune [false]: Autotools will use Fortune for Gravel and Leaves
    • preferSilkTouch [except_ores]:
      • always: Autotools additionally will use SilkTouch for: grass, stone, ores, leaves, snow
      • always_ores: AutoTools additionally will use SilkTouch for ores
      • except_ores: Autotools additionally will SilkTouch for: grass, stone, leaves, snow
      • never: Autotools will only use SilkTouch if its required to mine a block.
    • customTools
      • Add custom tool-configurations in JSON format (e.g. customTools={"minecraft:block_id":"minecraft:tool_id"} or customBlocks={"minecraft:block_id":["minecraft:tool_id_1", "minecraft:tool_id_2"]})
      • Note: On Forge and NeoForge you have the use customTools="{"minecraft:block_id":"minecraft: tool_id"}"
      • When adding multiple tools, the first one has the highest priority There are also pre-define lists for tool groups: autotools:pickaxe, autotools:axe, autotools:shovel, autotools:hoe, autotools:sword
      • To completely disable AutoTools for a block use: "autotools:disabled"
      • This works on both blocks and entities (e.g. "minecraft:stone" or "minecraft:sheep")

Compatability

There is a version available for the Forge, NeoForge and Fabric mod loader (ModMenu integration when using the Fabric version)
AutoTools is entirely client-side and works on servers and with many third-party mods.


For Developers:

Tools: Should implement Item.isCorrectToolForDrops(BlockState) and Item.getDestroySpeed(Item, BlockState). Additionally, Blocks should correctly implement requiresCorrectToolForDrops

Weapons: Items need their attack damage (and attack speed) stored as AttributeModifiers


Project members

zelythia

Owner


Technical information

License
MIT
Client side
required
Server side
unsupported
Project ID