Essentially if you apply a torque to wheels of a car, once they get to a high enough RPM, the angular damping will essentially behave like a “friction” force, lowering the amount of RPM increase each unit of torque you add applies. It can potentially hit a terminal velocity (asymptotically I think).
So it won’t affect much stuff that you’re applying a force to, unless it is very high RPM. This change will cause Torque driven systems with high RPMs to experience even higher RPMs.
I have encountered this issue multiple times while trying to create vehicles, as documented on a thread from last year when we were first made aware of it. However I am no longer using anything that would be affected by this.
Edit, here’s some discussion on the issue for anyone who hasn’t come across it.
The ball is first moved via CFraming, and when close to the ground the ball’s velocity is set and becomes unanchored, no other forces are on the ball.
Here is the link to the place, however on current version of the game, the ball’s friction is at 1 instead of 0, but there is still no noticeable difference: [ Content Deleted ] - Roblox
Try adding some friction to the ball, it’s currently at 0. Let me know if this helps. Changing frictionWeight doesn’t change friction, but only how the friction is averaged between the two parts. Review the docs:
Sorry I got my friction values mixed up, it was originally at 1 and the problem was present. Me trying to fix it just set friction to the opposite spectrum. However, friction seems to have no effect on the rolling of the sphere.
Roblox is a rigid body physics engine, and in rigid body physics a rolling cylinder or sphere experiences no friction. You could try adding an angular velocity set to 0,0,0 target velocity and reduced torque to the ball and see if that works.
Well, currently I’m just going to use a BodyVelocity to control the motion of the ball, since I already had code written for it (for when the players hit the ball with the bat). So it was easy to copy and paste the code over to when players throw the ball.
Place this script as child of your ball: local damping = 0.9 while(true) do wait(0.1) script.Parent.RotVelocity = damping*script.Parent.RotVelocity end
damping could be anything between 0 and 1