How to detect bot-like movements?

Let’s assume that the third dimension doesn’t exist, and we’re only using the x, y coordinates. How can I detect if a player character’s movement to a direction is likely bot/automated? I know there’re no possible ways to prevent this 100% since it looks like a cat-mouse game, however, I’m looking for a solution that will stop most skids from automating movements when writing their own scripts or using auto clickers(such as linear movement detection, detection of movement that can be described by simple mathematical equations, randomized/flinging movement, and movement at specific semi-randomized intervals that looks like moving and stopping frequently).

Also, I’m interested to learn if modules that do this exist already, so I don’t have to reinvent the wheel. I’m looking for efficient solutions as well.

Lastly, since this doesn’t have a 100% accurate solution but probably an approximation/probability of it I recommend to myself and anyone reading this to not ban players detected by such methods, instead just reset the effects of their behavior(in this case reset their position).

Maybe try using path finding service. Make a path for the closest distance and see if the player is moving in the same direction multiple times. At like 5x if it’s the exact path you punish.