Describe the project you are working on:
Godot Editor
Describe the problem or limitation you are having in your project:
Creating scenes which inherit Node often (writing test scenes etc.)
Describe the feature / enhancement and how it helps to overcome the problem or limitation:
Adding an item to quickly create a scene inheriting from the core Node type.
Describe how your proposal will work, with code, pseudocode, mockups, and/or diagrams:
Just like we have "2D Scene" and "3D Scene" options, there should be an option to create a plain "Scene" which is agnostic.

If this enhancement will not be used often, can it be worked around with a few lines of script?:
There's hardly a way to override the "Create Root Node" form.
There are currently several ways to workaround this:
You have to click "Custom Node" just to instantiate a scene inheriting from Node.
Adding Node to a list of favorites, and clicking on the "Star" to display that. The problem with this approach is that I have to re-add other built-in nodes (Node2D, Control etc) to the list to make it look like the default one without having to switch between favorites and defaults.
Navigate with the mouse to New Scene, proceed with keyboard with Ctrl + A โ Enter https://github.com/godotengine/godot-proposals/issues/1206#issuecomment-659807343.
To summarize, you have to use both the mouse and the keyboard in all those cases (which is known to be slow for developers), and that's a lot of steps just to create a scene with a root Node, and even if something can be tweaked, it's tiresome to do this process throughout other projects and/or machines.
Related usability proposal: #679.
Is there a reason why this should be core and not an add-on in the asset library?:
Because Node is the most fundamental part of the engine.
I like the idea, but I'm afraid it might end up being confusing to beginners. Creating scenes with Node as a root node tends to be a relatively advanced use case. (It's definitely useful, but it's a double-edged sword for beginners.)
People who are trying out Godot might end up creating scenes with Node as root, then add Node2D/Node3D children and wonder why they don't inherit the parent's transform when instancing the scene in question.
(1) I think moving it down the list (above Custom Node) would be a good compromise then, if we go for "most frequently used" over "base datatypes" order logic.
(2) But it's going to break visually if the Scene (Node) is below the User Interface (Control), so perhaps it would be better to put the Scene just below 3D Scene.
Feel free to react with ๐ for (1) or ๐ for (2) to express your opinion.
Try Ctrl + A -> Enter. Takes less than a second to create root Node.
Try Ctrl + A -> Enter. Takes less than a second to create root Node.
Thanks, yeah seems like the best workaround for now. I still think it would be much faster to do this with the mouse, unless we provide a default shortcut for New Scene, which is currently not assigned to anything in 3.2, yet we have a shortcut for Open Scene.
I've assigned Ctrl + Shift + A for New Scene now ("Add Scene").
Now, it takes Ctrl + Shift + A โ Ctrl + A โ Enter to add a Node, which takes less than 0.5 seconds.
In fact I wish there was something like what #70 proposes, so these actions could be mapped to single shortcuts. Something like: "New Node Scene" action. I'm not quite sure if that's possible to do via plugin currently.
In any case, this still requires some manual tweaking across projects, defeating the purpose of usability.
I like the idea, but I'm afraid it might end up being confusing to beginners.
As one of the Godot contributors says, no need to babysit people. Personally, as a beginner I'd prefer to find out the particular Node limitations earlier (which are just features if you look at it from the other angle), which did simplify some of my "ignore parent transform" cases, which is more fruitful down the road if a beginner persists in the learning adventures. ๐
Another issue with the Node2D or Spatial/Node3D is that it's easy to offset the transform/position away from Vector2(0, 0), and then wonder why your level is not aligned to center properly (unless a beginner is aware of the "Lock" feature). But yeah I guess it's more of an issue for when you want to create a "character-as-a-scene" rather than "level-as-a-scene" specifically, that's why I mentioned my use case of creating test scenes, so that they can be run individually with F6 and to prevent propagating transform changes, so the scenes remain reproducible.
That's where I have to bring up my philosophical inquiries again: is the engine caters to beginner use cases or strives to optimize the experience of seasoned developers? I hope we can come up with some compromise at least, else the proposal doesn't make sense otherwise. And I understand that it's a dilemma which is difficult to resolve, but I think that the engine should strive for completeness given the simplicity, and this proposal just fills in the hole.
While attempting to find out some context regarding this feature, git blame lead me to several findings.
I've just discovered this closed request in the main repository suggested by @willnationsdev: godotengine/godot#20238, with quite similar use cases... which is 95% close to this proposal, with very similar reasonings...
Unfortunately, this was already frowned upon by @reduz in https://github.com/godotengine/godot/pull/20238#issuecomment-406639183, so I dunno what to say really, just read my previous post.
I strongly believe the engine should cater to both beginner and power users as articulated there. And this is so fundamental that I find the entire discussion in godotengine/godot#20238 too verbose and not worth it... This is the Node, for Godot sake! :godmode:
I repeat, this is the Node, the word written on the first pages of documentation and tutorials, which governs the entire development philosophy and what distinguishes it from other engines.
I'm totally fine if this is added to the bottom of the list in priority. I've even updated the screenshot to reflect this.

