Okay, so basically, I have a ball, and since bodyGyro is deprecated, I am using AlignOrientation to make a sort of “friction” for this ball that will slow it’s angular velocity, but the problem is that sometimes when it stops rolling, it will go (roll) backwards for a little. I don’t currently have a video but here are my settings
If there was ANY way to lower the responsiveness to below 5, I wouldn’t have this issue, but unfortunately roblox doesn’t let you do that.
2 Likes
Okay, so I ended up fixing this using some scripting, if you just make the maxTorque
a constant it’s gonna do that, however if we adjust it relative to the ball’s angular velocity then we can prevent this rolling back from happening.
Gonna leave the script down below for anyone who needs it.
local RunService = game:GetService("RunService")
local DECELERATION_MULTIPLIER = 4
local ball = script.Parent
local deceleration = ball.Deceleration
local function onPostSimulation(deltaTimeSim: number)
local assemblyAngularVelocity = ball.AssemblyAngularVelocity
if assemblyAngularVelocity.Magnitude > 0 then
deceleration.MaxTorque = assemblyAngularVelocity.Magnitude * DECELERATION_MULTIPLIER
end
end
RunService.PostSimulation:Connect(onPostSimulation)