# ActorComponent GetOwner() returns wrong character on clients (owners appear swapped)

**URL:** <https://forums.unrealengine.com/t/actorcomponent-getowner-returns-wrong-character-on-clients-owners-appear-swapped/2702929>\
**Category:** Programming & Scripting\
**Tags:** Replication, unreal-engine, Multiplayer, Blueprint, question\
**Created:** [February 28, 2026, 9:00pm UTC](https://forums.unrealengine.com/t/actorcomponent-getowner-returns-wrong-character-on-clients-owners-appear-swapped/2702929 "2026-02-28T21:00:19Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![BioFrost.in](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@BioFrost.in](https://forums.unrealengine.com/u/BioFrost.in)\
**Post date:** [February 28, 2026, 9:00pm UTC](https://forums.unrealengine.com/t/actorcomponent-getowner-returns-wrong-character-on-clients-owners-appear-swapped/2702929/1 "2026-02-28T21:00:19Z")

</div>

Hi,

I’m having a very strange issue with my multiplayer inventory system and I’d really appreciate some insight.

Previously, everything was working correctly. However, I’m now experiencing a replication/ownership issue that I can’t explain.

The main problem is this:  
When I pick up an item as a client, the client behaves as if the item was never picked up. The item does not appear in the inventory widget, and for example if I pick up a weapon, I cannot equip it.

While debugging, I found something very odd:

In Character0’s Inventory Component, when I call **Get Owner** and print the result:

- When it runs on Character0, it returns **Character1** as the owner.

And in Character1’s Inventory Component:

- When it runs there, it returns **Character0** as the owner.

So it seems like the Inventory Components are somehow referencing the wrong character as their owner, almost as if they are swapped.

What makes this even more confusing is that when I test directly inside the old project of mine, Character0’s component correctly returns Character0 as its owner. So the plugin itself appears to behave correctly in isolation.

I genuinely don’t understand how the component ownership could be reversed like this in-game.

Has anyone experienced something similar with ActorComponent ownership in a multiplayer setup? Any idea what could cause components to report the wrong owner between clients?

---

<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:** [March 1, 2026, 2:45am UTC](https://forums.unrealengine.com/t/actorcomponent-getowner-returns-wrong-character-on-clients-owners-appear-swapped/2702929/2 "2026-03-01T02:45:38Z")

</div>

> [@BioFrost.in](#):
>
> I genuinely don’t understand how the component ownership could be reversed like this in-game.

this is unlikely and probably impossible,

in multiplayer its more likely that the function is running on the wrong netmode, ie is it running on client instead of server? inventory stuff must be done on server.

If you show us some code we can help more

---

<div class="post-metadata">

**Author:** ![BioFrost.in](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@BioFrost.in](https://forums.unrealengine.com/u/BioFrost.in)\
**Post date:** [March 2, 2026, 1:22am UTC](https://forums.unrealengine.com/t/actorcomponent-getowner-returns-wrong-character-on-clients-owners-appear-swapped/2702929/3 "2026-03-02T01:22:01Z")

</div>

I also learned that what I was assuming is actually impossible.  
What I experienced was simply because each instance is separate, so I shouldn’t rely too much on object names when debugging.

Let me explain why I thought this was the issue.

I already have a project that I’ve been running as multiplayer for a long time. However, for the past few months I’ve been working in singleplayer mode without testing multiplayer.

Now I see that almost everything that used to work with RunOnServer is broken.(When I say “nothing works in Run on Server,” I mean it executes on the server side, but I can’t see the result on the client side.)  
For some of them, I managed to fix it by switching to Multicast, but some things don’t work at all, even with Multicast.

While trying to debug that bigger issue, I mistakenly thought it was related to the problem I described in this topic — but apparently it’s not.

In your opinion, what could cause this kind of situation?

---

<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:** [March 2, 2026, 1:32am UTC](https://forums.unrealengine.com/t/actorcomponent-getowner-returns-wrong-character-on-clients-owners-appear-swapped/2702929/4 "2026-03-02T01:32:13Z")

</div>

> [@BioFrost.in](#):
>
> In your opinion, what could cause this kind of situation?

a client can only call RunOnServer if it owns the actor, ie pawn/controller

a Multicast can only be called on Server.

So depending on what you want the client would have to call a RunOnServer event to then call a Multicast from an Actor it owners.

but if we’re still talking about inventory stuff you should be using RepNotify not Multicast

---

<div class="post-metadata">

**Author:** ![BioFrost.in](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@BioFrost.in](https://forums.unrealengine.com/u/BioFrost.in)\
**Post date:** [March 2, 2026, 1:34am UTC](https://forums.unrealengine.com/t/actorcomponent-getowner-returns-wrong-character-on-clients-owners-appear-swapped/2702929/5 "2026-03-02T01:34:30Z")

</div>

Not only inventory, with everything i have this problem. for example can you check my latest question? that was working before, like inventory thing.

I made a replications thing before so i know the basics, i will call run on server first, multicast should be called from inside from it sdr. but deeply, i don’t know why these things stop working all of sudden

> [@Replicated Actor reference inside replicated Character Component is always NULL on client](https://forums.unrealengine.com/t/replicated-actor-reference-inside-replicated-character-component-is-always-null-on-client/2703100):
>
> Hi, I’m having a replication issue in UE5 and I’m stuck for two days. This used to work in my older systems but now it doesn’t. Setup I have a Character. Inside the Character, I have a default Blueprint Actor Component called CraftingComponent. The component has: Component Replicates = true The Character: Replicates = true Inside the component: I call a RunOnServer event. On the server, I SpawnActor (Building actor). The spawned actor: Replicates = true Clients…

---

<div class="post-metadata">

**Author:** ![BioFrost.in](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@BioFrost.in](https://forums.unrealengine.com/u/BioFrost.in)\
**Post date:** [March 3, 2026, 12:37am UTC](https://forums.unrealengine.com/t/actorcomponent-getowner-returns-wrong-character-on-clients-owners-appear-swapped/2702929/6 "2026-03-03T00:37:20Z")

</div>

I believe I’ve identified the issue. The problem was that I had two Reliable Multicast RPCs running on Event Tick. They were being used for IK / aim updates (bone/hand related data). Because they were marked as Reliable and executed every tick, they were effectively flooding the reliable RPC queue. This did not show up as a visible bandwidth spike in stat net, but it appears that the reliable queue was getting saturated.
