In many games on roblox, there are grenades that you can throw far, but when they hit the ground, they roll and stop quickly, making for easy throws. When I tried this, it seems that rolling balls on roblox just keep going and don’t slow down. Here’s what I’m talking about:
My game:
Works properly in Combat Warriors:
You can see that in my game, the ball just keeps rolling. In Combat Warriors, it hits the ground and rolls slowly like it would in real life. I’ve tried to add friction via CustomPhysicalProperties, but it doesn’t seem to have any effect.
Thanks.
I would suggest changing the gravitational physics of the ball part. Consider this topic here which discusses how to increase/decrease the “gravity” of an object using upwards or downwards force via BodyForce.
This really wasn’t the answer I was looking for, as I was asking how to increase friction on a rolling ball. In real life, if you roll a ball across a flat surface, it won’t roll forever, it’ll eventually stop, that’s friction. For some reason, balls just roll forever in Roblox. Though, at this point I think I’m just going to detect when the grenade hits the ground via raycasting then increase the gravity exponentially using the post you provided.
Forget that, I believe the reason why your ball is endlessly spinning is due to its weight (CustomPhysicalProperties > Density), and I’d recommend trying to use real units to calculate a ball’s density.
Here’s a devforum post that teaches you how to do so:
Hey guys, thanks for the replies but I ended up raycasting to check if the grenade hit the ground then applying a VectorForce opposite of the grenade’s X and Z velocity, which worked pretty well. It also allowed me to play a sound whenever the grenade hit a new part, to alert other players of the grenade being thrown near them.
Just though i’d add that CustomPhysicsProperties, doesnt effect rotational movement, only objects that slide. So basically, a ball would roll forever as there is no force moving against the rotational velocity of the ball. You’d need to somehow modify the dampening of the ball.