I can show some examples of my setup since all a video would show is that these problem exists. I won't post all the FSMs since they probably will not make any sense unless you go into detail.
In the first pic you see the first part of the jump FSM. It moves the player up while counting down, then it moves to the next part, counts down and so on untill the jump is done. I've tried to get delta through checking "per second" in subtract, get it from the time info action in the same state and now from a dedicated FSM. At 30 fps you can't always make the jump you see in the pic.
In the top left you see fps and horizontal speed. The speed is calculated from smoothed fixed delta divided by distance per frame from a single state FSM. This gives a very good result at high fps, only off by 0,01 or so from the force vector. At 30 fps this is horrible wrong showing almost double the speed some frames.
In the second pic there's a loop that cycles once per frame. I tried the same ways as in the jump FSM to get delta, but at low fps this timer can differ almost 1-2 seconds from high fps. In the wait state I use a next frame event action.
In the last pic the force is applied once per frame. The force is calculated each frame and is combined from different FSMs. I don't use delta time on this final vector in any way except what the force action does. Setting velocity or adding force makes no difference, you move way faster at low fps.
I have fiddled with the time settings, but all that seems to do is move the point where these time differences happens.
I also have a script to limit fps, but enabling or disabling it doesn't seem to make a difference. Can vsync mess with timings?
using UnityEngine;
public class Framerate : MonoBehaviour
{
public int targetFrameRate = 144;
public int vSync = 0;
private void Start()
{
QualitySettings.vSyncCount = vSync;
Application.targetFrameRate = targetFrameRate;
}
}