> ## Documentation Index
> Fetch the complete documentation index at: https://pumpkings.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# PumpkinMsg: Install on Paper or Velocity in Minutes

> Drop a single PumpkinMsg JAR into your plugins folder on Paper or Velocity. No database required. Supports LuckPerms and PlaceholderAPI.

PumpkinMsg ships as a single JAR that automatically detects whether it is running on a Paper server or a Velocity proxy. You do not need separate builds for different platforms — the same file works everywhere. Installation takes less than a minute on either platform.

## Requirements

* **Java 17** or newer on all server processes
* **Paper 1.20+** or **Velocity 3.x**
* *(Optional)* **LuckPerms** — enables prefix display in the spy and cmdspy formats on both platforms
* *(Optional)* **PlaceholderAPI** — enables `%placeholder%` tokens inside format strings on Paper only

<Note>
  PumpkinMsg saves all user data (ignore lists, spy state, toggle state) to flat files in its own data folder. You do not need MySQL, SQLite, or any other database.
</Note>

## Installation Steps

<Tabs>
  <Tab title="Paper">
    <Steps>
      <Step title="Download the JAR">
        Grab the latest `PumpkinMsg.jar` from the project's releases page.
      </Step>

      <Step title="Place the JAR">
        Copy `PumpkinMsg.jar` into your server's `plugins/` directory.
      </Step>

      <Step title="Install soft dependencies (optional)">
        If you want prefix support in spy formats, place the LuckPerms Paper JAR in `plugins/` as well. For PlaceholderAPI variables in format strings, install PlaceholderAPI the same way.
      </Step>

      <Step title="Restart the server">
        Start or restart your Paper server. PumpkinMsg detects the Paper environment automatically and generates its configuration file.
      </Step>

      <Step title="Edit the configuration">
        Open `plugins/PumpkinMsg/config.toml` to customize message formats and UI strings. Run `/pumpkinreload` in-game to apply changes without another restart.
      </Step>
    </Steps>

    After a successful start you will see a PumpkinMsg banner in the console confirming the platform and version.

    ```
    plugins/
    └── PumpkinMsg/
        └── config.toml   ← generated on first run
    ```
  </Tab>

  <Tab title="Velocity">
    <Steps>
      <Step title="Download the JAR">
        Grab the latest `PumpkinMsg.jar` from the project's releases page. This is the same file used for Paper.
      </Step>

      <Step title="Place the JAR">
        Copy `PumpkinMsg.jar` into your Velocity proxy's `plugins/` directory.
      </Step>

      <Step title="Install LuckPerms (optional)">
        For prefix support in spy formats, install the Velocity edition of LuckPerms into your proxy's `plugins/` folder.
      </Step>

      <Step title="Restart the proxy">
        Start or restart Velocity. The plugin detects the Velocity environment and generates its configuration file.
      </Step>

      <Step title="Edit the configuration">
        Open `plugins/PumpkinMsg/config.toml` to customize formats. Use `/pumpkinreload` from the proxy console or in-game to hot-reload changes.
      </Step>
    </Steps>

    <Note>
      PlaceholderAPI is a Paper-only dependency. On Velocity you can still use the built-in `<sender>`, `<target>`, `<sender_prefix>`, `<target_prefix>`, `<player>`, `<command>`, and `<server>` tokens in your formats.
    </Note>
  </Tab>
</Tabs>

## Soft Dependencies at a Glance

| Dependency     | Platform         | What it unlocks                                          |
| -------------- | ---------------- | -------------------------------------------------------- |
| LuckPerms      | Paper & Velocity | Sender and target prefixes in `spy` and `cmdspy` formats |
| PlaceholderAPI | Paper only       | Any `%placeholder%` token in all format strings          |

## Verifying the Installation

Run `/pumpkinreload` from the console or in-game. If the plugin is installed correctly you will see a green confirmation message matching the `reload-success` string in your `config.toml`.

<Tip>
  If the plugin fails to load, check that you are running Java 17+ by running `java -version` in your terminal. PumpkinMsg will not load on older JVM versions.
</Tip>
