Making ray cast suspension framerate independent

Hello everyone, I am having a problem trying to get the suspension of my raycast vehicle to stay stable throughout different framerates. Throughout 60-120 FPS, it works completely fine. However, if I run the game at 15 FPS, it lands and instantly bounces super high. I’ve tried multiplying damping force and spring force by Delta seconds, I’ve enabled substepping at 1/60 with 8 max supsteps, i’ve tried running it from a timer, I just can’t get it to work. Here is the blueprint logic for applying the suspension force:

Here is a bump with some more context…

Main function which handles suspension, accelleration, lateral slipping etc…

I recently switched from regular event tick to Async Physics tick as I heard it could be more reliable with frame drops.

This is inside the function, I am starting to think the line trace may be the issue but idk?

I recently tried a method like this for the compression and damping forces, however this didn’t work either and was very wobbly in game. (Not sure if I really did this method correctly)

I have reverted back to this method (What my blueprint looks like now) and have had no success while changing settings (substepping, async physics)

If somebody could help me and tell me where I am going wrong with this I will be very grateful

Thanks

Another quick update, I just realised with the current setup above ^, enabling substepping actually breaks the physics of the car…. Here is a quick recording to understand my problem better:

It is finally fixed!

The changes I made were:

Getting rid of all async physics related settings. (Use normal tick, disable async physics, etc..)

Instead of getting the world location of the scene component for the wheel, I get the socket location that the wheel is placed on the kart body.

Changed to these substepping settings.

Using a fixed framerate (This wasn’t the fix, however, this got rid of jitter at high speeds)