Hi there, I am currently working on the multiplayer part of my RTS game. I created my own networking solution using Enet C#. I did that because I have to handle a lot of manual packet resizing, delta compression, etc... Communication between client and server works pretty well already. However, I have problems wrapping my head around spawning networked objects. Currently, I have a "NetworkManager" where I put in prefabs so that client and server both know which prefab to spawn. Basically, it works like this: Client --> Send "Spawn Unit" command to the server Server --> Sanity checks command, spawn unit, Send "Spawn Unit" command to the client Client --> spawn unit This is working fine. The problem is, my units act based on a behavior tree. Now when I instantiate a unit the behaviour tree runs on both client and server. But it should only run on the server. The client receives position updates through the server. I don't exactly know what may be a good solution to this, the following is what I thought about: Simply check on unit spawn if the game is a client or a server and based on that activate or deactivate the behaviour tree. Con: Easy to have bugs and forget checks if the server and client code is the same codebase (probably a lot of IF conditions inside the code) Pro: Only one codebase to maintain and little boilerplate code Create separate client and server prefabs and spawn the corresponding prefab. Con: More boilerplate code and two prefabs to maintain Pro: Clear distinction between client and server, easier to maintain than a single codebase I would appreciate additional suggestions or any other input if you have had a similar problem. Thanks.