You just spun up a fresh Paper or Spigot server and the plugins folder is empty. Good. That's the right time to think about what actually belongs there, because a clean server with five well chosen plugins beats a laggy one stuffed with forty. Here's the set we'd install first, what each one does, and how to get them on without breaking anything.
How plugins actually get installed
The process is boring, which is a good thing. Every plugin you'll read about below is a single .jar file. You download it, drop it into the plugins folder in your server directory, and restart the server. That's the whole thing.
On a panel like the one at panel.bytte.cloud, you open the file manager, go into plugins, upload the jar, then hit restart. If you run your own box over SSH, it's the same idea:
cd /home/minecraft/server/plugins
# upload or wget your plugin jar here
# then restart from your console or panel
A quick warning before you go download anything. Do not just reload. The /reload command exists and it will technically load a plugin, but it's a known way to corrupt plugin state and cause weird crashes. Restart the server properly instead. It takes ten extra seconds and saves you an afternoon of confusion.
Check the version before you download
This is the step people skip, and then they wonder why the server won't boot. A plugin built for 1.20 will often refuse to load, or load and misbehave, on 1.21. Before you grab a jar, look at the plugin's download page and find the line that says which Minecraft versions it supports.
If you're not sure what version you're running, type /version in game or check the console banner when the server starts. After you install something, watch the console as it boots. You'll see a line like [INFO] [LuckPerms] Enabling LuckPerms vX.Y.Z for each plugin. If one fails, the error usually shows up right there, in red, telling you it's the wrong API version. Read it before you start guessing.
Permissions: LuckPerms and Vault
Vanilla permissions are basically just op or not op, and op is far too powerful to hand out. LuckPerms is the plugin nearly everyone uses to fix that. It lets you make groups like default, member, and admin, then decide exactly what each group can do. It's fast, it has a clean web editor, and the documentation is genuinely good.
Vault is the quiet one. It doesn't do anything visible on its own. It's a bridge that lets other plugins talk to your permissions and economy systems without each one reinventing it. Lots of plugins list Vault as a dependency, so install it early and forget about it.
A LuckPerms starting point
Once LuckPerms is running, you don't need to memorize a hundred commands. Here's a small set that gets a sane setup going. Run these from the console or as an op:
/lp creategroup member
/lp creategroup admin
# give the default group basic Essentials commands
/lp group default permission set essentials.spawn true
/lp group default permission set essentials.help true
# let admins use most things, then trim later
/lp group admin permission set essentials.* true
/lp group admin permission set worldedit.* true
# make admin inherit everything default has
/lp group admin parent add default
# put a player in a group
/lp user Steve parent add admin
New players land in the default group automatically, so whatever you give default is what everyone gets. In our experience the easiest mistake here is being too generous with default early on, then scrambling to lock it down after someone griefs spawn. Start tight. It's much easier to hand out a permission than to claw one back.
If typing nodes gets tedious, run /lp editor. It gives you a link to a web page where you can tick boxes and apply changes back to the server. Honestly, for anything beyond the basics, the editor is the way to go.
Anti grief: WorldGuard and CoreProtect
If your server is anything other than a private game with three friends you trust, you need protection. There are two different jobs here and two plugins for them.
WorldGuard stops bad things from happening. You define regions, like a box around spawn, and set flags on them: no block breaking, no PvP, no mob spawning, whatever you want. It's the fence. WorldGuard needs WorldEdit installed to define those regions, which is handy because you'll want WorldEdit anyway (more on that below).
CoreProtect is the camera. It logs who placed and broke every block, opened every chest, killed every mob. When someone does manage to grief, you point at the damage, run an inspection, see exactly who did it and when, and roll it back with one command. The rollback feature alone has saved more servers than I can count.
A basic CoreProtect workflow looks like this:
/co inspect # toggle inspector, then left/right click blocks to see history
/co lookup user:Steve time:2h # what did Steve do in the last 2 hours
/co rollback user:Steve time:2h radius:30 # undo it
Set up a WorldGuard region around spawn on day one. It's the single most common place to get griefed, and protecting it takes about a minute:
//wand # gives you the selection tool
# left and right click two corners around spawn
/rg define spawn
/rg flag spawn build deny
/rg flag spawn pvp deny
Core utilities: EssentialsX and WorldEdit
EssentialsX is the plugin that makes a server feel like a server. Homes, warps, /spawn, /tpa for teleport requests, kits, basic economy, message of the day, nickname support, and a long list of small quality of life commands. It's the modern, maintained continuation of the old Essentials plugin, so grab EssentialsX and not anything older.
One thing to know: EssentialsX comes as a few separate jars. The main one is EssentialsX itself. There are add ons like EssentialsXChat for chat formatting and EssentialsXSpawn for spawn control. Install the core one first, then add the extras only if you need them.
WorldEdit is your building and terrain tool. Select a region, fill it, replace one block type with another, copy and paste structures, generate shapes, smooth terrain. What would take an hour by hand takes a few commands. As mentioned, WorldGuard leans on it, so it earns its slot twice over. Give WorldEdit access only to trusted staff, though. In the wrong hands, //set on a huge selection can wreck a build or lag the server hard.
Performance: spark and Chunky
Two plugins here, and they solve different problems.
spark is for figuring out why your server is lagging. When TPS drops, you run a profiler with /spark profiler, let it sample for a bit, and it hands you a link to a report showing which plugin or task is eating your tick time. Without spark you're guessing. With it, you can usually point at the culprit in a couple of minutes. It also does quick health checks with /spark tps and /spark health.
Chunky is for pre generating your world. A lot of the lag and disk thrashing on a fresh server comes from generating new chunks while players explore. Chunky lets you generate them ahead of time, while nobody's online, so exploration later is smooth. Set a world border, then tell it to fill:
/chunky radius 5000
/chunky start
That'll grind through chunks in the background. It's heavy while it runs, so do it before you open to players or overnight. Pair it with a sensible world border so the map doesn't grow forever and eat your NVMe storage.
Backups
Backups aren't optional, and at some point you'll be very glad you set them up. You've got two reasonable routes.
The simplest is to let your host handle it. Most game panels, including ours, have a backups tab where you schedule automatic snapshots of the whole server and restore with one click. If that's available to you, use it. It's the least to go wrong.
If you'd rather control it from inside the game, plugins like BackupPlus or similar can zip your worlds on a schedule. Whatever you pick, test a restore once before you actually need one. A backup you've never restored is just a hopeful guess. And keep at least one copy somewhere off the server itself, because a backup sitting on the same disk that died isn't much help.
Don't drown your server in plugins
Here's the honest advice that doesn't sell anything. Every plugin you add costs memory and tick time, and some of them conflict with each other in ways that are a nightmare to track down. A server running fifteen plugins where you understand all fifteen is healthier than one running fifty where you've forgotten what half of them do.
So add plugins one at a time. Restart, play for a bit, make sure things still feel right, then add the next. When something breaks, you'll know exactly which jar caused it. If you install five at once and the server won't boot, you're back to removing them one by one anyway, just slower and more annoyed.
Watch your RAM too. On a 4 GB plan, EssentialsX, LuckPerms, WorldGuard, WorldEdit, CoreProtect, Vault, spark and Chunky will sit comfortably for twenty or so players. Pile on heavy minigame or world generation plugins and that headroom disappears fast.
A sensible first install order
If you want a checklist, this is the order we'd actually do it in:
- Vault (so other plugins have it ready)
- LuckPerms, then set up your groups
- WorldEdit and WorldGuard, then protect spawn
- EssentialsX for the everyday commands
- CoreProtect so logging is running from the start
- spark and Chunky for performance
- Backups, scheduled and tested
That covers permissions, anti grief, core utilities, performance and backups without going overboard. Get those running and watch the console boot clean, with no red errors, before you go hunting for the fun stuff like ranks, crates and minigames. A server that starts simple and stays understandable is one you'll still enjoy running six months from now.



