I have an interface set up on the client. When “Interact” with the NPC, it will go “Oh player 0 is interacting with me. When I interreact I do this!” The interface can then get the player controller 0, and get the hud spawner reference (a hud actor that handles all the widget creation and destruction which can be called easily from pretty much anything that can get the reference from the controller), and trigger the event to create the specific widget. You can also pass the NPC reference to the event and the event can pass that to the widget. The widget can then access the “NPCWhoCalledUIRef” and pull the data it needs from the NPC.
You can then have an interface for each button. So the “Interact” button. The “HealNPC” button, the “HitNPC” button, the “GrabNPC” button etc.