🎉 2026 Sale is Live!Explore Plans
Back to Blog
12 Best Minecraft Java Plugins
In-Depth Guide

12 Best Minecraft Java Plugins of All Time

Complete installation guides, essential commands, and configuration tips for every plugin. Everything you need to build a professional server.

Lee B.
December 30, 2024
25 min read

I've spent the better part of 8 years running Minecraft servers. Started back in 2016 with a janky little survival world hosted on my old laptop—laggy as hell, crashed constantly, but my friends and I loved it. Since then I've managed everything from 10-player private servers to networks pulling 500+ concurrent players.

Along the way, I've installed, configured, broken, fixed, and uninstalled more plugins than I can count. Some were game-changers. Most were forgettable. A few literally corrupted world files and taught me the importance of backups the hard way.

This guide isn't a list I threw together by browsing SpigotMC's most downloaded page. These are the plugins I actually use, the ones I've relied on across dozens of servers over nearly a decade. For each one, I'm giving you the full breakdown: what it does, how to install it, the commands you'll actually use, and the configuration tweaks that matter.

Let's get into it.

Before You Start: Server Requirements

These plugins only work on modded server software. If you're running vanilla Minecraft server, none of this applies to you. Here's what you need:

Recommended: Paper

Fork of Spigot with better performance and more features. This is what most serious servers run. Download from papermc.io

Alternative: Spigot

The original plugin-compatible server. Still works fine, but Paper is better in almost every way.

# Basic plugin installation (same for all plugins):

1. Download the .jar file from SpigotMC or the plugin's official site

2. Drop it in your server's /plugins folder

3. Restart the server (not reload—full restart)

4. Check console for errors, configure as needed

Plugin #1

EssentialsX

The foundation of every server

If I could only install one plugin on a new server, it would be EssentialsX. It's not flashy, it's not exciting, but it handles all the basic functionality that players expect from any Minecraft server. Without it, you'd need like 15 separate plugins to cover the same ground.

EssentialsX gives you teleportation commands (/home, /tpa, /spawn, /warp), a basic economy system, player kits, moderation tools, and hundreds of utility commands. The config file is massive but well-documented—you can customize literally everything.

Installation

  1. 1. Download from essentialsx.net
  2. 2. You'll see multiple files—grab at minimum: EssentialsX (core)
  3. 3. Recommended addons: EssentialsXChat, EssentialsXSpawn
  4. 4. Drop all .jar files in /plugins, restart server

First startup creates config files in /plugins/Essentials/

Essential Commands You'll Actually Use

/sethome [name]

Set a home location. Players can have multiple homes.

/home [name]

Teleport to a saved home.

/tpa [player]

Request to teleport to another player.

/tpaccept

Accept a teleport request.

/spawn

Teleport to world spawn.

/warp [name]

Teleport to a server warp point.

/setwarp [name]

Create a warp point (admin only).

/kit [name]

Claim a predefined item kit.

/bal

Check your money balance.

/pay [player] [amount]

Send money to another player.

Config Tips That Actually Matter

Open plugins/Essentials/config.yml and look for these:

teleport-cooldown: 30

Seconds between teleports. I usually set this to 60 for survival servers to prevent abuse.

teleport-delay: 3

Seconds to wait before teleporting. Prevents instant escape during PvP.

sethome-multiple.default: 3

How many homes regular players can set. VIPs can get more via permissions.

starting-balance: 100

Money new players start with. Adjust based on your economy.

Pro Tip

EssentialsX requires Vault for the economy to work with other plugins. Install Vault first (covered later in this guide), then EssentialsX will automatically hook into it.

Compatibility: Paper/Spigot • Minecraft 1.8.8 - 1.21 • Official Site

Plugin #2

LuckPerms

Permission management done right

Back in the day, I used PermissionsEx. Spent hours editing YAML files, making typos, breaking everything, starting over. It was miserable. Then LuckPerms came along and changed everything.

LuckPerms has a web editor. You run a command, get a link, and manage all your permissions in a browser with a proper UI. Create groups, drag and drop permissions, set up inheritance hierarchies—all visually. When you're done, click save and it syncs to your server instantly. No more YAML nightmares.

Beyond the editor, LuckPerms is just incredibly powerful. Per-world permissions, temporary ranks that expire automatically, permission contexts based on game state, weight-based group priority... it handles everything from simple survival servers to complex networks.

Installation

  1. 1. Download from luckperms.net
  2. 2. Choose "Bukkit" for Paper/Spigot servers
  3. 3. Drop the .jar in /plugins, restart
  4. 4. Run /lp editor to open the web interface

Essential Commands

/lp editor

