In short: stand in the middle of your future spawn and run /setworldspawn. A vanilla server puts a new player on a random block near that point, and on top of the column — on the roof, if the spawn has one. The EssentialsX Spawn module puts players exactly on the point: run /setspawn at the same spot, and you also get a /spawn command with the essentials.spawn permission. Leave block protection to a WorldGuard region with pvp deny and mob-spawning deny, and set spawn-protection in server.properties to 0.
The world spawn point: /setworldspawn
A world has one spawn point: on a first join the game places the player on a random solid block in a small area around it. In Java Edition that's a 21×21 square by default. Players return there after dying if they have no respawn point of their own. A compass points to it.
setworldspawn # the point is where you stand
setworldspawn 0 80 0 # the point by coordinates
setworldspawn 0 80 0 90 # plus the facing direction (yaw)- Permissions. The command needs operator level 2. On Paper its permission is
minecraft.command.setworldspawn, which nobody but operators has by default. - Facing. The optional angle sets where the player looks after spawning — handy to turn newcomers toward the rules signs.
- Spawn chunks. Since 1.21.9 the game no longer has always-loaded spawn chunks, and the point itself can be set in another dimension.
The spawn radius: respawn_radius
The size of the area around the point is set by the respawn_radius game rule — the number of blocks out from the spawn point, 10 by default. Before 1.21.11 it was called spawnRadius. On a server with a built spawn, the spread gets in the way: a newcomer appears off to the side of the entrance. 0 removes the sideways spread but doesn't fix the height: per the Minecraft Wiki, the player lands on the highest solid block in the column, so under a roof they end up on the roof. Two things put players exactly on the point, height included: Adventure as the default game mode (below) and EssentialsX Spawn, which teleports newcomers to where /setspawn was run.
gamerule respawn_radius 0If the default game mode in server.properties is Adventure (gamemode=adventure), there's no spread at all: players spawn right on the spawn point, and respawn_radius has no effect. The other game rules and the 1.21.11 renames are in game rules.
First join and respawn
| Situation | Where the player appears (vanilla) |
|---|---|
| First join | In the respawn_radius area around the world spawn point |
Death with a bed, a respawn anchor or a /spawnpoint point | At their own respawn point |
| Death with no point of their own, or it's obstructed | In the area around the world spawn point |
| Coming back from the End | The same as after a death |
You can also set a player's point by hand: /spawnpoint <player> <x> <y> <z>, again with operator level 2. Spawn plugins change this scheme — EssentialsX Spawn, for example, sends players to spawn after death too by default (below).
Spawn protection: spawn-protection
The built-in spawn protection stops players from placing and breaking blocks near the spawn point. Its size is spawn-protection in server.properties: it protects a square with a side of 2×value+1. The default is 16, which is 33×33 blocks; 0 turns it off.
- Operators don't notice it. An OP builds inside it freely — test the spawn from a regular account.
- No operators, no protection. If the server has no operators at all, spawn protection doesn't apply.
- It can be bypassed. The Minecraft Wiki lists indirect ways: pistons, dispensers, explosives and mobs that break blocks.
- It's only about blocks. It doesn't turn off PvP, mobs or explosions, and it doesn't hand out rights by group.
That's why open servers usually protect spawn with a WorldGuard region and set spawn-protection to 0, so the two protections don't get in each other's way.
/spawn and /setspawn: EssentialsX Spawn
Vanilla has no /spawn command — it comes from the EssentialsX Spawn module, installed next to the main EssentialsX jar of the same version. Its points are stored in plugins/Essentials/spawn.yml and don't change the world spawn point, so put /setspawn and /setworldspawn in the same place — otherwise the compass and vanilla respawns lead elsewhere. Installing the modules and their permissions is covered in EssentialsX.
# stand at the spawn and run
/setspawn # the default spawn (group default)
/setspawn newbies # a separate first-join point — optional
/setspawn vip # a point of its own for the vip permission group
# permissions for players — through LuckPerms
lp group default permission set essentials.spawn true| config.yml setting | Default | What it does |
|---|---|---|
newbies.spawnpoint | newbies | Where a newcomer goes. If there's no newbies point, the default point is used, and without it the world spawn; none — the vanilla world spawn |
newbies.kit | tools | The kit a newcomer gets on first join; '' — no kit |
newbies.announce-format | a welcome | A message to everyone about a player's first join; '' — no message |
spawn-on-join | false | Send players to spawn on every join; can be limited to groups |
respawn-at-home | false | After death — to the first home or bed instead of spawn |
respawn-at-anchor | false | Respect respawn anchors |
respawn-listener-priority | high | none — keep vanilla respawning |
/setspawn and /spawn for other players use essentials.setspawn and essentials.spawn.others — keep those for staff. The teleport-delay setting in config.yml stops players escaping a fight via /spawn.
A spawn region in WorldGuard
WorldGuard protects the whole spawn and changes the game rules inside it. In a new region only members can build, so you don't need build flags — you need flags against whatever bothers newcomers:
//wand # mark two corners of the spawn
//expand vert # from bedrock to the sky
/rg define spawn
/rg flag spawn pvp deny
/rg flag spawn mob-spawning deny
/rg flag spawn creeper-explosion deny
/rg flag spawn tnt deny
/rg flag spawn fire-spread deny
/rg flag spawn greeting Welcome to the serverAdd builders as members: /rg addmember spawn g:builders. A fighting arena inside spawn is a separate region with pvp allow and a higher priority. Priorities, __global__ and the full flag list are in WorldGuard, and general anti-grief setup is in grief protection.
Spawn checklist
/setworldspawnand/setspawnare at the same point, with two free blocks above it.- Newcomers appear exactly on the point: via EssentialsX Spawn or Adventure as the default mode; without them —
respawn_radius 0and open sky above the point. - A WorldGuard region covers the whole spawn,
spawn-protection=0. - PvP, mobs, explosions and fire are off at spawn via flags.
- Players have
essentials.spawn, staff haveessentials.setspawn. - You've decided where players respawn after death: at spawn or at their bed.
- Tested from a regular account without OP: first join, death,
/spawn.
Spawn and cheaters
Spawn is where newcomers first run into cheaters. The pvp deny flag turns off combat, but it doesn't stop Fly and Speed from carrying a cheater from the spawn point to other people's bases in seconds, and at the edge of the PvP zone a player with KillAura meets everyone who steps outside. A newcomer killed in their first minute rarely comes back.
| Cheat | DGuard | GrimAC | Vulcan | Polar | Intave | Matrix |
|---|---|---|---|---|---|---|
| KillAurahits targets by itself | partly: no dedicated check — only indirectly, via Reach and packet order | |||||
| Reachhits beyond reach | ||||||
| AutoClickerclicks for the player | ||||||
| Flyflies without elytra or creative | ||||||
| Speedfaster than the game allows | ||||||
| Timerspeeds the game up |
DGuard — the best anticheat for a modern Minecraft server — checks combat, movement, packets, inventory, building and the world the same way in every region: at spawn, in the arena and in the wild. It gathers evidence on every front and doesn't rush to a verdict, and you set how strict the punishments are. Up to 30 players online it's free.
FAQ
How do I set the spawn point on a Minecraft server?
Stand at the spot and run /setworldspawn as an operator or from the console. /gamerule respawn_radius 0 (spawnRadius before 1.21.11) removes the spread around it, and EssentialsX Spawn or Adventure as the default mode put players exactly on the point, height included.
Why do players spawn near the spawn point or on the roof instead of on it?
The game puts a newcomer on a random block in the area around the point (21×21 by default) and on top of the column. respawn_radius 0 removes the spread; EssentialsX Spawn or Adventure as the default mode give the exact point with its height.
Why isn't spawn protection working?
Either you're testing as an OP — operators bypass it — or the server has no operators at all, and then it doesn't apply. For solid protection use a WorldGuard region and set spawn-protection=0.
How do I add a /spawn command?
Install EssentialsX and the EssentialsX Spawn module of the same version, run /setspawn at the spawn and give players the essentials.spawn permission through LuckPerms.
Why do players respawn at spawn instead of their bed?
That's EssentialsX Spawn's default. Set respawn-at-home: true in the EssentialsX config.yml, or respawn-listener-priority: none to bring back vanilla respawning.
Sources
- Minecraft Wiki: World spawn
- Minecraft Wiki: /setworldspawn
- Minecraft Wiki: /spawnpoint
- Minecraft Wiki: game rules (respawn_radius)
- Minecraft Wiki: spawn protection
- Minecraft Wiki: server.properties
- Paper: vanilla command permissions
- EssentialsX: modules
- EssentialsX: the default config.yml (newbies, respawn)
- EssentialsX Spawn: commands and permissions (plugin.yml)
- WorldGuard: region flags
- DGuard, the best anticheat for a modern Minecraft server: checks compared with GrimAC, Vulcan, Polar, Intave and Matrix
- DGuard: installation, requirements and troubleshooting
- DGuard: supported Paper and Leaf versions