> For the complete documentation index, see [llms.txt](https://edseries-plugins.gitbook.io/p/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://edseries-plugins.gitbook.io/p/pinnaprison/core/pickaxe/pickaxe-skins.md).

# Pickaxe Skins

Pickaxe skins let players **re-skin** their prison pickaxe. A skin changes the pickaxe's material + model data, re-colours its name and lore, and grants a flat **blocks multiplier** (an autosell bonus that stacks with the backpack multiplier). Skins are bought and equipped in a dedicated upgrade menu.

Each skin is **one file** in `pickaxe/skins/<id>.yml` — the filename is the skin **id**. The upgrade order lives in `pickaxe/config.yml`.

## Skin file

`pickaxe/skins/diamond.yml`:

```yaml
name: '&#5EB3BF&lDiamond &#00E0FF&lPickaxe'
colors:
  primary: '&#5EB3BF'
  secondary: '&#00E0FF'
material: DIAMOND_PICKAXE
model-data: -1        # -1 = no custom model data
multiplier: 0.4       # blocks (autosell) multiplier
cost:
  currency: money
  amount: 634
```

| Key                                   | Description                                                                                                                                            |
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `name`                                | The skin's display name (used in the menu and in messages).                                                                                            |
| `colors.primary` / `colors.secondary` | The two colours applied to the pickaxe via `{prim-color}` / `{sec-color}` (see below). Hex (`&#RRGGBB`) and `&` codes both work.                       |
| `material`                            | The pickaxe material this skin uses (e.g. `WOODEN_PICKAXE`, `NETHERITE_PICKAXE`).                                                                      |
| `model-data`                          | Custom model data for resource-pack textures (`-1` = none). Several skins can share one material (e.g. `NETHERITE_PICKAXE`) with different model data. |
| `multiplier`                          | Extra blocks per mined block — exactly like a backpack tier multiplier (`0.4` = +40%). **Stacks additively** with the backpack multiplier.             |
| `cost.currency` / `cost.amount`       | The currency and price to buy this skin. The first skin in the order is free.                                                                          |

## `pickaxe/config.yml` — the skins section

```yaml
skins:
  gui: 'pickaxe-skins'
  equip-sound: 'ENTITY_PLAYER_LEVELUP'
  buy-sound: 'ENTITY_PLAYER_LEVELUP'
  invalid-sound: 'ENTITY_VILLAGER_NO'
  status-equipped:
    - ''
    - '&e&lEQUIPPED'
  status-owned:
    - ''
    - '&a&lOWNED'
    - '&2Click to equip this Pickaxe Skin'
  status-locked:
    - ''
    - '&c&lLOCKED'
    - '&4Click to buy this Pickaxe Skin'
  status-locked-previous:
    - ''
    - '&c&lLOCKED'
    - '&4Unlock the previous skin first'
  order:
    - 'wooden'
    - 'stone'
    - 'iron'
    - 'golden'
    - 'diamond'
    - 'netherite'
    - 'chocolate'
```

| Key                                           | Description                                                                                                                                                          |
| --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `gui`                                         | The skins menu (a file in `guis/`).                                                                                                                                  |
| `equip-sound` / `buy-sound` / `invalid-sound` | Sounds for equipping, buying and a failed action (can't afford / out of skins).                                                                                      |
| `status-*`                                    | The status block shown by the `{status}` placeholder in the skins GUI: equipped, owned, locked (buyable next), or locked-previous (an earlier skin isn't owned yet). |
| `order`                                       | The skin ids in upgrade order. **The first entry is the free default** that everyone owns and starts with.                                                           |

{% hint style="warning" %}
**Skins unlock in order.** A player can only buy the next skin once they own every earlier skin in `order` — they can't skip ahead. The **Best Upgrade** button upgrades through **every** skin they can afford in one click (paying the cumulative cost) and equips the best one they can reach.
{% endhint %}

## Re-colouring the pickaxe

The equipped skin's colours are exposed to the pickaxe item (`pickaxe/config.yml` → `item`) as `{prim-color}` and `{sec-color}`, and its material as `{skin-material}`:

```yaml
item:
  material: '{skin-material}'
  name: '{prim-color}&lPrison {sec-color}&lPickaxe'
  lore:
    - '{sec-color}&lLeveling'
    - ' {sec-color}| &7Level: &b%pinnaprison_leveling_balance_pickaxelevel_formatted%'
    # …
```

So the pickaxe's name and lore automatically take on the equipped skin's colours, and the item becomes the skin's material (with its model data).

## The skins menu

`guis/pickaxe-skins.yml` is a normal [GUI](/p/pinnaprison/customization/guis.md). Each skin is a slot with a `pickaxe-skin` custom item:

```yaml
skin-diamond:
  custom-item:
    type: 'pickaxe-skin'
    skin: 'diamond'
  material: DIAMOND_PICKAXE
  slot: 14
  name: '{name}'
  lore:
    - ' {prim-color}* &7Buff: &e{multiplier}x &6Blocks Multiplier'
    - ' {prim-color}* &7Price: &a${price} &2{currency-name}'
    - '{status}'
```

The `pickaxe-skin` item fills these placeholders from the skin file: `{name}`, `{prim-color}`, `{sec-color}`, `{multiplier}`, `{price}`, `{currency-name}`, `{status}`. Clicking it **buys** the skin (if locked + affordable) or **equips** it (if owned). The equipped skin glows.

There is also a **`pickaxe-skin-best`** item (the nether-star "Best Upgrade" button) that buys the highest skin the player can currently afford.

{% hint style="info" %}
To add a skin: create `pickaxe/skins/<id>.yml`, add `<id>` to `skins.order` in `pickaxe/config.yml`, then add a slot for it in `guis/pickaxe-skins.yml` with `custom-item.skin: '<id>'`.
{% endhint %}

## Opening the menu

The token and gem enchant menus include a **Pickaxe Skins** button (an `open-gui` item pointing at `pickaxe-skins`). Players reach the enchant menus by right-clicking the pickaxe.

## Default skins

The plugin ships with seven skins out of the box, each granting a bigger blocks multiplier:

| Id          | Skin                             | Multiplier |
| ----------- | -------------------------------- | ---------- |
| `wooden`    | Wooden Pickaxe (free default)    | 0.00x      |
| `stone`     | Stone Pickaxe                    | 0.10x      |
| `iron`      | Iron Pickaxe                     | 0.20x      |
| `golden`    | Golden Pickaxe                   | 0.30x      |
| `diamond`   | Diamond Pickaxe                  | 0.40x      |
| `netherite` | Netherite Pickaxe                | 0.50x      |
| `chocolate` | Chocolate Pickaxe (custom model) | 0.60x      |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://edseries-plugins.gitbook.io/p/pinnaprison/core/pickaxe/pickaxe-skins.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