Opens the web editor. This is how you'll do 90% of your permission work.

/lp user [player] info

View a player's groups and permissions.

/lp user [player] parent set [group]

Put a player in a group. Example: /lp user Steve parent set vip

/lp group [group] permission set [permission]

Give a permission to a group. But honestly, just use the web editor.

/lp verbose on

Debug mode—shows every permission check in real-time. Incredibly useful for troubleshooting.

Setting Up Basic Groups (Quick Guide)

Here's a typical group structure for a survival server:

# Default group (everyone starts here)

default

Basic permissions: /home, /tpa, /spawn, chat

# VIP (donators or active players)

vip → inherits from default

Extra homes, colored name, /fly in hub

# Moderator

mod → inherits from vip

/kick, /mute, /tempban, CoreProtect inspect

# Admin

admin → inherits from mod

Full server access, /op equivalent

Common Mistake

Don't give players the '*' wildcard permission. It gives access to EVERYTHING, including dangerous commands. Always be specific about what each group can do.

Compatibility: Paper/Spigot/BungeeCord/Velocity • All versions • Official Site

Plugin #3

WorldGuard

Region protection and world management

The first time someone griefed my spawn, I didn't have WorldGuard. Some kid joined, found out he could break blocks, and demolished hours of work in about 5 minutes. I was devastated. Installed WorldGuard that same day and never looked back.

WorldGuard lets you define regions and control exactly what can happen inside them. Disable block breaking at spawn. Prevent PvP in safe zones. Stop creeper explosions in player bases. The region system is incredibly powerful once you understand it.

Installation

  1. 1. First install WorldEdit — WorldGuard requires it
  2. 2. Download WorldEdit from dev.bukkit.org
  3. 3. Download WorldGuard from dev.bukkit.org
  4. 4. Drop both .jars in /plugins, restart

How to Protect Your Spawn (Step by Step)

Step 1: Select the area with WorldEdit

//wand

Get a wooden axe. Left-click one corner, right-click the opposite corner.

Step 2: Expand selection from bedrock to sky

//expand vert

This makes sure the region covers all Y levels.

Step 3: Create the region

/rg define spawn

Creates a region named "spawn" from your selection.

Step 4: Set protection flags

/rg flag spawn block-break deny
/rg flag spawn block-place deny
/rg flag spawn pvp deny

Now nobody can break blocks, place blocks, or PvP in spawn.

Useful Flags Reference

block-break - Breaking blocks
block-place - Placing blocks
pvp - Player vs player
mob-spawning - Mob spawns
creeper-explosion - Creeper damage
tnt - TNT explosions
use - Doors, buttons, levers
chest-access - Opening chests

Compatibility: Paper/Spigot • Minecraft 1.14+ • Official Site

Plugin #4

CoreProtect

Block logging and rollback

WorldGuard prevents grief. CoreProtect fixes it after it happens. Because let's be real—someone will eventually find a way to cause damage, whether through a permission mistake, a trusted player going rogue, or some exploit you didn't know existed.

CoreProtect logs everything. Every block placed, every block broken, every chest opened, every item taken. When something goes wrong, you can see exactly who did what and when. More importantly, you can roll it back with a single command.

Commands You'll Use Daily

/co inspect or /co i

Toggle inspect mode. Click any block to see its history—who placed it, who broke it, when.

/co lookup u:PlayerName t:1h

See everything a player did in the last hour.

/co rollback u:PlayerName t:1h

Undo everything that player did in the last hour.

/co rollback u:PlayerName t:1h r:50

Same but only within 50 blocks of where you're standing.

/co restore u:PlayerName t:1h

Undo a rollback if you made a mistake.

Real-World Scenarios

Scenario: Someone griefed spawn overnight

Run /co rollback t:12h r:100 at spawn to undo all changes in the last 12 hours within 100 blocks.

Scenario: Player claims someone stole from their chest

Use /co i and click the chest. You'll see exactly who opened it and what they took.

Scenario: Accidentally gave someone creative mode

Run /co rollback u:TheirName t:30m to undo whatever they placed.

Storage Tip

CoreProtect uses SQLite by default, which works fine for small servers. For larger servers (50+ players), switch to MySQL in the config—the database can get huge over time and MySQL handles it better.

Compatibility: Paper/Spigot • Minecraft 1.14 - 1.21 • SpigotMC

Plugin #5

Vault

The invisible glue between plugins

Vault is weird because you never actually interact with it. It's an API—a translator that lets your other plugins talk to each other about permissions and money. You install it, forget about it, and everything just works.

