Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expose hidden Resource properties which are normally inaccessible before selecting "Make Unique" in the Inspector #11429

Open
RobbiewOnline opened this issue Dec 27, 2024 · 0 comments

Comments

@RobbiewOnline
Copy link

Describe the project you are working on

It's specific to all games

Describe the problem or limitation you are having in your project

This suggestion aims to assist new Godot users without disrupting the experience for more advanced users.

For example, I wanted to set an audio stream to loop instead of playing once, but the option wasn’t visible until I selected “Make Unique.”

This behavior isn’t limited to audio streams; similar scenarios occur with other node types where certain properties are hidden until the resource is made unique.

It’s also likely that a user might toggle “Make Unique” just to explore and understand what additional properties become accessible in this mode.

I assume the looping property is hidden due to Godot’s design philosophy, which prioritizes efficient use of resources by default. This makes sense in the context of game development, where performance and memory usage are critical, especially for shared assets like sounds.

However, as a new user, it wasn’t obvious that making the resource unique was a prerequisite for accessing these settings. Without seeing the property in the editor, I didn’t realize why the option wasn’t available.

Describe the feature / enhancement and how it helps to overcome the problem or limitation

Add the properties visually, but in a disabled fashion. A hint / button to guide the user to Make Unique before they're available.

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

My suggestion is

  1. Make Options Visible but Inaccessible (Greyed-Out)

Display the properties of the shared resource, such as Loop, Volume, or other sound stream settings, but grey them out.

Add a clear label or button next to the greyed-out properties, such as “Make Resource Unique to Edit This Property.”

  1. Provide a Direct Action

Include a button next to the greyed-out options that immediately triggers the “Make Unique” action when clicked, for example:

Button Label: “Make Unique”
Action: Converts the resource to a unique instance and unlocks the properties for editing.

Property Value Notes
Loop (Greyed-out) Requires Unique Resource
Volume 100% Editable because it’s global
Make Unique (Button) Converts to a unique instance

Why This Is a Good Compromise

  1. Improved Usability

Users can immediately see why a property isn’t editable, reducing confusion.

A clear, direct action to make the resource unique avoids requiring extra clicks or searches in menus.

  1. Preserves Godot’s Efficiency

Default behavior (resource sharing) remains unchanged, ensuring performance and memory efficiency.

Unique resources are only created when explicitly needed, avoiding unnecessary duplication.

  1. Educational Benefit

New users learn about Godot’s resource system naturally by interacting with the UI, understanding shared vs. unique resources.

If this enhancement will not be used often, can it be worked around with a few lines of script?

N/A

Is there a reason why this should be core and not an add-on in the asset library?

This is to improve new user onboarding, removing confusion whilst educating the new user at the same time.

@Mickeon Mickeon changed the title Suggestion - Expose Locked Resource Properties with ‘Make Unique’ Option in Editor Expose hidden Resource properties which are normally inaccessible before selecting "Make Unique" in the Inspector Dec 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants