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

# Installation

1. Stop the server, put `EdMortars.jar` in `plugins/` next to PinnaPrison, start it.
2. EdMortars creates:
   * `plugins/EdMortars/config.yml`, `messages.yml` and `mortars/default.yml`;
   * the two menus in `plugins/PinnaPrison/guis/EdMortars/` (`mortar-unlock.yml`, `mortar-upgrades.yml`). They are written once and never overwritten, so your edits are safe across updates.
3. Add a mortar to one or more mine types (`plugins/PinnaPrison/privatemines/mines/<type>.yml`):

   ```yaml
   placeables:
     mortar1:
       type: mortar          # config.yml placeable-type
       mortar: default       # file name in plugins/EdMortars/mortars/
       position: '8.5,89,-9.5,-45,0'
   ```

   `position` is `x,y,z,yaw,pitch` in the mine's schematic space, the same as every other PinnaPrison placeable. `y` is the floor the mortar stands on, `yaw` is the way the barrel faces.
4. `/pinna reload`. Mines that are already loaded get their mortar at once.
5. Stand in your mine and use `/mp move mortar1` to fine-tune the spot.

## Updating

Replace the jar and restart. New messages fall back to the built-in English defaults until you add them to your `messages.yml`. Menu files you already have are kept as they are.

### From 1.0.x

* The menus moved out of the mortar files into PinnaPrison GUI files. The old `unlock-gui:` and `upgrade-gui:` sections are no longer read (a warning in the console says so). Copy your layout into `plugins/PinnaPrison/guis/EdMortars/mortar-unlock.yml` / `mortar-upgrades.yml` (see [Menus](/p/edmortars/reference/menus.md)), then delete the old sections.
* Mortar files without `models.type` keep using ModelEngine when `models.locked.model` / `models.unlocked.model` are set, exactly like before. `models.fallback` still works as the look of a state without vanilla parts.
* `gui.click-cooldown-ms` in config.yml is now `menus.click-cooldown-ms` (the old key is still read).
* Player data files are unchanged.
