Another Scripting Question

I have wrote this script which is why it dosent work. But what I want it to do is spawn a particle effect called blood splat when my cannon ball prefab collides with something that has a tag of “enemy” and then to destroy itself. But I have an error saying “expecting. insert a semicolon at the end” and I cannot fix it, can anyone help me with this?

var blood splat: GameObject;

function OnCollisionEnter (hit:Collison){
     if(hit.collider.tag == "enemy"){
     
         var blood splat = Instantiate(blood Splat, transform.position, Quaternion.identity);
         Destroy(gameObject);
         Destroy(expl, 3);
     }
 }

This is almost right, except for two things-

1- You have a space in the middle of one of your variable names. Don't do that.

var blood splat : GameObject;

Should be

var bloodSplat : GameObject;

2- Instead of calling the blood splat clone 'expl' like I think you expected to, you are confusing things by copying over the same name-

    var blood splat = Instantiate(blood Splat, transform.position, Quaternion.identity);

should be

var expl = Instantiate(bloodSplat, transform.position, Quaternion.identity);

The rest of the script is fine.

Another thing, if your blood splat is a particle effect, you can just check 'AutoDestruct' in the particle animator component, and it will delete itself after it finishes! No need for the 'Destroy(expl, 3);' line. All in all, you could just simplify that entire bit to be more like

Instantiate(bloodSplat, transform.position, Quaternion.identity);
Destroy(gameObject);

without worrying about the other bit (which was the cause of all your woes in the first place).