Hey, I just solved almost the same problem as you are attempting to!
I think you can mark the InventoryStruct, BackpackStruct and slotList as replicated
then in your ActorComponent’s ReplicateSubobjects()
// make sure to register your replicate vars in GetLifetimeReplicatedProps
bool UYourActorComponent::ReplicateSubobjects(UActorChannel* Channel, FOutBunch* Bunch, FReplicationFlags* RepFlags)
{
bool bWroteSomething = Super::ReplicateSubobjects(Channel, Bunch, RepFlags);
// this replicates the TArray
bWroteSomething |= Channel->ReplicateSubobjectList(InventoryStruct.BackpackStruct.slotList, *Bunch, *RepFlags);
// this replicates the actual TArray content
for (auto* Slot : slotList)
{
bWroteSomething |= Channel->ReplicateSubobject(Slot, *Bunch, *RepFlags);
}
return bWroteSomething;
}
The code might have some syntax error or something since I am writing it top of my head.
Here is another good link :
Hope it helps!