[UE 5.4 Preview 1] Mover 2.0 and GAS

Hi,

I’m relatively new to UE in general, but the announcement of 5.4 and the preview release made me want to try out the Mover 2.0 plugin.

Transferring my old pretty barebones third person character to the new mover component was relatively straightforward (talking about moving/jumping).

However I’m now at the point where I want to convert my abilities. I noticed that the PlayMontageAndWait gameplay task is not replicated anymore, as well as being able to move during the montage.

Looking a bit into the Dashing Manny from the MoverExamples I noticed there is a new PlayMontage (Mover Actor) BP Node. This however called from the GA will not trigger replication. AFAICT with the new mover component we should be reimplementing the FMoverDataStructBase and adding these to the CmdContext in order to replicate inputs, which from my understanding would limit the usage/ux from the GAS? I might be definitely missing something as I’m only 2 weeks into UE in general.

2 Likes

Okay so calling Play Montage (Mover Actor) and calling a multicast event on the proxies seems to work fine.

However I noticed when I call Play Montage (Mover Actor) from a GAS ability I’m getting a desync between server and clients position. Calling Play Montage (Mover Actor) from my player pawn works great, without desync, using a custom inputs struct I added (similiar to the dashing example pawn).

I think a lot of what’s going on is going over my head, but I assume i’m getting a desync using GAS is because of some client<->server syncing that doesn’t play nicely with mover 2.0?

I’m pretty novice with everything, would be cool if someone has a pointer/workaround on how I could create a root motion GAS ability.

My next approach would be to trigger an input(in my custom FMoverDataStructBase) in my GAS ability, queueing that on my player pawn and sending a gameplay event on finish.

Edit: That approach seems to work really good. I’m not getting any desyncs anymore and it still feels very responsive. Adding packet loss however seems to be quite detrimental. Is there any way of adding reliability for the packets?

3 Likes

Hi, I’ve been testing Mover 2.0 and the Networking Prediction Plugin (NPP), which provides networking capabilities to Mover. Unfortunately, as far as I know, there is no direct translation from Gameplay Abilities System (GAS) to Mover 2.0 and NPP.

IMHO, this is why Mover and NPP are game-changers. They provide a unified networking architecture, whereas in current iterations, each framework uses its own custom implementation (e.g., CMC, GAS), requiring developers to learn the barebones of each system to fully maximize its usage.

With Mover 2.0 and NPP, this completely changes as they offer a unified approach.

I suggest you read about NPP HERE and check its included documentation and its examples, particularly its MockAbilitySimulation source code.

4 Likes

Thanks for providing links to documents.
Btw the first link is not working as the author moved to Here.

1 Like