ChaWatcher is an anti-cheat / anomaly detector that uses machine-learning to detect outlier behaviours. It uses One-Class Support Vector Machine from my DataPredict library.
This documentation contains all the example codes that demonstrates data collection, model training and anomaly detection. There will be no API reference here as I thought this library is pretty simple to use.
You only need to collect normal (non-hacker) data. You can include outlier (hacker) data, but it may reduce the ChaWatcher’s model accuracy.
If there are any issues for this library, don’t be afraid to reach out to me at my LinkedIn or in this DevForum thread.
In addition, if you are interested in Roblox tutorials and future projects by me, then you can subscribe to me in YouTube.
You can get the library from GitHub here!
Please report any bugs here!
Custom version has these functions for both DataCollector and AnomalyDetector that can be called outside of their module scripts:
setPlayerPreviousDataVector()
setPlayerCurrentDataVector()
setPlayerHasMissingData()
updateDataVectors()
updateFullDataVector()
Custom version is an empty template. Put what you want there!
That’s really it…
Use “radialBasisFunction” as your first choice of kernel function for training models. If the accuracy is weak, then “sigmoid”. Use “linear” and “polynomial” as a last resort! This rule is an exception if you have domain or machine learning knowledge.
Set the c value to very small if you want majority of your data points be a “normal” data.
For the original version, the model training can handle up to 500 data when used with “radialBasisFunction” kernel functions.