In the Scene Editor I can select “Change Type” on various Nodes, but on some it is not available. What logic determines this? Also why is it possible to change the root node type via advanced import, but not via the Scene Editor.
I have plenty of nodes, where I can select “Change Type” in the context menu below “Rename”, but with some nodes it is just not there. See screenshot as an example.
I assume it’s because that ain’t just a node, but (the root node of) an instantiated scene. You’d have to open that scene in the editor and change the node’s type there (and save the scene afterwards). This will apply the change to every instance of that scene though.
I know what it looks like. I was asking for a scene tree screenshot so I could answer why. But here are some possibilities.
If a node is yellow, it is inherited from another scene and cannot be changed. It can only be changed in the original scene. You can change this my selecting Make Local in the context menu you showed, near the bottom.
If you are importing a 3D model, you can only change the base node if you do it in the import settings. Though Make Local might solve your problem.
Just to clarify, in 2D inherited nodes are not yellow by default. (I don’t know about 3D)
If you enable editable children on them, then those child nodes will be yellow.
The easiest way to tell if the node is inherited is the icon of a movie clapper beside it.
Also, when you hover the mouse over it, the tool tip will state “Instance:…”
I may have mis-communicated. I meant that a yellow node means the scene is an inherited scene, not the node itself.
class_name MyNode extends Button
In this code MyNode is a node that inherits from button, but it is not an inherited scene.
In contrast, an Inherited Scene is created by creating a new scene, and then instead of giving it a root root node type, you instantiate a scene. Alternately, you right-click on a scene in the FileSystem and select New Inherited Scene. Either way you get something like this: