Hi, I don’t see any memory cost for storing pointer to an actor. And GetAllActorsOfClassWithTag is a slow operation, so no I would not go that way.
And as you mention hard reference, everything an asset hard references (like an object reference or class reference) will be loaded into memory as soon as that asset is loaded into memory (so if you never kept that in mind when buiding your logic, you may end up having everything loaded all the time). But GetAllActorsOfClassWithTag will also result in a hard reference to that class, it will be loaded into memory so no difference there. Ofc you could use soft references to avoid that.
and is this the best way to go about limiting the amount of data sent over a network?
If you worry about network bandwidth, you can use the network profiler to see what has highest bandwidth usage and optimize from that.