PGS Physics Help

We’re trying to find a way to make it so our game supports the new PGS Physics Solver. Currently, we’re on Legacy, and as we know, Legacy is being removed, therefore giving us a problem.


We currently don’t know what the problem could be, but we think it could to do with the Friction of the ball. Normally, if we were dribbling with legacy, there would be friction and the ball would come to a stop about 15 seconds later (if no-one touched it).

However, with Legacy turned off and the new PGS turned on. The ball would not stop until it hit an invisible wall, and the player wouldn’t be able to catch up the ball to stop/control it.

Solutions we've tried:
  • Using the CustomPhysicalProperties property on the Part.
  • Tried to simulate Angular Dampening (Another person’s idea, not mine).

( Gifs provided are from August 10, 2018 )

(Gif) Legacy turned on:
(Gif) Legacy turned off:

(Roblox) Legacy turned on:
(Roblox) Legacy turned off:

Can you explain how you control the ball physics-wise? E.g. body movers / PGS constraints used, and any custom properties (e.g. friction / etc).

We use a BodyVelocity to control the ball.
And the only thing we’ve used other than the velocity, was custom properties [friction], and that was to 0.1

PGS doesn’t have rolling friction (or not noticable rolling friction). You can simulate it though by setting the angular velocity of ball to like .95 of it’s current value on loop until it stops moving. Adjust the constant to lower values for higher friction.

 ball.AngularVelocity = ball.AngularVelocity * .95

Maybe I’m just tired but.
I don’t understand.

Late reply sorry. From experience, after switching to PGS you may need to re-tune the MaxForce and P values of your BodyVelocities, the behavior is slightly different despite internal conversion factors trying to keep it the same.

FYI neither PGS nor the legacy solver had rolling friction, but we do have a bit of built in angular damping already.

Thank you,
I’ll try Baumz & your method for now.