The HlapiServer is responsible for creating the trackers. When a new player joins the Dissonance session it sends a message to the server, the server then creates a player tracker (HlapiServer Line 44 - AddClient). The code this is pretty simple:



var go = (GameObject)Object.Instantiate(_trackerPrefab, _network.transform);



Which is why I'm confused about your stuff going into the root, if that code runs there's no way the trackers will end up in the root!



Unfortunately we can't use OnServerDisconnect, that is only for things derived from NetworkManager. This is what we use the tracker for instead - when the player they're tracking quits the HLAPI automatically destroys the tracker for that player. Dissonance watches for the object to be destroyed and uses that to track disconnects.

Click to expand...