You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm working on a plugin for simple in-game input remapping. It needs to store some settings that are managed via a custom dialog.
Describe the problem or limitation you are having in your project
I have a custom dialog for some of my plugin settings because the standard project settings dialog can't be used to nicely edit graphs. I still use the ProjectSettings to store this though, since it is a setting in the end and it makes sense to let the engine handle saving and loading them. The problem is that they still show up in the project settings, even though they aren't supposed to be edited manually by the user.
Describe the feature / enhancement and how it helps to overcome the problem or limitation
Setting them as internal would prevent them from showing up in the project settings.
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
It just adds one line to the source, exposing ProjectSettings.set_as_internal(prop, internal) to the scripting languages.
If this enhancement will not be used often, can it be worked around with a few lines of script?
I don't think there is a way to work around this reliably while still using the project settings. I could, in theory, simply store my custom setting in my own custom resource instead of using the project settings. However this would needlessly duplicate behavior that the engine already has.
Is there a reason why this should be core and not an add-on in the asset library?
The change won't require any new logic, just exposing what's already there.
The text was updated successfully, but these errors were encountered:
As a note, this is similar to #6938 (already completed) and I can make a PR for this one too. However I would like to know first if there would be any negative side effects for marking plugin settings as internal? I wonder if the internal flag is only used to toggle visibility, or if this has other side effects that I missed
It sets the hint to storage only, and sets the usage to PROPERTY_USAGE_INTERNAL (which sadly isn't documented). So unless that usage flag has some very specific meaning, it seems like exposing this to GDScript should be fine.
Edit: confirmed on rocketchat that I understood the usage flag correctly
Describe the project you are working on
I'm working on a plugin for simple in-game input remapping. It needs to store some settings that are managed via a custom dialog.
Describe the problem or limitation you are having in your project
I have a custom dialog for some of my plugin settings because the standard project settings dialog can't be used to nicely edit graphs. I still use the
ProjectSettings
to store this though, since it is a setting in the end and it makes sense to let the engine handle saving and loading them. The problem is that they still show up in the project settings, even though they aren't supposed to be edited manually by the user.Describe the feature / enhancement and how it helps to overcome the problem or limitation
Setting them as internal would prevent them from showing up in the project settings.
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
It just adds one line to the source, exposing
ProjectSettings.set_as_internal(prop, internal)
to the scripting languages.If this enhancement will not be used often, can it be worked around with a few lines of script?
I don't think there is a way to work around this reliably while still using the project settings. I could, in theory, simply store my custom setting in my own custom resource instead of using the project settings. However this would needlessly duplicate behavior that the engine already has.
Is there a reason why this should be core and not an add-on in the asset library?
The change won't require any new logic, just exposing what's already there.
The text was updated successfully, but these errors were encountered: