diff --git a/core/io/resource_format_binary.cpp b/core/io/resource_format_binary.cpp index b4da314e96a..2a7a675f2d0 100644 --- a/core/io/resource_format_binary.cpp +++ b/core/io/resource_format_binary.cpp @@ -920,8 +920,11 @@ void ResourceLoaderBinary::get_dependencies(Ref p_f, List *p for (int i = 0; i < external_resources.size(); i++) { String dep; + String fallback_path; + if (external_resources[i].uid != ResourceUID::INVALID_ID) { dep = ResourceUID::get_singleton()->id_to_text(external_resources[i].uid); + fallback_path = external_resources[i].path; // Used by Dependency Editor, in case uid path fails. } else { dep = external_resources[i].path; } @@ -929,6 +932,12 @@ void ResourceLoaderBinary::get_dependencies(Ref p_f, List *p if (p_add_types && !external_resources[i].type.is_empty()) { dep += "::" + external_resources[i].type; } + if (!fallback_path.is_empty()) { + if (!p_add_types) { + dep += "::"; // Ensure that path comes third, even if there is no type. + } + dep += "::" + fallback_path; + } p_dependencies->push_back(dep); }