diff --git a/editor/gui/scene_tree_editor.cpp b/editor/gui/scene_tree_editor.cpp index 520cf42687df..fd3c409c8f5e 100644 --- a/editor/gui/scene_tree_editor.cpp +++ b/editor/gui/scene_tree_editor.cpp @@ -988,6 +988,7 @@ void SceneTreeEditor::_rename_node(Node *p_node, const String &p_name) { } // Trim leading/trailing whitespace to prevent node names from containing accidental whitespace, which would make it more difficult to get the node via `get_node()`. new_name = new_name.strip_edges(); + new_name = p_node->get_parent()->validate_child_name(p_node, new_name); if (!is_scene_tree_dock) { p_node->set_name(new_name); diff --git a/scene/main/node.cpp b/scene/main/node.cpp index ea89a719e8c9..f26333778f5a 100644 --- a/scene/main/node.cpp +++ b/scene/main/node.cpp @@ -1188,6 +1188,11 @@ String Node::validate_child_name(Node *p_child) { _generate_serial_child_name(p_child, name); return name; } + +String Node::validate_child_name(Node *p_child, StringName p_name) { + _generate_serial_child_name(p_child, p_name); + return p_name; +} #endif String Node::adjust_name_casing(const String &p_name) { diff --git a/scene/main/node.h b/scene/main/node.h index ed8f699d7b8b..be8fa17ff08d 100644 --- a/scene/main/node.h +++ b/scene/main/node.h @@ -609,6 +609,7 @@ class Node : public Object { #ifdef TOOLS_ENABLED String validate_child_name(Node *p_child); + String validate_child_name(Node *p_child, StringName p_name); #endif static String adjust_name_casing(const String &p_name);