---
title: "How to install plugins for Minecraft Java Edition"
description: "Install jar files to your Paper plugins folder, set up LuckPerms permissions, and connect external databases for essential plugins."
url: "https://www.gameserverkings.com/knowledge-base/minecraft/java-plugins/"
category: "Minecraft"
category_url: "https://www.gameserverkings.com/knowledge-base/minecraft/"
published: "2026-07-02T02:42:59.816Z"
updated: "2026-08-07T21:07:36.577Z"
source_format: "markdown"
site: "GameServerKings"
---

# How to install plugins for Minecraft Java Edition

Plugins extend a Paper, Spigot, or Purpur server without changing the base game, so players connect with a vanilla client. This guide covers installing plugins and the essential ones almost every server runs.

> [!IMPORTANT] Plugins need a Paper, Spigot or Purpur server
> Plugins only work on Paper/Spigot/Purpur server types. If you set up Forge or Fabric, you want [How to install mods for Minecraft Java Edition](/knowledge-base/minecraft/java-mods/) instead. Set your server type in the Startup tab as covered in [Getting started with your Minecraft server](/knowledge-base/minecraft/java-getting-started/).

## Installing Plugins

Plugins are `.jar` files that drop into the `plugins/` folder.

1. Find plugins on **SpigotMC** ([spigotmc.org/resources](https://spigotmc.org/resources)), **Modrinth** ([modrinth.com/plugins](https://modrinth.com/plugins)), or **Hangar** ([hangar.papermc.io](https://hangar.papermc.io)).

2. Download the `.jar`.

3. Upload to `plugins/` via the File Manager or SFTP.

4. Restart the server (most plugins do not hot-load).

After installing, the plugin's config appears in `plugins/<PluginName>/config.yml`. Edit as needed and run `/reload confirm` (or, better, restart) to apply.

> [!WARNING] Prefer a full restart over `/reload`
> A note on `/reload`: it works but can cause subtle issues with some plugins. A full restart is always safer.

## Essential Plugins

These are the plugins most servers end up running:

- **EssentialsX**: The Swiss army knife. `/home`, `/sethome`, `/warp`, `/kit`, economy stub, kicks, mutes
- **LuckPerms**: The gold-standard permissions plugin. Groups, prefixes, per-world permissions. Pairs with your panel's database feature if you want MySQL-backed permissions
- **WorldEdit**: Region selection and mass block editing
- **WorldGuard**: Region protection (claim and protect areas)
- **CoreProtect**: Block-level logging and rollback. Essential for griefing recovery
- **Vault**: Economy abstraction layer that many plugins depend on
- **ProtocolLib**: A dependency required by many plugins; install when a plugin asks for it
- **PlaceholderAPI**: Powers dynamic placeholders used across many plugins
- **GriefPrevention**: Automatic land claims and protection
- **EssentialsXChat**: Better chat formatting and channels
- **PlayerVaults**: Per-player private storage
- **CMI**: A comprehensive paid alternative to EssentialsX (do not run both)
- **DiscordSRV**: Two-way Discord chat bridge

## A Sensible Starter Stack

For a fresh survival server, this stack covers most needs:

1. EssentialsX (+ EssentialsXChat)
2. LuckPerms
3. Vault
4. WorldEdit + WorldGuard
5. CoreProtect
6. GriefPrevention
7. DiscordSRV (optional, for a Discord bridge)

Drop them all in `plugins/`, restart, then configure each in its `plugins/<PluginName>/` folder.

## Permissions With LuckPerms

LuckPerms is worth setting up early. The basic flow:

1. Install LuckPerms and restart.

2. From the panel's Console or in-game as op, create groups:

   ```text
   /lp creategroup default
   /lp creategroup vip
   /lp creategroup admin
   ```

3. Grant permissions to groups:

   ```text
   /lp group default permission set essentials.home true
   /lp group vip permission set essentials.fly true
   ```

4. Add players to groups:

   ```text
   /lp user PlayerName parent set vip
   ```

For larger networks, point LuckPerms at a MySQL database (see the panel's [database guide](/knowledge-base/general/how-to-create-a-database-via-your-panel/)) so permissions sync across multiple servers.

## Using a Database With Plugins

Some plugins (LuckPerms, EssentialsX with large player counts, DiscordSRV) can use MySQL. Create a database through the **Databases** tab on your [Minecraft server plan](/games/minecraft/) and paste the credentials into the plugin's config. See [How to Create a Database](/knowledge-base/general/how-to-create-a-database-via-your-panel/) for the full walkthrough.

## Common Issues

- **Plugin errors after a Minecraft update**: Plugins must be updated for each MC version. Check Modrinth/SpigotMC for a compatible build before updating your server version.
- **Plugin loads but does nothing**: Check `plugins/<PluginName>/config.yml` for an `enabled: false` flag or a misconfigured setting. The server console logs config errors on boot.
- **"Plugin X depends on Y"**: Install the dependency (often Vault, ProtocolLib, or PlaceholderAPI).
- **Two economy plugins conflict**: Run only one economy provider. Vault routes economy calls to a single backing plugin.

## What to Read Next

- [Performance and Backups](/knowledge-base/minecraft/performance-and-backups/) for keeping a plugin-heavy server smooth
- [Geyser Cross-Play](/knowledge-base/minecraft/geyser-crossplay/) to let Bedrock players join your Java server
- [How to Create a Database](/knowledge-base/general/how-to-create-a-database-via-your-panel/) for MySQL-backed plugins
- [Minecraft Server Commands](/knowledge-base/minecraft/admin-commands/) for the vanilla op tiers that permission plugins replace

---

Made with 💜 by GameServerKings
