Player2 Not Receiving an RPC

var redPrefab : Transform;
var bluePrefab : Transform;
var redSpot : GameObject;
var blueSpot : GameObject;
var gamesName = "Enter the name of your game!";
var gamesDesc = "Enter a short description of your game!";
var gameMaster = false;
var gameJoiner = false;
var startUp = false;
var gameInPlay = false;
var player1 = false;
var player2 = false;
var playersFull = false;
var notMain = false;

function OnGUI () {
	if (!gameMaster  !gameJoiner  !gameInPlay  !notMain) {
		if (GUILayout.Button("Create Game")) {
			gameMaster = true;
		}
		if (GUILayout.Button("Join Game")) {
			gameJoiner = true;
		}
	}
	if (gameMaster == true){
		gamesName = GUILayout.TextField(gamesName);
		gamesDesc = GUILayout.TextArea(gamesDesc);
		if (GUILayout.Button ("Create Game")) {
			Network.useNat = !Network.HavePublicAddress();
			Network.InitializeServer(1, 25002);
			MasterServer.RegisterHost("RandomBoxWithCubesGame",gamesName,gamesDesc);
			gameMaster = false;
			notMain = true;
			player1 = true;
		}
	}
	if (gameJoiner == true) {
		var data : HostData[] = MasterServer.PollHostList();
		for (var element in data) {
			GUILayout.BeginHorizontal();	
			var name = element.gameName + ": " + element.comment + " (" + element.connectedPlayers + " / " + element.playerLimit + ")";
			GUILayout.Label(name);	
			GUILayout.Space(5);
			GUILayout.FlexibleSpace();
			if (GUILayout.Button("Connect")) {
				Network.useNat = element.useNat;
				if (Network.useNat) {
					print("Using Nat punchthrough to connect to host");
				} else {
					print("Connecting directly to host");
					Network.Connect(element.ip, element.port);
				}
				GUILayout.EndHorizontal();
			}

		}
		MasterServer.RequestHostList("RandomBoxWithCubesGame");

	}
	if (notMain  !playersFull) {
		GUILayout.Label ("Waiting for other players to join");
	}
	if (playersFull  !gameInPlay) {
		if (player1) {
			if (GUILayout.Button("All players have joined, Start Game")) {
				startIt ();
			}
		} else {
			GUILayout.Label("Waiting for Player 1 to start the game");
		}
	}
	if (startUp) {
		if (player1) {
			Network.Instantiate(redPrefab,redSpot.transform.position,Quaternion.identity,0);
		}
		if (player2) {
			Network.Instantiate(bluePrefab,blueSpot.transform.position,Quaternion.identity,0);
		}
		startUp = false;
	}	
}

function OnConnectedToServer () {
	gameJoiner = false;
	notMain = true;
	player2 = true;
}

function OnPlayerDisconnected (player: NetworkPlayer) {
	Network.RemoveRPCs (player);
	Network.DestroyPlayerObjects (player);
}

function Awake () {
	MasterServer.ClearHostList();
	MasterServer.RequestHostList("RandomBoxWithCubesGame");
}

function FixedUpdate () {
	if (Network.connections.length > 0) {
		playersFull = true;
	}
}

@RPC
function startIt () {
	gameInPlay = true;
	startUp = true;
}

This script has come a long ways since I started. It now has nice fancy HUDs for everything. :stuck_out_tongue: Now my problem is, when Player 1 presses the “All players have joined, Start Game” button, which calls the RPC function startIt, it never registers with Player2. This one is really driving me crazy. Help!

:slight_smile:

You only execute StartIt() locally, not as an RPC call, networkView.RPC(“StartIt”, …)

Aaah, I knew I was forgetting how to do RPCs! >.< Thanks! n_n