How can I get rotation velocity from assembly linear velocity?

With .RotVelocity deprecated, I haven’t been able to find a solution. I’m forking an anticheat that combats spin-attacking and I used .RotVelocity to determine when the character is spinning.

For context, the anticheat determines whether the player is using spin attacks by if they’re spinning too fast. For example, if they are spin attacking, their .RotVelocity will be higher than physically possible. In a sense, it’ll go over a number limit.

I have found out about .AssemblyLinearVelocity. While this property detects if the player is rotating, it also detects when the player walks or falls.

These are magnitude results from me just walking:
89e87e17fa371084084d86de59103091
For more information, RV stands for .RotVelocity while ALV stands for .AssemblyLinearVelocity, the numbers printed after them are the Vector3 magnitudes. After a certain number it will stop the character from spinning/moving, to prevent them from spin-attacking.

I’ve also looked into :GetVelocityAtPosition() but it is pretty much exactly the same as ALV.

In this case, players can accidentally trigger the anticheat because ALV isn’t the same as RV and because I have no idea how to distinguish rotating from falling/walking. Any help is appreciated.

1 Like

I’m literally so dumb. Here’s the solution:

.AssemblyAngularVelocity is the same as .RotVelocity.

.AssemblyLinearVelocity is the same as .Velocity.

3 Likes