Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

Any way to make a part not exist for certain players, yet it exists for others?

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.

2 answers

✓ Accepted answer

You could use a LocalScript in ReplicatedFirst and a Script in 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)

Script:

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)

LocalScript:

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.

1 comment

0

I think this is about the closest I'm going to get to what I want. I can actually make it work with this concept, but it'll be a lot more scripting than I had hoped. Thanks for the answer, I'll accept it.

I believe this can occur if you do it through a LocalScript.

From a localscript, do this:

part.Transparency = 1
part.CanCollide = false

1 comment

0

Thank you for your answer, but this won't work for what I'm trying to accomplish. An exploiter could easily change anything inside a local script. Remember that I'm doing this for security.

This discussion is preserved as it was. New answers, comments, and votes are closed.