As a Roblox developer, it is currently impossible to make plugins that fit well into Studio’s user interface and fit well with other plugins.
I want to make plugins that fit in with studio’s panels so that they can be out of the way. I want to give my plugins their own tabs alongside Studio’s regular panel tabs.
Advantages of integrated panels:
Keeps plugin UI out-of-the way when not needed, but easy to access when needed.
Keeps plugin UI from interfering with other plugin UI. I can have as many panel plugins as I want – Studio keeps them all separate.
Plugin location is user-chosen, rather than plugin-developer-chosen.
Can use plugins with a script open
Right now, the closest we can get to that is emulating Studio UI in the game view.
UI is in the way, and unlike other Studio panels, I can’t stick it off to the side. It’s always in the game, in my way.
It interferes with other plugins. Since there’s no panel manager keeping everything in check, the “panel” is placed with no regard for other plugin UI.
I requested something similar before and received a staff response, but I can’t find it. This would be tremendously useful. The problem is that it’s really difficult to allow dynamically changing Studio’s interface with Lua. Because of this difficulty, it was not planned to be implemented. Maybe they’d look into expending more resources on this if a lot of people want this though.
I can see how the Studio/Lua interface would be difficult. I think the most useful and flexible solution is to render regular GUI objects into a panel, so Lua would not need access to the whole Studio UI. Plugins can register new panels like they can buttons, then they can parent GUI objects to the panel. While not easy, I think this would be easier (and more flexible) than trying to allow Lua access to the whole native studio UI system.
I’ve written up a proposal containing some of those details before, but I’m trying to keep it simple avoid describing implementation this time.
This would be very sleek. It would be so nice to be able to use plugins with script windows open.
Did the mock-panel you made (is that your plugin?) get built onto an easily-used framework? Can you drag the panel around like normal panels?
As a stop-gap solution, it might be nice for plugin developers to all integrate with the same panel framework so they don’t step on each others’ screen real-estate.
That is my plugin, but sadly I didn’t build it into a framework. The mock panel doesn’t support dragging around, only resizing.
If I were to make a framework, I’d probably start with that mock panel. It’s already structured to allow adding tabs and switching between tabs while keeping the outer panel contents the same. I might try to put a framework together using it on a weekend.