Once game is built, it crashes when enemy dies.

Hey guys, so I got this problem; when I build and run my game and kill an enemy my game just closes like it crashed. This happens everytime with every enemy. When i play the exact same game in Unity it doesn’t crash when I kill an enemy. What could cause this? Anything I should look into? Do you need to see any code?

UPDATE: It has to do something with these two codes, because I have both of them only on crates, and when I try to destroy the crates my game crashes. So that’s good I guess…

UPDATES AGAIN: I’m pretty sure it has to do with the health code, I took off the destroy object code and it still crashed.

Code attached to enemy:
Default Untiy3d Health Code

#pragma strict

public var maxHealth : float = 100.0;
public var health : float = 100.0;
public var regenerateSpeed : float = 0.0;
public var invincible : boolean = false;
public var dead : boolean = false;

public var damagePrefab : GameObject;
public var damageEffectTransform : Transform;
public var damageEffectMultiplier : float = 1.0;
public var damageEffectCentered : boolean = true;

public var scorchMarkPrefab : GameObject = null;
private var scorchMark : GameObject = null;

public var damageSignals : SignalSender;
public var dieSignals : SignalSender;

private var lastDamageTime : float = 0;
private var damageEffect : ParticleEmitter;
private var damageEffectCenterYOffset : float;

private var colliderRadiusHeuristic : float = 1.0;


function Awake () {
	enabled = false;
	if (damagePrefab) {
		if (damageEffectTransform == null)
			damageEffectTransform = transform;
		var effect : GameObject = Spawner.Spawn (damagePrefab, Vector3.zero, Quaternion.identity);
		effect.transform.parent = damageEffectTransform;
		effect.transform.localPosition = Vector3.zero;
		damageEffect = effect.particleEmitter;
		var tempSize : Vector2 = Vector2(collider.bounds.extents.x,collider.bounds.extents.z);
		colliderRadiusHeuristic = tempSize.magnitude * 0.5;
		damageEffectCenterYOffset = collider.bounds.extents.y;
		
	}
	if (scorchMarkPrefab) {
		scorchMark = GameObject.Instantiate(scorchMarkPrefab, Vector3.zero, Quaternion.identity);
		scorchMark.active = false;
	}
}

function OnDamage (amount : float, fromDirection : Vector3) {
	// Take no damage if invincible, dead, or if the damage is zero
	if(invincible)
		return;
	if (dead)
		return;
	if (amount <= 0)
		return;
	
	// Decrease health by damage and send damage signals
	
	// @HACK: this hack will be removed for the final game
	//  but makes playing and showing certain areas in the
	//  game a lot easier
	/*	
	#if !UNITY_IPHONE && !UNITY_ANDROID
	if(gameObject.tag != "Player")
		amount *= 10.0;
	#endif
	*/
	
	health -= amount;
	damageSignals.SendSignals (this);
	lastDamageTime = Time.time;
	
	// Enable so the Update function will be called
	// if regeneration is enabled
	if (regenerateSpeed > 0)
		enabled = true;
	
	// Show damage effect if there is one
	if (damageEffect) {
		damageEffect.transform.rotation = Quaternion.LookRotation (fromDirection, Vector3.up);
		if(!damageEffectCentered) {
			var dir : Vector3 = fromDirection;
			dir.y = 0.0;
			damageEffect.transform.position = (transform.position + Vector3.up * damageEffectCenterYOffset) + colliderRadiusHeuristic * dir;
		}
		// @NOTE: due to popular demand (ethan, storm) we decided
		// to make the amount damage independent ...
		// var particleAmount = Random.Range (damageEffect.minEmission, damageEffect.maxEmission + 1);
		// particleAmount = particleAmount * amount * damageEffectMultiplier;
		damageEffect.Emit();// (particleAmount);
	}
	
	// Die if no health left
	if (health <= 0) {
		health = 0;
		dead = true;
		dieSignals.SendSignals (this);
		enabled = false;
		Application.Quit();
		
		// scorch marks
		if (scorchMark) {
			scorchMark.active = true;
			// @NOTE: maybe we can justify a raycast here so we can place the mark
			// on slopes with proper normal alignments
			// @TODO: spawn a yield Sub() to handle placement, as we can
			// spread calculations over several frames => cheap in total
			var scorchPosition : Vector3 = collider.ClosestPointOnBounds (transform.position - Vector3.up * 100);
			scorchMark.transform.position = scorchPosition + Vector3.up * 0.1;
			scorchMark.transform.eulerAngles.y = Random.Range (0.0, 90.0);
		}
	}
}

function OnEnable () {
	Regenerate ();	
}

// Regenerate health

function Regenerate () {
	if (regenerateSpeed > 0.0f) {
		while (enabled) {
			if (Time.time > lastDamageTime + 3) {
				health += regenerateSpeed;
				
				yield;
				
				if (health >= maxHealth) {
					health = maxHealth;
					enabled = false;
				}
			}
			yield WaitForSeconds (1.0f);
		}
	}
	
	
}

/*function OnTriggerEnter(other : Collider){
    if(other.tag == "Health"){
    health += 0.1;
       Destroy(other.gameObject);
       }

       */

***Destroy Object code

#pragma strict

var objectToDestroy : GameObject;

function OnSignal () {
	Spawner.Destroy (objectToDestroy);
}

That’s it, plus a movement code but I don’t think that’s necessary.

You have Application.Quit(); in line 98. Remove that and everything should work. It does nothing in the Editor, so that could be why your standalones seems to ‘crash’.