mojira.dev
MC-129912

Player no longer spawned at highest level at world spawn

How to reproduce

  1. Create a new world

  2. Execute /fill ~-20 200 ~-20 ~20 200 ~20 dirt

  3. Execute /setworldspawn ~ 200 ~

  4. Execute /kill @s

Expected result

You should respawn in on the dirt platform you generated

Actual result

You spawn in underneath the dirt platform

I tested this in 1.12.2 and 18w16a and neither of these versions have this same issue so it has been broken recently


Very strongly related is MC-130138.
There the player spawns at the topmost block of an empty world, but inside a ship-wreck, which probably gets placed after calculation of player spawn point.

Related issues

Comments

migrated

This bug causes problems for map makers. I have recently been working on a map which had a lobby above the world. In previous snapshots you'd spawn when you logged onto the server in the lobby and now you spawn underneath it.

migrated

I have investigated this further. It seems that there is now a #minecraft:valid_spawn tag and it only has grass_block and podzol in it and this tag determines what is a valid spawn place. If you change the fill command in the description to be grass_block instead of dirt, it works like 1.12.2. Is this an intentional change that only glass and podzol are valid spawn blocks? It seems like other blocks like stone, dirt and sand use to work and occur naturally on the surface of a world.

EDIT: I think I misunderstand how the valid_spawn tag is used. If I use a datapack to override it it doesn't change where you can spawn. Also, podzol doesn't work as a replacement to dirt with the fill command in the description to reproduce the 1.12.2 behaviour.

bugmancx

Confirmed 1.13-pre6

bugmancx

Affects 1.13-pre7

bugmancx

Affects 1.13-pre8

migrated

Can confirm for 1.13.1

migrated

Still present in 1.13.2

bugmancx

Affects 19w12a

migrated

Still an issue in 1,14

 

FaRo1

There is no 1.14.2 yet. And this report is talking about the world spawn, the individual player spawn point was always able to spawn you anywhere.

FaRo1

Are you sure about that? /setworldspawn should ignore the y level completely.

migrated

The hight of y is only used if no spawnable blocks are found. If a spawnable block is found at any hight that block is used to respawn the player on. If no spawnable block is found it also only respawns you at the exact x and z of worldspawn. /setworldspawn can alter the y. Tested now in 1.14.1

This is still broken in previously mentioned usecases, such as buffet presets, as well as changes in the world by the player. Y is to be used in order to create a prefferense for the game when respawning in case of buffet presets and mapmaking?

ampolive

Can confirm in 21w40a.

migrated

(Unassigned)

Confirmed

Normal

Commands, Player

Minecraft 18w20c, Minecraft 18w21a, Minecraft 1.13-pre1, Minecraft 1.13-pre3, Minecraft 1.13-pre6, ..., Minecraft 19w03c, 1.15.2, 20w08a, 20w51a, 21w40a

21w42a

Retrieved