diff --git a/editor/editor_properties.cpp b/editor/editor_properties.cpp index 98950023cee..6fb8feb8041 100644 --- a/editor/editor_properties.cpp +++ b/editor/editor_properties.cpp @@ -2287,6 +2287,16 @@ void EditorPropertyResource::_update_menu_items() { E = E->next(); } + List global_classes; + ScriptServer::get_global_class_list(&global_classes); + E = global_classes.front(); + while (E) { + if (EditorNode::get_editor_data().script_class_is_parent(E->get(), base_type)) { + valid_inheritors.insert(E->get()); + } + E = E->next(); + } + for (Set::Element *F = valid_inheritors.front(); F; F = F->next()) { String t = F->get(); @@ -2303,7 +2313,7 @@ void EditorPropertyResource::_update_menu_items() { } } - if (!is_custom_resource && !ClassDB::can_instance(t)) + if (!is_custom_resource && !(ScriptServer::is_global_class(t) || ClassDB::can_instance(t))) continue; inheritors_array.push_back(t);