That’s good because it means I can load up the same template and experiment with different ways to work on detection through the vehicles.
I think I had said that before but at least you know now. And yeah it is a good thing. Just so your aware the client can modify the boost time and recharge time (car model.Engine and look at the attributes) but I have created a server script on the remote event to the server to help prevent this.
I thought you could use that info for debugging purposes. Good luck and thanks.
This looks promising! I might use it in my projects.
Service update today.
If you are using the auto-update code version, then your servers are already protected. Instructions for setting up your game to auto-update with each version release is located at the first post on top.
If you prefer the manual update method, I’ve updated the download model at the top as well.
12/28/2024
- Scans increased to 5 times per second.
- Added New Teleport Scan exception for developer chosen models.
- Service load uses print instead of warn statement to avoid spamming the error analytics.
Explanation of recent changes:
- The change finally happened. Scans have been increased from 4 times per second to 5 times per second. This increases the resolution of scans, helps to decrease the number of false positives, and does NOT create a performance hit on the server either. To make sure this doesn’t break any game play, a lot of testing and code tweaking was done to make sure this is flexible during high server loads. Basically, 5 scans per second is the target, but if Roblox service issues or game play is slowing down the server speed, it will adapt to work with 4, 3, 2, or 1 scans per second and still be stable against false positives. The lower number of scans, the less accurate it is, but this helps to prevent it from punishing innocent players.
- The new teleport model exception was a great idea suggested here. Basically, a developer can set a boolean attribute on a model “KM_TELEPORT_IGNORE_MODEL” to true. This will make it “invisible” to teleport cheat scanning. Any descendants under this model will also be ignored for scanning. It only works on the first Model detected as to avoid any unknown ways to exploit this against multiple models at once. This has to be enabled in the configuration file, so it is not auto-update friendly , but as are all new features when they are included in a new release. It would mean you need to download the latest version of the anti-cheat service model and copy some old configuration settings to the new configuration setting file. Otherwise, the new feature is ignored to avoid breaking anything in-game for developers using the old model configuration file.
- Finally, just some tweaks to avoid spamming your error anaylytics. The old service statement used a warn to alert the Dev that the service had started (mainly for debug reasons) and since Roblox added error analytics, it just spams your logs as many times as a game starts. For the top Roblox games using this anti-cheat service, that would be millions or billions of spam entries in their log files.
I will update the documentation to include how to use the new features, etc. in the near future.
[edit] Documentation Updated with a vehicle example and some other technical info.
Another feature request is temporary allows you to ignore specific objects/instances from being looked at by the anti cheat.
This can prove handy when working with your teleport as any rapid movements on the server (doesn’t matter how, even using humanoid:Sit() triggers it) by a server script can trigger the ac.
I recommend using tags anyway because collectionservice, performance blah blah blah.
Also change the warn print for start up messages as they cause analytic errors too (not actual errors just show in the display section).
I did consider that, but I figured the developer would want to implement their own system since it would be simply enough to have an exclude attribute be removed on a timer function by their own design rather than rely on one I create.
It should only use the warn for failures now, when it can’t load properly. What message still produces a warn message? I can easily change that as I might have missed one somewhere.
just the “starting blah blah blah” message when you start it.
Starting Knightmare Anti-Cheat Service v1.53 - Server - KnightmareAntiCheatService:1432
There’s the line
Why not just make a callback system, define your own one as an example and then allow the developers to replace the callback with their own if wanted.
Oh, I see. The newer version already change that. As of 1.6x anyway. Should all be just print statements now and only the warn if something fails to start. 1.6x added the ability to exempt models so those using it in race games didn’t have issues with vehicles causing false detection among other useful things a dev might use it for, such as decorations and trouble models, etc.
I think maybe I mis-understood. I was thinking of a time delay based system, are you asking for a simple one-time exception like what you can do on the player, but just on the model instead?