Instantiating prefabs creates a clone, not instance of the prefab

I’m working on a custom solution for solving nested prefabs in a personal project. Right now, I’m trying to get a script to instantiate a prefab at runtime, update all of the nested prefabs withinin it, apply those changes, then remove it.

The problem is, when I instantiate the parent prefab, it has the word ‘clone’ next to it and doesn’t seem to count as an actual instance of the prefab, just a unique game object based on the prefab. In other words, even if I made changes to it manually in the editor, there is no ‘apply’ button to apply changes to the original prefab - I’m talking about the parent, not the nested prefabs.

So if I instantiate a prefab through editor code like this:

 GameObject currentTile = Instantiate(tile.gameObject);

Which is a game object with many nested prefabs, and then I make changes in the editor to currentTile, currentTile has no ‘Apply’ button to update it’s original prefab.

Anyone experienced this and know why it’s not counting as an instance of the prefab?

If you want to do this in the Editor and want it to be an “instance” of the Prefab, you need to use PrefabUtility.InstantiatePrefab.
Note that at runtime, Prefabs don’t exist, they’re nothing but serialised GameObjects.