Add impulse to client's character movement

I have a roll mechanic for my character and part of it involves adding an impulse to the character movement component so that when the input is pressed the character is pushed forward even if the player is not holding forward the whole time.

I’m trying to replicate this behavior to another client in a multiplayer scenario, but the impulse logic is not working. The roll animation and everything else works correctly.

I’m very new to this, so I think I’m just not sure what should be getting replicated or how. This is the logic I’m using to add the impulse:

You can see I tried replicating some float values as well; I tried setting them using an event running on the server before adding the impulse, but this did not have any affect. Thanks in advance for any pointers.

First, what’s the average impulse value you get there? Because as I checked these values have to be quite high, like over 10-20K for you to see the effect, if you don’t tick the Velocity Change box (I checked it in FPS mode, if the box is unchecked the character mass is accounted for).


Second, you may use Launch Character instead of Add Impulse with Self in the target instead of Character Movement. Maybe it will work better for you?

Indeed, it is about 130,000. It works fine on the Server, it’s just the client that seems to have an issue with it. Thanks for your suggestion, I will try using Launch Character and report back!

Unfortunately, the Launch Character node did not cause any change. I’m trying to think of other ways I could implement this beyond those two at this point, though I still think it’s strange that the impulse/launch work server side but not on a client.

Found a solution based on the answer here: Replication through Impulse problems - Multiplayer & Networking - Unreal Engine Forums

First I pass the returned vector and rotation values shown in the question’s screenshot into a multi-cast event.

253880-sol1.png

That event then passes the values to an event running on the server, and that event is ultimately where the impulses are applied using the returned values.

“Add Impulse”: