# How to Install a Custom Server JAR on Your Minecraft Server (/docs/minecraft/install-custom-jar)



import { Step, Steps } from 'fumadocs-ui/components/steps';

If you want to run a server type beyond the built-in Vanilla, Paper, Forge, or Fabric — like **Purpur**, **Pufferfish**, **Mohist**, **Magma**, or **Folia** — you can upload any compatible JAR and point your server's startup at it.

Popular Custom JARs [#popular-custom-jars]

| JAR                                                   | Based on                | Best for                                                               |
| ----------------------------------------------------- | ----------------------- | ---------------------------------------------------------------------- |
| **[Purpur](https://purpurmc.org/)**                   | Paper                   | Extra gameplay features (rideable mobs, AFK kicks, configurable rules) |
| **[Pufferfish](https://pufferfish.host/)**            | Paper                   | Maximum performance, 100+ player servers                               |
| **[Folia](https://papermc.io/software/folia)**        | Paper                   | Region-based threading for huge servers (experimental)                 |
| **[Leaves](https://leavesmc.org/)**                   | Paper                   | Vanilla parity + selective Paper optimizations                         |
| **[Mohist](https://mohistmc.com/)**                   | Forge + Paper           | Run Forge mods AND Bukkit plugins together                             |
| **[Magma](https://magmafoundation.org/)**             | Forge + Paper           | Alternative Forge + Bukkit hybrid                                      |
| **[Arclight](https://github.com/IzzelAliz/Arclight)** | Forge/NeoForge + Bukkit | Modern Forge mod + plugin hybrid                                       |

Install a Custom JAR [#install-a-custom-jar]

<Steps>
  <Step>
    Download the JAR from the official source [#download-the-jar-from-the-official-source]

    Always download from the official project site (links above). Pick the build for your Minecraft version. Save the file with a clean name like `purpur-1.20.4.jar`.

    > **Security note:** Never download server JARs from random forums or "modified" sites — they're a common vector for crypto-miner malware.
  </Step>

  <Step>
    Stop the server [#stop-the-server]

    In the [XGamingServer Panel](https://panel.xgamingserver.com), open **Console** and stop your server.
  </Step>

  <Step>
    Create a backup [#create-a-backup]

    Open **Backups** and create a snapshot. If the new JAR breaks your world or plugins, you'll want a rollback point.
  </Step>

  <Step>
    Upload the JAR [#upload-the-jar]

    Click **Files** in the sidebar. Upload your `.jar` file to the **server root** (same level as `server.properties`). For files over 100 MB, [use SFTP](/docs/minecraft/configure-sftp) instead.
  </Step>

  <Step>
    Update the startup configuration [#update-the-startup-configuration]

    Click **Startup** in the sidebar. Find the **Server JAR File** (or similar) variable and change it to the exact filename you uploaded:

    ```
    purpur-1.20.4.jar
    ```

    Save the change.
  </Step>

  <Step>
    Start the server [#start-the-server]

    Start from **Console**. Watch the startup log — the new JAR should announce itself (e.g., "This server is running Purpur version git-Purpur-...").
  </Step>
</Steps>

Compatibility Notes [#compatibility-notes]

| Custom JAR                | Compatible plugins       | Compatible mods | Notes                                     |
| ------------------------- | ------------------------ | --------------- | ----------------------------------------- |
| Purpur                    | All Paper/Spigot/Bukkit  | ❌               | Drop-in Paper replacement                 |
| Pufferfish                | All Paper/Spigot/Bukkit  | ❌               | Drop-in Paper replacement                 |
| Folia                     | Folia-aware plugins only | ❌               | Many plugins are not Folia-compatible yet |
| Mohist / Magma / Arclight | Most Bukkit              | Most Forge      | Hybrids — expect some incompatibilities   |
| Leaves                    | All Paper/Spigot/Bukkit  | ❌               | Vanilla-feature parity                    |

> **Hybrid warning:** Mohist/Magma/Arclight let you run mods *and* plugins, but the cost is fragility. Some mods conflict with some plugins. Always test on a staging server before going live.

Should You Use a Custom JAR? [#should-you-use-a-custom-jar]

For most servers — **no, stick with Paper**. Paper covers 95% of needs and is the most stable, most-supported option.

Switch to a custom JAR only if you have a specific need:

* **Pufferfish/Folia** — your Paper server is hitting tick lag with many players
* **Purpur** — you want vanilla gameplay tweaks (rideable mobs, AFK rules, etc.)
* **Mohist/Arclight** — you genuinely need Forge mods AND Bukkit plugins on the same server
* **Leaves** — you want Paper-level performance with vanilla parity (no behavior changes)

Common Issues [#common-issues]

| Problem                        | Fix                                                                            |
| ------------------------------ | ------------------------------------------------------------------------------ |
| Server still uses old JAR      | The **Startup → Server JAR File** variable wasn't updated                      |
| `Unable to access jarfile`     | Filename mismatch — check exact case-sensitive name                            |
| `UnsupportedClassVersionError` | Wrong Java version. See [Java Version](/docs/minecraft/java-version)           |
| Plugins crash on startup       | Plugin is not compatible with the new server type — check plugin docs          |
| Mods don't load on Mohist      | Mods must be in `mods/`, not `plugins/`. Some Forge mods don't work on hybrids |
| Server crashes immediately     | Restore the previous JAR via your backup                                       |

Switching Back [#switching-back]

To revert to a built-in server type:

1. Stop the server
2. In **Startup**, change the **Docker Image** or **Server Type** back to Paper/Vanilla/Forge
3. Reset the **Server JAR File** to the default (e.g., `server.jar`)
4. Start

Or restore from the **Backup** you made before installing.

Related Guides [#related-guides]

* [Switch Version](/docs/minecraft/switch-version)
* [Java Version](/docs/minecraft/java-version)
* [Optimize Server](/docs/minecraft/optimize-server)
* [Modpack Setup](/docs/minecraft/modpack-setup)
* [SFTP Connection](/docs/minecraft/configure-sftp)
