How do you make a part that is only visible to ONE person. So it is invisible to everyone but a chosen person.
The solution is local parts (or in general local objects).
The key to how they work is for the changes in the world made by a LocalScript to just never be sent to the server.
There are two standard ways to do this. The first is done by instancing a "non-replicating" object, such as a Message. For whatever reason, Messages, Hints, Sounds?, Scripts, &c. when created by LocalScripts are not received by the server.
As a result, their descendants will also not appear. So, in a LocalScript, if you parent everything to a Message created by that LocalScript, those things will only be visible to the local player.
If you don't like putting everything into an object created by the script, you can instead use the CurrentCamera
, because this instance is not replicated and created for you. (I believe however that the CurrentCamera may be reset by death but I am not sure; this may or may not be a positive architectural difference, since a Message and its contents would persist between lives, and LocalScripts created anywhere would re-run upon respawning, so this must be considered)
Do not expect physics or physics based events to act properly with local objects. Walking into/on them as though they were anchored should work, however.
Alternatively, I believe by enabling "FilteringEnabled," all parts created by LocalScripts would be local. I have not used this method, so I don't know.
Local parts! I don't know how to use them that well myself (TEE HEE) but there is a wiki page for it. COMMENCE KNOWLEDGE INTAKE