diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index ad324c3ae620..207f52419428 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -1278,6 +1278,15 @@ void EditorNode::save_resource_in_path(const Ref &p_resource, const St } void EditorNode::save_resource(const Ref &p_resource) { + // If built-in resource, save the scene instead. + if (p_resource->is_built_in()) { + const String scene_path = p_resource->get_path().get_slice("::", 0); + if (!scene_path.is_empty()) { + save_scene_if_open(scene_path); + return; + } + } + // If the resource has been imported, ask the user to use a different path in order to save it. String path = p_resource->get_path(); if (path.is_resource_file() && !FileAccess::exists(path + ".import")) { diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp index 5ba0f467349f..6c4636dba380 100644 --- a/editor/plugins/script_editor_plugin.cpp +++ b/editor/plugins/script_editor_plugin.cpp @@ -2520,15 +2520,7 @@ void ScriptEditor::save_current_script() { clear_docs_from_script(scr); } - if (resource->is_built_in()) { - // If built-in script, save the scene instead. - const String scene_path = resource->get_path().get_slice("::", 0); - if (!scene_path.is_empty()) { - EditorNode::get_singleton()->save_scene_if_open(scene_path); - } - } else { - EditorNode::get_singleton()->save_resource(resource); - } + EditorNode::get_singleton()->save_resource(resource); if (scr.is_valid()) { update_docs_from_script(scr);