As a Roblox devloper it is currently too hard to manipulate respawn logic, especially with position and character appearance
The issue around positioning is that if I use
CharacterLoaded, and move the character using MoveTo, nothing happens. I have to wait an arbitrary amount of time before moving the character for it to correctly place itself. (You cant just use RespawnLocation, especially if you want an arbitrary CFrame)
The issue with character appearance is CharacterAppearanceLoaded can take a long time to fire and it would be easier if we could just set the HumanoidDescription beforehand if the player is respawning (not LoadCharacterWithDescription, this is for when we cant call it explicity)
A basic solution I have is to have two callbacks that are invoked to modify this logic
Respawning- return SpawnLocation/CFrame/Position of where to drop the character in
LoadingCharacterAppearance- return a HumanoidDescription of appearance to override default
If Roblox were to address this issue it would improve my development experience because I would be able to directly hook into the respawn engine instead of having to rely on events.