How to make a ball roll less

I have a time bomb in my game. The problem is it that when I use it after moving the slightest bit (even when my character isn’t moving at all) it rolls away and isn’t put where I want it to go.
ezgif-62a3c3797d602b (1)

I’ve tried increasing the density and friction, but all it seems to do is stick characters to the bomb when it rolls in to them.

I do want it to roll, just not as much as its rolling now.

You can use custom physical properties to increase the ball’s friction


Some more information about physical properties can be found here:

I’ve tried that but it just drags parts with it when it rolls.

Edit: Density pulls characters with it, friction does nothing

Try lowering the density to make the ball lighter. You’ll need to reduce the force which you’ll throw the ball otherwise it will be thrown a greater distance than it currently is, but a lighter ball has less momentum so it should roll less

Just tried this now, I’ve turned the density down really far and it hasn’t made much of a difference.

If you’re just dropping the ball on the floor without using any other force to throw the ball, then making it heavier might fix the problem

If you are using a force to throw the ball, then try reducing its strength

I’m just dropping the ball.
I’ve tried increasing density and it still rolls, it just now sticks characters to itself.

Density shouldn’t be affecting how sticky an object is (it will affect the ball’s normal force, but it shouldn’t make something sticky enough to stick to other objects while it’s rolling)

The only other possible solution I can think of is to increase the friction of the floor itself

Treat the ball as if it were a bowling ball, if the ground itself is slippery, then the ball will roll farther


Also make sure that the floor is level, if it’s at an angle, the ball will naturally want to roll

Just tried it and it hasn’t done much unfortunately.

Honestly, I find it odd that nothing seems to be working (or odd side effects seem to be showing up)

The 2 last things I can think of that you could try is to make the ball’s mesh less smooth, and to turn on fluid forces so that the ball is affected by air drag as well

I’ve ended up using scripts to manually slow down the ball

game:GetService("RunService").Heartbeat:Connect(function()
	ball.AssemblyAngularVelocity *= 0.9
end)

If anybody has a better way please tell me.

I ended up doing something very similar on my game, however I used a raycast to ensure the object was rolling on the ground to simulate friction between the object and the ground. I would to add this to your code to make sure the rate of decrease remains consistent regardless of the servers heartbeat rate

game:GetService("RunService").Heartbeat:Connect(function(dt)
	ball.AssemblyAngularVelocity *= 0.9^dt
end)
2 Likes