sapphonie / StAC-tf2

steph's anticheat (StAC). a built-from-scratch sourcemod based solution to cheating in Team Fortress 2.
https://sappho.io
GNU General Public License v3.0
117 stars 21 forks source link

Ricochet yt movement stuff PR #175

Open sapphonie opened 10 months ago

RicochetYT commented 10 months ago

I will note that there are more checks from both Oryx and Bash2 that could be implemented into this anticheat assuming that you could fix all of the false positives that occur with them and also adapt the checks to work in Team Fortress 2. I started work on this at some point, but I'm unsure if I still have that laying around.

sapphonie commented 10 months ago

I will note that there are more checks from both Oryx and Bash2 that could be implemented into this anticheat assuming that you could fix all of the false positives that occur with them and also adapt the checks to work in Team Fortress 2. I started work on this at some point, but I'm unsure if I still have that laying around.

My concern is with how ugly playerUsingController is, tbqh - it doesn't seem very robust at all, and i don't want people getting false positive'd

RicochetYT commented 10 months ago

I will note that there are more checks from both Oryx and Bash2 that could be implemented into this anticheat assuming that you could fix all of the false positives that occur with them and also adapt the checks to work in Team Fortress 2. I started work on this at some point, but I'm unsure if I still have that laying around.

My concern is with how ugly playerUsingController is, tbqh - it doesn't seem very robust at all, and i don't want people getting false positive'd

It was robust enough that I used it on a relatively active TF2 server that had controller users (at least 2, it's very rare) and had no issues with false positives, I even did testing myself and the only way you'd cause false positives is if you were to intentionally try to (join without a controller plugged in, plug a controller in and enable it, unplug the controller and stop using it, and plug it back in and start using it again), or be very unlucky. There's probably a better way, but I'm unsure of what it could be. playerUsingController could lead to easy bypasses (in the one check it's used within) because it's easy to just force the cvars on the client, but once again, the only other solution I can imagine is checking a player's viewangles for controller-like movement. That's beyond my understanding and experience though, you'd have to check for consistent acceleration when the viewangles are being changed, and I'm not even sure how well that would work.