HomeGuidesGetting StartedInstalling your first plugins
Guide Beginner Plugins

Installing your first plugins

Where to find plugins you can trust, how to upload them, and how to configure them without breaking your server.

1

Make sure you're running Paper

Plugins only work on server software that supports them. Open the Startup tab and look at the Egg:

SoftwarePlugins?Notes
PaperYesWhat we recommend. Runs Bukkit and Spigot plugins.
Spigot / BukkitYesWorks, but Paper is faster and a drop-in replacement.
VanillaNoMojang's own jar. Switch the egg to Paper first.
Fabric / ForgeNoThese take mods, not plugins, different files entirely.
Plugins vs mods

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.

2

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.
Careful

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.
3

Upload the jar

Plugins live in the plugins/ folder in your server root. There are two ways in.

Through the panel

  1. Open the Files tab.
  2. Click into plugins.
  3. 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:

SFTP
Host      sftp://node.pulsedmc.net
Port      2022
Username  yourname.a1b2c3d4
Password  your panel password
Tip

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.

Careful

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/.

4

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.

Console
[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:

Console
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.

Don't use /reload

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.

5

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/
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.

YAML is fussy

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:

Console
essentials reload
lp reload
6

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:

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.

Tip

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.

7

A starter set worth having

Five plugins that between them cover what nearly every server ends up needing:

PluginWhat it gives you
EssentialsXHomes, warps, kits, /tpa, spawn, basic economy. The everything-plugin.
LuckPermsRanks and permissions, with a web editor.
CoreProtectLogs every block change. Griefing becomes a one-command rollback instead of a disaster.
WorldEdit + WorldGuardMass building, and protecting regions like spawn from being broken.
VaultNo 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.

Keep an eye on the count

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.

None of these fixed it? All support runs through tickets on our website. Include your server ID, the plugin name and version, and the console output.
Open a ticket
Was this guide helpful?