diff --git a/core/config/project_settings.cpp b/core/config/project_settings.cpp index f1f33eb07c7..ac08c024ef6 100644 --- a/core/config/project_settings.cpp +++ b/core/config/project_settings.cpp @@ -421,7 +421,7 @@ void ProjectSettings::_get_property_list(List *p_list) const { _THREAD_SAFE_METHOD_ RBSet<_VCSort> vclist; - HashMap> setting_overrides; + HashMap> setting_overrides; for (const KeyValue &E : props) { const VariantContainer *v = &E.value; @@ -464,10 +464,11 @@ void ProjectSettings::_get_property_list(List *p_list) const { } int dot = vc.name.rfind_char('.'); - if (dot != -1 && !custom_prop_info.has(vc.name)) { + if (dot != -1) { StringName n = vc.name.substr(0, dot); - if (props.has(n)) { // Property is an override. - setting_overrides[n].append(vc); + if (props.has(n)) { + // Property is an override. + setting_overrides[n].push_back(vc); } else { vclist.insert(vc); } @@ -505,6 +506,12 @@ void ProjectSettings::_get_property_list(List *p_list) const { pi.name = over.name; pi.usage = over.flags; p_list->push_back(pi); + } else if (custom_prop_info.has(base.name)) { + // Fallback to base property info. + PropertyInfo pi = custom_prop_info[base.name]; + pi.name = over.name; + pi.usage = over.flags; + p_list->push_back(pi); } else { p_list->push_back(PropertyInfo(over.type, over.name, PROPERTY_HINT_NONE, "", over.flags)); }