diff --git a/core/config/project_settings.cpp b/core/config/project_settings.cpp index 9f3ffac5679..9cff93007ce 100644 --- a/core/config/project_settings.cpp +++ b/core/config/project_settings.cpp @@ -1506,6 +1506,12 @@ ProjectSettings::AutoloadInfo ProjectSettings::get_autoload(const StringName &p_ return autoloads[p_name]; } +void ProjectSettings::fix_autoload_paths() { + for (KeyValue &kv : autoloads) { + kv.value.path = ResourceUID::ensure_path(kv.value.path); + } +} + const HashMap &ProjectSettings::get_global_groups_list() const { return global_groups; } diff --git a/core/config/project_settings.h b/core/config/project_settings.h index a0962a61560..a861f49f461 100644 --- a/core/config/project_settings.h +++ b/core/config/project_settings.h @@ -223,6 +223,7 @@ public: void remove_autoload(const StringName &p_autoload); bool has_autoload(const StringName &p_autoload) const; AutoloadInfo get_autoload(const StringName &p_name) const; + void fix_autoload_paths(); const HashMap &get_global_groups_list() const; void add_global_group(const StringName &p_name, const String &p_description); diff --git a/main/main.cpp b/main/main.cpp index 2c4983881ad..750b93cca8d 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -2201,7 +2201,8 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph initialize_modules(MODULE_INITIALIZATION_LEVEL_CORE); register_core_extensions(); // core extensions must be registered after globals setup and before display - ResourceUID::get_singleton()->load_from_cache(true); // load UUIDs from cache. + ResourceUID::get_singleton()->load_from_cache(true); // Load UUIDs from cache. + ProjectSettings::get_singleton()->fix_autoload_paths(); // Handles autoloads saved as UID. if (ProjectSettings::get_singleton()->has_custom_feature("dedicated_server")) { audio_driver = NULL_AUDIO_DRIVER;