zEvolutiveTools

Tools

How each tool earns currency, levels up, and keeps its progress on the item.

A tool is the heart of the plugin. Each tool earns currency from its own action, then spends it in the tool's menu.

Supported tools

ToolDefault materialEarns fromMinimum version
PickaxeNetherite PickaxeBreaking blocks1.18
AxeNetherite AxeChopping logs1.18
ShovelNetherite ShovelDigging blocks1.18
HoeNetherite HoeHarvesting crops1.18
SwordNetherite SwordKilling mobs1.18
Fishing RodFishing RodCatching fish1.18
TridentTridentKilling mobs1.18
MaceMaceKilling mobs1.21
SpearNetherite SpearKilling mobs1.21.11
Multi-ToolNetherite PickaxeEvery action above1.18
Fixed Multi-ToolDiamond PickaxeNothing, it is finished1.18

A tool whose material does not exist on your server version is skipped automatically. So the mace and spear simply do not load on older servers. You can also turn any tool off with the enabled flag in its file.

Each tool's material, currency name, earn rates, enchants, and effects live in its own file under tools/. The pickaxe.yml file has the full schema documentation, and the other files point back to it.

How earning works

Every tool has an earn-from list. The list maps an action to a currency amount. You stay in full control of the economy.

  • A pickaxe can pay one amount for stone and a bigger amount for diamond ore.
  • A sword pays per mob type.
  • A fishing rod pays per caught item.
  • Anything not on the list pays nothing.

If CustomFishing is installed, the fishing rod hooks its events automatically, so currency, quests, and the FISH_CAUGHT stat all still advance for vanilla catches and CustomFishing's own custom fish. Each catch counts exactly once, whether or not CustomFishing's trigger-fish-event option is on. Telekinesis, auto-sell, and the item-drop-boost effect work on any catch that CustomFishing drops in the water; loot it puts straight into the inventory still counts but those three effects cannot act on it.

A custom fish can have its own earn rate. Add a quoted plugin id as the key: "customfishing:golden_cod": 20, "itemsadder:mypack:golden_cod": 20, or "oraxen:golden_cod": 20. A custom catch checks its plugin ids first and falls back to its material, so a cod-based custom fish with no line of its own pays the COD rate. Quests can tell vanilla and custom fish apart too, see Quests.

Player does the action

They break a block, kill a mob, or catch a fish that is on the earn-from list.

Currency is added

A short gain message appears. It shows on the action bar or in chat, set by display.use-action-bar-on-gain.

The balance is saved

The new balance is stored on the item and shown in the tool's lore and menu.

What the lore can show

The lore can list more than the balance. Each part below is turned on or off with a display.lore-show-... option in config.yml.

  • The tool's enchant levels.
  • The live bonus of upgradable effects, shown as a percentage. For example, a currency multiplier at +25%.
  • The settings, with each on/off toggle as a green check or red cross, plus the active mining radius.
  • The tool's lifetime statistics: blocks mined, mobs killed, damage dealt, and fish caught. Each item keeps its own counters, and only counters above zero are listed, so a sword never shows a blocks row.

The settings part of the lore updates the moment a toggle is flipped in the menu, so the held item always matches.

Choosing which statistics a tool tracks

Each tool file has a statistics block that decides which of the four lifetime counters it tracks. This is what keeps a sword from ever counting blocks mined, or a pickaxe from counting mobs killed.

statistics:
  enabled: true
  counters:
    - MOBS_KILLED
    - DAMAGE_DEALT
  blocks:
    mode: none
    list: []
KeyWhat it does
enabledTurns tracking and the Statistics lore section on or off for this tool.
countersThe counters this tool tracks: any of BLOCKS_MINED, MOBS_KILLED, DAMAGE_DEALT, FISH_CAUGHT. A counter left out of the list never counts and never shows.
blocks.modeRestricts which broken blocks count toward BLOCKS_MINED. none counts every block (the default), whitelist counts only the blocks in list, blacklist counts every block except the ones in list. Has no effect on the other three counters or on currency.
blocks.listMaterial names, read only when mode is whitelist or blacklist.

