Updated:

Two different commands

CommandSetsUse it for
/spawnpointA player's respawn point (like a bed)Respawning at a base or in a minigame
/setworldspawnThe world spawnWhere new players and players without a bed appear

/spawnpoint

/spawnpoint
/spawnpoint @s 100 64 -200
/spawnpoint @a ~ ~ ~

With nothing after it, the spot you stand on becomes your respawn point. The third line moves everyone's respawn point to where the command runs. Java also accepts a facing angle at the end. Pick a spot with solid ground and two blocks of air above.

Beds and respawn anchors win later

A spawnpoint counts like a bed. Sleeping in a bed or using a respawn anchor afterwards replaces it. In minigames, block bed use or run /spawnpoint again. Bedrock has /clearspawnpoint to reset a player to the world spawn; on Java, set the spawnpoint to the world spawn coordinates instead.

/setworldspawn

/setworldspawn
/setworldspawn 0 70 0

This sets where first-time players and players without a respawn point appear.

Stop the random offset

By default, players appear somewhere within a radius of the world spawn. Set it to 0 to appear on the exact block:

VersionCommand
Java 1.21.11 and later/gamerule minecraft:respawn_radius 0
Java 1.21.10 and earlier/gamerule spawnRadius 0
Bedrock/gamerule spawnradius 0

The default is 10 on Java and 5 on Bedrock. It affects only the world spawn, not /spawnpoint or beds.

Common problems

Check your command

The Command Error Doctor checks common syntax mistakes in your browser.