OnCollisionEnter2D and Boolean variables?

I have a game in which when the player touches a ball its game over. But this only seems to be working if it hits the original ball and not a clone, if it hits a clone the gameOver variable stays false but if it hits the original it switches to true. Any ideas how to make the clones switch it to true?

#pragma strict
var Timer : float = 0;
var Text : UnityEngine.UI.Text;
var Ball : GameObject;
var ballTimer : float = 0;
private var ballSpawned = false;
var gameOver = false;
var gameObjects : GameObject[];
var StartButton : GameObject;
var BallSpawn : GameObject;
var spawnScript : BallSpawner;




function Start () {
	if (spawnScript == null){
	spawnScript = GetComponent(BallSpawner);
	}
	var randomNumber = Random.Range(0, 2);
	if (randomNumber <= 0.5){
		GetComponent.<Rigidbody2D>().AddForce (new Vector2 (30, -30));
		}
	else{
	GetComponent.<Rigidbody2D>().AddForce (new Vector2 (-30, 30));
	}
	}

function Update()
{

	if(!gameOver){
		Timer += 1 * Time.deltaTime;
		ballTimer += 1 * Time.deltaTime;
    	 Text.text = "Score: " + Timer;
    	 
    	 if (ballTimer >= 5)
    	 {
    	 	Dot();
    	 	ballTimer = 0;
    	 }
     }
}

function PlayAgain ()
{
	StartButton.active = false;
	Ball.transform.position = new Vector2(0,0);
	ballTimer = 0;
	Timer = 0;
	spawnScript.ballTimer1 = 0;
	//yield WaitForSeconds(1);
	Ball.active = true;
	gameOver = false;
	
	GetComponent.<Rigidbody2D>().AddForce (new Vector2 (-30, 30));
	}
	

	
	function OnCollisionEnter2D (colInfo : Collision2D) {
	if (colInfo.collider.tag == "Player") {
		gameOver = true;
		gameObjects =  GameObject.FindGameObjectsWithTag ("Avoid");
		 for(var i = 0 ; i < gameObjects.length ; i ++)
         //Destroy(gameObjects*);*

gameObjects*.active = false;*
StartButton.active = true;
* }*

}

function Dot()
{
* BallSpawn.active = true;*
yield WaitForSeconds(2);
BallSpawn.active = false;
}

Here is the BallSpawner Script
#pragma strict

var Ball : GameObject;
var ballTimer1 : float = 0;
private var ballSpawned = false;
var gameObjects : GameObject[];
var ballSpawn : GameObject;
var ballScript : BallScript;

function Start()
{
* Ball = GameObject.Find(“Ball”);*

* if (ballScript == null)*
* {*
* ballScript = Ball.GetComponent(BallScript);*
* }*
}

function Update()
{
* if (ballScript.gameOver == false)*
* {*
ballTimer1 += 1 * Time.deltaTime;

if (ballTimer1 >= 5 && !ballSpawned){
SpawnBall();
ballTimer1 = 0;
ballSpawned = true;
}
}

}

function SpawnBall()
{

* yield WaitForSeconds(2);*
Destroy(Instantiate(Ball, new Vector2(0,0), Quaternion.identity), 80f);
ballSpawned = false;

}

It would be more helpful if you can post your BallSpawner script, but I am guessing the clone you spawned does not contain the same components as the original. Make sure the clone prefab you are spawning contains the same components the original ball have.

Just created new script and is working fine now, thanks to everyone who commented.