I have a Multiplayer script here

var spawnObject : Transform;

var gameName : String = "level1";
private var refreshing : boolean = false;
private var hostData : HostData[];
 
function OnGUI () {    
   if(!Network.isClient && !Network.isServer) {
       if (GUI.Button(Rect(Screen.width/5,Screen.height/7,100,20),"Start Server")) {
         startServer();
       }
       if (GUI.Button(Rect(Screen.width/5,Screen.height/7 + 30,100,20),"Refresh Hosts")){
          Debug.Log("Refresh");
          refreshHostList();
       }
       if(hostData) {
           for(var i:int = 0; i<hostData.length; i++) {
              if(GUI.Button(Rect(Screen.width/2,Screen.height/2 + 60,100,20),hostData*.gameName)) {*

Network.Connect(hostData*);*
}
}
}
}
}

function Update () {
if(refreshing) {
if(MasterServer.PollHostList().Length > 0) {
refreshing = false;
Debug.Log(MasterServer.PollHostList().Length);
hostData = MasterServer.PollHostList();
}
}
}

function startServer () {
Network.InitializeServer(32,25001, !Network.HavePublicAddress);
MasterServer.RegisterHost(gameName, “Tutorial Game”, " this is a tutorial");
}

function OnServerInitialized () {
Debug.Log(“server initialized”);
spawnPlayer();
}

function OnConnectedToServer () {
spawnPlayer();
}

function spawnPlayer () {
Network.Instantiate(playerPrefab, spawnObject.position, Quaternion.identity, 0);
}

function OnMasterServerEvent(mse:MasterServerEvent) {
if(mse == MasterServerEvent.RegistrationSucceeded) {
Debug.Log(“Registered Server”);
}
}

function refreshHostList () {
MasterServer.RequestHostList(gameName);
refreshing = true;
}
for some reason the server works fine but when i open up a second copy of the game it doesn’t act like their is two players in the game except the window that I made the server with, controls both it and the second window but I checked the box for “Run in background” therefore it isn’t that but maybe i just implemented the script wrong I don’t know… If I have this script what would be the proper way to add it to my game?

The issue does not come from the Network script, at least I would guess.
Both objects move together so I would think it comes from the control script where you do the movements.

You are probably missing :

function Update()
{
    if (networkView.isMine)
    {
        InputMovement();
    }
}

The check makes sure you are controlling the appropriate object.