How can I make the inspector UI from an AudioStreamRandomizer for other nodes?

Godot Version

4.5.1

Question

For certain resources under AudioStream, there’s a nice looking UI for adding streams:


I want to be able to use this for other nodes I’m making since it’s a heck of a lot nicer and easier to use than the regular UI for 2D arrays.

Trouble is, I can’t seem to recreate this with the @export system, it doesn’t seem flexible enough for specifically this. But taking a look at the source code shows this being done with weird dynamically added and named variables instead of an array, and hooking it up with an internal editor plugin written in C++. I’d try to make this equivalent editor plugin, but the resources and documentation for them are either lacking or not straight forward.

Has anyone managed to make an equivalent UI written in GDScript? If not, I’d appreciate pointers and resources as to how, even if I have to write a lot of boilerplate for it.

Here’s an example:

1 Like