Sale 40% off 104 products · ends Oct 15, 2026 Shop the sale
All Products / Minecraft / Plugins / zEvolutiveTools | Tools That Evolve

v1.7.0: 1.7.0 | Per-item statistics, CustomFishing support, and vanilla or custom fish quests

12 September 2026

zEvolutiveTools v1.7.0
Every tool keeps its own counters now, CustomFishing catches are seen properly, and a fishing quest can target vanilla or custom fish.

📊 Statistics on the Item Itself

Every tool counts what it has done: blocks mined, mobs killed, damage dealt and fish caught. The numbers show in a Statistics section in the tool's lore, under Settings.

  • Only counters above zero appear, so a sword never shows blocks mined and a brand new tool has no Statistics section until its first block, hit or catch
  • The numbers belong to that one item. Two swords each keep their own, and /et restore brings them back with the tool
  • The multi-tool keeps one set across every shape
  • Damage counts direct hits only, normal attacks and sweeps, measured after the target's armour. A thrown trident or thorns do not count
  • Fixed tools track nothing, as before

The section title and the four counter names live in your language file, so they translate like any other line. display.lore-show-stats: false hides the whole section on every tool at once.

Counting starts from this update. Blocks broken before it are not in the numbers.
🎛 Choose What Each Tool Counts

Every file in tools/ now carries a statistics: block saying exactly which counters that tool tracks. Swords and other combat tools ship counting kills and damage, picks, axes, shovels and hoes count blocks, the fishing rod counts catches, and the multi-tool counts blocks and kills since its shapes cover both.

Turn any counter on or off per tool, or switch a tool's tracking off entirely with statistics.enabled: false.

There is a block filter too. Count only the blocks worth counting, so a pickaxe's number means ore rather than every cobblestone on the way down:

YAML
statistics:
  enabled: true
  counters:
    - BLOCKS_MINED
  blocks:
    mode: whitelist
    list:
      - STONE
      - DEEPSLATE
      - COAL_ORE
      - IRON_ORE

blacklist does the opposite, and the default none counts everything as before.

The filter only changes what counts toward the statistic. Earnings still follow each tool's own earn-from list.
🎣 CustomFishing Support

CustomFishing takes over every catch, plain vanilla fish included, and cancels the game's own fishing event to do it. The rod only listened to that event, so on a server running CustomFishing it saw nothing at all: no currency, no quests, no catch count.

The rod now listens to CustomFishing's own catch event as well. Every successful catch counts again, vanilla fish, treasure, junk and CustomFishing's own custom fish alike.

  • One catch, one count. With trigger-fish-event: true, CustomFishing fires both its own event and a copy of the vanilla one, so catches were counting twice. The copy is now ignored whenever the hook is active
  • Vanilla catches pay properly. CustomFishing reports a plain catch as a generic loot id rather than the fish itself, so vanilla cod paid nothing and advanced no cod quest. The rod now reads the actual item that lands in the water
  • Telekinesis, auto-sell and the drop boost reach CustomFishing catches too, as long as the loot drops in the water, which is CustomFishing's default. Loot placed straight into the inventory still counts and still pays, those three effects just cannot act on it

🐟 Vanilla or Custom Fish Quests

A FISH_CATCH quest can now tell the two apart. Add source: vanilla to count only plain catches, or source: custom for catches from CustomFishing, ItemsAdder or Oraxen. Leave it out and nothing changes.

A quest can also name the plugin item instead of a material, as "customfishing:<loot id>", "itemsadder:<namespace:id>" or "oraxen:<id>". Keep the quotes.

YAML
  golden_cod:
    type: FISH_CATCH
    target: "customfishing:golden_cod"
    amount: 8
    reward_currency: 1500
    name: "<primary>Golden Cod</primary>"
    description:
      - "<muted>Catch 8 golden cod.</muted>"
  any_custom:
    type: FISH_CATCH
    target: ANY
    source: custom
    amount: 50
    reward_currency: 3000
    name: "<primary>Rare Haul</primary>"
    description:
      - "<muted>Catch 50 custom fish.</muted>"

The same idea works for currency. A quoted "customfishing:golden_cod": 20 line in the rod's earn-from gives that fish its own rate, and a custom fish with no line of its own still pays its material's rate.

A typo in source skips that one quest with a console warning. Nothing else breaks.
🛠 Also Fixed

  • A sword no longer counts blocks. Any tool that broke a block was counting it, whatever the tool was built for
  • A style that kept the keys of its old type still shows its colour. Switch a style from gradient to solid and leave the old lines behind, and its colour is used rather than thrown away and reset to white. The console still tells you which line to rename, and says exactly what to change

📝 Upgrade Notes

Stop the server, replace the jar, and start it again. The new statistics: blocks and language lines are added to your files for you, with the defaults above.

