Hi,
NetGUIDs are how objects are referenced across the network, so when sending an object reference as a RPC parameter, the replication system is essentially already just sending a NetGUID. When the client receives this, the NetGUID is added to the package map, and UPackageMapClient::SerializeObject/InternalLoadObject use it to try and resolve the object reference. You can enable the LogNetPackageMap category to get more info in your logs on this process.
In this case, I believe you could still run into the issue of the RPC’s bunch being received before the bunch containing the new component, so the RPC would be processed before the client has spawned the component. If this happens, GetObjectFromNetGUID would still return nullptr, so you’d still need some custom handling to delay RPC execution on the client until the NetGUID is mapped or to ensure the server only sends the RPC after the client has notified it of having spawned the component.
If you have any further questions, please don’t hesitate to reach out, but please note that support will be limited for the next two weeks due to the company break.
Thanks,
Alex