Instantiate object with different variables in a script

I’m trying to instantiate a object that has a script attached to it. I’d like that object to spawn with a public variable that I can change depending on the object, in this case ParticleScale.

Here is my script:

    GameObject go = (GameObject)Instantiate (explosion, transform.position, transform.rotation);
    F3DParticleScale stop = go.GetComponent <F3DParticleScale>();
    stop.ParticleScale = particleSize;

Regradless of the value of particleSize, the script always creates the explosion with a size of 1.
Is this because after the object is instantiated this script no longer has control of the variable? Or did I do something else wrong?

You should always retain control as long as you declare a GameObject type for the Instantiated object, which is what you did.

Hmm, is it because of the F3DParticleScale script? Maybe in that script, it has something like Awake() or Start() that takes the ParticleScale value before you set it to your own particleSize. I know F3DParticle is the Sci-Fi Effects asset but I’ve never bought it so I"m not sure exactly how it works.