(English is not my mother tongue, so please pardon me for possible spelling errors or unclear expressions which I do have tried to avoid when I am writing this issue report.)
Description of the Problem
I tested the command
/setworldspawn 94 -50 208
It did work, for the command did neither return any error message on client message box, nor print any error message in log on server-side. And then I stopped the Minecraft server, and checked the level.dat file on server, it's key SpawnX had value 94, key SpawnY had value -50, key SpawnZ had value 208. Then I restarted the Minecraft server.
So I think the /setworldspawn command is working properly.
However, I logged in the server with an account that never logged in before. This new player spawned at the void, kept going down and then disconnected from the server. I am sure this is not related to network issue, for the PC running Minecraft client was connected to the server through RDP at the meantime. Then I tried to log in again with that account, the player was at the original world spawnpoint whose Y coordinate>0.
Then I tested with a few other ID, none of which has changed its own spawnpoint with bed. I ran /kill command, and found that all of these players were teleported to the exactly the same original world spawnpoint.
Finally I chose a random point with its Y=20, and ran
/setworldspawn
at there. Then I tested where these players, which I used on the testing I mentioned above, would respawn. Testing method was the same. However, every player I tested can respawn at the new point whose Y=20.
With the same method, I tested this problem on Minecraft single-player name. It could be reproduced.
So I think setting world spawnpoint at Y<0 area is still not allowed in 21w13a, which is an issue should be fixed.
I am not sure what kind of attachments would help to resolve this issue. If any other information is needed, it will be provided as soon as possible.
Thanks in advance!
It is recommended to add relevant screenshots to get feedback more quickly (approximately)