Here's why it matters: say you install a shop plugin. That shop needs to know how much money a player has and needs to deduct money when they buy something. Without Vault, the shop would need to directly integrate with every possible economy plugin (EssentialsX, CMI, etc.). With Vault, it just asks Vault, and Vault handles the translation.

Same deal with permissions and chat prefixes. Plugins ask Vault what group a player is in, and Vault asks LuckPerms (or whatever permission plugin you use).

Installation

  1. 1. Download from SpigotMC
  2. 2. Drop in /plugins, restart
  3. 3. That's it. No configuration needed.

Vault auto-detects your economy and permission plugins. Just make sure to install it BEFORE plugins that depend on it.

Compatibility: Paper/Spigot • All versions • GitHub

Plugin #6

ViaVersion

Cross-version compatibility

Minecraft updates are exciting for players and terrifying for server owners. New version drops, half your plugins break, and suddenly you're choosing between updating (and losing features) or staying behind (and losing players who updated their client).

ViaVersion solves this elegantly. It lets players on newer client versions connect to your older server. Running 1.20.4 but a player updated to 1.21? No problem, they can still join. This gives you breathing room to wait for plugin updates without fragmenting your community.

The Via Family

ViaVersion

Lets newer clients join older servers. (1.21 client → 1.20 server)

ViaBackwards

Lets older clients join newer servers. (1.19 client → 1.20 server)

ViaRewind

Support for really old versions (1.8, 1.7). Only if you need it.

I typically install ViaVersion + ViaBackwards together. This way, players on any recent version can join regardless of what version my server is running.

Compatibility: Paper/Spigot/Velocity/BungeeCord • All versions • Official Site

Plugin #7

Multiverse-Core

Multiple worlds, one server

Want a survival world, a creative world, and a minigames world all on the same server? Multiverse makes it happen. One server process, multiple completely separate worlds, each with their own rules and settings.

Essential Commands

/mv create [name] [type]

Create a new world. Types: NORMAL, NETHER, END, FLAT

Example: /mv create creative NORMAL -t FLAT

/mv tp [world]

Teleport to another world.

/mv list

See all worlds on the server.

/mv modify set gamemode creative [world]

Set the default gamemode for a world.

/mv delete [world]

Delete a world (careful with this one).

RAM Warning

Each loaded world consumes RAM. A typical world uses 500MB-1GB depending on size and activity. Don't go crazy creating worlds unless you have the resources.

For custom portals between worlds, grab Multiverse-Portals as an addon. It lets you create portal regions that teleport players to specific locations in other worlds.

Compatibility: Paper/Spigot • All modern versions • Bukkit

Plugin #8

Geyser

Let Bedrock players join your Java server

This one's a game-changer. Geyser lets Bedrock Edition players (mobile, console, Windows 10) join your Java server. One server, both platforms, unified community. The technical achievement here is genuinely impressive—it translates between two completely different protocols in real-time.

A Bedrock player on their phone can play alongside Java players on PC, and it mostly just works. "Mostly" because there are quirks—some items look different, some mechanics behave slightly differently. But for survival servers and most minigames, it's seamless enough that players don't notice.

Installation (Plugin Method)

  1. 1. Download Geyser-Spigot from geysermc.org
  2. 2. Download Floodgate-Spigot (same page) — lets Bedrock players join without Java accounts
  3. 3. Drop both .jars in /plugins, restart
  4. 4. Bedrock players connect to your server IP on port 19132 (default)

Important Config Settings

In plugins/Geyser-Spigot/config.yml:

bedrock:
port: 19132

The port Bedrock players connect to. Make sure it's open in your firewall.

auth-type: floodgate

Use this if you installed Floodgate. Bedrock players won't need Java accounts.

Floodgate Username Prefix

Bedrock players get a prefix (default is a dot: .PlayerName) to distinguish them from Java players. This prevents name conflicts since Bedrock and Java have separate username systems.

Compatibility: Paper/Spigot 1.16.5+ • Requires Java 17+ • Official Site

Plugin #9

MCMMO

RPG skills and progression

Vanilla Minecraft has a progression problem. Once you have diamond gear and an enchanting setup, what's left? MCMMO adds RPG-style skills that give players something to work toward indefinitely.

Every action levels up a skill. Mine blocks, your Mining skill increases. Fight mobs, your Swords or Axes skill goes up. Higher skills unlock abilities—double drops, super breaker, critical strikes. It adds depth without changing the core Minecraft experience.

Skills Overview

Mining

Double drops, Super Breaker (instant mine)

Excavation

Find treasures while digging

Woodcutting

Tree Feller (chop entire trees)

Swords

Bleed effect, counter attacks

Axes

Critical strikes, armor impact

Archery

Skill shots, daze effect

Fishing

Better catches, shake mobs for loot

Acrobatics

Reduce fall damage, dodge attacks

Player Commands

/mcstats - View your skill levels
/mctop [skill] - Leaderboard for a skill
/[skill] - Detailed info about a skill (e.g., /mining)
/mcability - Toggle ability activation

Balance Warning

Default XP rates are pretty generous. I usually reduce them by 30-50% in the config to make progression feel more meaningful. Otherwise players max out skills too quickly.

Compatibility: Paper/Spigot • All modern versions • SpigotMC

Plugin #10

Citizens

Custom NPCs for your server

NPCs make your server feel alive. Citizens lets you create custom characters that stand around, walk paths, interact with players, and run commands when clicked. The obvious use case is shop NPCs, but you can get creative—tutorial guides, quest givers, fake players to make the server look more populated.

Creating Your First NPC

/npc create Shopkeeper

Creates an NPC named "Shopkeeper" where you're standing.

/npc skin Notch

Give the NPC a player's skin. Works with any username.

/npc look

Make the NPC look at nearby players.

/npc command add "warp shop"

Run a command when players right-click the NPC.

More Useful Commands

/npc select - Select an NPC by right-clicking it
/npc remove - Delete the selected NPC
/npc tp - Teleport to the selected NPC
/npc tphere - Teleport NPC to you
/npc list - List all NPCs on the server
/npc type VILLAGER - Change NPC to a different mob type

Compatibility: Paper/Spigot • Latest 3 major versions • SpigotMC

Plugin #11

BlueMap

3D web map of your world

There's something magical about seeing your Minecraft world rendered as a 3D web map. BlueMap generates a beautiful, interactive map that players can explore in their browser. Unlike Dynmap (the older alternative), BlueMap renders in actual 3D—you can rotate the view, zoom in on builds, see terrain from any angle.

Installation & Setup

  1. 1. Download from bluemap.bluecolored.de
  2. 2. Drop in /plugins, restart server
  3. 3. Open plugins/BlueMap/core.conf
  4. 4. Change accept-download: true (required to download assets)
  5. 5. Restart server again
  6. 6. Run /bluemap render to start rendering
  7. 7. Access map at http://your-server-ip:8100

Port & Performance Notes

BlueMap runs its own web server on port 8100 by default. Make sure this port is open. The initial render is CPU-intensive—run it during off-peak hours. A 10GB world can take several hours to render initially.

Compatibility: Paper/Spigot/Fabric/Forge • Requires Java 17+ • Official Site

Plugin #12

SilkSpawners

Mine and move mob spawners

In vanilla Minecraft, mob spawners are basically useless once you find them. You can't move them, can't collect them. SilkSpawners changes that—players can mine spawners with a Silk Touch pickaxe and place them elsewhere.

This creates interesting gameplay dynamics. Spawners become valuable tradeable items. Players explore more because finding a spawner actually means something. It adds a whole new dimension to the endgame economy.

Key Config Options

In plugins/SilkSpawners/config.yml:

dropChance: 100

Percentage chance spawner drops when mined. I usually set this to 70 for some risk.

minSilkTouchLevel: 1

Required Silk Touch level. Set higher to make it harder.

useEggToChangeSpawner: true

Allow changing spawner type with spawn eggs.

Compatibility: Paper/Spigot • All modern versions • Bukkit

Honorable Mentions

Couldn't fit everything in the top 12. These are worth checking out:

WorldEdit

Essential for builders. Select regions, copy/paste, replace blocks in bulk.

ChestShop

Player-to-player shops using signs and chests.

GriefPrevention

Alternative to WorldGuard with automatic claim systems.

PlaceholderAPI

Like Vault but for text placeholders. Powers scoreboards and chat.

TAB

Customizable tab list and nametags.

DiscordSRV

Bridge between Minecraft chat and Discord.

Wrapping Up

You don't need all 12 of these on day one. A solid survival server can run on just EssentialsX, LuckPerms, WorldGuard, and CoreProtect. Add more based on what your community actually wants, not what looks cool on SpigotMC.

The biggest mistake I see new server owners make is installing 50 plugins immediately. Start small. Add things when players ask for them. A stable server with 10 well-configured plugins beats a laggy mess with 100 half-broken ones every time.

Whatever you're building—whether it's a small friends-only world or the next big network—these plugins will serve you well. They've been around for years, they're actively maintained, and they just work.

Good luck with your server. Hit me up on Discord if you have questions.

Lee B.

Lee B.

Senior Server Architect

Follow on X

"Managing Minecraft networks since 2012. Specializes in performance optimization, infrastructure scaling, and advanced plugin development."

Plugin DevPerformance OpsSecurity