I’m writing a movement anti-cheat that operates entirely on the server for my games. This anti-cheat features anti-teleporting/speeding, anti-flying, anti-no-clipping, and anti-spin-attacking.
My problem with the anti-flying part is I’m having a difficult time reliably detecting whether the character is standing on something.
Solutions I’ve Tried
I’ve looked at Humanoid.FloorMaterial, but as the below screenshot shows, an exploiter can fake the property by creating a client-side part beneath themselves.
I’ve looked at a raycasting solution, but the problem is it can miss an object even if a player is legitimately standing on it, like with thin parkour bars, or the rare situation where a player is barely standing on a ledge for bragging rights.