diff --git a/editor/plugins/voxel_gi_editor_plugin.cpp b/editor/plugins/voxel_gi_editor_plugin.cpp index 5ae5468e4bb..43b133f4b53 100644 --- a/editor/plugins/voxel_gi_editor_plugin.cpp +++ b/editor/plugins/voxel_gi_editor_plugin.cpp @@ -166,8 +166,13 @@ void VoxelGIEditorPlugin::_voxel_gi_save_path_and_bake(const String &p_path) { probe_file->hide(); if (voxel_gi) { voxel_gi->bake(); - ERR_FAIL_COND(voxel_gi->get_probe_data().is_null()); - ResourceSaver::save(voxel_gi->get_probe_data(), p_path, ResourceSaver::FLAG_CHANGE_PATH); + // Ensure the VoxelGIData is always saved to an external resource. + // This avoids bloating the scene file with large binary data, + // which would be serialized as Base64 if the scene is a `.tscn` file. + Ref voxel_gi_data = voxel_gi->get_probe_data(); + ERR_FAIL_COND(voxel_gi_data.is_null()); + voxel_gi_data->set_path(p_path); + ResourceSaver::save(voxel_gi_data, p_path, ResourceSaver::FLAG_CHANGE_PATH); } }