# Multiplayer UI Not Updating in Real-Time After Using Item (RepNotify/Event Dispatcher Issue)

**URL:** <https://forums.unrealengine.com/t/multiplayer-ui-not-updating-in-real-time-after-using-item-repnotify-event-dispatcher-issue/2666685>\
**Category:** Blueprint\
**Tags:** unreal-engine\
**Created:** [October 19, 2025, 12:33pm UTC](https://forums.unrealengine.com/t/multiplayer-ui-not-updating-in-real-time-after-using-item-repnotify-event-dispatcher-issue/2666685 "2025-10-19T12:33:19Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![DiegoSteve](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@DiegoSteve](https://forums.unrealengine.com/u/DiegoSteve)\
**Post date:** [October 19, 2025, 12:33pm UTC](https://forums.unrealengine.com/t/multiplayer-ui-not-updating-in-real-time-after-using-item-repnotify-event-dispatcher-issue/2666685/1 "2025-10-19T12:33:19Z")

</div>

Hello everyone,

I’m developing a co-op survival game and I’ve run into a multiplayer UI issue that I can’t seem to solve.

**The Problem:** When a client uses a consumable item from their inventory, the item is correctly used and removed from the inventory data. However, the UI does not update in real-time. The used item slot only disappears after I close and reopen the inventory widget.

**My System Setup:**

- **`BP_InventoryComponent`** : An actor component on my player character. It holds the inventory data.

- **`WBP_InventoryScreen`** : The main inventory widget.

- **`WBP_InventorySlot`** : The widget for each individual item.

**The Logic Flow:** My update logic is designed to work like this:

1. The client clicks on a `WBP_InventorySlot`, which calls a `Server_UseItem` event on the `PlayerCharacter`.

2. `Server_UseItem` calls `Server_RemoveItem` on the `BP_InventoryComponent`.

3. `Server_RemoveItem` correctly updates the server’s master `TMap` and then calls a function (`UpdateReplicatedItems`) to sync the `TMap` to the `RepNotify` `TArray`.

4. This change in the `RepNotify` `TArray` correctly triggers the **`OnRep_ReplicatedInventoryItems`** function on the client.

5. Inside the `OnRep_` function, I call an **Event Dispatcher** named `OnInventoryUpdated`.

6. In my `WBP_InventoryScreen`’s **`Event Construct`** , I get a reference to the inventory component and use a **`Bind Event to OnInventoryUpdated`** node. This node is connected to my `PopulateSlots` function, which clears and redraws all the item slots.

**What I’ve Debugged:** I have used Print Strings and confirmed the following:

- The **`OnRep_ReplicatedInventoryItems`** function **IS** firing correctly on the client after an item is used.

- The **`OnInventoryUpdated`** Event Dispatcher **IS** being called correctly from within the `OnRep_` function.

It seems the signal is being sent, but the UI widget isn’t “hearing” it or reacting to it, even though the `Bind Event` node is set up.

I’m hoping someone can spot what I’m missing. Why isn’t my UI refreshing in real-time?

Thank you for your time!

 ![Screenshot_5](https://d3kjluh73b9h9o.cloudfront.net/original/4X/3/3/a/33af9ad82131c31558087f2f5c87b223cf17a76d.png)

 ![Screenshot_4](https://d3kjluh73b9h9o.cloudfront.net/original/4X/a/5/a/a5a10421015420ef4283e293ca7f1f5fcfaa04c1.jpeg)

 ![Screenshot_3](https://d3kjluh73b9h9o.cloudfront.net/original/4X/3/d/b/3db171543efcef66e2e699d2455bd76b5b6f0598.png)

 ![Screenshot_2](https://d3kjluh73b9h9o.cloudfront.net/original/4X/5/4/d/54d90d6f86a744a1556b7439d02992a183e5f63b.png)

 ![Screenshot_1](https://d3kjluh73b9h9o.cloudfront.net/original/4X/a/e/f/aef2471f77476f2ecb66f25e95b048834880defc.png)

---

<div class="post-metadata">

**Author:** ![Auran131](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Auran131](https://forums.unrealengine.com/u/Auran131)\
**Post date:** [October 19, 2025, 1:09pm UTC](https://forums.unrealengine.com/t/multiplayer-ui-not-updating-in-real-time-after-using-item-repnotify-event-dispatcher-issue/2666685/2 "2025-10-19T13:09:52Z")

</div>

> [@DiegoSteve](#):
>
> It seems the signal is being sent, but the UI widget isn’t “hearing” it or reacting to it, even though the `Bind Event` node is set up.

usually this means the bind failed, ie the player/component didnt exit when you widget tried to bind. you can try a delay for debugging

---

<div class="post-metadata">

**Author:** ![King\_Zero](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@King\_Zero](https://forums.unrealengine.com/u/King_Zero)\
**Post date:** [October 19, 2025, 5:13pm UTC](https://forums.unrealengine.com/t/multiplayer-ui-not-updating-in-real-time-after-using-item-repnotify-event-dispatcher-issue/2666685/3 "2025-10-19T17:13:31Z")

</div>

Unless I’ve missed something, you are calling OnInventoryUpdated only on server(as it’s in Server function). Move that delegate call to your OnRep function. OnRep doesn’t need then to call PopulateItems on a ref to your widget (it might be null, as it’s not working?)

---

<div class="post-metadata">

**Author:** ![ShadowBr0kerz](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/shadowbr0kerz/32/1201558_2.png) [@ShadowBr0kerz](https://forums.unrealengine.com/u/ShadowBr0kerz)\
**Post date:** [October 21, 2026, 9:15am UTC](https://forums.unrealengine.com/t/multiplayer-ui-not-updating-in-real-time-after-using-item-repnotify-event-dispatcher-issue/2666685/4 "2026-10-21T09:15:53Z")

</div>

the bug is where the delegate fires. your server use function calls OnInventoryUpdated on the server, and the server has no inventory widget, so nothing visibly happens. move that broadcast into the OnRep of your replicated mirror array instead, then every client refreshes from the same spot. also bind the widget after the component exists, a bind made before the component registers silently does nothing and looks exactly like this. you can also try Blueprint Object Replication, a replication plugin for Unreal Engine that holds item entries as real objects with their own rep notifies so the mirror array stays in sync by itself: [https://www.fab.com/listings/e26dcf07-7c78-4e67-8e56-272cf6df8021](https://www.fab.com/listings/e26dcf07-7c78-4e67-8e56-272cf6df8021)
