How to stop a part manically spinning?

https://gyazo.com/6abf6776589336d99f1670502fc925d5
Please watch the gif for context ^

As you can see, with the first part I pickup it spins manically, same with the third. The second is more stable.

My question is, whats the most effieinct way to almost stop the part from rotating manically but still allow gentle rotation upon being picked up?

1 Like

What’s the script your using?.

2 Likes

This I believe is just a purely physics based interaction, the only thing my script is doing is generating a body position within the part to make it follow the mouse.


Extra details:

Part is being moved on client with network ownership

Try using BodyGyro. (30 charsss)

1 Like

Isn’t that used for trying to set it to a certain CFRAME?

Since you’re looking at a laissez faire physics implementation, you could apply a constant multiplicative decrease to the part’s rotational velocity, such as part.RotVelocity = part.RotVelocity * 0.95.

If that was connected that to .Stepped or .Heartbeat, there would be leeway for the part to rotate gently but eventually it would have to come to a complete stop as needed.

2 Likes

I believe you can increase the weight of the block by using custom physical properties.

1 Like

Still would like it to have normal physics tho : /

I don’t want all parts to be slowed, I just want a sorta ‘cap’ if you like.

Oh no, that wasn’t intended for all parts, it was meant for the part you’d be picking up.

No I mean, some parts when you pick them up their velocity is fine, just others sometimes spin really fast.

You could try normalizing RotVelocity then setting it to the magnitude of math.clamp(RotVelocity, min, max)

local RotVelocity = Part.RotVelocity

Part.RotVelocity = RotVelocity.Unit * math.clamp(RotVelocity.Magnitude, 0, 5)

Where 5 would represent 5 studs per second in any direction?

1 Like

You could possibly try a BodyAngularVelocity or AngularVelocity with a goal of 0,0,0. Decrease the max torque for less dampening, and increase it for more dampening. You could also play around with BodyAngularVelocity.P.