Make sure you're running Paper
Plugins only work on server software that supports them. Open the Startup tab and look at the Egg:
| Software | Plugins? | Notes |
|---|---|---|
| Paper | Yes | What we recommend. Runs Bukkit and Spigot plugins. |
| Spigot / Bukkit | Yes | Works, but Paper is faster and a drop-in replacement. |
| Vanilla | No | Mojang's own jar. Switch the egg to Paper first. |
| Fabric / Forge | No | These take mods, not plugins, different files entirely. |
Plugins run on the server only, players join with a normal Minecraft client and don't install anything. Mods have to be installed by every player as well as the server. If a download page says "Fabric" or "Forge", it's a mod and it won't load on Paper.
Download from somewhere you can trust
Stick to the places the plugin authors actually publish to:
- Hangar, PaperMC's own platform. Clean downloads, no ad gates.
- Modrinth, good search, clear version tags.
- SpigotMC, the biggest catalogue, and where a lot of older plugins still live.
Never install a paid plugin from a "leaks" site. Those jars are routinely repacked with backdoors that hand out operator to whoever uploaded them, and you'd be handing that person your whole server. If a plugin costs money, buy it.
Check the version before you download
Every download page lists which Minecraft versions the file supports. Match it to the
MINECRAFT_VERSION in your Startup tab. A plugin built
for 1.20 will usually throw errors on 1.21, sometimes badly enough to stop the server
booting at all.
Read the dependencies
Plenty of plugins need a second plugin to work. If the page mentions a requirement, download that too, the usual suspects are:
- Vault: the bridge economy and permission plugins talk through.
- PlaceholderAPI: supplies
%player_name%-style placeholders to other plugins. - ProtocolLib: needed by anything doing clever packet work.
Upload the jar
Plugins live in the plugins/ folder in your server root. There are two ways in.
Through the panel
- Open the Files tab.
- Click into plugins.
- Hit Upload and pick your .jar, or drag it onto the file list.
Fine for one or two files, and it needs nothing installed on your computer.
Through SFTP
Faster for a pile of plugins. Grab the connection details from Settings → SFTP Details and put them into FileZilla or WinSCP:
Host sftp://node.pulsedmc.net
Port 2022
Username yourname.a1b2c3d4
Password your panel password
The SFTP username is not just your email, it has your server's short ID after the dot. Copy it straight from the panel rather than typing it out.
Upload the .jar itself, not a .zip containing it, and don't put it in a subfolder. Paper only looks one level deep in plugins/.
Restart and confirm it loaded
Paper reads plugins/ once, at boot. Uploading a jar to a running server does nothing until you Restart from the console tab.
[12:10:01 INFO]: [LuckPerms] Loading server plugin LuckPerms v5.4 [12:10:02 INFO]: [EssentialsX] Enabling EssentialsX v2.20.1 [12:10:03 INFO]: [CoreProtect] Enabling CoreProtect v22.4 [12:10:04 INFO]: Done (8.117s)! For help, type "help"
Then check the full list, either in console or in-game as an op:
plugins
Green names are running. Red means the plugin loaded but failed to enable, scroll up in the console and the reason will be sitting there.
It looks like a shortcut and it is a trap. /reload leaves half-dead copies of plugins behind and causes bugs that are miserable to diagnose. Always do a proper restart.
Configure it
On first boot each plugin creates its own folder inside plugins/ holding a config.yml. So install first, restart, then configure, the file won't exist before that.
plugins/
├── EssentialsX.jar
├── Essentials/
│ ├── config.yml
│ └── userdata/
├── LuckPerms.jar
└── LuckPerms/
└── config.yml
Edit these in the panel file manager, which will syntax-highlight the YAML for you.
Indent with spaces, never tabs, and keep a space after every colon. One stray tab and the plugin refuses to start with a while scanning for the next token error. If you get one, paste the file into an online YAML validator, it will point at the exact line.
Most plugins can reload just their own config without restarting the server:
essentials reload lp reload
Give players permission to use it
Out of the box, most plugin commands are op-only. That's fine for you and useless for everyone else, so you need a permissions plugin, LuckPerms is the standard choice.
Install it, restart, then set up a couple of groups from the console:
# make a group and give it a permission lp creategroup member lp group member permission set essentials.home true lp group member permission set essentials.sethome true # put a player in it lp user Steve parent add member # make it the group everyone starts in lp group default parent add member
Each plugin's page lists its permission nodes. LuckPerms also has a web editor,
run lp editor and it prints a one-time link to a proper drag-and-drop UI,
which is far easier than typing nodes one at a time.
Resist granting * to a group as a shortcut. It hands out every permission from every plugin, including ones that let players edit the world or bypass your protections.
A starter set worth having
Five plugins that between them cover what nearly every server ends up needing:
| Plugin | What it gives you |
|---|---|
| EssentialsX | Homes, warps, kits, /tpa, spawn, basic economy. The everything-plugin. |
| LuckPerms | Ranks and permissions, with a web editor. |
| CoreProtect | Logs every block change. Griefing becomes a one-command rollback instead of a disaster. |
| WorldEdit + WorldGuard | Mass building, and protecting regions like spawn from being broken. |
| Vault | No features of its own, it's the bridge other economy and permission plugins expect. |
Add them one at a time and restart between each. If something breaks, you'll know exactly which jar did it, which is much harder to work out when you uploaded twelve at once.
Every plugin costs memory and tick time. Thirty plugins on a 2 GB server will lag no matter how well each one is written. If things get sluggish, Fixing lag & low TPS shows you how to find the culprit.
Troubleshooting
The plugin doesn't show up in /plugins at all
- Did you restart? Uploading alone does nothing.
- Is the file actually in plugins/, and not in a subfolder or still zipped?
- Is it a .jar? Browsers sometimes save downloads as .jar.zip: rename it.
- Are you on Paper? Vanilla, Fabric and Forge ignore the folder entirely.
"Unsupported class file major version" or "Could not load 'plugins/x.jar'"
The plugin was built for a different Java or Minecraft version than you're running.
- Grab the build that matches your
MINECRAFT_VERSION. - If the plugin needs newer Java, switch your Docker image in the Startup tab to a newer Java version.
- If the plugin is simply abandoned, look for a maintained fork, most popular dead plugins have one.
"Unknown dependency: Vault", the plugin won't enable
It needs another plugin that isn't installed. Install the named dependency, restart, and the error goes away. Dependencies load first automatically, so the order you upload them in doesn't matter.
The server won't start after I added a plugin
Delete the jar you just uploaded and restart, that gets you back online immediately. Then read the console from the last start: the stack trace names the plugin on the first line or two. Add plugins back one at a time to confirm which one was at fault.
Two plugins are fighting over the same command
Common when EssentialsX overlaps with something else. Prefix the command with the
plugin name to pick one explicitly, /essentials:home versus
/otherplugin:home: or set the winner permanently in
commands.yml in your server root using
aliases.