[FilterScript] New aimbot detector [PHASE: data collection]
#1

Hi there!

As discussed in this thread, I'd like to provide a filterscript that records valuable shooting battle data.

This data will be used to train a Machine Learning script that is able to classify/distinguish aimbotters from fair shooters. If this proves to be successful, I'll write up a filterscript that will record other valuable data for detecting cheaters as well. I really hope this will be something valuable made by the community, for the community.

In the .zip package you will find:
fairplay.amx - compiled version of the script.
fairplay.pwn - source code.
fair_play.db - empty database file. Put in "scriptfiles/" if the filterscript doesn't create it automatically.

So how it works: On every kill, the filterscript writes some battle parameters (of the killer) to an SQLite database. The database file is located in: "scriptfiles/fair_play.db". The parameters are:
- Hit-miss-ratio.
- Number of hits and missed shots.
- If they're a cheater or not (only in DEDICATED mode).
- Used weapon ID.
- Bodypart variance (amount of times they hit another body part).
- Average hit distance.
- Player speed.
- Average target speed.
- Time taken to kill someone (in seconds).
- HP/Armor taken.

You can run the script in DEDICATED and normal mode. It is on normal mode by default.
In normal mode, the filterscript will record raw, unprocessed data. The (unsupervised) learning algorithm will then hopefully make some sense out of it and classify a few types of output labels (cheaters/non-cheaters/grey area). If run in dedicated mode, you will have to specify:

Commands:
/leader - makes you the leader of the data recording session.
/cheater - aimbotters in the session must use this to mark themselves as cheaters.
/fairplay - fair players in the session must use this to mark themselves as fair players.
/start - start the session.
/stop - stop the session.

Then, a (supervised) learning algorithm can (more easily) classify aimbotters and fair players by knowing what the output label is.

Something like:


Feel free to suggest parameters that could improve aimbot detection, I'll put them in the next version. You can post / PM me your database file when you have sufficient data (I'd already be happy with 2k rows).

I'm looking forward to your data!
Reply
#2

This is a really interesting script, thanks for sharing. The "fairplayer" and "cheater" commands are definitely something that is unique to this. Personally, I don't see a huge use for them but I'm sure there's a bigger purpose then I'm getting at.
Reply
#3

Been waiting a while for this!
Reply
#4

Question, so what happens if someone wants to mess up your data, use an aimbot but mark themselves as a legit player, how are you going to combat using the wrong information?
Reply
#5

wow that is seems awesome
Reply
#6

Quote:
Originally Posted by Gamer_Z
View Post
@TS:

- You should also differentiate the data between lagcomp on and lagcomp off (lag compensation changes the way you need to aim).
- I looked at the script and it only logs if hits-misses % 5 == 0, why? Isn't that throwing away valuable data?
Thanks for explaining it to the others

Yes, it would be helpful if the data collector would provide some info about their server settings.
It registers at % 5 == 0 because I would get too many data points if it were every shot. When having about an hour of shooting data, at % 5 it would be enough I think
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)