Multi-HUD at named anchors
When you want multiple independent React HUDs at separate screen positions, use the Add Web HUD Blueprint node. One node call equals one layer. Each layer is its own React app or route at its own URL.
The 9 anchors
text
TopLeft TopCenter TopRight
┌──────┐ ┌──────┐ ┌──────┐
│ │ │ │ │ │
└──────┘ └──────┘ └──────┘
MiddleLeft Center MiddleRight
┌──────┐ ┌──────┐ ┌──────┐
│ │ │ │ │ │
└──────┘ └──────┘ └──────┘
BottomLeft BottomCenter BottomRight
┌──────┐ ┌──────┐ ┌──────┐
│ │ │ │ │ │
└──────┘ └──────┘ └──────┘The node signature
| Param | Type | Default | Notes |
|---|---|---|---|
| Name | FName | required | Globally unique. Also becomes the BridgeName for Sender routing. |
| URL | FString | required | Complete URL — plugin does not prepend Default Dev URL. |
| Anchor | EWebHUDAnchor | TopLeft | One of 9. |
| Padding | FVector2D | (16, 16) px | Inset from anchor edge (sign auto-flipped for right/bottom). Ignored for Center. |
| Size | FVector2D | (0.3, 0.2) | Viewport ratio per axis. >1 clamped to 1, <=0 rejected. |
Typical Blueprint flow
text
Event BeginPlay
├─ Add Web HUD ("HpBar", "http://localhost:5173/player-info", TopLeft, (16,16), (0.25, 0.12))
├─ Add Web HUD ("Skills", "http://localhost:5173/skills", BottomCenter,(0,32), (0.50, 0.18))
└─ Add Web HUD ("Minimap", "http://localhost:5173/minimap", TopRight, (16,16), (0.18, 0.18))
Event On Inventory Pressed
└─ Branch on Is Web HUD Active("Inventory")
├─ True → Remove Web HUD By Name ("Inventory")
└─ False → Add Web HUD ("Inventory", "http://localhost:5173/inventory", Center, (0,0), (0.6, 0.6))Routing
The Sender component's TargetBridgeName matches the layer's Name (case-sensitive). Empty broadcasts to every layer.
text
ReactBridgeSender (component)
TargetBridgeName: "HpBar" ← only the HpBar layer receives PushFloat/PushMap calls
ReactBridgeSender (component)
TargetBridgeName: "" ← broadcast to HpBar, Skills, Minimap, Inventory, ...Edge cases
| Situation | Behavior |
|---|---|
AddWebHUD with same Name | Same layer is reused: URL via LoadURL, anchor/padding/size updated, no full reload jitter |
Name = NAME_None | Rejected, returns invalid handle, error log |
URL = "" | Rejected, returns invalid handle, error log |
Size <= 0 either axis | Rejected, returns invalid handle, error log |
Size > 1 either axis | Clamped to 1, warning log |
Padding on Center | Ignored, verbose log |
| First call with no viewport | Returns invalid handle. Call from BeginPlay or later |
See Blueprint Library reference for the full node list.