Making an anti-cheat for cars

Hello!

So I’m currently working on a game where you are 100% of the time you drive a car.

The problem is that because the car is the character, all the movement is replicated making it really easy for exploiters to fly around and break the entire game.

To fix this issue, I wanted to instead of replicating, have two separate copies of the car (server and client). The client car is used for responsiveness while the server car is used to receive the input from the client and then replicate to the other clients.

My problem with that anti-cheat concept is that I don’t really know how to handle people with bad internet. I have no idea how the speed affect the time or just anything at all making it a bit hard for me to properly adapte the system.

Could someone help me figure out how Roblox handles sending data/propose another anti-cheat concept? Thanks!

(Incoming replication lag doesn’t look to work exactly the same as when people have bad internet they most of the time teleport instead of having a delay).

1 Like

I would make it so there’s a 1-2 seconds check and if the Client car is very very away from the Server one then kick them

1 Like

Well thats not really what I want. That would be annoying for people with bad internet as they wouldn’t be able to play the game.

1 Like

Well, thecnically with what I said as you are doing the checks every few seconds and not every frame they shouldn’t have too much problems, and also if you put a 1-2 studs ‘line’ from where it’s considered cheating you should be fine, unless they still have very very very very very bad internet

well even if it does work, I have no idea how roblox sends the data to the server. If there was a simple delay of 1 second then no problem but from what I see, people with bad internet teleport meaning that some keys would probably not reach the server which could create a huge difference in position.

1 Like

Oh, I forgot about that, I know that you can check the CPU and see if they are lagging for the CPU, but for bad internet you could check the FPS? If the FPs is higher than make the delay higher? I’m not sure if it works