So I have seen it in a few games, where if a player "Speedhacks" it infinitely kills them, bans them, etc.
I want to know how they do this.
Let me get this straight, I do not want any sort of script, but instead a wiki link or an explanation.
If it means turning on filtering enabled, just tell me, but I want to be sure that there is/isn't an easier way.
Basically, you have to constantly check if the Player in question has a valid WalkSpeed.
Even with FilteringEnabled, some core scripts still edit the Character locally, which is why SpeedHacks work: they only edit the Character.
If you have a Table or some other way of knowing what WalkSpeed a Player should be at in the game, just ban or "punish" them if they go over it (not under, as that may cause it to trigger for iOS or Android players, since they have the ability to walk at reduced speeds.)
For a constant WalkSpeed, this code will suffice:
local walkSpeed = 16 Game.Players.PlayerAdded:connect(function(plr) plr.CharacterAdded:connect(function(char) wait() local h = char:WaitForChild("Humanoid") h.Changed:connect(function() if h.WalkSpeed > walkSpeed then plr:Kick() end end) end) end)