I am using UE5.1, latest and greatest from epic games store.
I've set up GAS system, and created simple ability with one goal - to execute two movements one after another:
As you can see, we firstly fly up, and them we are getting launched in the player's sight direction.
Project does not have anything else except of set GAS and launching the ability by key.
I launch game in client mode, so there is server and client, and I use commands "p.NetShowCorrections 1" and "Net PktLag=100" as a debug tools.
So, when I test this ability, 5 times out of 6 everything is working perfectly fine. 1 time out of 6 I get these kind of corrections. Also, if I use only one instance of RootMotion task, no corrections occur.
So, the question is how to avoid these corrections, and I also would value a lot detailed technical explanation of reasons behind this behaviour. As I know, corrections happen when MovementComponent create a sequence of SavedMove objects, that hold data about each player/rootmotion source input at each tick, sends these SavedMove's to server, server applies these SavedMove's and compares resulting position with what client tells him, and if there is any difference, we will have a correction. But I don't get, why sometimes there is no corrections in my case, and sometimes I have a correction, what influence that?
My goal is to implement complex movements without correction via GAS. Maybe I am using the wrong tool, and I should implement complext trajectories (that consist of several lines for example) via one RootMotionTask, than I would gladly listen to how it should be implemented. But right now it seems, like sequential task is the only possible way, and I don't understand why they work so inconsistently.
As one of the solutions I see implementing custom gameplay_ability that uses custom FRootMotionSource, but I hope to avoid that struggle if possible