Replicating child actor in same channel as parent actor

Both for performance and maintainability reasons, we would like to replicate child actors through the parent actors channel.

Basically, we’d want the parent actor (character) to replicate it’s child actor (weapons) as subobject rather than them being independant actors. This would reduce our network bandwitdh as well as enforcing the character and weapons to be synchronized (weapons cannot exist without character and vice versa).

Is this possible?

P.S. we don’t want to convert our weapons into components for flexibility reason.

Did you ever find a solution for this? They’re behaving odd when replicated and attached to a MotionController component as well, but I need to replicate the child actors BPs events.

Yes, we did several modifications to the engine to support this.

But even with those… it also require some “fancy” game code per actor type and it’s quite limited.

It’s “ok” for us as it covers a really expensive case… but it’s difficult to just apply to another system.

This said, I’m not sure we are speaking exactly about the same subject… in our case, even though weapons are actors, we treat them as if they were components of the character in terms of replication.

Is this what you need ?

Yes, we did several modifications to the engine to support this.

But even with those… it also require some “fancy” game code per actor type and it’s quite limited.

It’s “ok” for us as it covers a really expensive case… but it’s difficult to just apply to another system.

This said, I’m not sure we are speaking exactly about the same subject… in our case, even though weapons are actors, we treat them as if they were components of the character in terms of replication.

Is this what you need ?

Francois i’d love to see what modifications you made. I’m facing a similar issue.

If you are a partner, you can access this thread in which I’m describing the process a bit further:
https://udn.unrealengine.com/questions/278438/replicating-child-actor-in-same-channel-as-parent.html

In summary, it had required a bunch of changes in DataChannel.cpp and Actor classes.

If you are a partner, you can access this thread in which I’m describing the process a bit further:
https://udn.unrealengine.com/questions/278438/replicating-child-actor-in-same-channel-as-parent.html

In summary, it had required a bunch of changes in DataChannel.cpp and Actor classes.

Overall, it ended up improving performance quite a lot for us as each character had multiple weapons actor (and we support games up to 60 players)… replicating the weapons through the character saved a lot of computing on our dedicated servers.