As a Roblox developer, it is currently too hard to use Player.RespawnLocation to customize spawn locations when arbitrary limitations are put in place.
Currently, when :LoadCharacter() is called (or a player just spawns normally), the following checks are made on RespawnLocation. If any fail, RespawnLocation will not be used.
Is RespawnLocation a descendant of Workspace? (This one makes sense)
Is RespawnLocation Enabled?
Is RespawnLocation Neutral?
If RespawnLocation is not Neutral, does it have the same TeamColor as the Player?
The SpawnLocations are labeled what makes them unique. Click on the SpawnLocation to set that as your RespawnLocation, then use the LoadCharacter tool to reload. Ideally, every one of these should be able to be used as a RespawnLocation.
If Roblox is able to address your issue, how would it improve your game and/or your development experience? Please be as specific as possible.
It would make using SpawnLocations much easier. Currently, if I want to decide where a player spawns and I don’t want that SpawnLocation to be able to be used by someone else, I have to use a script to :MoveTo or :SetPrimaryPartCFrame the Character above the SpawnLocation. If these restrictions were removed, I could just set .RespawnLocation and be done with it.
And we would hopefully not get threads like these:
Just encountered this and didn’t want to make a new thread. It makes no sense that the SpawnLocation must have Neutral set to true in order to make it a valid RespawnLocation.
This would provide a lot more freedom with how we spawn the player.
Instead of spawning them and teleporting them as even teleporting on CharacterAdded can be faulty.
Making this function follow the rules of a SpawnLocation makes minimal sense and seems like an arbritrary rule.
Again it’s just insane how Roblox ignores this for 6 years. It makes no sense how the “RespawnLocation” property of a player is arbitrated by a Roblox script out of our control. Also RespawnLocationshould be a Vector3 and not a SpawnLocation, it’s not “RespawnSpawnLocation”.
there’s not much that can be done here since it’s already hardcoded into systems
it’s simply a design flaw of the legacy teams system. the next best thing is RespawnLocationVector3