godotengine / godotengine/godot

Making Scene import default a file with a Skeleton3D makes project unable to open

Open
#110,306 1 comment 1 reaction 0 assignees View on GitHub
bug topic:core
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.