3D widgets in multiplayer

ok so i figure the second question out that was actually a problem on my part I had the press pointer key node for the interaction key I set activated on both the press and release :stuck_out_tongue: so disregard question 2

for question 3 with a bit more playing around I found that if I set the servers pointer and user index to 1 and its copy of the client to 2 and on the client them self I set them to 3 everything works as I would have figured it should so when I hover over the button it fires a hover event when I click on it, it fires the click event only on their side though however its still replicating that the button is being hovered over no matter who hovers over it I guess that’s progress since now I can capture the click event from the client side send it to the server and do stuff then send the result back to the owning client the problem is this isn’t just going to be a 2 player game so do I have to make all the players and all the copies of all the players in all the worlds not have the same index just to make this work that seams a little absurd

I really wish someone would shed some light on how these mechanics work 3d widgets behave differently then any of the other systems I have played with and I would really love to get them working I don’t get how say if you change the color of the on hovered for the button in the widget when someone hovers over the button it not only changes for them but everyone else as well from what I understand this doesn’t normally happen you have to manually update the other side when you make a change and want it to show up in another’s view port however 3d widgets do this automatically and I really don’t understand how but it doesn’t update click events it wont auto send blueprint code this makes it really hard to understand who has authority over these objects and just who needs to be updated with the information

also noticed the line trace from the widget interaction component acts differently than the enabled mouse cursor in example when the line trace hits the button it sends the info to both the server and the client no matter who the line trace came from if you show the mouse cursor and hover over it the info only prints out on the side of the one who is hovering over it

I was getting the widget interaction components mixed up I forgot that the copies are also firing a line trace that’s why its showing up in the other players world still the problem is unless I set the user index and the pointer index for the server to 0 the server copy in the clients world to 1 the client to 2 and the client copy in the servers world to 3 I get strange effects so to say off the bat all the indexes are 0 only the server will have its hover event show up in its world and the clients world if the client hovers over it nothing happens it wont change for them or the server and if I click the button in the clients world it shows up as being hovered in the servers world and the print string off the click event never fires in either of there worlds even though the color changed showing that its being clicked on there side

If I set all of them to 0 and just change the client themselves to 1 the client then can highlight the button but it wont show up in the servers world and they can click the button and get the click event to work but the server still cannot if the server hovers over it the button it still changes for him and the client

If I set the server and its copy to 0 and set the client and its copy to 1 its exactly the same as the last one the only difference is that the client can no longer fire the click event but the button still changes to show that its been clicked only on there side

In all these cases if I print string off the hovered event it is constantly firing saying server client server client no matter who is hovering over it

The final case if I change all the copies and the players themselves to a different index as stated in the first sentence that the hovered event only fires once on the server and client no matter who hovers over it and when one of them clicks on it the on clicked event only fires for the one who fired it and the button changes to reflect that only on there side but the hovered color changes for both of them

This was all done off the line trace itself not the enabled mouse cursor one that’s a whole different set of wtf

Hello my question is kind of loose really I want to know more about 3D widgets in multiplayer I have done some experimenting but i’m not really sure how or why some things are happening and everyone who seams to ask questions about them are all directed at VR so ill put out a few bullet points and if anyone can answer any of them for me it would be much appreciated

ok so first question after playing with virtual user index and the pointer index I couldn’t learn very much about them seams like the pointer index lets the client be able to interact with the widget with a different index then someone else but the virtual user index doesn’t really do anything is it only for VR or dual screen?

Second why when the server or the client clicks on the widget like a button it wont reset it just gets click and stays in the pressed position also I tried attaching a print string and nothing ever gets printed out from either of the players who click it

Third I noticed that the server when they hover over a button it not only highlights for the server but also the client as well but not the other way around I want to know how this is done so when the client hovers over it. it can send that to everyone else as well so they can see that the button is being hovered,pressed what ever

Forth since this is multiplayer and I have things you are going to be able to insert into the thing the widget is attached to so you can manipulate various stuff an for that most of this will be done by the server just really the client firing off the events how or who controls this widget since I know UI doesn’t get a copy on the servers side for the client or vise versa but the actor in the world the widget is attached to has a copy on both sides how does that work can the client fire an event off and have it run on server can I manipulate the clients perception of that widget

I think that’s about it for now that I can think of i’m not really new to coding but i’m new to the UE4 blueprint system I am getting the hang of it quickly though just a few concepts escape me though

oh also I already enabled mouse over and mouse click events I played around a bit with the widgets in single player but since my game is going to be multiplayer I wanted to try and figure this part out just feels like an uphill battle with the limited info I seam to be getting on them

anywho enough of my rambling if anyone can answer any of these questions for me I would be very thankful I really want 3D widgets to be a big part of my project just as it stands now I cant get them to do what I want and I don’t really have a full understanding of them in a multiplayer setting

Thank you

still nothing I figured someone had of played with these by now and either ran into the same problem as I did and asked these questions or figured it out and maybe could enlighten everyone else but what ever I guess

still haven’t had any luck figuring out how these are supposed to work in a multiplayer scenario everything I look up on 3D widgets in multiplayer returns menus that have nothing to do with 3D widgets the only useful post I found was a guy saying you need to set the indexes but little to no info after that just some code that didn’t help much

is there anyone with any knowledge on how these are supposed to work please could you spare some time and help me understand thank you

Wow still nothing I figured a code guru would have come along at some point and been like ya this this and this but meh I hope someone could get back to me it would be really nice to get these to work

I’ve been struggling to get these to work properly in Blueprint as well. Seems Epic never really completed the replicated implementation of this:

It’s been an issue since 4.6 so I’ve almost given up hope on an official fix.

Here’s a link to the public tracker to get it fixed (Please vote!!!):

Thank you I was beginning to wonder if anyone was ever going to reply ill deffinantly up vote right now I guess ill do the workaround and just add to view port

found any work arounds Valcare

none that make the 3D aspect work the best way is to when you click on it to make a new UI pop up on that players screen to do the task but nothing changes in the world. I mean the feature works perfectly fine in single player I figured that the pointer and user index would be the answer but there is such very limited info and no reported cases of these working in multiplayer I have no info to go off of to figure out what I may be doing wrong if anything just that people really want it to work in VR and that there is reports of it not working

https://forums.unrealengine.com/development-discussion/blueprint-visual-scripting/1443799-3d-widget-interaction-from-client-to-server

will Solve your Issues , thanks to Kris. Ignore my stuff, but listen to Kris in my post

alrighty ill give it a try tomorrow and if it works ill make this and answered thank you so much for this answer

I’ve tested it and does work, one side note you will get a error reference none on destroy when the input server replicator , put the destroy node in front of the remove array