Right now, the only ways plugins can interact with a user is through the CoreGui and keyboard/mouse input. There are numerous cases where neither of these are optimal. Allowing us to create scriptable, popout (like the explorer, output, toolbox, etc) windows would enable the creation of the following concepts:
By static object I mean an object not affected by physics – in the case of ROBLOX, that means anchored. In every game I can think of there are static objects that are animated. In pretty much every game you have the animated doors/flags/grass, in Skyrim there are the animated static catapults at the Whiterun siege, in Mass Effect The power hatches that open when you shoot them, In Warframe the static containers that move along the conveyer belts in Grineer Spy 2.0 missions, in Shadow of the Colossus you have destructible environments (not affected by physics debris just turn noncollidable and fall through the ground), etc. Animating static objects is such a present thing in other games, and the games benefit from that aesthetic appeal. How do we accomplish that on ROBLOX though?
I was thinking of making a plugin similar to the ROBLOX animator / 3DS Max animator but more geared to anchored objects (i.e. not dependent on joints). How would I open up the animator though? I don’t want a GUI to pop up every time I select a model, I don’t want to memorize a keyboard combination to press in order to open it, and I don’t want to add yet another plugin button to my studio setup. What would be bearable though is to have a window pinned to the side of the screen that I could focus whenever I wanted to animate a model. Pretend “Script Performance” was named “Static Animator” and was grouped with the properties pane instead of the toolbox/output
When you’re making a GUI, attempting to edit it with another GUI is pretty much out of the question because how are you going to edit your GUI when it’s covered and you can’t see it? Take this for instance, I have pinned a script editor to the properties pane group and I can read those entries from a plugin and update the selected GUI object accordingly. The properties in the script don’t even need to be real properties – they just need to be something the plugin knows about and then it can adjust the GUI to what I intended it to be. I haven’t been using this though because I can’t see any of the other tabs in the window group (you’ll notice that properties is cut off) and I would have to create a script each time I wanted to modify a GUI object, unpin it from the main window, and then drag it to that location. It would be much easier if I just had a window that came into focus over the properties window whenever I selected a GUI object.
The staff can’t obviously realistically keep up with every nitpick demand to change studio. If there were scriptable windows though, we wouldn’t have to ask. I could add a filter to the explorer, I could automatically filter unnecessary http warnings from the output, and I could clean up the Advanced Objects window if I wished.
How do you enable the average, non-scripter users to configure models? You put an ugly configuration object with even uglier value objects inside into the model! This is terrible. However, What if I made a plugin which pinned a “Configure” tab to the properties area? It could read through these configure objects and provide a clean interface for configuring models. I could even ditch the configure object completely and just use a “settings” module, but with the custom window I would have no need to worry about people being unable to open scripts.
Crazyman’s Datastore Editor is awesome, but it’s a waste of a button imo. It would fit much better as a tab in my Game Explorer / Explorer area that I could switch to whenever I wanted to look at / edit the DataStore.
This would be really helpful to have and would enable plugin developers to create even cleaner interfaces.