v1.7.0: 1.7.0 | Per-item statistics, CustomFishing support, and vanilla or custom fish quests
12 September 2026
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 restorebrings 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:
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. 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
| Version | Focus |
1.7.0 | Catches no longer counting twice under CustomFishing, vanilla catches earning and advancing quests properly, and a vanilla or custom split on fishing quests. |
1.6.1 | The fishing rod seeing catches again on a server running CustomFishing. |
1.6.0 | A statistics: block per tool saying which counters it tracks, a block filter for mined blocks, and a fix for swords counting blocks. |
1.5.0 | Per-item statistics: blocks mined, mobs killed, damage dealt and fish caught, shown in the tool's own lore. |
1.4.1 | A style carrying the colour keys of its old type is used rather than falling back to white. |
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
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-formdecides what a brand new tool looks like before a player has broken anythingunbreakable: truekeeps it from ever breaking, or set adurabilityand 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.
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-datadoes the same job:-1keeps the tool's own model data,0means 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.
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
| Version | Focus |
1.4.0 | A custom skin per multi-tool shape, a configurable starting shape, and fixes for skins bleeding between shapes and not updating on reload. |
1.3.0 | Pack images inside any text the plugin writes, using the image name between colons. |
1.2.0 | The 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.0 | The 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.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
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
- Drop in the new jar and restart.
- To pull the full built-in list into an existing server (French example): open
lang/fr_fr.yml, delete the wholeenchant-names:block, then run/et reload. The plugin writes the complete French list back in. (A brand new server already has it.) - Prefer to keep your file as is? Add a line under
enchant-namesfor any enchant you use, likeFIRE_ASPECT: "Aura de feu". Those stick too.
⚠️ Heads Up
- An enchant with no line in
enchant-namesstill falls back to a plain English name (FIRE_ASPECTbecomes "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
| Version | Focus |
1.0.2 | Every vanilla enchant ships pre-translated in all 10 languages, no manual entry needed. |
1.0.1 | First official release. Added enchant names now stick on reload instead of being wiped. |
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
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
- Drop in the new jar and restart.
- 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-curvevalues. 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
zArrowTan
Every tool earns currency to unlock enchants, effects, and quests, all saved on the item.
$2.69
$4.49 40% offDigital product, delivered instantly, no refunds · Terms
No versions available
Share and earn
How referrals work
- Your link is remembered for 30 days.
- 10% of each sale, paid to you as points.
- Yours to spend 30 days later.
- Ask your buyer to turn a VPN off, or the sale will not count.
Earn on every sale you send here
10%
81 pts / sale