Download

Widget replicated behavior and control

Hi guys, so as the title says I would like to ask for help in matter of 3D widget replication. Ideal behavior would be that same widget can be viewed and interacted by all clients and server with mouse and keyboard.

More specifically, I have pawn actor as a computer and 3D widget component located inside screen mesh. So far so good, the local version is working as it should by setting controller’s show cursor and set input mode Game and UI upon possessing said pawn. But now the not so fun part is that when I simulate 2 and more players only host is able to interact with the widget and only on host side is widget changing. So I’ve tried using widget interaction component on PlayerController and some replication magic, also changing widget from 3D to owning client side and add it to viewport so everyone can interact with it, etc. But there were other problems because of the data that should be displayed in it or the interaction. For example countdown, I need to display a few countdowns scattered throughout all widgets that are grouped in the main widget switch so anyone can see it, also other stuff should be displayed and this is messing with my plans for over a week now and I cannot find any solution.

So the main features it have to support are

  • Same widget data displayed on all clients and server (multicast)
  • Interactivity for mouse and keyboard from all clients and server

If you have an idea how to approach this please let me know.
Thanks in advance,
Mat5i6.

Hello, I´m not sure at all about what you did but you have to keep in mind that, for replications, the way to go is to call replicated events to the server from the clients.

Explaining it: You have this widget placed in the host and every client. What you have to do is making an event that is replicated to the server so when a client interacts, this interaction is sent to the server, the server will process whatever you want, and then return it to the clients (by multicast or by replicated variables, this is up to you)

Hope it helps!

Yeah this is as far as I’ve got. I’m aware of how the communication should go but the main obstacle is that client is unable to interact with the 3D widget even with widget interaction component is properly adjusted. After that things just pile up. But thanks you gave me some ideas.