display.lore-show-stats in config.yml is the master switch for every tool at once. A tool's own statistics.enabled only ever narrows that, it cannot turn stats on for a tool the global switch has off.

Upgrading a tool

While holding a tool, sneak and right-click to open the menu. From there a player can:

  • Buy Enchantments with the tool's balance.
  • Unlock and upgrade Effects like autosmelt or radius mining.
  • Toggle effects and pick a mining radius under Settings.
  • Track the Quests for that tool.
  • Open the server Leaderboards.

See Menus for a tour of each page.

Customizing enchants

You decide which enchants a tool offers. Open the tool file, find the enchants block, and add an entry. Each entry needs a max-level and a cost-curve (one price per level, so the list length matches max-level).

enchants:
  EFFICIENCY:
    max-level: 10
    cost-curve: [500, 1000, 2000, 4000, 8000, 16000, 32000, 64000, 128000, 256000]
  UNBREAKING:
    max-level: 3
    cost-curve: [5000, 15000, 50000]

A new entry shows up in the enchant menu and the tool lore on the next /et reload.

Use real Minecraft enchant names that fit the tool (for a sword: SHARPNESS, SMITE, LOOTING, FIRE_ASPECT, SWEEPING_EDGE, and so on). A name the game does not know will appear in the menu but apply nothing to the item.

The enchants list and the currency earn-from list are yours to edit. The plugin keeps them exactly as you write them across reloads and updates, so entries you add are never wiped. Buying is always done in the enchant menu; the lore only displays the levels you own.

The multi-tool

The multi-tool is one tool that does the job of several. It changes shape to match the work:

  • Break dirt and it becomes a shovel.
  • Chop a log with that shovel and it becomes an axe.
  • Mine stone and it becomes a pickaxe.
  • Kill a mob and it becomes a sword.

Only the item's shape, its fixed enchants, and its durability change. The balance, upgrades, settings, and quest progress all stay put, because it is always the same tool. Give one with:

/et give <player> default_multi_tool

Setting up the shapes

Shapes live in the multi-tool block of tools/multi_tool.yml. Each shape says what item it turns into, what blocks it handles, and what enchants it always carries.

multi-tool:
  enabled: true
  morph-on: start
  unbreakable: true
  durability: -1
  default-form: pickaxe
  forms:
    axe:
      material: NETHERITE_AXE
      enchants:
        EFFICIENCY: 5
      matches:
        - "*_LOG"
        - "*_PLANKS"
    sword:
      material: NETHERITE_SWORD
      on-kill: true
      enchants:
        SHARPNESS: 5
      matches:
        - "COBWEB"
KeyWhat it does
enabledTurns shape changing on or off. Off means the tool stays on its starting material.
morph-onWhen the shape is picked. start (default) picks it as the player starts breaking a block, so the block is mined by the shape that fits it. break picks it after the block is gone, which leaves the next block to the previous shape. both does both.
unbreakableOverrides the tool's unbreakable flag on every shape change. Remove the key to leave it alone.
durabilityRemaining durability to set on every shape change. -1 leaves the damage the item already has.
default-formThe shape a brand new tool already wears, before it has changed shape once. Leave it empty to start on the tool's own look.
materialThe item this shape turns into.
matchesBlock names this shape handles. * stands for any run of characters, so "*_LOG" claims every log type.
on-killMarks the shape the tool takes when the player kills a mob.
enchantsEnchants always applied while wearing this shape, on top of the ones the player bought.
custom-item-providerA skin for this shape only. See a different skin per shape.
custom-item-idThe custom item id for this shape's skin.
custom-model-dataModel data for this shape when you use a plain resource pack. -1 keeps the tool's own, 0 gives this shape none.

Shapes are checked in the order they are written and the first match wins. A block no shape claims leaves the tool as it is. The shipped file ends with a pickaxe shape matching "*", so anything unclaimed falls back to a pickaxe. Move that entry or delete it if you would rather nothing matched.

The forms list is yours. Shapes you add, change, or remove survive reloads and plugin updates, the same way the enchants list does.

Fixed tools

A fixed tool is a finished item. It has no menu, no balance, no upgrades, and no quests. Everything it owns is written in its file. Use one as a reward, a kit item, or a crate prize.

Set it in any tool file:

fixed: true
unbreakable: false
durability: 1561
lore:
  - ""
  - "<muted>Changes shape to fit the job.</muted>"
KeyWhat it does
fixedMakes the tool finished: no menu, no currency, no upgrades, no quests.
durabilityUses the tool starts with. -1 gives it the full bar of its material. Only matters with unbreakable: false.
loreThe lore lines shown under the name. Only used on a fixed tool, since an evolving tool builds its lore from live progress.

A ready-made one ships as tools/fixed_multi_tool.yml: a fixed multi-tool that still changes shape and carries a set list of enchants per shape.

/et give <player> fixed_multi_tool

On a breakable fixed multi-tool, keep durability: -1 inside the multi-tool block. Any other value refills the bar on every shape change, which makes the tool last forever.

Custom items from ItemsAdder or Oraxen

A tool can wear a custom item's texture instead of its plain material. Two keys, in any tool file:

custom-item-provider: "itemsadder"
custom-item-id: "mypack:ruby_pickaxe"

Use oraxen with the plain item id for Oraxen. Only the look is taken, so the tool keeps its own name, lore, balance, and progress: you can restyle a tool without touching anyone's upgrades.

If the plugin is missing or the id is unknown, the tool falls back to its configured material and writes one line in the console explaining which id it could not find.

A different skin per shape

The same two keys work inside a multi-tool shape, so the pickaxe shape, the shovel shape and the axe shape can each carry their own texture. Write them under the shape, in the forms list:

multi-tool:
  default-form: pickaxe
  forms:
    axe:
      material: NETHERITE_AXE
      custom-item-provider: "itemsadder"
      custom-item-id: "mypack:ruby_axe"
      matches:
        - "*_LOG"
    shovel:
      material: NETHERITE_SHOVEL
      custom-item-provider: "itemsadder"
      custom-item-id: "mypack:ruby_shovel"
      matches:
        - "DIRT"
    pickaxe:
      material: NETHERITE_PICKAXE
      custom-item-provider: "itemsadder"
      custom-item-id: "mypack:ruby_pickaxe"
      matches:
        - "*"

The tool now wears the ruby pickaxe on stone, the ruby shovel on dirt, and the ruby axe on logs, while staying one tool with one balance and one set of upgrades.

A shape that names no skin wears the tool's own look instead, so a skinned shape never leaves its texture behind on the next one. On a plain resource pack, use custom-model-data on the shape instead of the two ItemsAdder keys: -1 keeps the tool's own model data, 0 gives that shape none.

default-form decides what a freshly given tool looks like. Point it at the shape you want players to receive, otherwise the tool wears its own material and skin until the first block is broken.

Skins are re-applied on /et reload, so an edited id shows on the tools players are already holding without them having to change shape again.

Custom images inside your text

An ItemsAdder font image or an Oraxen glyph can be shown anywhere the plugin writes text: a tool name, a lore line, a menu, a message. Write the image name between two colons, exactly as it is named in your pack:

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

The picture replaces the placeholder in game. A name neither plugin knows is left as you typed it, so nothing breaks if the pack changes.

Turn it off in config.yml if you use : characters in your text and want them left alone:

display:
  font-images: false

Keeping tools out of vanilla stations

By default a tool cannot be put into an anvil, an enchanting table, a grindstone, a smithing table, or a crafting grid. Without that, a player could stack vanilla enchants on top of the ones they bought, or grind the tool down. Dropping a tool also takes two presses, so a mistimed key does not throw a maxed tool on the floor.

All of it is switchable under protection in config.yml. See Configuration.

Progress is saved on the item

A tool's currency, enchants, effects, settings, and quest progress all live on the item. The tool keeps everything through death, dropping, trading, and server restarts.

The server also keeps a backup of each tool in the database, so an admin can restore a lost one with /et restore.

On this page