Players Freezing in the Air

Just an update in case anyone is curious (or other people are looking for this in the future): I found the best bet was to use this:

However, it only detects it after the client un-freezes which defeats the purpose if it is a round based game. So I combined it with my old method that gets the player to constantly send and receive data through a RemoteFunction and if they do not re-send anything within around 6-7 seconds, it also detects that as cheating. This way you can easily detect people who freeze for a short amount of time on the client. But, if they freeze for a few seconds, you can detect that on the server with minimal false-positives.

2 Likes

As a side note, I wouldn’t be too harsh on the player if they have a delta time of 1 second because it could have been a normal rule-abiding player that happened to lose connection for a second.

If you notice that the delta time is somewhere between 5 - 10 seconds, it is safe to assume that the player is lag switching purposely or floating in mid-air by holding the mouse right-click on the edge of the screen.

I find that poor internet connection does not cause delta time to be affected. Since it’s only on the client it would only activate if the application froze. I might make it 1.5 or exclude mobile players from that check since it’s not as easy for them, just to avoid issues though.

I meant like delta time within remote event communication latency… For example:

Server → Send client server tick() value

Client → Receive server remote event fire → client tick() - server sent tick = delta time…

Basically, within my own game that I am developing, the server script has a “ping” system which determines the players’ ping every second by telling the clients its current tick() value, and then having the client return its own tick() value, and the sent tick() from the server - and I can track how many times the player is “lagging” consistently before the server takes action.

2 Likes

If that’s what your referring to; I send one every wait() and as long as they successfully send one every 6 seconds, it won’t consider it cheating. The one I talked about being one second would be if they skip 60 frames on their client (basically completely freeze for a second)

Yeah, using a ping is helpful when it comes down to players freezing in the air.

1 Like