Hi,
I’m in the process of putting together a gameplay ability that allows you to chain combo moves. Each move will calculate a melee target before calling PlayMontageAndWait, similar to task to WaitTargetData. I have noticed that I often get net corrections on move 2 and move 3, but barely ever get anything on the first move.
In an attempt to understand where the point of failure is, I have stripped the ability to its bare minimum where I have 3 test points in the world that I feed to each combo section. The server and client both know about these points so there is nothing to wait for other than the input signals from the player to move on to the next combo section. This still gives me net corrections! and I’m not sure why so would appreciate some advice here.
The only way in which I have been able to make this work reliably has been to build 3 different abilities that receive a payload with the target.
I’m expecting to have combos set as different montages so I actually need to run PlayMontageAndWait. I also prefer that strategy to play next section so that I can blend out whenever needed.
How would you recommend implementing such an ability? is the only safe way via multiple abilities? if it can be done with one ability, where am I going wrong?
Diving through the code, I noticed that try activate ability is flushing server moves (I presume) to ensure that the server simulates the clients move before the montage RPC arrives. I assume this is to prevent the server from accidentally applying root motion due to older server moves that arrive after the montage RPC. I have tried flushing moves before playing subsequent sections but I still have the same problem.
Again, this is happening on a simplified task where the server does not need to wait to receive the actual target, both server and client have the same targets from the get go, but chaining montages on the same ability with warping is causing the net correction. I’m attaching a screenshot of my simplified test to give you an idea.