1
0
Fork 0
godot/scene/resources
Joshua Bordelon ccd664974a Fix animation library serialization compatibility for 4.5 projects
When opening a Godot 4.5 project in 4.6 and saving scenes with editable
children of imported scenes (e.g., .blend files), all animation data was
incorrectly being saved to the .tscn file.

This happened because the AnimationLibrary serialization format changed
between 4.5 and 4.6:
- 4.5: 'libraries' as a single Dictionary property
- 4.6: 'libraries/<name>' as separate properties per library

When the scene packer looked for 'libraries/<name>' in old imported
scenes, it didn't find them (only 'libraries' existed), causing all
animation data to appear as 'overridden' and be saved.

This fix adds backwards compatibility in SceneState::get_property_value()
to check for the old Dictionary format when looking up 'libraries/<name>'
properties. It only applies to nodes that inherit from AnimationMixer,
allowing property comparison to work correctly and preventing animation
data from being duplicated into .tscn files.

Fixes #113037
2026-01-12 20:32:07 -06:00
..
2d Preserve winding order for transformed tiles' navigation polygons 2026-01-08 19:41:56 +01:00
3d Change radius_range to angle to indicate hole of JointLimitationCone3D 2025-12-31 00:53:57 +09:00
SCsub
animated_texture.cpp Remove extraneous includes from `texture.h`. 2025-10-10 18:39:16 +02:00
animated_texture.h
animation.compat.inc
animation.cpp Add interpolate_via_rest static func to Animation class 2025-11-22 07:52:32 +09:00
animation.h Remove unused private variables in `godot/scene` 2025-12-07 03:46:26 -08:00
animation_library.cpp Make AnimationLibrary use RBMap instead of HashMap 2025-11-13 07:24:10 +09:00
animation_library.h Make AnimationLibrary use RBMap instead of HashMap 2025-11-13 07:24:10 +09:00
atlas_texture.cpp Merge pull request #101342 from KoBeWi/roundabout_solution 2025-11-19 11:04:10 -06:00
atlas_texture.h Merge pull request #101342 from KoBeWi/roundabout_solution 2025-11-19 11:04:10 -06:00
audio_stream_polyphonic.compat.inc
audio_stream_polyphonic.cpp Statically protect `Object::cast_to` for unrelated `Object` types. 2025-11-24 23:03:22 +01:00
audio_stream_polyphonic.h Move server files into their subfolders 2025-09-30 19:39:39 -07:00
audio_stream_wav.cpp Merge pull request #106636 from Ivorforce/dictionary-mutating-fix 2025-10-10 10:26:01 -05:00
audio_stream_wav.h Use 64-bit offset/loop points in `AudioStreamWAV` 2025-09-17 20:39:21 -03:00
bit_map.cpp Remove empty constructors and destructors from scene/ 2025-05-06 14:46:54 +02:00
bit_map.h Remove empty constructors and destructors from scene/ 2025-05-06 14:46:54 +02:00
bone_map.cpp Remove extraneous includes from `texture.h`. 2025-10-10 18:39:16 +02:00
bone_map.h
camera_attributes.cpp Merge pull request #89409 from aaronfranke/server-folders 2025-10-03 12:01:00 -05:00
camera_attributes.h
camera_texture.cpp Remove extraneous includes from `texture.h`. 2025-10-10 18:39:16 +02:00
camera_texture.h Remove extraneous includes from `texture.h`. 2025-10-10 18:39:16 +02:00
canvas_item_material.cpp Rename server "free" functions to "free_rid" to match exposed API 2025-09-30 16:52:25 -07:00
canvas_item_material.h
color_palette.cpp
color_palette.h
compositor.cpp Move server files into their subfolders 2025-09-30 19:39:39 -07:00
compositor.h
compressed_texture.cpp Merge pull request #109433 from KoBeWi/hastension 2025-10-31 09:23:30 -05:00
compressed_texture.h Remove extraneous includes from `texture.h`. 2025-10-10 18:39:16 +02:00
curve.cpp Add IKModifier3D 2025-11-04 02:38:48 +09:00
curve.h Add IKModifier3D 2025-11-04 02:38:48 +09:00
curve_texture.cpp Remove extraneous includes from `texture.h`. 2025-10-10 18:39:16 +02:00
curve_texture.h Remove empty constructors and destructors from scene/ 2025-05-06 14:46:54 +02:00
dpi_texture.cpp Fix embedded window frame oversampling, fix DPITexture using uninitialized size in some conditions. 2025-10-25 17:23:45 +03:00
dpi_texture.h Rename SVGTexture to DPITexture. 2025-08-21 11:39:16 +03:00
environment.cpp Add `agx_white`, `agx_contrast` and HDR support to the AgX tonemapper. 2025-12-03 09:01:39 -05:00
environment.h Add `agx_white`, `agx_contrast` and HDR support to the AgX tonemapper. 2025-12-03 09:01:39 -05:00
external_texture.cpp Remove extraneous includes from `texture.h`. 2025-10-10 18:39:16 +02:00
external_texture.h
font.compat.inc Replace global oversampling with overrideable per-viewport oversampling. 2025-04-14 13:43:09 +03:00
font.cpp Fix binary BMFont flags handling. 2025-12-29 08:06:51 +02:00
font.h Improve language selection when shaping text. 2025-12-18 09:05:07 +02:00
gradient.cpp Compile out editor-only logic within `validate_property` in games 2025-06-12 12:54:19 +08:00
gradient.h
gradient_texture.cpp Remove extraneous includes from `texture.h`. 2025-10-10 18:39:16 +02:00
gradient_texture.h Remove extraneous includes from `texture.h`. 2025-10-10 18:39:16 +02:00
image_texture.cpp Merge pull request #89983 from KoBeWi/different_kind_of_image 2025-12-02 14:15:16 +01:00
image_texture.h Merge pull request #89983 from KoBeWi/different_kind_of_image 2025-12-02 14:15:16 +01:00
immediate_mesh.cpp Rename server "free" functions to "free_rid" to match exposed API 2025-09-30 16:52:25 -07:00
immediate_mesh.h
label_settings.cpp Implmement stackable text effects on label type through label settings 2025-04-26 20:50:20 +08:00
label_settings.h Implmement stackable text effects on label type through label settings 2025-04-26 20:50:20 +08:00
material.cpp Fix Sprite3D texture bleed when not wrapping 2025-11-24 15:10:07 -05:00
material.h Remove unused private variables in `godot/scene` 2025-12-07 03:46:26 -08:00
mesh.cpp Rename server "free" functions to "free_rid" to match exposed API 2025-09-30 16:52:25 -07:00
mesh.h Move server files into their subfolders 2025-09-30 19:39:39 -07:00
mesh_data_tool.compat.inc
mesh_data_tool.cpp
mesh_data_tool.h
mesh_texture.cpp
mesh_texture.h
multimesh.cpp FTI - Add `multimesh_instances_reset_physics_interpolation()` 2025-10-08 16:17:18 +01:00
multimesh.h FTI - Add `multimesh_instances_reset_physics_interpolation()` 2025-10-08 16:17:18 +01:00
navigation_mesh.cpp Move server files into their subfolders 2025-09-30 19:39:39 -07:00
navigation_mesh.h Move server files into their subfolders 2025-09-30 19:39:39 -07:00
packed_scene.cpp Fix animation library serialization compatibility for 4.5 projects 2026-01-12 20:32:07 -06:00
packed_scene.h Supplement the case of scene instantiation for "Editable Children" 2025-11-28 23:39:25 +08:00
particle_process_material.cpp Change curve range for particle multipliers 2025-12-03 20:47:40 -06:00
particle_process_material.h Remove unused private variables in `godot/scene` 2025-12-07 03:46:26 -08:00
physics_material.cpp
physics_material.h Remove empty constructors and destructors from scene/ 2025-05-06 14:46:54 +02:00
placeholder_textures.cpp Remove extraneous includes from `texture.h`. 2025-10-10 18:39:16 +02:00
placeholder_textures.h
portable_compressed_texture.cpp Remove extraneous includes from `texture.h`. 2025-10-10 18:39:16 +02:00
portable_compressed_texture.h Remove empty constructors and destructors from scene/ 2025-05-06 14:46:54 +02:00
resource_format_text.cpp Fix editor settings parsing regression on Android 2025-12-15 17:41:37 +05:30
resource_format_text.h Remove load_steps from resource_format_text.cpp 2025-12-02 17:41:57 +01:00
shader.compat.inc
shader.cpp Merge pull request #97616 from magian1127/4.0gdshader 2025-11-25 09:52:34 -06:00
shader.h Cleanup some things in shader editor code 2025-10-24 19:57:39 -07:00
shader_include.cpp Merge pull request #109433 from KoBeWi/hastension 2025-10-31 09:23:30 -05:00
shader_include.h Add GDSOFTCLASS to deeper inheritors of Object 2025-09-24 19:15:56 +01:00
skeleton_profile.cpp Remove extraneous includes from `texture.h`. 2025-10-10 18:39:16 +02:00
skeleton_profile.h
sky.cpp Rename server "free" functions to "free_rid" to match exposed API 2025-09-30 16:52:25 -07:00
sky.h
sprite_frames.cpp
sprite_frames.h
style_box.cpp
style_box.h Remove empty constructors and destructors from scene/ 2025-05-06 14:46:54 +02:00
style_box_flat.cpp Fix embedded window frame oversampling, fix DPITexture using uninitialized size in some conditions. 2025-10-25 17:23:45 +03:00
style_box_flat.h Remove empty constructors and destructors from scene/ 2025-05-06 14:46:54 +02:00
style_box_line.cpp Move server files into their subfolders 2025-09-30 19:39:39 -07:00
style_box_line.h Remove empty constructors and destructors from scene/ 2025-05-06 14:46:54 +02:00
style_box_texture.cpp Remove extraneous includes from `texture.h`. 2025-10-10 18:39:16 +02:00
style_box_texture.h Remove empty constructors and destructors from scene/ 2025-05-06 14:46:54 +02:00
surface_tool.cpp Add `resize_initialized` and `resize_uninitialized` to `Vector`. These functions serve as replacements for `resize`, to make sure the caller understands whether elements need to be initialized 'by hand' after the call. 2025-05-26 18:35:41 +02:00
surface_tool.h Update meshoptimizer to v0.25 2025-08-26 10:19:48 -07:00
syntax_highlighter.cpp Add missing dictionary and array type hints 2025-05-06 12:35:19 -07:00
syntax_highlighter.h Remove `rw_lock.h` and `rb_map.h` includes from `object.h`. 2025-10-05 23:29:04 +02:00
text_file.cpp Remove `file_access.h` and `script_backtrace.h` includes from `logger.h`. 2025-10-05 17:49:23 +09:00
text_file.h
text_line.compat.inc Replace global oversampling with overrideable per-viewport oversampling. 2025-04-14 13:43:09 +03:00
text_line.cpp [TextServer] Fix `duplicated` losing span info, and RID leak. 2025-12-11 21:50:22 +02:00
text_line.h [RTL] Use separate paragraph copy for the partially visible paragraphs. 2025-11-05 17:51:22 +02:00
text_paragraph.compat.inc Replace global oversampling with overrideable per-viewport oversampling. 2025-04-14 13:43:09 +03:00
text_paragraph.cpp [TextServer] Fix `duplicated` losing span info, and RID leak. 2025-12-11 21:50:22 +02:00
text_paragraph.h [RTL] Use separate paragraph copy for the partially visible paragraphs. 2025-11-05 17:51:22 +02:00
texture.cpp Remove extraneous includes from `texture.h`. 2025-10-10 18:39:16 +02:00
texture.h Remove extraneous includes from `texture.h`. 2025-10-10 18:39:16 +02:00
texture_rd.cpp Remove extraneous includes from `texture.h`. 2025-10-10 18:39:16 +02:00
texture_rd.h
theme.cpp Validate theme type name input in Add Theme Type dialog 2025-08-28 15:47:37 +08:00
theme.h Validate theme type name input in Add Theme Type dialog 2025-08-28 15:47:37 +08:00
video_stream.cpp
video_stream.h Mark methods for various classes as required 2025-07-30 19:24:56 +02:00
visual_shader.cpp Merge pull request #112058 from Chaosus/vs_fix_param_ref 2025-11-27 21:47:59 +01:00
visual_shader.h Add `instance_index` option to parameters in visual shaders 2025-11-08 14:35:24 +03:00
visual_shader_nodes.compat.inc
visual_shader_nodes.cpp fix-refract-node 2025-12-07 15:24:55 -06:00
visual_shader_nodes.h fix-refract-node 2025-12-07 15:24:55 -06:00
visual_shader_particle_nodes.cpp Remove transitive `mesh.h`, `rendering_server.h` and `shader.h` includes from `node.h`. 2025-10-08 12:16:52 +02:00
visual_shader_particle_nodes.h
visual_shader_sdf_nodes.cpp
visual_shader_sdf_nodes.h
world_2d.cpp Move server files into their subfolders 2025-09-30 19:39:39 -07:00
world_2d.h Move server files into their subfolders 2025-09-30 19:39:39 -07:00