> 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/pinnablockselector/getting-started/installation.md).

# Installation

1. Stop the server. Put `PinnaBlockSelector.jar` in `plugins/`. PinnaPrison 1.2.30+ must be installed (PlaceholderAPI and EdLang are optional).
2. Start the server. The plugin writes `config.yml` and `messages.yml` into `plugins/PinnaBlockSelector/`, and its two menus into `plugins/PinnaPrison/guis/pinnablockselector/`. The console says how many blocks can be chosen.
3. Open `config.yml` and set `purchase.currency` to one of your PinnaPrison currency ids (the console warns when the currency doesn't exist and lists the ones you have) and `purchase.price`. Run `/blockselector reload`.
4. Add the button to your `/mine` menu: copy the snippet from [Menus](/p/pinnablockselector/reference/guis.md#the-mine-button) into `plugins/PinnaPrison/guis/mine.yml` (pick a free slot), then `/pinnaprison reload`.
5. Decide how players get it:
   * in game: the purchase menu (on by default),
   * a rank: give the group `pinnablockselector.unlock`,
   * your store, crates or votes: run `blockselector give {player} -s` from the console.

If PinnaPrison is too old (no mine block override), the plugin disables itself with a message in the console.

## Updating from an older version

Your `config.yml`, `messages.yml` and menus are never overwritten. New options use their default until you add them; new messages are sent in English until you add them to your `messages.yml`. To get the new default menus, rename the old menu files and restart: the plugin writes fresh ones.

## Dependencies

| Plugin              | Needed for                                            |
| ------------------- | ----------------------------------------------------- |
| PinnaPrison 1.2.30+ | required: private mines, currencies, menus            |
| PlaceholderAPI      | optional: the `%pinnablockselector_...%` placeholders |
| EdLang              | optional: every text in each player's language        |
