Bugs in the physics of UE4

First there are those 3 bugs here : Physics in accuracies - World Creation - Unreal Engine Forums
Newton’s cradle:
I have this set up, first there are identical 2 sphere balls with the following physics material :

and here is the set up :


Now i made the bals as elastic as possible , what should be expected is that when the first ball hits the 2nd , the first ball will stop and 2nd one will move witht he same speed,

sadly they go the other way around and the 2 balls move with half the speed .


The problem:
physics in ue4 obeys momentum conservation but not energy conservation
so it obeys that m1 v1 +m2v2 = m1v1"+m2v2"

but it doesn’t obey kinetic energy conservation of : m1 (v1^2) +m2(v2^2) = m1*(v1"^2)+m2*(v2"^2)

and in the first link i published you will find also these main problems but also others not related to physics like the inablity to rotate a wall in z direction by 90 degree(turns to be 89.997) but its ok to rotate by -90 .

and that the ball wont bounce of a wall with the same elastic material unless its speed was over 200 which is absurd , all of this are described in the first link.

Hi TheTrice,

Apologies for the long delay on this one. I’ve entered a bug report with this issue (UE-9041). This looks like there may be some things going on with PhysX that are bugs. Our Engineers are speaking with NVIDIA to discuss this further.

As for the rotation at 89.997 has already been entered (UE-2767).



Hi TheTrice,

The reason for the 200 cm/s velocity bounce that you’re seeing is that PhysX has a minimum relative threshold required for an object to bounce. PhysX recommends setting this to 0.2 * gravity which in our case is around 200.

I’ve exposed this setting so you can change it. The change is available on github:


Where is this exposed? I have UE4.7.5 and can’t find the BounceThresholdVelocity value anywhere. Looking at the source change it looks like PhysicsSettings has the BounceThresholdVelocity placed just before the Friction Combine Mode, but when I go to my Physics settings I have “Locked Axis” before that option. I did find p.BounceThresholdVelocity in the Device Profile. I changed this for “Windows” but it didn’t seem to effect my physics scene. As I understand it, that only comes into play in a packaged game?