For issue #1 it appears the WIP GameplayAbilities module has a similar architecture to what I was attempting to do with Component A and Component B.
In order for Component A to successfully replicate an array of base UObject types it looks like the following steps are needed:
- Create my new UObject Derived class I’ll call BType for now (replacement for Component B).
- Implement IsSupportedForNetworking in BType
- Implement GetFunctionCallspace in BType
- Implement CallRemoteFunction in Btype so RPCs are supported with the proper NetDriver for BType
- Implement ReplicateSubobjects in Component A and loop over my array of BType calling ReplicateSubObject on the passed in Actor Channel with each instance of BType
- Implement GetLifetimeReplicatedProps in Component A and rep the respective array BType
It would be great if someone with experience on replicating and using RPCs on a non Actor or ActorComponent could verify that these are the only steps needed.
I also wouldn’t mind my other issues being read over.