Instantiating Multiple Clients into one

Hello Everyone!

I am having trouble bringing in a second player to my server.
Everything runs smoothly (server lists, starting servers, ect.) until another client connects to a loaded level.
Instead of syncing to each other and instantiating another player in the same game space a second prefab is instantiated on either players client.

So if
Player A starts the server. Player A instantiates at the spawn point and can fly around.
but when Player B connects. Player B instantiates 2 of the same prefab(within their clients), causes player A’s game to instantiate another prefab at the spawn point, and player B controls both prefabs on their side simultaneously. Player A also controls its 2 spawned prefabs simultaneously.

Neither player can be seen by the other.

Obviously there is something I am not doing right but i don’t know what it is.
Any help would be great!

Instantiate Code:

var Player : Transform;

function OnNetworkLoadedLevel ()
{
	// Instantiating Player when Network is loaded
	Network.Instantiate(Player, transform.position, transform.rotation, 0);
}

function OnPlayerDisconnected (player : NetworkPlayer) 
{
	// Removing player if Network is disconnected
	Debug.Log("Server destroying player");
	Network.RemoveRPCs(player, 0);
	Network.DestroyPlayerObjects(player);	

}

Try wrapping the ‘Network.Instantiate’ line in an if-statement that checks to make sure that only the owner can instantiate the object:

if(networkView.isMine)
{
    // instantiate things here
}

Network.Instantiate gets automatically called on all clients, complete with viewID management and buffering. If you want to handle buffering and networkViewID management yourself, you shouldn’t use Network.Instantiate.

I took syclamoths idea and part of the FPC Controller Motor script and moved them into my movement script.

Using:

var canControl:boolean;

function Update()
{
       if(!canControl)
	{
	
	}
	else
	{
          //All movement code
        }
}
function OnNetworkInstantiate (msg : NetworkMessageInfo) 
{
	if(networkView.isMine ==true)
	{
	
		FindParent.target = transform;
		canControl = true;
	}
	else
	{
		canControl = false;
		
		name += "Remote";
	}
}

This also requires that you the find parent script found in this package (http://www.unity3dmax.comxa.com/networking.html). As well as the networkcam.js in the same package.

Thanks again syclamoth!!