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) {