Instantiating a prefab from a clone of the prefab

I’m currently working on an ability for my game that causes fireballs to prong when they collide into something. In order to accomplish this, I have created a prefab for the fireball, which is fired from a Player class. However, when I try to instantiate that same prefab from a component on the cloned object, the newly created object is copying the values of the instantiated object rather than the prefab it is based on. Is there a workaround for this that does not involve manually reassigning all script values on the instantiated object, or is there something I am not aware of going on here?

Just to reiterate and in case the description above wasn’t clear, here is the basic problem:

Step 1: Player launches fireball
Step 2: Fireball hits wall
Step 3: Fireball Instantiates a new object based on the same prefab it was created from

Result: A copy of the fireball already in the scene is being created
Expected Result: A new copy of the prefab is created

At what point do you give the created fireball instance a reference to its prefab? If you have done it at the prefab level (i.e. the prefab has a link to itself) then that won’t work - as soon as it’s instantiated the link will point at the new instance (itself)

Possible Solution -
Give the fireball a variable of type gameobject (sounds like you already have such a variable on one of its components)
When the player creates the fireball instance, set this variable to the prefab
When the fireball needs to create a new instance use this variable

Thanks for the suggestion George. I managed to get a workaround by storing a reference to this and other common prefabs in a Global Data Object, based on this thread I just came across.

http://forum.unity3d.com/threads/57312-Reference-to-prefab-changing-to-clone-self-reference

You were right about me establishing the prefab reference at the prefab level, which seems to be the core of the issue. Is this a bug? There seems to be some debate as to whether or not this is the intended behavior.

I’m not sure that it is a bug but perhaps the editor should stop you doing this as there is no reason why you would want a gameobject to have a link to itself. Anyway, storing your prefab references somewhere else as you have done is the way to go