Server-side Movement: Is it a viable anti-cheat option?

Hey everyone!
I just made a server-side movement system which (hypothetically) will prevent all types of movement hacking. I want to know if this is even a good way to go about this because it’s a little bit laggy and may be harder to use than Roblox’s default movement system.

Here’s the project file: Server-Sided Movement Testing.rbxl (350.9 KB)

It works by:

• Creating a new character by cloning a rig in the ServerStorage
• Sets the camera subject to the rig
• Collects user input and sends it to the server (what buttons are pressed, etc.)
• The server moves the character around instead of the client, making all flyhack scripts only work on the client

Once again, this works fine (right now), but I want to know if I’m going in the right direction with this. Please test out my file before commenting. Looking forward to feedback!

1 Like

Hello,

using a server-side system for client actions (movement, camera manipulation, vehicle driving, …) is a terrible idea for multiple reasons:

  • It can result in lag for players on devices with lower performance or limited bandwidth. You can actually test this out yourself in Roblox Studio by adjusting the ReplicationLag setting.
  • There’s the possibility of unnecessary network traffic being sent, potentially causing slowdowns on the server.
  • It can become more complicated to add new features. For instance, if you wanted to add a new type of character with different movement mechanics, you’d have to incorporate that into your existing system.
  • And, perhaps the biggest concern, it doesn’t effectively address exploiting. Exploiters can simply send fake input to the server instead.

Now, you might be wondering how to tackle the issue of exploiting in a better way. One suggestion could be to implement magnitude checks. By checking if a player is moving at a speed that exceeds what should be possible for their current abilities (taking into consideration both legitimate gameplay (such as MovementSpeed, Vehicles, Teleporting) and potential lag), you might be able to identify instances of exploiting.

2 Likes

The thing about the exploitation is that hackers can’t botch up the code by sending fake data to the server. They can only say which keys are being pressed at the moment. I’ll see if I can can figure out traditional anti-cheat. Thanks for your input

Exploiters have the capability to generate fake key press data (also known as fake data) and even more. However, simply shifting the problem elsewhere does not effectively address the underlying issues of movement exploiting.

It is a viable option, but not in the manner which you have implimented since it doesn’t mask input delay. A much more completed project is Chickynoid. Roblox is also developing their own in-house server authorative movement system.

I tried out Chickynoid but I was like wat i do? :moyai: I thought that there might be a quick solution but I’m not good with other people’s code, especially GitHub. I’ll probably just do the normal anti-cheat that brings players back to their original positions when they go too fast.

I don’t think it really works well with the way roblox engine built, it doesn’t have a tickrate system unlike other games(I think). The movements are collected from the client and the server replicates them to other clients in which is the most efficient way to do instead of sending the Inputs to the server. Your project is very intresting btw

1 Like

Thanks! It was kind of a bummer to discover that my project wouldn’t work without a lot of more complications but I’m glad that I know now. Here’s some actually good anti-cheat that I’ve made:
Anti-Cheat Testing.rbxl (54.3 KB)
It works by tracking the player’s position over time and sends them back if they’ve been moving too fast. I know that this isn’t the subject of my topic but this is my solution. Can you or a friend test it out and see if you have any bugs? I’ve tested it out (with crazy walkspeeds and stuff) but maybe there is still a way that hackers can break it.

1 Like

It’s really good, me and my friend played around with it, with speed coils, changing walkspeeds, noclipping, teleports. Overall, it works great! This is also a better solution as there is no delays.

I appreciate you testing it out and I’m glad it works. I was a little worried because I thought that was how the BedWars anti-cheat worked, and, well, if you’ve played BedWars then you know that the anti-cheat only works on normal players (and generally kills you for fun). Thanks for testing it

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.