Just to be extra clear, I meant “Fixed Frame Rate” from the Engine not the Fixed Tick Policy from NPP which I had enabled in both cases
It is very weird because when testing, sometimes there is no desync and then I redo the exact same test after restarting the PIE and it will desync. Not sure what to think about this 
The external movement correction seem to stabilize to 12.80 cm which I guess is the max move speed per frame of the character. And both Server an Client are doing the exact same correction on the same frame. (But of course only the when it’s working properly)
In my testing, after Mounting I always wait for the first rollback caused by role change before moving to avoid any potential issues there.
I tried to log every step with Sim number to see what’s happening exactly. And found some weird stuff
The first few frames works nicely, External Movement modification seems to match with the server and everything is fine:
[Image Removed]
Then after frame 419 ,which still produce a similar External Movement correction:
[Image Removed]
There is a rollback: [Image Removed]
The first Simulation frame in the rollback triggers a big external movement correction:
[Image Removed]After this there is some weird behavior where we see a first time a Sim Frame 429 on Client which produce a correction. Then later there is another Sim Frame 429 Client which produce a different correction.
Also the first time there is 2 sim tick in the same frame instead of 1 the second time
[Image Removed]After that the simulations never agree until the movement is stopped.
Since when the few times everything works fine there isn’t any rollback done when the movement is started, my guess is that something weird happens in the rollback.
Maybe it’s not a proper way to prove this guess, but using the command np.SkipReconcile 1, everything works and I don’t see any visual offsets between Client and Server.
I hope this is something that gives you an idea because I’m out of it 
[Attachment Removed]