How do I make multiple spawn points in minecraft vanilla?

I'm fine using any mods to DO it, and use a program like mcedit. However, the final time that it's played, it can't have any mods installed.

I'd also like to know how to chose which spawn to make the user spawn at.


Solution 1:

As long as you are okay with having them be VERY close together (though separated by walls), this design can work. (top view) B = bed X = wall O = valid spawn location

       OOXOO
       OOXOO
      XXXBXXX
      XXXBXXX
       OOXOO
       OOXOO

Once the player sleeps in the bed, when they die, they will spawn in one of the valid locations. To choose which one, simply fill the others with blocks using pistons. Since the bed is inaccessible from everywhere but the top, you can make branching paths leading to other beds.

Solution 2:

Yes

Using scoreboards as mentioned by Schism, and the /spawnpoint command. However you are dividing up your teams, just add a command block that fires when assigning someone to a team that sets the player's spawnpoint. For example you could have a set of commands like this, triggered by a button or pressure plate:

/scoreboard teams join blue @p[r=2]
/tp @p[r=2] 0 64 64
/spawnpoint @p[r=2] 0 64 64

Solution 3:

You can use WorldGuard, a bukkit plugin (that's a SMP server, you can run that on your own PC and simply connect to it with an unmodded client). With WorldGuard, you can set region-specific spawn points, as is desribed under Regions/Flags, flag spawn. This is not trivial to setup the first time, but once done it's precisely what you want.

It is absolutely impossible to achieve this without any mods (with current Minecraft versions). However, since WorldGuard is a server mod, neither you nor anyone else connecting to that server (if desired), will need a modded client. Just note that directly after a Minecraft update (such as 1.3 at the moment), bukkit will require some time to update and you have to stick to the currently supported client version number.

Solution 4:

I don't believe there is a vanilla way to have true multiple spawn points (though there is a plethora of mods and plugins that will allow this) -- and even if there was a way, I don't know how you'd manage to assign teams first. However, I think you can get what you want using the new Scoreboard system.

After assigning members to a team (/scoreboardteams join blue Notch Jeb_ Dinnerbone, done either manually or with a command block), you can use a command block to teleport the entire team to a starting location, using /tp@a[team=blue]400 64 400.

Solution 5:

This can be done with command blocks:

enter image description here

By putting tripwires over the whole spawn area, you can trigger a command block whenever a new player joins the server, which you can use to set their spawn point.

You can build in whatever logic you like to set different spawnpoints randomly, or in a series.

Sethbling goes through the process of creating the above structure in this video: