diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp index 45622d43e8a..9a4bd9a567d 100644 --- a/editor/scene_tree_dock.cpp +++ b/editor/scene_tree_dock.cpp @@ -1402,6 +1402,8 @@ void SceneTreeDock::_create() { Node *newnode = Object::cast_to(c); ERR_FAIL_COND(!newnode); + Node *default_oldnode = Object::cast_to(ClassDB::instance(n->get_class())); + List pinfo; n->get_property_list(&pinfo); @@ -1410,10 +1412,13 @@ void SceneTreeDock::_create() { continue; if (E->get().name == "__meta__") continue; - newnode->set(E->get().name, n->get(E->get().name)); + if (default_oldnode->get(E->get().name) != n->get(E->get().name)) { + newnode->set(E->get().name, n->get(E->get().name)); + } } editor->push_item(NULL); + memdelete(default_oldnode); //reconnect signals List sl;