I made a example to explain it. When someone press a “Buy button” in some widget, he calls a event defined in the controller that is reliable and run on server. This event calls a function that is defined in the player state. This functions has 2 important parts, the part that buys the item and the part that shows a text “you bought a item” in the screen, wich is implement via a dispatcher(The dispatcher is defined in the controller, the controller is not replicated.). When u are playing on the server (PIE session, 2 players, not dedicated) everything works fine, u get the item and u see the text on screen. If u are playing as a client, u get the item but you dont see anything in the screen. Is this cuz i am using a dispatcher?, dispatchers dont work on multiplayer?. Somehow its implemented wrong?. I need some help plz. Thanks in advance. I hope the picture clarifies the example.
The delay strategy did not work for me. I even tried making another custom event which was Multicast go on through to the bind but it didn’t work either.
I am getting nearly the exact same issue.
I have a function which is meant to be called in various blueprints on the server which displays text on the screen. Basically to broadcast messages to online players.
Bind works fine on the server side. But any connected clients, they never seem to get the bound event triggering.
Did you ever figure out the issue, @ChiggenWingz? I’m having a similar issue in my game, where my EventDispatcher is getting called in my PlayerController on clients, but not on my Widget.
However, on the server it gets called on both the Widget and the PlayerController. Really odd…
Looking at my code now, (its been a while since I did this and its been chopped up a lot)
Basically I create the message window early on after entering the level, and then hide it. I also setup the bindings around this time also.
If there is any message I want displayed its pretty much all ran through the player controller which then tells the widget to unhide. Not much help I know but I cant even work out what state my code is on :\
Its working at the moment and I’m leaving it to work as I’m going to come back to it int he future and try and make it bettter