godotengine / godotengine/godot
Making Scene import default a file with a Skeleton3D makes project unable to open
- Dominant language
- C++
- Stars
- 117k
- Forks
- 26.8k
- PR merge metrics
- PR metrics pending
Description
### Tested versions
- Reproducible in 4.4.1.stable
### System information
Godot v4.4.1.stable.mono - Linux Mint 22.1 (Xia) on X11 - X11 display driver, Multi-window, 2 monitors - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 1660 (nvidia; 575.64.03) - AMD Ryzen 5 5600G with Radeon Graphics (12 threads)
### Issue description
When setting the Import default option for a scene, if the GLB or other scene file has a bone map included it will include this as part of the default option, and then when reloading the project it will be unable to open and return to the project manager, giving the following errors:
```
ERROR: Cannot get class 'BoneMap'.
at: _instantiate_internal (core/object/class_db.cpp:549)
ERROR: Error parsing '/home/paperzlel/godot-projects/bone-map-crash-mrp/project.godot' at line 26: Can't instantiate Object() of type 'BoneMap' File might be corrupted.
at: _load_settings_text (core/config/project_settings.cpp:824)
```
I would expect BoneMap data to not be included here, as it's something that varies depending on the model and depending on the target skeleton one is dealing with.
### Steps to reproduce
1. Open the MRP
2. Right-click the `player_rigged.glb` and select "Advanced Import Options"
3. Select the Skeleton3D node in the hierarchy
4. Select `Retarget -> Bone Map` and create a new BoneMap
5. Inside the BoneMap, select a new SkeletonProfileHumanoid as the default profile
6. Click Reimport
7. With the file still selected, go to the Import tab (you may have to deselect and reselect it)
8. Click the Preset option, and hit "Set as Default for Scene"
9. Click Reimport
10. Reload the project by clicking `Project -> Reload Current Project`
11. The Project Manager should now appear, and any attempts to reload the project will return back to the project manager.
### Minimal reproduction project (MRP)
[bone-map-crash-mrp.zip](https://github.com/user-attachments/files/22197153/bone-map-crash-mrp.zip)
Contributor guide
Research direction
Reproduce the failure with the linked bone-map-crash-mrp.zip using the listed Advanced Import Options and project reload steps. Start by reading the errors in core/object/class_db.cpp and core/config/project_settings.cpp, then trace how the scene import preset is stored. Done means setting the preset no longer prevents the project from reopening and BoneMap data is not included in the default option.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- game-dev, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100