A custom solution for parenting objects using Unity Netcode for GameObjects (NGO), tested in a Distributed Authority model.
This package allows you to safely manage parent-child object relationships over the network while avoiding common sync issues in NGO's built-in systems.
To use this system correctly, ensure your network prefab is set up with the following components:
ClientNetworkTransform
- ✅ Set In Local Space to
true
- ✅ Set In Local Space to
NetworkLateJoinParentSynchronizer
NetworkObject
- ✅
AllowOwnerToParent = true
- ✅
SyncTransformWhenChildOfAnother = true
- ✅
AutoObjectParentSync = false
- ✅
Attach the NetworkParentSynchronizer
to the nearest authoritative parent or container object in the hierarchy.
Example structure: Player (NetworkParentSynchronizer) └── Arm └── Hand (actual parent of the child object)
You can configure the NetworkParentSynchronizer
either in the editor or dynamically via code.
Configure NetworkParentSynchronizer
in the Inspector with preset parent references.
Use scripting to assign parent references and trigger synchronization manually.
⚠️ Important:NetworkParentSynchronizer
must always be present somewhere above the intended parent in the object hierarchy.
- ✅ Distributed Authority Model
- ❌ Not tested in Server- or Host-authority modes (PRs welcome)
- This system is designed to bypass limitations in NGO’s default parenting and syncing behavior.
- It’s lightweight and customizable — ideal for use cases like item pickup, weapon attachment, or modular avatars.
MIT License — free to use and modify with attribution.