I’m actively working on this again, so forgive me if I figure it out soon.
I see what you’re saying, and apologize for my lack of an answer. I guess I’m not sure how to differentiate between the server and client doing it when I’m having a client host as well as play. Is it simply on which items the code is attached to?
In my case, I have the code from the unity tutorial that uses simple GUI to connect to or start a server. If I start a server using this item, does that make that GameObject the server “owner”? So I’d have to use Network.Instantiate() with another GameObject to have it treated as a player?
This whole networking business is new and scary to me, and I guess I’m still not 100% on how ownership and such works.
If you’d rather link me to something specific to answer my stupid questions, feel free. 
EDIT: So after testing a bit, is it just separated by IP? So the IP address that calls Network.InitializeServer() is known as the “server”, and anyone who connects to said IP is a “client”? In that case, if I’m setting it up for one player to host and another to join, how do I differentiate them? Just using NetworkPeerType checks?
EDIT2: I tried setting up control using this code:
if (Network.peerType == NetworkPeerType.Server networkView.owner.ToString () == "0")
CheckMovement ();
else if (Network.peerType == NetworkPeerType.Client networkView.isMine)
CheckMovement ();
and it properly recognized which instance was a client and which was the server, but I still had the issue where when the client joined, they assumed each other’s control. It feels the like the server instance has control as a client as well as a server, and I don’t know how to resolve that. UGH.
EDIT3: Got it working properly, cameras removed and all, for the first time. However, I just want to make sure this is a smart way to do it.
I’m not sure if this is intentional, but using Network.Instantiate() apparently queues up Start() code that is run. Like, when the client joins the server, the server’s Start() code on their already instantiated object runs, and then the client that joined and instantiated has his run. Thanks to that, I just do a check like above, except with failing conditions, wherein I delete all the cameras, which has seemingly worked like a charm.
Is this a proper way to differentiate control over a server and client? This will be a strictly 2-player co-op, so my code is looking like it’ll have to revolve around server player and client player. Sorry for wall of text. :X