I don't understand how the Rolling Resistance works

More precisely, what I don’t understand is why the car isn’t moving backwards in our implementation when it’s at a standstill. The RollingResistance is linear and only dependent on the Normal force, which is always present. So I’d expect to start moving backwards very slowly when velocity is 0;

Ok, while I was writing this, I went and tested with a really high coefficient. It does actually start moving opposite of last input direction. I decided to post this, in case other people have the same question.

If you are on slope, depending on the gradient of the slope the force being applied downwards plus friction might prevent the object from moving. Rolling Resistance has 2 forces being applied. The first is gravity which is always directly down and the second is friction, which is perpendicular to the surface (or normal if you like)

In the case of a vehicle however, if you were on a slope and put the car into a forward gear with the engine off, the car would not roll backwards but rather stay still.

I’m not sure if this answers your question but I hope it helps.

Apologies for the lateness of the reply.

Once the car moves backward, the velocity points backward as well, so the rolling resistance becomes a force pushing the car forward instead.

So in theory, the car could be oscillating forward and backward every frame.

However, once the velocity is small enough, GetSafeNormal will return a zero vector, which will zero the rolling resistance force as well.

And the same is true to air resistance for that matter. So in theory, the velocity will never be quite zero. But at that point it should be small enough as to not matter unless you leave the game running for a very long time (in UE 5.0.3, that speed should be 0.0001, i.e. 0.1mm/s since we used meters in this project).