What is wrong with this scoreboard?

I am trying to create a scoreboard for multiplayer. I want the scoreboard to track player’s name, kills, death and ping. I also want the server to be able to kick players using this. This will provide the framework for kicking and a scoreboard. Here is the code:

#pragma strict

import System.Text.RegularExpressions;

//Strings
private var Username : String;
private var players : String[];
private var pings : String[];

//Ints
private var myConnection : int = -1;
private var i : int = 0;
private var a : int = 0;
private var kills : int[];
private var deaths : int[];

//Boolean
private var showScoreboard : boolean = false;

//KeyCodes
var toggleKey : KeyCode = KeyCode.Tab;

//NetworkPlayers
var connections : NetworkPlayer[];

function Start()
{
	Username = PlayerPrefs.GetString("Username", "Guest");
	if (Network.isServer)
	{
		connections = Network.connections;
		ServerConfig();
	}
	if (Network.isClient)
	{
		if (myConnection == -1 && Network.isClient)
		{
			for (a = 0; a < connections.Length; a++)
			{
				if (connections[a] == networkView.owner)
				{
					myConnection = a + 1;
					networkView.RPC("TellScoreboardName", RPCMode.All, Username, myConnection);
				}
			}
		}
	}
}

function Update()
{
	if (myConnection == -1 && Network.isClient)
	{
		for (a = 0; a < connections.Length; a++)
		{
			if (connections[a] == networkView.owner)
			{
				myConnection = a + 1;
				networkView.RPC("TellScoreboardName", RPCMode.All, Username, myConnection);
			}
		}
	}
	if (Input.GetKeyDown(toggleKey))
	{
		showScoreboard = true;
	}
	if (Input.GetKeyUp(toggleKey))
	{
		showScoreboard = false;
	}
}

function OnGUI()
{
	if (showScoreboard && Network.isServer)
	{
		GUI.Window(0, Rect(Screen.width /4, Screen.height/4, Screen.width /2, Screen.height/2), Scoreboard, "Scoreboard");
	}
}

function Scoreboard(windowID : int)
{
	GUI.Label(Rect(5,30,250,25), "Name");
	GUI.Label(Rect(260,30,50,25), "Kills");
	GUI.Label(Rect(315,30,50,25), "Deaths");
	GUI.Label(Rect(370,30,100,25), "Ping (Avg)");
	for (var PL : int = 0; PL < players.Length; PL++)
	{
		GUI.Label(Rect(5,60 + (25 * PL),250,25), players[PL]);
	}
	/*for (i = 0; i < kills.Length; i++)
	{
		GUI.Label(Rect(260,60 + (25 * i),50,25), kills*.ToString());*
  • }*
  • for (i = 0; i < deaths.Length; i++)*
  • {*
    _ GUI.Label(Rect(315,60 + (25 * i),50,25), deaths*.ToString());_
    _
    }_
    _
    for (i = 0; i < connections.Length; i++)_
    _
    {_
    _ GUI.Label(Rect(370,60 + (25 * (i + 1)),100,25), Network.GetAveragePing(Network.connections[i + 1]) + “ms”);
    }
    /
    * if (Network.isServer && connections.Length > 0)*
    * {*
    * for (var PK = 0; PK < (connections.Length + 1); PK++)*
    * {*
    if(GUI.Button(Rect(425, 50 + (25 * (PK + 1)), 100,25), “Kick”))
    * {*
    networkView.RPC(“KickPlayer”, RPCMode.AllBuffered, PK, connections*);
    Network.CloseConnection(connections, true);
    }
    }
    }
    }*_

function ServerConfig()
{
* var tempIntNoPlayers : int = GameObject.FindGameObjectWithTag(“MainCamera”).GetComponent(NetworkManager).NoOfPlayers;*
* players = new String[tempIntNoPlayers + 1];*
* kills = new int[tempIntNoPlayers + 1];*
* deaths = new int[tempIntNoPlayers + 1];*
* pings = new String[tempIntNoPlayers + 1];*
* players[0] = Username;*
* kills[0] = 0;*
* deaths[0] = 0;*
* pings[0] = “0”;*
}

@RPC
function ScoreboardUpdate(pls : String, info : NetworkMessageInfo)//, kls : int[], dts : int[], png : String[])
{
* var stringArray : String[] = Regex.Split(pls, “-”);*

* players = stringArray;*
_ /kills = kls;
deaths = dts;
pings = png;/

}_

@RPC
function TellScoreboardName(pl : String, connectionInt : int, info : NetworkMessageInfo)
{
* if (Network.isServer)*
* {*
* players[connectionInt] = pl;*
* }*
}

@RPC
function KickPlayer(playerNo : int, player : NetworkPlayer)
{
* if (Network.isServer)*
* {*
* GameObject.FindGameObjectWithTag(“MainCamera”).GetComponent(FPSChat).addGameChatMessage(players[playerNo]+" was kicked from the game");*
* }*
}
Any suggestions will help. Cheers,
Stormy102

The client never gets the connections array if im not mistaking, so the length that it tries to get will always be 0.