I understand how to make players invisible locally on a single client via iterating through the the player’s character and making BaseParts transparent, but I also found another method in which the client reparents another player’s character to (let’s say) Lighting - and then back to the workspace to make them visible again.
However, I am struggling to gather a guide in which I can achieve the following example:
- Players have a main hub, and individual worlds branching out of that main hub.
Players in the main hub can see other players also in the main hub, but cannot see any players outside of the main hub. - When a player enters their world, all players within the main hub as well as players in other worlds become invisible (so that exploiters who aren’t suppose to be there can’t just fly over to their world and interfere with that player)
- When a new player enters their world, they become visible to the initial player and the entering player can see all those who are in that world except those who aren’t suppose to be there.
In short, players can only see other players who are currently sharing the same environment. The game will not include TeleportService since these worlds are just mini environments that is locally rendered by the appropriate players. I guess the closest comparison would be games like Adopt Me and Welcome to Bloxburg.
The game is a type of world sharing/role playing concept where there could be around 50 players in each game, so ideally for performance reasons, reparent other player’s characters that they do not have to see.
An issue I feel like that could make this more difficult to achieve is StreamingEnabled, a client may not even recognise another player’s character if it’s not within streaming range (correct me if I’m wrong).
Any guidance on how to achieve this would be fantastic, thanks!