ResetPlayerGuiOnSpawn was deprecated however ResetOnSpawn is not a member of LayerCollector, only of ScreenGui. This means that if you attempt to store a BillboardGui or SurfaceGui within the PlayerGui then they will be removed when the player respawns. Ideally, ResetOnSpawn should be a member of LayerCollector, the class which ScreenGui, BillboardGui and SurfaceGui all inherit.
Otherwise, the legacy behavior should be disabled by default for non-ScreenGuis.
User-story remix. As a Roblox developer it is impossible to create GUIs which will persist on respawn in the 3D world.
I get really annoyed having to constantly set certain SurfaceGuis when a player respawns. For example, a SurfaceGui in a player’s GUI allows them to view an object archive of things at the place that can be interacted with. When the player respawns, it has to set it up all over again (adorns, creation of labels and whatnot).
Still wishing this would be a property of LayerCollector. NPCs in a friend’s project I helped with break for anyone who has LoadCharacter called on their player, due to it using Roblox’s official dialogue editor.
This has been added, but is not live yet. However, anyone in desperate need of it should keep an eye on 329’s release notes if the property isn’t visible in studio yet.
However, if the property is visible in studio you can disable it where needed and it should automatically work when the feature is live. I’m not on a computer yet to see if this is an option. On computer now and confirmed this property isn’t visible in the properties window. However, it seems to be accessible by script in studio, but of course wouldn’t do anything yet as it is not live.
If you set it to false by script, by anything I know it should remain false when the feature is live. This means there’s potentially a way to prepare this in your games.
Closed studio and re-opened after setting the property to false. As (probably obviously) expected, it remains false. Guess it’s just a hidden property for now (in studio) like any other hidden property.
Oh, that’s interesting. Pretty sure I meant to make that throw an error if you tried setting it before it was live. Oh well, I’ll turn it on soon. Gotta make sure it’s available on mobile first, so your games don’t break if a player is on an old version.