StreamingEnabled when returning ProximityPrompt sets “Enabled” property the last server value, not the one that was on the client (maybe applies to some other Property of ProximityPrompt too).
To reproduce the bug, you just need to set different Enabled values for ProximityPrompt on the server and the client, and move away to a decent distance for it to disappear locally, and then return back
Expected behavior
Fix StreamingEnabled and set it to the last value that was on the client, please (or adding an option to regulate this problem).
I would also like to ask Roblox to consider automatically reindexing cached Instances that were unloaded and loaded back by StreamingEnabled (their reindexing via ChildAdded, especially when you work with multiple objects is a…). Thanks you.
Are you able to create a simple repro place for this issue?
I should mention that if you are creating a desync by changing property values on the client compared to the server these client only changes could be lost when the instance is streamed out and back in. This can happen for any properties. So this is likely expected behavior, but having a repro place would help us investigate/confirm.
Sure, here’s the file. Once you enter play-test, you’ll see two Parts, the one hanging in the air is a proximityprompt holder, and the one standing on the baseplate is a long-range teleporter. StreamingEnabledTest.rbxl (58.8 KB)
The initial state set by the Server is true. The Client sets it to false when entering to the game.
As I mentioned what is occurring is that the client is making local only changes that don’t replicate to the server, and results in a desync. As a result if/when the instance is streamed out and back in it gets the replicated state from the server, the local changes are lost.
This is expected behavior and I don’t anticipate this would change in the future.