godotengine / godotengine/godot

Project setting added via GUI is removed when reset to default

Open
#89,611 2 comments 0 reactions 0 assignees View on GitHub
bug topic:editor
Dominant language
C++
Stars
117k
Forks
26.8k
PR merge metrics
PR metrics pending

Description

### Tested versions

Found as far back as 4.1.1 - couldn't test any earlier version (editor froze when opening any dropdown menu, old Wayland problems maybe, doesnt matter)

### System information

Godot v4.3.dev5 - EndeavourOS SMP PREEMPT_DYNAMIC Fri, 08 Mar 2024 01:59:01 +0000 - Wayland - Vulkan (Forward+) - integrated AMD Radeon Graphics (RADV RENOIR) () - AMD Ryzen 7 5825U with Radeon Graphics (16 Threads)

### Issue description

Project settings created manually within the settings menu will be removed when reset to their default value

### Steps to reproduce

When creating a custom project setting (using the project settings dialogue), it will show up as not being at its default value (which is weird because it actually is, in theory) - see image 1.

![image](https://github.com/godotengine/godot/assets/8989002/3c96a238-dbe9-43af-9f6e-56cac0033575)

Then, resetting it to the default will cause it to be deleted from the project settings, with the editor printing a few copies of the same warning:
`core/config/project_settings.cpp:352 - Property not found: x/y`
where `x/y` is whatever path was chosen for the setting:

![image](https://github.com/godotengine/godot/assets/8989002/b5b8457c-6d43-4a88-a7c2-a0c4d8b332ef)

However, it will still show up in the settings GUI until it is closed and reopened:

![image](https://github.com/godotengine/godot/assets/8989002/0b366e91-ab2e-458b-970f-6f01d839bcf9)

### Minimal reproduction project (MRP)

Basically impossible to have an MRP, as the whole bug is something being unexplicably deleted. A completely empty project suffices.

Contributor guide

Open the contributing guide

Research direction

Start with core/config/project_settings.cpp around line 352 and reproduce the behavior from the Project Settings dialog in an empty project. Check why resetting a manually created setting removes it and leaves the open dialog stale; done means the setting remains available after reset without the Property not found warning.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, godot
Domain
devtools
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 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.