How to hide player character?

Hello I just want to hide the player character and make the hidden player’s position hidden also from exploiter. It seem so simple but I have thought about it for hours and haven’t think of a way to do it on Roblox. The problem is the default character system always replicate to all client and there isn’t a simple way to make it not do that. I have came up with a solution that I really do not want to have to do but its like a custom character system and control that fire the position to the server and the server only replicate the location to player that should be able to see the character. But like I kinda need the server authority for the character because making a custom character anti cheat for my game would be a disaster because I have multiple character already made with custom speed and mobility ability.

So I’m wondering if I’m just overthinking this and is there is a easier way to hide a player’s character and their position from exploiters?

I don’t think there’s any other way to do this aside from doing it the way you said. The real question is why do you want to hide it from an exploiter? And if you should. Cause I honestly don’t think it’s worth all the hassle to do whatever it is that you said

Why is ‘why’ even the question if you have a even slightest competitive game that require strategy the position knowledge is like the biggest advantage you can have. Example of game that might need this is like RTS, Forsaken if had a ranked mode for some reason and like Piggy if it also had a ranked mode for some reason. You can see why exploiter knowing the position in those case would be bad.

you cant make the player positions unable to be manipulated by the client without sacrificing a lot of smoothness. there are a few anticheat measures you can do to lessen exploiters but tbh you cant completely get rid of them without making the experience worse

the reason player movement in roblox is smooth, at all, is because roblox gives networkownership of players to each of the player’s client (which is allowing each player to render their character’s physics and then replicating their part positions to the server)
and, yes, this allows for physics spoofing, but it would be a lot worse of an experience if i had to wait 0.5 seconds for roblox to allow me to move each input

Cause the why answers whether or not it’s worth it to even add it in the first place. Since the chances of someone even running into an exploiter is already low, adding something the player won’t ever really deal with just doesn’t seem really worth all the time and effort.

The one solution I just remembered that you could try using is Anchoring the Player on the Server and Unachoring the Player on the Client. This allows the player to move freely while also keeping the Player’s Character locked into one place. Though this’ll probably get fixed when Server Authority gets implemented. Can’t show a video since my video recorder is broken so just shove these scripts into a tool (disable RequiresHandle) and check the Server side:


Server Script:

local tool = script.Parent

tool.Activated:Connect(function()
	local HumRoot:Part = tool.Parent:FindFirstChild("HumanoidRootPart")
	if HumRoot then
		if not HumRoot.Anchored then
			HumRoot.Anchored = true
		else
			HumRoot.Anchored = false
		end
	end
end)

Local Script:

local tool = script.Parent

tool.Activated:Connect(function()
	local HumRoot:Part = tool.Parent:FindFirstChild("HumanoidRootPart")
	task.wait(1) -- waits for the Server to Anchor
	if HumRoot then
		if HumRoot.Anchored then
			HumRoot.Anchored = false
		end
	end
end)

This won’t hide the player’s model but this will lock the player’s position into one place effectively hiding the player’s actual position from exploiters.