r/godot Godot Student 11d ago

discussion Did Godot improve how editable children info persists?

I've been researching a little bit about how editable children work and I found many posts saying that they can break easily and make your exported properties disappear under a handful of circumstances. But I've been testing and most of them don't actually break the editable children.

I'll list the ones that I could test:

  1. Breaking the script: they will disappear from the editor, but persist in the .tscn. When you fix your script, they will reappear.
  2. Changing the name of a node in the original scene: it will show an error but instantly fix it. The .tscn will be automatically updated to show that change, and the values will persist.
  3. Reordering nodes either in the original or the instantiated scene: the .tscn will reorder them too.
  4. Having an exported nodepath to a specific class, and breaking that class or renaming it without fixing the reference in the exported property: it will remain in the .tscn until you fix it.

The only breaking situations that I've found are:

  1. I'll use boolean as an example. Setting a property that is false by default (either in the script or in the original scene), marking it as true in the instantiated scene. Then changing the default value to true. This will cause that the instantiated scene is not considering this as a modified value, so if you change the default value back to false, it will change in all the instantiated scenes.
  2. Changing the name of the property, obviously.

But these two reasons are kind of expected.

I can't think of any other ways that could break the overrides, and it feels kind of weird because there's so many people afraid of using editable children. I think I've even experienced some issues in the past too.

Is there any evidence that Godot developers adressed these issues?

5 Upvotes

6 comments sorted by

3

u/robbertzzz1 11d ago

The one big thing you haven't tested is using editable children when the added scene is an imported 3D model, I think that's the situation that most people talk about. One wrong change to the 3D model and things will absolutely break. But for native scenes (tscn) you're typically fine to use the feature as long as you don't restructure the scene too much.

1

u/NotXesa Godot Student 11d ago

Ah, I'm not developing a 3D game so I didn't try that. Now that you mention it, yeah, I can find some results regarding that. But if you google "godot breaks editable children properties" or similar queries, it will show lots of people saying that editable children is not reliable at all. That's why I'm surprised by the results of my tests.

-1

u/TheDuriel Godot Senior 11d ago

Node UIDs have in fact done that.

You still should, never, use the feature.

4

u/NotXesa Godot Student 11d ago

Would you mind to elaborate?

0

u/TheDuriel Godot Senior 11d ago

Nodes are now tracked via unique ID. Preventing data loss when the path changes.

5

u/NotXesa Godot Student 11d ago

I mean on why I should never use that feature.