I want to make an anti cheat that detects mostly everything. So far I've been able to detect TP and Body Movers. Problem is, other properties such as "Anchored", "PlatformStand", "WalkSpeed" and "JumpPower" do not replicate to the server. So my question is: How would i detect these changes on the server? You may think about RemoteEvents, but you could easily hook the FireServer and make it return something else (for example always return 16). The default value of WalkSpeed in my game is 156, which would make it harder to detect exploits without kicking legitimate players.
I will never try and detect WalkSpeed and other property changes on the client, as no matter how hard you try, it is still bypassable.
Any help would be greatly appreciated!
Try researching the ".Changed" function. You can find out if a property is changed using it.
Put a password in your remotes at the end so if remote was changed kick them example:
Local Script:
local Speed = game.Players.LocalPlayer.Character.Humanoid.WalkSpeed local JumpPower = game.Players.LocalPlayer.Character.Humanoid.JumpPower game.ReplicatedStorage.Remotes.CheckPlayerInfoRemote:FireServer(Speed, JumpPower, MyPassword)
Server Script:
game.ReplicatedStorage.Remotes.CheckPlayerInfoRemote.OnServerEvent:Connect(function(Speed, Jump, Password) if Password == "MyPassword" then Code here else player:Kick("Kicked for exploiting lmao") end end)
Basically what this does is if the remote event was fired and the Password is wrong it will kick them and they don't know the Password.