UObject replication problem in non player actor

Hello!

I have an actor for chestbox - ABChestbox. It includes actorComponent UInventory* inventory. UInventory have TArray (UInventoryItem) items; UInventoryItem = child of UObject
All replication rules are checked, for this setup.

ABChestbox:

  • ABChestbox has bReplicated = true

  • ABChestbox → UInventory has UPROPERTY(Replicated)

  • ABChestBox has GetLifetimeReplicatedProps, with DOREPLIFETIME(ABChestBox, inventory);

  • ABChestBox has ReplicateSubobjects with

    • bool repl = Super::ReplicateSubobjects(Channel, Bunch, RepFlags);
    • repl |= Channel->ReplicateSubobject(inventory, *Bunch, *RepFlags);

UInventory:

  • In UInventory TArray items has GetLifetimeReplicatedProps + UPROPERTY(Replicated)

  • Also UInventory has ReplicateSubobject, with replication for each UInventoryItem

    • repl |= Channel->ReplicateSubobject(item, *Bunch, *RepFlags);

UInventoryItem:

  • UInventoryItem has IsSupportedForNetworking() const override { return true; }

  • UInventoryItem created like this - NewObject (UInventoryItem) (GetOwner(), …) - so outer is good and always = ABChestbox (in this case)

  • UInventoryItem has GetLifetimeReplicatedProps with internal data + UPROPERTY(Replicated) for this data

I think i dont forgot something. So in this case if i try to get ABChestBox→UInventory →items. I see items not empty, but all slots are nullptr.

What im missing?