How do I make an exploiter teleport not replicate to the server?

This game I’m making is like a chess game but with Roblox characters; problem is I got an exploiter teleporting and being hidden by other players.

The characters in stasis CANNOT move by themselves, all controls are canceled.

You can’t make it not replicate. Roblox gives network ownership of client’s characters to the client for smoothness. You would probably have to remove network ownership. (idk about that though) What you can do is every RunService.Stepped, get the player’s last position. If their position now and the last position is too far, teleport them back to the previous location. If the positions are hardcoded, you can just teleport them back as well

3 Likes

Can’t not replicate, but you can do what @sjr04 suggested, probably the best you can do.

Something like this:

local player = game.Players.LocalPlayer -- gets the player
local char = player.Character or player.CharacterAdded:Wait() -- gets the character 
local lastPos = char.PrimaryPart.Position -- the last known position if the character
while wait(1) do -- every 1 seconds, check the player position
   
   local currentPos = char.PrimaryPart.Position -- the current player pos

   if (currentPos - lastPos).magnitude > 50 then -- checks if current player pos is more than 50 studs away from the last recorded pos, if they are, then they may be teleporting
          print(player.Name,"may be teleporting")
   end

   lastPos = currentPos -- updates the last pos

end

Tip: if you don’t want the exploiter to be able to delete the script, than put the script in ServerScriptService and change the player to something like

game.Players.PlayerAdded:Connect(function(plr) 
   player = plr 
   -- the code above ^^^
end)

Hope this helps!