Damping has unstable behavior

I noticed this as I was trying to build a controller for a physical actor.

I attached the TorqueTest.uasset to quicktest this.

ToruqeTest sets the frame cap by command starting at 10 fps, rotating 4 times and then it rises the frame cap by one. It doesn’t seem to be any differnt from going into ‘Project settings//Engine//Gerneral Settings’ and set the frame cap with the ‘use fixed frame rate’ option.

controls of TorqueTest:

Q-sets frame cap to 500

E-sets frame cap to standard

F-manually rise the frame cap

G-show FPS

An actor with a spherecollider, scene component is root object.
the sphere is simulating physics, but locked in place, so this tests just the rotation.
Collision is set to physics only and ignores all phyic channels.
The spheres angular damping is set to 29. On Physics substepping being disabled 30 is the value when the damping gets infinitly high. On damping 29.9999 there still is a very slow rotation visible.
‘Add Toruqe’ adds 5,000 on Z-axis with ‘change acceleration’ enabled. Setting ‘change acceleration’ disabled and set 50,000,000 on the Z-Axis doesn’t seem to be any differnet.
it prints the angular velocity and the real time it needed to turn once. Doing it 4 times, we get an average of that numbers.

If physics substepping is off:
angular damping of 30 will make “Add Torque” useless if the fps is less or equal 30. The closer I cap the fps to 30 the stronger seems to damping - on 30.5 fps it spins faster than on 30.1 fps.
on angular damping 29: As we go from 10 to 30 FPS the angular velocity stays the same, the rotation time lowers slowly. (seems normal to me)
If it jumps from 30 to 31 FPS it gains angular velocity. As the FPS rise the angular velocity rises up to a certain value.

If physics substepping is on (16 substeps):
The effect becomes noticeable on damping 60 and torque force of 5000
the velocity and rotation time varies from frame cap to frame cap but there are some clear marks
when the frame cap jumps from
30->31 FPS the rotation gets slower - damping has a higher influence or ‘Add Torque’ has less influence
31->60 FPS the rotation speed rises
60->61 FPS the same as from 30->31 FPS

So my fist guess would be to build my own damping with the ‘Add Torque’ node so it gets influenced by values I can control…
Or is there any way to fix that and make the whole damping thing controllable?


I’m sorry for the delay.

I was able to reproduce this behavior so I have entered JIRA UE-34159 and our developers will be investigating this further. Please periodically check the JIRA through our Public Issue Tracker to monitor progress.

The JIRA covers what I believe to be the root cause of the issue but doesn’t cover the Substepping aspect because this feature is still considered experimental and experimental features are expected to have issues until finalized.