Detecting online aimbot cheaters in a multiplayer game I am currently working on a anti-cheat mechanism for a multiplayer client called sa-mp.
Problem is, recently sa-mp released a new update that fixes latency and hence allows for aimbotters.
Aimbotting can be defined as using a computer program to automatically target and shoot all enemies. Problem is, how can aimbotting be detected from the server end?
When a player himself is looking at another player's screen, aimbotting becomes obvious. However i require some formula to calculate the probabilities of a player using aimbot so that i can redirect dead players / administrators to spectate the suspected player.
While the server cannot give me all the data required to check aimbotters (I did not program the server, i develop scripts to run on it), some relevant available data includes the recent kills by the player, XYZ coordinates of the player's camera and the vectors of the player's camera along with recent bullets fired (And where they hit, whether they hit a player or not e.t.c).
I am still in 11th class (10th grade by age i believe), i am yet to study mathematics that can help determine the probability of someone using aimbots. I was hoping somebody could help me out.
 A: Since you have vector data, I would look for consistent movements that are too uniform for a human.  For instance I would expect an aimbot to move at (for example) 10 pixels per ms in a constant general direction until it gets its target.  It is unlikely to overaim (switch back and forth from right movement to left movement) and would have more consistent movement in one direction.  
Also, I would suspect a human would have minor jitters in their thumb that would cause "random" behavior in the camera (up, down, up, left, down, up , right).  I would suspect an aimbot would not track at all until it sees a target and then snap to the target.  If you could quantify these jittering camera motion for humans and compare it to an aimbot, it may give a decent way to predict an aimbotter.  This second method seems easier to me.
A: For the players:


*

*Check how many times the shooter hits another player, if he hits more than like 5 bullets in a row (which might seem low but is high for this game),

*Notify the admins that the player might be cheating

*Also check if the target is moving, if the target is standing still then make it not notify admins)


For the admins:


*

*Aimbots are not perfect, when you spectate one, check if he's looking at the left or the right of where the bullets (yellow line) are going (this doesn't automatically mean aimbot, this can be the case for a player with a higher ping or higher packet loss)

*Train your admins, go on a private server (and download an aimbot) to show them how an aimbotter looks like in game
