App & Framework Hosting is now generally available in all 30+ regions.

Game Servers

How to Install Plugins on a Paper Minecraft Server

Applies to: Minecraft server hosting

Installing a plugin on a Paper server is genuinely simple — one file into one folder — but there are three places it goes wrong: running a server type that cannot load plugins at all, grabbing a build for the wrong Minecraft version, and applying changes with /reload instead of a restart. This guide covers the clean way through all of it.

01Confirm you are running Paper

Plugins are a feature of the Bukkit family of servers — Paper, its upstream Spigot, and forks like Purpur. Vanilla servers ignore the plugins folder entirely, and Forge/Fabric servers use mods, which are a different thing installed in a different folder. Run /version in the console: you want to see something like This server is running Paper version 1.21.x. If you are on vanilla, switch the jar to Paper first — it loads existing vanilla worlds in place and is the de facto standard for plugin servers.

02Download a plugin built for your version

The main sources are Hangar (PaperMC's own repository), SpigotMC, and Modrinth. Two compatibility rules:

  • Server type: plugins built for Spigot run fine on Paper — Paper is a drop-in Spigot replacement. The reverse is not guaranteed: some plugins use Paper-only APIs and will not load on plain Spigot.
  • Minecraft version: check the plugin page's supported versions against your server. Well-maintained plugins span many versions; ones that hook server internals (anti-cheats, NMS hacks) often need an exact match and fail loudly on anything else.

Download the .jar file itself — if the download is a zip, the jar is inside it.

03Upload the .jar into the plugins folder

Every Paper server has a plugins folder in its root (created on first boot). Upload the jar straight into it via SFTP or your panel's file manager:

server/
├── paper-1.21.4.jar
├── server.properties
└── plugins/
    ├── EssentialsX-2.21.0.jar   ← plugin jars live here
    └── LuckPerms-Bukkit-5.4.jar

Do not extract the jar, and do not nest it in a subfolder — plugins/EssentialsX/EssentialsX.jar will not load. The subfolders you will see appear next to the jars are created by the plugins themselves for their configuration (step 6).

04Restart the server — do not use /reload

Stop the server and start it again. It is tempting to run /reload instead, and the command does exist — but it has been considered harmful by the Paper and Spigot teams for years. /reload tears down and re-initialises every plugin inside a running JVM: old classes stay loaded, scheduled tasks get duplicated, plugins that hold database connections or player data can end up in a corrupt half-state, and memory climbs with every use. A restart takes under a minute and gives every plugin the clean startup it was written to expect. The only reload worth using is a plugin's own config-reload command (step 6).

05Check the startup log and /plugins list

Watch the console during boot. A healthy load looks like [EssentialsX] Enabling EssentialsX v2.21.0; a failed one prints a stack trace naming the plugin. Then verify:

> plugins
Plugins (2): EssentialsX, LuckPerms

In-game, /plugins colour-codes the list: green is loaded and enabled, red is present but failed. If a plugin is red, the reason is in the startup log — almost always a version mismatch or a missing dependency plugin named in the error.

06Configure the plugin

On first successful load, most plugins generate plugins/<PluginName>/config.yml (plus language files, data folders, and sometimes a database). Edit the YAML with any text editor — mind the indentation, YAML is whitespace-sensitive — then apply it with a restart, or the plugin's own reload command (for example /ess reload for EssentialsX), which safely re-reads just that plugin's config.

Run it on HostPanel: our Minecraft server hosting plans run Paper out of the box with full access to the plugins folder and one-click restarts.

Troubleshooting

The plugin shows red in /plugins or never appears

Read the startup log — the answer is always there. An UnsupportedClassVersionError means the plugin needs a newer Java; a message naming another plugin means a missing dependency (install that too); “This version of Minecraft is not supported” means exactly what it says — get a build for your server version.

Everything broke after /reload

Duplicate scheduled tasks, doubled scoreboards, plugins throwing errors that were fine before — classic /reload damage. A full stop and start clears it. Make restarting your habit and keep /reload out of it entirely.

My config edits are being ignored

Either the YAML is invalid — the plugin logs a parse error on boot and silently falls back to defaults — or you edited the config while the server was running and it was overwritten on shutdown. Validate the indentation, edit with the server stopped, then start it up.