Run on Server doesn't work in Lobby

I have a lobby map set up with a custom Widget UI and a custom pawn object. Networking is set up as explained in the examples with the open commands with a Listen Server and it generally works. On connect a LobbyPawn object is spawned displaying said UI. Pretty much every blueprint class is set to replicate.

Now in my lobby i have 3 RPCs/ Replicated Events

  1. Map Change Event: Triggered on a combobox selction change event in the UI which directly does a Multicast as the combobox is only available on the server. This worked every time even when having the Multicast event either in the Widget blueprint, the pawn blueprint, the GameState blueprint or the Playercontroller blueprint.
  2. & 3. Are Events for when a Client joins and when he hits a “Ready” button. They are set up with a Run on Server Event which then calls a Multicast event to reach every client & the server. These have never worked for me.

As “Run on Server” events can only be run in states, controllers, etc. and not in Widget BPs i created functions in the controllers, state and the pawn to test if i can maybe call the events there and then just call the functions in the UI…without success though. It’s weird to me as A the 1. event with just the Multicast works every time and B i have similar setups in my actual game and they work perfectly.

This is where i call the Funtion in the UI

71904-callui.jpg

Triggering the event in the Controller Function

71905-callplayerreadystate.jpg

The actual events

I’m sorry that it’s a bit fidely but I’ve been testing out a lot over the last hours.

What could be wrong? Am i missing something as i’m still fairly new to UE.

So it seems like i’ve managed to fix it now. I put all the events in my Pawn class. Now whenever i need to call an event from my UI class I get the referance of the pawn using the “Get Player Pawn” block which result i then cast to my Pawn Blueprint class to then be able to call the event. This seems to work now though i’m not 100% sure why. I guess that maybe there was a problem where the UI tried to access a different Pawn object before.