See? They even share the same shape for the editor icon. ๐
This is still grouped with scene related nodes as to not to break it visually, and taking into account the "Edge effect" when your attention span only grabs and remembers the first and the last elements on a list, this how our brains work. So, I believe the most used nodes would be "2D Scene" and "Control", while "3D Scene" and "Scene" remain less used, correct me if I'm wrong.
Workaround for if you actually need this often: Add Node to your favorite list and click the favorite button in the Create Root Node panel. It will show up there. This will hide all the other options, but can add them back if you want.
Thanks and yeah, I've forgot to mention some possible performance issues when it comes to adding favorite nodes to the list: godotengine/godot#33960. This is not an accuse to go and implement this proposal, but those are the reasons why I tend to prefer these small features to be on the engine level if they also allow to bypass slow parts of the engine.
unless we provide a default shortcut for New Scene
Why would we need a default shortcut when you can assign one yourself xd Custom shortcuts are a valid solution, I once opted for removing node deletion confirmation dialog, but then realized I can just use "Delete (No Confirm)", which is unbound by default and quite hidden.
To summarize, you have to use both the mouse and the keyboard in all those cases (which is known to be slow for developers), and that's a lot of steps just to create a scene with a root Node, and even if something can be tweaked, it's tiresome to do this process throughout other projects and/or machines.
And what will you do with the saved time when this gets added? ๐
I'm not really against adding Node to the quick list, but I fail to see why it is fundamental. In my experience, I either use the base node type (Node2D/Spatial), UI or "Other Node" (mostly custom classes). I have hundreds of scenes in my project and only autoloads use Node roots (and even not all of them).
What scenes do you use Node as root and why? (I see you mentioned test scenes, but it doesn't tell anything really)
Add Node to your favorite list and click the favorite button in the Create Root Node panel. It will show up there.
Good to know this exists .-.
Why would we need a default shortcut when you can assign one yourself xd Custom shortcuts are a valid solution, I once opted for removing node deletion confirmation dialog, but then realized I can just use "Delete (No Confirm)", which is unbound by default and quite hidden.
I override "Delete (No Confirm)" as well btw...
I think this is again one of those "power user" use cases... I have several "self-contained" Godot versions installed (2.1, 3.0, 3.1, 3.2, master) on my machine, and they all differ in terms of editor settings (oftentimes, running an older version of Godot would overwrite my editor settings in later versions, if they weren't put as "self-contained"). It's difficult to synchronize the keyboard shortcuts and other settings that way. So I'm doing my best to convey my use cases so they can be actually implemented in future Godot versions by default. It's a long-term investment!
To summarize, you have to use both the mouse and the keyboard in all those cases (which is known to be slow for developers), and that's a lot of steps just to create a scene with a root Node, and even if something can be tweaked, it's tiresome to do this process throughout other projects and/or machines.
And what will you do with the saved time when this gets added? ๐
I've probably "wasted" more time writing out this proposal and there's no way back to resurrect that time, but I'm practicing my assertiveness and English writing skills to say the least. This would totally save the time for other users with no sweat and tears from their part, so consider this an act of altruism from my side, hehe. ๐
I'm not really against adding Node to the quick list, but I fail to see why it is fundamental. In my experience, I either use the base node type (Node2D/Spatial), UI or "Other Node" (mostly custom classes). I have hundreds of scenes in my project and only autoloads use Node roots (and even not all of them).
What scenes do you use Node as root and why? (I see you mentioned test scenes, but it doesn't tell anything really)
I'm using Gut test framework. It has the base test script implemented as a node, so I need to write those test scenes inheriting from Node. This proposal would promote test-driven development for more or less experienced people, and you know, people generally avoid writing tests. This proposal makes those steps easier to perform. It's small, but all those usability enhancements could really make a difference.