One thing to do by hand: your existing fish quests count custom fish as well as vanilla ones until you say otherwise. Add source: vanilla to any that should ignore custom catches, then /et reload.
📋 Version Breakdown
VersionFocus
1.7.0Catches no longer counting twice under CustomFishing, vanilla catches earning and advancing quests properly, and a vanilla or custom split on fishing quests.
1.6.1The fishing rod seeing catches again on a server running CustomFishing.
1.6.0A statistics: block per tool saying which counters it tracks, a block filter for mined blocks, and a fix for swords counting blocks.
1.5.0Per-item statistics: blocks mined, mobs killed, damage dealt and fish caught, shown in the tool's own lore.
1.4.1A style carrying the colour keys of its old type is used rather than falling back to white.

Need help or found a bug? Join the Discord.
Join the Discord

Enjoying the plugin? A ⭐ review goes a long way!

v1.4.0: 1.4.0 | The multi-tool, custom skins per shape, and configs that stop deleting your work

23 August 2026

zEvolutiveTools v1.4.0
A tool that changes shape as you use it, custom skins and images throughout, and configs that never delete what you wrote.

📝 Read This First

Your config files no longer lose your edits. Anything missing is filled in on the next start, and anything you wrote or changed is left alone. That applies to enchants, currency lists, multi-tool shapes, styles and quests alike.

Two things that were being eaten before are now safe: quests you added yourself, which used to be deleted on every reload, and your styles.yml colour lines, where switching a token from a gradient to a solid had its color: line removed, leaving raw tag text in your menu titles.

If you deleted something on purpose and want it to stay gone, set sync.restore-missing-defaults: false.
🔨 The Multi-Tool

One tool that becomes whatever the job needs. Break dirt and it is a shovel, chop a log and it is an axe, mine stone and it is a pickaxe, hit a mob and it is a sword. Same tool throughout, with the same balance, upgrades and quests carrying across every shape.

It picks its shape the moment a player starts hitting a block rather than after the block is gone, so breaking dirt and then the stone underneath mines that stone as a pickaxe. morph-on sets when it changes: start, break, or both.

  • Each shape sets the item it becomes, the blocks it handles, and the enchants it always carries
  • Blocks are matched with * as a wildcard, so "*_LOG" covers every log. The first shape that matches wins, and the last one catches everything left over
  • default-form decides what a brand new tool looks like before a player has broken anything
  • unbreakable: true keeps it from ever breaking, or set a durability and let it wear down

There is a stripped-back version too. The fixed multi-tool changes shape the same way but does nothing else: no menu, no balance, no upgrades, no quests, with every enchant written in the file per shape. You can turn any tool into a fixed one with fixed: true in its file.
🎨 Custom Skins, Per Shape

Any tool can wear a custom item's texture from ItemsAdder or Oraxen, and each multi-tool shape can have its own. A ruby pickaxe that becomes a ruby shovel, then a ruby axe.

YAML
pickaxe:
  material: NETHERITE_PICKAXE
  custom-item-provider: "itemsadder"
  custom-item-id: "mypack:ruby_pickaxe"
  custom-model-data: -1

  • Only the picture is taken. The name, lore, balance, upgrades and quests all stay exactly as they were, it is still one tool
  • A shape you leave empty keeps the tool's normal look, so nothing is forced on you
  • Using a resource pack instead? custom-model-data does the same job: -1 keeps the tool's own model data, 0 means none, anything else is the model you want

Two skin problems are fixed along with it: a skinned shape no longer leaves its texture behind on the next shape, and changing a skin now shows on tools players are already holding after a reload, instead of waiting for the tool to change shape.
🖼 Images in Your Text

Write an image name between two colons and it renders as the picture from your pack, everywhere the plugin writes text: the tool name, every lore line, menu titles and buttons, chat messages, and your language files.

YAML
lore:
  - "<gray>Shift + :right_click: to open the menu"

Oraxen glyphs work the same way with the glyph name. Write a name your pack does not have and the text stays exactly as you typed it, nothing breaks. Turn it off with display.font-images: false if you would rather the colons were left alone.
🛡 Tool Protection

  • No vanilla enchanting on top of yours. Tools cannot be put in an anvil, an enchanting table, a grindstone, a smithing table, or a crafting grid, so no books, no combining two tools, and no table enchants stacked over the ones players bought. Each has its own switch
  • Dropping a tool takes two presses. The first keeps the tool and warns the player, and a second within five seconds actually drops it. The window is configurable, or turn it off entirely

💬 Text and Colour

Text updates without re-equipping. A reload rewrites the name and lore on every tool players are holding, so a wording or colour change shows up straight away. Switch it off with display.refresh-on-reload.

More ways to colour. Everything you already wrote keeps working, and you now also have #{RRGGBB} and <#RRGGBB> hex, gradients, and 125 extra named colours (&t7 is coral, &u1 is cyan).

One small change: the number in a rainbow tag is now an id rather than a saturation level.
🎲 Drop Boost Tuning

ITEM_DROP_BOOST now takes a secondary-chance, a second roll behind the first, so a tool at 100% can be tuned down to paying out about every other block. Set it to 1.0 for no change from before.
📋 Version Breakdown
VersionFocus
1.4.0A custom skin per multi-tool shape, a configurable starting shape, and fixes for skins bleeding between shapes and not updating on reload.
1.3.0Pack images inside any text the plugin writes, using the image name between colons.
1.2.0The fixed multi-tool, custom item skins, earlier shape switching, tool protection against anvils and enchanting tables, a drop confirmation, and configs that stop deleting your edits.
1.1.0The multi-tool itself, plus fixes for quests and colour tokens being wiped on reload and a tuning knob for the drop boost.

📦 Install

Stop the server, replace the old jar in plugins/, and start it again. Nothing to delete by hand, the new keys are added to your files for you.
Need help or found a bug? Join the Discord.
Join the Discord

Enjoying the plugin? A ⭐ review goes a long way!

v1.0.2: 1.0.2 | Built-in enchant names in all 10 languages

24 June 2026

zEvolutiveTools 1.0.2
Enchant names now stick on reload, and every vanilla enchant ships pre-translated in all 10 languages.

✨ What's New

Every vanilla enchant now ships with a built-in name in all 10 languages, so you no longer have to type them in by hand. Smite, Fire Aspect, Sweeping Edge, Bane of Arthropods, and the rest all show translated out of the box. This is also the first official release, the version is now 1.0.1 and up, instead of 1.0.0-x.
🔧 Fixed

Enchant names you add to enchant-names in your language file used to get wiped on reload, so an added enchant showed in English (for example Fire Aspect instead of Aura de feu). They stay now.
📥 What To Do

  1. Drop in the new jar and restart.
  2. To pull the full built-in list into an existing server (French example): open lang/fr_fr.yml, delete the whole enchant-names: block, then run /et reload. The plugin writes the complete French list back in. (A brand new server already has it.)
  3. Prefer to keep your file as is? Add a line under enchant-names for any enchant you use, like FIRE_ASPECT: "Aura de feu". Those stick too.

⚠️ Heads Up

  • An enchant with no line in enchant-names still falls back to a plain English name (FIRE_ASPECT becomes "Fire Aspect"). Every vanilla one now has a line, so this only happens for custom or modded enchants.
  • Use real MC enchant keys (SHARPNESS, SMITE, LOOTING, FIRE_ASPECT, SWEEPING_EDGE, BANE_OF_ARTHROPODS...).

📋 Version Breakdown
VersionFocus
1.0.2Every vanilla enchant ships pre-translated in all 10 languages, no manual entry needed.
1.0.1First official release. Added enchant names now stick on reload instead of being wiped.

Earn. Upgrade. Evolve.

Need help or found a bug? Join the Discord.
Read the documentation | Join the Discord

Enjoying the plugin? A ⭐ review goes a long way!

v1.0.0-6: 1.0.0-6 | Custom enchants now persist on reload

24 June 2026

zEvolutiveTools 1.0.0-6
Custom enchants now persist on reload

🔧 Fixed

Custom enchants added to a tool file were getting wiped on reload, so only the built-in ones (like Sharpness and Looting) showed up. Enchants you add to a tool now stay put, and appear in the menu and lore.
📥 What To Do

  1. Drop in the new jar and restart.
  2. Re-add your enchants to sword.yml (they were already wiped from the file), then run /et reload. They'll stick now and show in the menu and lore.

⚠️ Heads Up

  • Use real enchant names only (Sharpness, Smite, Looting, Fire_Aspect, Sweeping_Edge, and so on). A made-up name will show in the menu but won't actually do anything.
  • Check your cost-curve values. It's one number per level, the price for that level. Make sure they're set to real prices (low values like 6 to 9 mean those levels cost almost nothing).

v1.0.0: Initial release

20 June 2026

Initial release

zEvolutiveTools | Tools That Evolve

v1.7.0
zArrowTan

zArrowTan

Every tool earns currency to unlock enchants, effects, and quests, all saved on the item.

$2.69

$4.49 40% off
Instant download · Updates included · Lifetime licence
$2.30 cheaper than on BuiltByBit $4.99 there, $4.49 here every day, $2.69 in this sale.

Digital product, delivered instantly, no refunds · Terms

2
Views
0
Purchases
N/A
Avg Rating
Sep 25, 2026
Release Date
Sep 12, 2026
Last Update Date
plugin
spigot plugin
economy
hub
leaderboard
gui
itemsadder
oraxen

Share and earn

Earn on every sale you send here

10%

81 pts / sale

Available Bundles

Z Series Plugins
Z Series Plugins 8 products $18.59 $24.79
Save $6.20 25% off together +4 Details Already in cart
© zArrowTan Resources 2026
Forked and customised by zArrowTan · Powered by Light Store