From c854462ac55115f4b0ff21141d3cf7f925ec4adf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20J=2E=20Est=C3=A9banez?= Date: Fri, 6 Jun 2025 17:45:45 +0200 Subject: [PATCH] Fix resources wrongly duplicated upon instantiating inherited scenes --- scene/resources/packed_scene.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/scene/resources/packed_scene.cpp b/scene/resources/packed_scene.cpp index 78b93249236..508455a2d12 100644 --- a/scene/resources/packed_scene.cpp +++ b/scene/resources/packed_scene.cpp @@ -356,18 +356,18 @@ Node *SceneState::instantiate(GenEditState p_edit_state) const { } else { Variant value = props[nprops[j].value]; - // Making sure that instances of inherited scenes don't share the same - // reference between them. - if (is_inherited_scene) { - value = value.duplicate(true); - } - if (value.get_type() == Variant::OBJECT) { //handle resources that are local to scene by duplicating them if needed Ref res = value; if (res.is_valid()) { value = make_local_resource(value, n, resources_local_to_sub_scene, node, snames[nprops[j].name], resources_local_to_scene, i, ret_nodes, p_edit_state); } + } else { + // Making sure that instances of inherited scenes don't share the same + // reference between them. + if (is_inherited_scene) { + value = value.duplicate(true); + } } if (value.get_type() == Variant::ARRAY) {