Coming from Unity where prefab variants feel relatively sane, scene inheritance in Godot 4 has been genuinely confusing me for months. The concept is clear enough on paper (inherit a base scene, override properties or add children), but in practice I keep running into friction.
The specific thing that keeps catching me out: if you modify the base scene's structure (rename a node, move something in the hierarchy), inherited scenes break in ways that aren't always obvious. Godot tries to reconcile the changes but sometimes you get silent drift where an inherited scene is referencing a node that no longer exists, and you don't find out until runtime.
I've also found that the inspector UI for inherited scenes is confusing. It's not always clear what's overridden vs inherited without hunting through the full property list. Unity's prefab overrides panel is ugly but at least it's explicit.
What I've been doing instead for most things: just duplicating the scene and accepting the maintenance overhead. Which feels wrong. If I update the "base" enemy, I have to remember to update 4 variants. But at least nothing silently breaks.
There's clearly a right way to use inherited scenes. I see them recommended everywhere, but I haven't found a workflow that feels solid. Do you keep your base scenes very flat and stable? Avoid renaming nodes after variants already exist? Some other strategy I'm missing?
Or is the answer just "use composition instead": separate scenes for components assembled at runtime, and inherited scenes are really only reliable for UI hierarchies where the structure stays stable?
Genuinely unsure if I'm using it wrong or if it's just kind of rough around the edges.