ProudNet has a function detecting Speed-hack, which constantly monitors clients using Speed-hack.
When the use of speed-hack is detected, a server event, Proud.INetServerEvent.OnClientHackSuspected gets callback for the associated client (cheater). Through this, developer can collect the list of cheaters and ban them (Proud.CNetServer.CloseConnection).
17.1Cautions as using speed-hack detector
Even though ProudNet's speed-hack detector is very handy, it has its own weaknesses too. Thus you shouldn't completely rely on the result coming from the detector.
it can't detect speed-hack with 20% or below of speed.
it could sometimes accuse clients with simply bad internet connection as cheaters.
Speed-hack detector sends 1~2 UDP packet to server per second. This means, if you set it off, it could enhance the performance of server operation. You can turn on and off the speed-hack detector from Proud.CNetServer.EnableSpeedHackDetector.
17.2Techniques in detecting speed-hack
ProudNet detects speed-hack by constantly checking ping message being exchanged between client and server.
ProudNet sends ping to server in seconds of interval. If server receives ping messages too rapidly (more than 30% of the regular interval) and such ping arrives about 20 times, then it considers someone is using speed-hack.
On the other hand, if there is any client using speed-hack from time to time to avoid being detected, then server compares the internal time of client and server from the point of that client connected to server. If the gap between the internal time of client persistently being sent to server and the time measured by server is too huge then server also flags that client as speed-hack user. But, this detecting method can only be initiated after tens of seconds after client connects to server.
The accuracy and rapidity of speed-hack detection contradicts each other. In order to control this, you can use Proud.CNetServer.SetSpeedHackDetectorReckRatioPercent.