The way my game works is that your friends join your saved game, so there is no need for another player to become host. Regarding modularity, UFPS already has it down. For example, they use a script such as vp_PlayerDamageHandler that handles base damage handling and is INTENDED for use for networked players. The local player then inherits from this script as vp_FPPlayerDamageHandler. The UFPS team has this working with Photon, so, how can I do it with TNet? They use two prefabs, one for networked players with the base scripts and one for the local player scripts and cameras. How can I instantiate the Networked prefab to work with TNet? You also can't avoid disabling things if you do it your way, as the local First-person controller has two cameras and leaving them be will only cause problems. Furthermore, with over half of the scripts on the local player not needed on the networked players it makes much more sense for them not to even be there and trying to add the tno.isMine check for some scripts is not the best solution due to the inheritance structure. So again, how can I sync two different prefabs with scripts inherited from each other as it is possible?
PS: By networked players I mean the other player prefabs on each players machine. Every player has the First-person scripts for their player on their machine, but has simplified functionality when displayed on other machines.