Variables stay overwritten in inspector

So…in one of my prefab gameObject’s scripts, I’m assigning a prefab gameObject as a Transform-- in order to instantiate it later.

Unity can’t seem to find the object when it runs the script. And I suspect it’s because it says the variable is overwritten in the inspector, because it actually knows what the object is in the script, when I use a print statement. But when I push “apply” on this object after assigning the gameObject, the variable stays emboldened, and appears to still be overwritten. Is this the cause of the problem? Why isn’t hitting apply working? Even when I write a new variable and try assigning and then applying, and even when I drag the prefab onto the script and all that, no dice.

I’m confused. Why? Help!

I guess you have assigned something that isn’t an asset. You can’t assign references to scene objects to prefabs because those objects only exists in the scene. Prefabs are assets. When you instantiate a prefab the prefab becomes a scene object and can reference other objects but that change can’t be saved into the prefab. Only references to other prefabs are possible.