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.jarDo 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, LuckPermsIn-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.
