[Networking] Detect GAS gameplay effect added to client

Hey! I’m making a sort of health/status bar that looks at what gameplay effects are added to a player. Basically when a effect is added, it fills the bar a little bit and when the effect gets removed, the bar goes back. I have it working super clean and well for single player but doesn’t work for multiplayer at all.

From what I gathered whilst googling, this event doesn’t work for networking at all. It doesn’t seem to work when I input a client pawn, it will only ever fire when the server runs the event. I tried to get around using the event by using straight tags instead but I need to know which effect was applied, not just that a effect got applied and I can’t hard code each tag as they are dynamic.

I moved the event to the pawn which seemed to work and fire fine but I can’t send the information to the widget for some reason. When calling an event or event dispatcher, all the information is nulled. The even fires but the active gameplay effect I send loses the information somewhere along the way.

I’ve double checked everything I feel like, the client gets effects added, the client pawn running the event with the client input, the server running the event with the client input, running the event on the pawn instead of a widget and more.

How can I do this?

What does the GE modify? Set up an event around that value changing on the client to reflect the change in your UI. Or use a GameplayCue if that fits the situation

The GE it self basically only adds a tag to the player. The reason I need the active GE is because I need to check the duration of it for my UI. I might be able to do something similar with gameplay cues, can you send information into a cue? I need to run the same code on all my GEs but need to know which one activated!

To pass float data to a gameplay cue you can call the gameplay cue directly in the GA rather than attached to the GE, passing in gameplaycueparameters. Search for “Make GameplayCueParameters” node. Pass in your float data as a magnitude. Use that in your gameplaycue execute event.

Okay so, when I apply my GE I should also at the same time call a cue?

right, you can do it that way if you need to pass data to it. another option is to use an attribute to pipe the data to the clients… something you can set in the same GE.

Okay, I’ll give it a try! Thanks