AnimNotify inconsistently doesnt trigger on the server

Hello,

I have several animation sequences with custom C++ AnimNotify classes hooked up. The classes only override Notify and the constructor (and call super anyway). When these animations are played through a Montage, the server will often not trigger the anim notify. The clients all trigger it fine.

If the server is a listen server and the host plays an animation, all the notifies will trigger, but just like in the dedicated server if a client’s character plays an animation more often than not the notify doesnt trigger on the server. This occurs in a fresh project, even if I directly select the montage by setting the character to “Use Animation Asset” in the defaults. As an aside, typically Im triggering these animations through the client, then sending them to the server for multicasting with logic to exempt the original client as it predicatively played. This behavior doesnt seem to occur when playing the animation directly through an Animation Sequence as opposed to a Montage, but then of course I lose networked Root Motion functionality. Placing the anim notifies in the Montage as opposed to the sequence doesnt fix the issue either. This project relies heavily on AnimNotifies and without the server consistently triggering them I cant maintain a fully authoritative server.

I already tried setting all sorts of variables related to replication. Is there anything Im missing or have I stumbled across an issue with the engine?

Thank you for your help.

This is quite an old bug , I came across it a few years ago . Setting the trigger mode to Branching point instead of queued helps a bit , but its still very unrealiable.

Any new on this? I´m experiencing the same issue

@Nesjett

It’s still unresolved. I reported the issue last month and Epic issued a bug ticket, but who knows when it will be fixed.

Here’s a link the bug ticket (I’m not sure if it’s publicly viewable):

Thank you @susetyo.Michael ,

I found a workaround to this, in fact is not 100% perfect, but works good enought for being playable (I think I’m getting results close to 90% or more, but also depends a little bit on the animation frames, more frames, the better reliability it gets to fire):

If you configure the notifys as AnimMontage Notifys, they will always fire on the server (not on clients) but from there you can make a multicast to all clients telling them that the notify fired and do your logics.
Also, you have to make sure that your character mesh is set up to “always tick” in the option “visibility based anim tick option”

Hope it helps!