I'm working on security for my game and could REALLY use a feature that hides a part's existence from some, but not for others. To be more clear: I want the explorer tab for the client to not even recognize the existence of a part for one player, yet at the same time allow its existence for a different player.
I am not looking for an answer like this:
part.Transparency = 1
Or like this:
part.CanCollide = false
...as both of these will still allow the part to show up in the workspace for everyone. I have a feeling that it's not possible, but I wanted to ask just in case. Thank you.
[Edit] Remember that I'm doing this for security, so changes to the local side won't help. I'm looking for a way to stop the server from naturally sending a part in the workspace to the client.
You could use a
ReplicatedFirst and a
ServerScriptService to make so-called "local parts", which only appear for the local player. These parts will not be synchronized, however. They probably should be anchored. However, local only hacks will be able to move these bricks (if they are anchored)
game.Players.PlayerAdded:Connect(function(player) local Event=Instance.new("RemoteEvent", game.ReplicatedStorage) if player.Name == "YourCertainPlayer" or "SomeoneYouDontDislike" then Event:FireClient(player, 1, 2, 3) end end)
game.ReplicatedStorage.RemoteEvent.OnClientEvent:Connect(function() local YourInstance = Instance.new("Part", game.Workspace) YourInstance.Position = Vector3.new(X,Y,Z) YourInstance.Size = Vector3.new(X,Y,Z) YourInstance.Anchored=true YourInstance.Material = Enum.Material.Brick end)
If you are looking for an exploit-free method without having it in the server, im sorry but that is currently impossible unless there is something weird out there.
I believe this can occur if you do it through a LocalScript.
From a localscript, do this:
part.Transparency = 1 part.CanCollide = false