Multicast not functioning appropriately

Hi!

I thought i’d cracked the network replication after I had it fully functional - but then wanted to change the blueprint structuring and move it from the pawn to the controller so I could use an interact function regardless of pawns - This seems to not be liked by the engine.

I am simply attempting to lerp a static mesh component from one relative transform to another (toggled by a trace hit on the component/actor with a specific tag of “moveable”).

My Player Controller class:

When I use:

Play as Client

Neither Client0 or Client1 can affect the OTHER client. So if Client0 interacts it moves on their screen - but not on Client1’s and vice versa.

Play as Listen Server

When Client0 interacts it affects their component and on the server. If the server interacts it affects their component but not the Client0 component.

Update during typing:

I altered the code after realising that the boolean state was not updating - I thought perhaps maybe the function for its’ update should be run in the multicast. No luck and in fact now it acts the exact same way - except it also alters the state for the server’s component.

Any clues would really help - even if it is to completely begin again with the correct approach to multiplayer - which I don’t truly know.

Well - I just realised that one issue with the new update is that the controller doesn’t exist on every client and only exists locally. So I guess we’ll move this back to the respective pawns, lets see if that fixes it.

Edit:
Yeah - I guess i’ll just go back to what I had originally where the events ran on the pawn rather than the controller unless someone can explain how to do it the nicer way on the controller.

Yeah, I sadly had considered except doesn’t that mean I still I have to recreate the same action events within each pawn every time? :frowning:

Input actions in the controller → action events in pawn.

Not sure what you mean.

(Pawn)Event Interact → sequence → draw trace …etc.
(Controller) InputAction Interact → Event Interact (Pawn)

The logic of action should be in the Actor class. The controller simply calls/executes said action.

Exactly though haha - I don’t just have one pawn for the character to posess. Maybe i’m misunderstanding you though.

I reread and i’m pretty sure I understood you the first time - that doesn’t really solve the issue sadly as the player posesses different pawns.

Do they all derive from a single parent class? Honestly that’s how it should be, unless they aren’t all biped/quadruped.

… and if some are biped and others are spaceships that use accelaration and constant velocity based movement systems with entirely seperate bindings…?
There are two parent classes. It’s fine - I see where you are coming from but sadly it isn’t quite a solution.