widget draws to all clients

Hello, really simply if I draw a widget from within a character BP, it replicates to all clients in a dedicated server multiplayer setup. The problem is there are multiple character BPs to possess when spawning (multiple classes), and while all the spawning logic works, and a widget to select the class works (added to viewport within the level bp) a simple add to viewport for a specific widget per client doesn’t work. I cannot use the level bp (where I know the widget creation/viewport addition works) because I need to use a custom event linked to the class selection widget.

It should be mentioned that an isvalid node is being used to check the create widget node, and it comes back invalid, although it DOES work, but draws to all clients.

I don’t really have a way to get a picture of this so to simply reiterate: Within a characterBP, I have: eventbeginplay>Createwidget>isvalid?>widget is set to variable>add to viewport. It works perfect but it shows up on other clients as well.


Here, check is controller local.


Hey Thanks! This worked perfect. If you have another moment, could I get your help again? It’s basically a very similar situation except I’m drawing a widget from the level bp, and it’s once again spawning to all clients. It looks like the issue is probably because I cannot call the controller directly from level bp, only player controller. Is there a workaround? Or a better blueprint to access this from?

call from a Level BP or game mode to the HUD BP custom event which gonna spawn a widget and save it to a variable, so you can always acces it from elsewhere. ive made a video few days ago for some another guy in answerhub Unreal engine 4. How to Store your Important Widgets. - YouTube

Works great! I made a custom character too instead to handle the logic like you had in the video, just to replace the pawn I used to start as before selecting a class. Only thing is, I have everything almost exact to your video except I need it all to run on event begin play, which for some reason won’t fire it off. When I test with some other kind of event (keyboard input or something) it works though. Any idea as to why?

put the delay right after begin play, 0.2 would be enough, its actually firing, but some ordering issues and actual controller is not initialised.

awesome! this works. Thank you so much. It doesn’t work until something like .5 seconds but that’s just fine.

mark question as answered and if you have more questions about networking, message me with your gmail on epic unreal forum so i would add you to google hangout or you can just ask them on forum.

Thanks a ton, and will do if it ever arises.