Skip to content
Current coupon:10% offUse it in your order

Recommended plugins for a Minecraft server and how to set them up

A proven plugin set for Paper and Purpur: EssentialsX, LuckPerms, Vault, WorldEdit, WorldGuard, CoreProtect, Chunky, Geyser and spark. Installation, first setup, commands and permissions for each.

  • beginner
  • ~30 min
  • Updated 2 Oct 2026

Most ordinary servers need the same basics: commands for players, permissions, land protection, a record of who broke what, and a building tool. Here's a set of proven plugins that have been maintained for years, and for each one the essentials: what it's for, where to download it, what to set right after installing it, and which commands and permissions it uses.

What you'll need

  • A Minecraft server of type Paper or Purpur (most of these plugins don't work on Folia)
  • Plugin installation covered in the guide Installing plugins
  • Operator rights for yourself, see First start
  • About 30 minutes to install and set up the whole set

The basic set by server type#

PluginWhat forServer with friendsPublic survivalMinigames, lobbyCreative
EssentialsX (+ Chat, Spawn)Homes, teleports, warps, spawn, messages, kitsYesYesSpawn and chatYes
LuckPermsGroups and permissionsOptionalYesYesYes
Vault or VaultUnlockedConnects plugins (economy, prefixes)As a dependencyYesYesYes
WorldEditBulk building and terrain editingOptionalFor staffYesYes
WorldGuardLand protection (spawn, arenas)Spawn protectionYesYesYes
CoreProtectChange log and grief rollbackYesYesOptionalYes
ChunkyWorld pre-generationYesYesNoOptional
Geyser + FloodgateBedrock players (mobile, consoles)As neededOptionalOptionalOptional
sparkFinding the causes of lagPart of PaperPart of PaperPart of PaperPart of Paper

Install them one at a time, not all at once. After each plugin, restart the server and check the console. If something breaks, you'll know which plugin caused it.

EssentialsX#

What it does: a set of dozens of useful commands. It gives players homes (/home), teleport requests (/tpa), warps, private messages and a return to their death point (/back). It gives your staff temporary bans, mutes, vanish, kits and an economy.

Where to download: in the Plugins tab › Browse (Modrinth), or at essentialsx.net/downloads.html (opens in a new window). EssentialsX is made of modules, each one a separate file:

ModuleWhat it addsRecommendation
EssentialsXThe core, all the main commandsRequired by all other modules
EssentialsX ChatChat format with LuckPerms prefixes, local chat by distanceYes, if you want prefixes
EssentialsX SpawnThe /spawn and /setspawn commands, spawn for new players, starter kitYes
EssentialsX ProtectConfigurable protection against some events (explosions, fire)Only if you don't use WorldGuard
EssentialsX AntiBuildBlocks building based on permissionsUsually not needed
EssentialsX DiscordLinks the server chat with DiscordOptional
EssentialsX GeoIPLooks up a player's country from their IP addressOptional

Dependencies: none required. It needs Vault for an economy shared with other plugins and for prefixes.

Version support

EssentialsX 2.22.0 (May 2026) is actively developed for Minecraft 26.1.2. Older versions (for example 1.21.11 or 1.20.6) are supported with lower priority (as of October 1, 2026). Releases for newer Minecraft versions come out with a delay. If the catalog doesn't offer it for your version, it hasn't been released yet. EssentialsX doesn't work on Folia.

First EssentialsX setup#

The settings are in plugins/Essentials/config.yml. Edit it while the server is stopped. The most important options:

SettingWhat it doesRecommended valueWhen to change it
localeThe language of the plugin's messages. In the default file the line is commented out (#locale: en), so remove the hash.csen if your players speak English
teleport-delayHow many seconds pass before a teleport (/home, /spawn, /tpa) happens. If the player moves or gets hit, the teleport is canceled.3 on survival (default 0)0 on servers without PvP
teleport-cooldownHow many seconds must pass between two teleports.5–30 (default 0)Higher if players abuse teleports to escape fights
sethome-multipleNumber of homes per home group. Defaults are default: 3, vip: 5, staff: 10. A player needs the essentials.sethome.multiple permission plus essentials.sethome.multiple.<group>.Depends on your serverWhen you want different numbers or another group
spawn-on-joinWhether the player appears at spawn every time they join.falsetrue for lobbies and minigames
newbies.spawnpointWhere a new player appears. The default newbies = the spawn set with /setspawn newbies, none = the world spawn.newbies and set it with /setspawn newbies, or noneIf newcomers don't need a special spot, set none
newbies.kitThe kit a new player gets on first join. Default tools. An empty '' turns it off.'' or your own kitWhen you want starter gear
newbies.announce-formatThe welcome message for new players.Your own text in your players' language'' turns it off
chat.formatThe chat message format (only with the EssentialsX Chat module). {DISPLAYNAME} already includes the LuckPerms prefix.'<{DISPLAYNAME}> {MESSAGE}' (default)For a custom look, for example '{DISPLAYNAME}&7:&r {MESSAGE}'
chat.radiusHow many blocks away chat can be heard. 0 = the whole server.0Roleplay servers
ops-name-colorThe color of operators' names (code 0–9, a–f).'none' (off) if you use prefixesKeep '4' (dark red) if you don't have prefixes
auto-afkAfter how many seconds of inactivity a player is marked AFK. Needs the essentials.afk.auto permission.300 (default)-1 turns it off
starting-balanceThe starting balance of new players in the EssentialsX economy.0When you want starting money
currency-symbolThe currency symbol. The file must be saved as UTF-⁠8.'$' or your ownFor a custom currency

An example edit of part of the file:

plugins/Essentials/config.ymlYAML
locale: cs
teleport-delay: 3
teleport-cooldown: 10
sethome-multiple:
  default: 2
  vip: 5
  staff: 10
  • locale: cs – messages will be in Czech.
  • teleport-delay: 3 – the teleport happens after three seconds of standing still.
  • teleport-cooldown: 10 – the next teleport is possible after ten seconds at the earliest.
  • sethome-multiple – players with the essentials.sethome.multiple permission get 2 homes, and with the extra essentials.sethome.multiple.vip permission 5 homes.

You set the spawn in the game: stand where the spawn should be and type /setspawn. Kits are defined in plugins/Essentials/kits.yml, where each kit has a delay (the time between uses in seconds, -1 = only once) and a list of items.

Useful EssentialsX commands#

CommandWhat it doesPermission
/sethome [name]Saves a home at your current locationessentials.sethome
/home [name]Teleports you homeessentials.home
/delhome <name>Deletes a homeessentials.delhome
/spawnTeleports you to spawn (Spawn module)essentials.spawn
/tpa <player>Asks to teleport to a playeressentials.tpa
/tpaccept / /tpdenyAccepts or denies a requestessentials.tpaccept / essentials.tpdeny
/backReturns you to your previous locationessentials.back
/warp <name>Teleports you to a warp; without a name it lists themessentials.warp, essentials.warp.list
/setwarp <name>Creates a warp (staff)essentials.setwarp
/msg <player> <message>Private messageessentials.msg
/kit [name]Gives a kitessentials.kit + essentials.kits.<kit>
/tempban <player> <time> [reason]Temporary ban, e.g. /tempban Steve 3d spamessentials.tempban
/mute <player> [time] [reason]Mutes a playeressentials.mute
/vanishMakes you invisible to other playersessentials.vanish
/invsee <player>Shows a player's inventoryessentials.invsee
/seen <player>When the player was last onlineessentials.seen

Times are written as 30m, 12h, 3d, 1w or 1mo. A complete split of permissions into groups is in the article LuckPerms.

LuckPerms#

What it does: manages groups (player, VIP, moderator, admin) and permissions for the commands of all your other plugins. Without it you only have two levels: player and operator.

Where to download: the Plugins tab (Modrinth), or luckperms.net/download (opens in a new window).

Setup: covered in detail in a separate article, LuckPerms: groups and permissions.

Vault (or VaultUnlocked)#

What it does: nothing on its own. It's a bridge that plugins use to share economy, permissions and prefixes. Thanks to it, EssentialsX Chat can show a prefix from LuckPerms, or a shop plugin can work with EssentialsX money.

Where to download: the original Vault is on dev.bukkit.org and SpigotMC (the Vault project). In the Modrinth and Hangar catalogs you'll find VaultUnlocked, a maintained fork its authors describe as a drop-in replacement for Vault. Install only one of them.

When you need it: when another plugin lists it as a dependency (the console then shows Unknown/missing dependency plugins: [Vault]), or when you want LuckPerms prefixes in chat.

Check: after a restart, type vault-info in the console. The output shows which plugin provides the economy, permissions and chat.

WorldEdit#

What it does: bulk world editing: filling an area with blocks, replacing one block with another, copying builds, shaping terrain. It saves hours of work when building a spawn or arenas.

Where to download: the Plugins tab (Modrinth or Hangar), or enginehub.org/worldedit (opens in a new window).

Selecting an area: type //wand to get a wooden axe. Left-click a block to mark the first corner, right-click for the second. The area is the box between them.

CommandWhat it does
//wandGives you the selection tool (a wooden axe)
//pos1, //pos2Marks a corner where you're standing
//set <block>Fills the selection with a block, e.g. //set stone
//replace <from> <to>Replaces blocks, e.g. //replace dirt grass_block
//walls <block>Builds walls around the selection (no floor or ceiling)
//copy, //pasteCopies the selection and pastes it where you are
//undoUndoes the last action (//undo 5 undoes five actions)
//redoRedoes an undone action

Blocks are written with their Minecraft names (stone, oak_planks, grass_block). To mix blocks in a ratio, write something like //set 50%stone,50%cobblestone.

Permissions: worldedit.* gives everything. Only give it to staff you trust, because a single command can overwrite a huge part of the world. Individual permissions include worldedit.wand, worldedit.region.set and worldedit.history.undo.

Large edits put load on the server

Operations on millions of blocks can stall the server for a moment. Do big edits when few players are online. WorldEdit only remembers each player's last 15 actions (configurable) and the history is cleared some time after logout. Don't rely on //undo as a backup.

WorldGuard#

What it does: protects chosen areas (regions). In a region you can stop other players from building and turn off PvP, creeper explosions, fire or mob spawning. It typically protects the spawn, lobby and arenas.

Where to download: the Plugins tab, or enginehub.org/worldguard (opens in a new window).

Dependencies: it needs WorldEdit (areas are selected with it).

Protecting the spawn step by step#

  1. In the game, type //wand and mark two opposite corners of the spawn (left and right click). To make the region cover the full height, expand the selection with //expand vert.

  2. Create the region:

    In-game chattext
    /rg define spawn

    This creates the region spawn. From now on, only its owners and members (nobody yet) can build in it.

  3. Set the rules (flags):

    In-game chattext
    /rg flag spawn pvp deny
    /rg flag spawn creeper-explosion deny
    /rg flag spawn mob-spawning deny
    /rg flag spawn greeting Welcome to spawn!
    • pvp deny – players can't hurt each other at spawn.
    • creeper-explosion deny – creeper explosions don't destroy blocks.
    • mob-spawning deny – mobs don't spawn at spawn.
    • greeting … – a message shown when entering the region.
  4. Add the staff members who are allowed to build at spawn:

    In-game chattext
    /rg addmember spawn <NICK>

    Instead of a name, you can add a whole LuckPerms group with the g: prefix, for example /rg addmember spawn g:admin.

  5. Check the region with /rg info spawn.

FlagWhat it affects
buildEverything: placing, breaking and using blocks. Setting it to deny blocks all of it.
block-break, block-placeOnly breaking, or only placing blocks
useDoors, levers, buttons (not chests)
chest-accessAccess to chests and other inventories
pvpFights between players
tnt, creeper-explosion, other-explosionTNT, creeper and other explosions
mob-spawningNatural mob spawning
fire-spread, lava-fireFire spreading and lava setting things alight
entry, exitEntering and leaving the region
greeting, farewellMessage on entry and on exit

You remove a flag by entering it without a value: /rg flag spawn pvp. To set a flag only for non-members, use the -g switch: /rg flag spawn -g nonmembers chest-access deny.

Protecting the whole world#

The special region __global__ covers the whole world. If you want only your staff to build anywhere in the world (for example in a creative lobby), use:

In-game chattext
/rg flag __global__ passthrough deny

Then only owners and members of the global region (/rg addmember __global__ g:admin) can build, plus members of other regions inside those regions. The WorldGuard documentation explicitly advises against setting the build flag on __global__, because it also breaks pistons and other mechanics.

Operators bypass protection

Operators and players with the * permission automatically bypass protection. The region then looks like it isn't working. Always test protection with an account that isn't an op.

Permissions: for staff, worldguard.region.* (all region commands). Regular players don't need any WorldGuard permissions.

CoreProtect#

What it does: logs every change in the world: who placed or broke a block, who took what from a chest, who killed what. When someone wrecks a build (griefing), you find out who did it and roll the changes back without restoring a whole backup.

Where to download: the Plugins tab (Modrinth or Hangar), documentation at docs.coreprotect.net (opens in a new window).

Important: CoreProtect only logs what happened after it was installed. Install it right at the start.

CoreProtect commands#

CommandWhat it does
/co inspect (short /co i)Turns on the inspector. Click a block to see its history. The same command turns it off.
/co lookup <parameters> (/co l)Searches for changes by parameters
/co rollback <parameters> (/co rb)Rolls back changes by parameters
/co restore <parameters> (/co rs)Reverses a rollback (puts the changes back)
/co undoUndoes the last rollback or restore
/co nearChanges within 5 blocks
/co purge t:<time>Deletes old data (at least 30 days in game, at least 24 hours from the console)
/co statusPlugin version and status
ParameterMeaningExample
u:<player>One or more playersu:Steve or u:Steve,Alex
t:<time>How far back in timet:2h, t:3d, t:1w
r:<radius>Radius in blocks around you. r:#global = the whole server, r:#worldedit (short r:#we) = the WorldEdit selectionr:30
a:<action>Only a certain kind of actiona:-block (broken blocks), a:+block (placed)
i:<blocks> / e:<blocks>Only these blocks / all except these blocksi:diamond_ore, e:tnt
#previewThe rollback only shows what it would do, nothing changes/co rollback u:Steve t:1h r:20 #preview

Rolling back grief step by step#

  1. At the damaged spot, type /co inspect and click the broken area. You'll see who changed it and when. Turn the inspector off with the same command.
  2. Look at the extent: /co lookup u:<NICK> t:1d r:30.
  3. Try a dry-run rollback: /co rollback u:<NICK> t:1d r:30 #preview.
  4. If the preview looks right, run the real rollback: /co rollback u:<NICK> t:1d r:30.
  5. If you rolled back more than you wanted, use /co undo.

CoreProtect settings#

The plugins/CoreProtect/config.yml file:

SettingWhat it doesRecommended valueWhen to change it
default-radiusThe default search radius when you don't enter r:10 (default)Larger for big builds
max-radiusThe largest allowed radius (except #global)100 (default)Lower it if you want to protect performance
rollback-itemsWhether a rollback also restores items in cheststrueAlmost never
rollback-entitiesWhether a rollback also restores killed entities (such as animals)trueAlmost never
player-messagesLogs chat messagestruefalse if you don't want to store chat
player-commandsLogs player commandstruefalse to save space
hopper-transactionsLogs items moved by hopperstruefalse on servers with big farms (less data)

CoreProtect stores its data in a database in the plugins/CoreProtect folder. On big servers the data grows quickly, so delete old records with /co purge t:30d, or switch to MySQL as described in the article MySQL for plugins.

Permissions: coreprotect.inspect, coreprotect.lookup, coreprotect.rollback, coreprotect.restore, coreprotect.purge, or everything with coreprotect.*. By default only operators have them.

Chunky#

What it does: generates the world ahead of time up to a chosen radius. Generating new chunks is the most demanding thing a server does. When it's done in advance, players don't feel lag while exploring.

Where to download: the Plugins tab (Modrinth or Hangar).

Basic use (from the console):

Consoletext
chunky center 0 0
chunky radius 3000
chunky start
  • chunky center 0 0 – the center of the area at X = 0 and Z = 0. In the game you can type just /chunky center and the center will be where you're standing.
  • chunky radius 3000 – a radius of 3,000 blocks from the center.
  • chunky start – starts generating. Progress is shown in the console, chunky pause pauses it and chunky continue resumes it.

Before you start, check your free disk space and set a world border. The full procedure is in the article Performance and optimization.

Geyser and Floodgate#

What it does: Geyser lets Bedrock Edition players (phones, consoles, the Windows version from the Microsoft Store) join a Java server. Floodgate is an add-on that means Bedrock players don't need to sign in with a Java account.

Where to download: geysermc.org/download (opens in a new window).

Setup: Geyser needs a UDP port (19132 by default), which you add in the Network tab at StormHost. The full procedure is in the article Crossplay with Bedrock.

spark#

What it does: a profiler that shows exactly what's loading the server's CPU (a plugin, a type of entity, a farm). It's the most reliable way to find the cause of lag.

Where to download: Paper has included it since version 1.21, so you don't need to install it. On Fabric and NeoForge it's installed as a mod.

Basic use: spark tps shows the server's performance, spark profiler start --timeout 600 runs a ten-minute measurement and prints a link to a clear report at the end. How to read the report is explained in the article Performance and optimization.

Plugins to avoid#

  • Plugins promising to “remove lag” by regularly deleting items on the ground, killing mobs or disabling mechanics. They hide the symptom, not the cause, and they delete players' stuff. Find the cause with spark instead.
  • Unmaintained plugins. If the latest version came out for a Minecraft release several years old, the plugin most likely doesn't work with the new version or has security holes. Check the date of the last update and the supported versions.
  • Several plugins for the same thing. Two permission plugins, two land protection plugins or two economies fight each other. For permissions, use only LuckPerms (not the older PermissionsEx or GroupManager alongside it).
  • “Cracked” and “leaked” paid plugins. They often contain code that gives an attacker control of your server.
  • Plugins from unknown websites. Download from catalogs (Modrinth, Hangar, SpigotMC) or from the authors' official pages.

Verification#

  1. After installing all the plugins, restart the server and type plugins in the console. All plugins should be in the list (green in the game).
  2. Go through the console from the start and look for ERROR or WARN lines from individual plugins.
  3. Test the basic commands with an account that isn't an op: /sethome, /home, /spawn and building on the protected spawn.

Troubleshooting#

/spawn says unknown command#

The EssentialsX Spawn module is missing. Install it (on Modrinth it's a separate project) and restart the server.

Players can't use /home or /tpa#

Players are missing permissions. On a server with LuckPerms, give them to the default group, see LuckPerms. You can check it with lp user <NICK> permission check essentials.home.

WorldGuard won't load: Unknown/missing dependency plugins: [WorldEdit]#

WorldEdit is missing. Install it; both plugins must support your Minecraft version.

The region doesn't protect anything, players build in it#

  • You're testing as an operator, or the player has the * or worldguard.region.bypass… permission. Try with an account that isn't an op.
  • The player is a member of the region. Check with /rg info <region>.
  • The selection didn't cover the full height. Redefine the region with //expand vert and /rg redefine <region>.

Region members can't build near spawn#

Besides WorldGuard, Minecraft itself protects the area around spawn with the spawn-protection option (a default radius of 16 blocks where only operators can build). If you protect your spawn with WorldGuard, go to the Server properties tab › Players, set Spawn protection to 0 and save with a restart. The option only applies when there's at least one operator on the server.

CoreProtect says it found no data for a block#

The change happened before CoreProtect was installed, or logging for that action is turned off in config.yml. Older changes can only be undone from a backup.

The LuckPerms prefix doesn't show in chat#

Vault (VaultUnlocked) or EssentialsX Chat is missing. After installing both, check the output of vault-info.

The plugin hasn't been released for your Minecraft version yet#

The catalog won't offer it for your version, and an older version uploaded by hand may fail. Wait for an update, or keep the server on a version the plugin supports, see Changing the version and software.

Summary

  • The basis of most servers: EssentialsX (+ Chat, Spawn), LuckPerms, Vault, WorldEdit, WorldGuard and CoreProtect.
  • Install them one at a time and check the console after each plugin.
  • Set up EssentialsX right away: the language (locale), the teleport delay and the number of homes.
  • WorldGuard needs WorldEdit. Test protection without op.
  • CoreProtect only logs from the moment it's installed, so put it on the server right at the start.
  • spark is part of Paper. Avoid plugins that promise to “remove lag”.

Was this guide helpful?

Applies to

  • Paper
  • Purpur

Services

Report a mistake in this guide

Search the guides