Ability to dock lua widgets to main view

As a developer, it’s currently difficult to get a large working space for lua widgets. I can dock to the top/side, but then I have to resize my existing widgets. I would like to be able to dock widgets with the viewport. If Roblox is able to address this issue, it would improve my development experience by making it less painful to use widgets that require a large working space (e.g. dialogue editor).

23 Likes

I think the engineers didn’t think of it at the time, considering most staff at Roblox have 2+ monitors, and just resorted to moving it to the adjacent one.

Regardless, the dialogue editor is a wonderful use case. Me want.

This is not true, we did discuss this. It was kept out of scope for the initial release. We can always ship it later, but we can’t unship it later.

Not sure if this is planned soon, I’m not on that team. I definitely want it.

In the mean time, the best UX I’ve found is to use InitialDockState.Floating and set the floating size to a “reasonable minimum” like 800x600. This size specifically because laptop screens are small and any larger risks the window’s default size being larger than the screen.

8 Likes

I would be inclined to implement this as a new way of creating Plugin Guis.
We already have CreateDockWidgetPluginGui to create plugin guis in dock widgets.

We could also add CreateTabbedDocumentPluginGui (what you are describing),
CreateDialogWindowPluginGui for dialogs, etc.

Not on the roadmap now but we did deliberately design with the expectation to expand in this direction. Maybe something for a summer intern to tackle.

13 Likes

Some plugins make no use of the 3D viewport, or may require a large amount of space. For example, a custom text editor.

I’m developing a plugin to build GUIs. If I contain the editor within a dock widget, it either must be floating all the time, or forcedly squeezed to one side. The only other option is to place the editor in the game screen. Not only does this limit how the editor can be used, it requires me to basically implement my own draggable, resizable dock widget that can’t be moved outside the game screen.

The desired behavior is already present in the script editor, object browser, and the game screen itself. Usually opened in the center area, these widgets can be dragged out to float or dock into other areas like any other widget. The difference is that they have a flag that allows them to be docked to the center area. Plugin docks should be able to do this as well.

This could appear as an additional item to the InitialDockState enum (e.g. InitialDockState.Center). An additional option to DockWidgetPluginGuiInfo may specify whether docking the widget to the center is allowed.

11 Likes

I’ve seen plugins that do visual scripting with graphs that would benefit from being able to dock into a large area like this. Currently they use UI in the viewport and have to be explicitly closed to return to working in the viewport which is very inconvenient.

3 Likes

I keep trying to dock hoarcekat to the center part of the screen. Would love this feature.

3 Likes

I’d like this to be implemented, only script widgets are allowed to be docked into the center, this shouldn’t be the case at all as I need to put plugins like hoarcekat or InCommand in the center for compatibility, would use it a lot.

An InitialDockState.Center to set a widget into the center of studio would be great for DockWidgetPluginGui, so we can set it to the center.

2 Likes

I’d really like this! This would tremendously improve UX for any plugin that needs a large widget.
Not being able to do this kinda hurts UX imo.

Potential use cases I personally had in mind:

  • Documentation viewer
  • Custom code editor
  • 2D map editor
2 Likes