3D Widget interaction from Client to Server

First of all i cleaned up my threads, since i had two them in different areas of the forums and fused them into this one.

I put in a question in on how to get clients to interact with a 3d widget panel in game, that will send a signal to the server , to open a gate or other functions

Kris replied to me


telling me its possible doing this method but im little confused.
I understand you need to spawn the widget in as a server to client and getting its PC as the owner


But this one here confuses me

Net Load on Client, means that it will never spawn client side, which would mean that Client will never see it or be able to interact with it


so because of that my gate wouldn’t be seen client side, unless im missing something , also little confused on the login Event as it already is a PC in the game mode, so where is that coming from to get the PC?

> But this one here confuses me

That is just an actor owned by a PC so that anything the widget does on the client can be routed through it to the server.

> Net Load on Client, means that it will never spawn client side, which would mean that Client will never see it or be able to interact with it

You are correct that the client will not spawn a version of this actor, but the actor is setup to replicate - it will get there via the network.
Once across the network, it will then allow the local client there to interact with it.

I’ve sat down and thrown together an example project :

One of the things you have to make sure is that you don’t test using single process.
It will cause the widget to register multiple inputs and such, which is **** annoying.

If it looks useful, have at it : MEGA

would of never guessed that using single process was the issue causing my client / client interaction Issue. they need to fix that by having that option in with the drop down menu. wouldn’t of known other wise
After looking at your example, i see what you mean now. was a little confusing until now. you save our game Kris . we all agreed to credit you in our game Credits

When anyone logs off, array access none on destroy Node, invalid player controller Index.

Edit:
moved the Destroy actor node in front of the remove index but when a client logs off after interacting with a 3d widget all other players cant interact / call the event bind of said widget, would that be due to the created widget on the client side?

also happens on the example map , cause the destroy node wasn’t actually destroying it and also breaks in the example map

shrug

What I get for throwing it together without thorough testing :slight_smile:

The array is just there to remove the left over input replication actor.
You could always just bind the PC’s OnDestroy delegate instead.

k ill try that :slight_smile: ,
didn’t work

mmmm unbinding Didn’t work either

going to see if there is a way to delete the created widget. think that’s whats causing it

Thank you so much! Finally!

Hey Kris, while I appreciate the video, could you show us the blueprint setup to accomplish this?
Also, are you saying the only way to get a 3D widget to work across clients is to set any replicated variables via a player controller? I’ve got an enemy - that is obviously not controlled by a player - with a floating 3D Widget on it and I was hoping to be able to replicate it’s health bar (progress bar) across all clients when it’s damaged.

Oh, actually I sorted it out. I was running the update for the widget’s health bar via a function but actually pulling it out of the function and creating a custom event and setting it to replicate Multicast and Reliable fixed the issue. No need to involve the player controller after all.