[Bug?] Server doesn't get combo box set in some situations

Hey there,

i have a really odd bug in my marketplace project. problem is that i can’t seem to find why this is happening.

** background story:**

Players can pick Characters in Lobby. When you pick a Character that has already been picked, you get denied and Picture as well as Combobox get reset. This is all working for Server and Client except Situation when Server picks a Character that has been taken. Then only Combobox of others resets.

event in which Combobox gets set is 100% called and reset of image is working.

http://puu.sh/kfZtX/806cd84cc7.png

It’s upper execution line of following nodes. I tried getting Name of combobox and it is correct. I printed a debug message and Server calls line. Also SetArrayElement at right end is working for Server. He just seems to ignore SetSelectedOption call. Although he does not ignore it if a client picks already taken character. If it was Server (so i did a mistake), then combo box should also not reset on his end. But it is only his own combobox that doesn’t work and only if he tries to pick a selected character. Every other solution works. ): Also just added a breakpoint and SetSelectedOptions really gets called. So i have no idea why he is ignoring function call. If whole event wouldn’t work, then print and also image reset should also not happen.

http://puu.sh/kfZyI/5084ef94aa.jpg

Hello ,

I have a few questions for you that will help narrow down what issue it is that you are experiencing.

Quick questions:

  1. Can you reproduce this issue in a clean project?
  2. If so, could you provide a detailed list of steps to reproduce this issue on our end?
  3. Could you provide additional screen shots of other blueprints involved with this issue?

Hello ,

We have not heard back from you in a few days, so we are marking this post as Resolved for tracking purposes. If you are still experiencing issue you reported, please respond to this message with additional information and we will offer further assistance.

Thank you.

Sorry Rudy, i’m still experiencing this. I just had 0 time last week to do anything. I will try to recreate this in a new project tomorrow.

Hey Rudy,

took me quite some time to cut this part out of my project but here you go:

Please make sure to read “ExplainingTheSystem” BP Tutorial file.

I put a lot of information into it. There is also a small text on Screen when you start game to guide you how to recreate issue. It’s pretty easy to do so, but setup took me a while.

Hello ,

Thank you for going through all of hard work to reproduce this issue. However, after working I was able to get it working with following steps. I hope that this helps.

Steps:

  1. Copy custom event “CheckSelectedCharacterCallback” and everything hooked to it
  2. Rename copy of custom event to “CheckSelectedCharacterCallbackServer”
  3. Set “CheckSelectedCharacterCallbackServer” Replication to Multicast
  4. Set “CheckSelectedCharacterCallback” Replication to Run on server
  5. Use “CheckSelectedCharacterCallback” to call “CheckSelectedCharacterCallbackServer”

This will run events on server and then replicate them back to all clients.

Image for reference:

Make it a great day

Hey there, thanks for time, but i don’t really get why this is working.

“CheckSelectedCharacterCallback” is already called on all Players, since i use a Multicast in GameState in which i get Controllers and call it.

If there wasn’t a multicast already, whole setup wouldn’t work. Also it definitely gets called on all clients (and listen server) otherwise Image Color would not get white on reset or normal selection would not get displayed at all. I mean, it is working, just Combobox gets skipped in this situation.

Just to get this together:

In my setup we are in GameState on Server.Then, in GameState, Server calls a Multicast. This multicast is called on client and Server. Then, in multicast, i call Callback event, which is just a normal event, since we are already on all Clients + ListenHost through Multicast.

This normal event calls WidgetFunction.

Then, in Widget itself, White Image, as well as None for combo box are in same execution line. And White image gets set. combobox is just skipped (but only in this specific situation where Server picks an already picked character).

I tested this with Print nodes and breakpoints.

In your setup, we go from Multicast in GameState to a RunOnServer function in Server, so we are again on Server (why?). Then AGAIN we call a Multicast (so we did Server->Multicast->Server->Multicast) and then we call widget function. So every client leads to a second Multicast call.

First Multicast → Server and Client

Server → Just does its stuff

Client → RunOnServer → Second Multicast → Again Server and Client

That results in 2 calls on Server


I have no idea why this above should be solution. It sounds more like a workaround and original problem is still not fixed.

Would you be so kind to explain me idea behind this and maybe have a second look on it?

Hey ,

To clarify, this IS a workaround. We’re not sure why it works either, and despite combing through your example project for hours, I couldn’t see any reason your setup shouldn’t work. I’ve entered a bug report (UE-21760) for issue and included your test project so engineers can look closer. Until then, I hope Rudy’s workaround can get you by. Thanks for project!

Thanks ,

(: That’s a good clarification, because i thought i did something wrong and it did not understand why!

Thanks for you time guys. Stay awesome.