We are excited to announce that we are launching an opt-in beta feature called Selection and Navigation Improvements in Explorer. Starting today, you can expand and collapse all folders in Explorer and bulk-select Explorer search results.
Collapse and Expand All Folders
You can now easily collapse and expand all folders within Explorer or part of Explorer, allowing faster navigation. Expand all subfolders of a folder by holding Shift & click on the caret to the left of the folder (for a folder in an expanded state).
To collapse all subfolders of a folder, hold down Shift & click on the folder caret (for a folder in a collapsed state). You can also expand or collapse all from the Explorer context menu.
Select All Instances in Explorer
You can now easily select all instances in your Explorer by pressing ⌘/CTRL + A.
Selecting Explorer Search Results
After searching in Explorer, you can select only the search results (without the hierarchy items). You can still individually and bulk select all items in a search results view of Explorer.
Here is a breakdown of the new behaviors:
⌘/CTRL + A
This selects all search results.
Shift + Select
If the first and last instances selected are both search results, Shift + Select will only bulk-select search results. In any other case, Shift + Select will select all instances (including hierarchy items).
Bulk selects only search results.
You may encounter some lag when selecting a large number of instances.
We are actively investigating this issue. Please feel free to provide feedback on scenarios and scales at which you experience performance issues.
New Features! (as of 2/13/23)
We’ve added more navigation functionality to make your Explorer nav experience as efficient as possible.
→ expands the current branch of the explorer hierarchy; pressing → again selects the first child immediately under the parent node.
← selects the parent node; pressing ← again collapses the current branch of the explorer hierarchy.
If you have the following buttons on your keyboard, they are now equipped with the following functionality:
home selects the top instance in the explorer hierarchy
end selects the bottom instance in the explorer hierarchy
page up selects the item in the hierarchy that’s above the top-most visible hierarchy item.
page down selects the item in the hierarchy that’s below the bottom-most visible hierarchy item.
We hope these features make managing your workspace easier and faster!
Please let us know if you have any questions or concerns.
Great changes! However I don’t think that this acknowledges a few of the main concerns when using the current explorer / selection: performance. I don’t think many people dislike the explorer because of lack of these options- don’t get me wrong, they’re great QoL, but I would prefer seeing performance fixes (for example there’s multiple non-visible tris in the selection box, and bulk selection can get super laggy) vs. these QoL improvements.
That being said, these QoL improvements are still great, I just feel that Roblox is misunderstanding the current frustrations with the explorer and selections.
Performance has never been a significant issue with the explorer? It has always been inability to manage collapsedness of large subtrees, and issues with selection/reselection of deeply nested hierarchies taking multiple seconds (if not minutes) for the UI to catch up with. Both of these were blessedly recently fixed. What performance issues are you seeing with the explorer?
I wouldn’t make any assumptions that Roblox is misunderstanding performance issues regarding the explorer, they have existed for many years. I suspect Roblox is large enough to the extent where they can have multiple teams having more narrow focuses to improve the platform. Communication is definitely key, though.
This is definetely not just a problem isolated with the selection (Although that system’s sluggish, too.)
Using BoolValues BTW
I am most certain this is because the Studio UI is run as a bult-in Lua plugin. The lack of bulk methods in the engine requires systems like these to meticulously iterate and update the UI which can be a big bottleneck. Also, I think they use Roact.
This is another awesome feature. A couple things I’d like to mention and gather feedback on if possible.
I think the select all instances option should be modified / coupled with the ability to select all children of a given parent based on the selection. So, what I mean by this is, given an instance, by pressing select all, then all of the other instances that share the same parent as the original selection are selected. This would definitely have some great use cases in my opinion.
Lastly, there has been a bug that has existed for quite a while, in which deleting an instance and then undoing the action will cause Studio to go through your entire game hierarchy and expand every single object; this can cause significant lag and cause Studio to even freeze for a while if the game is large enough. Not to mention it’s rather annoying because you then have to collapse everything and re-open what you’re working on.
Is this a known issue and are there any plans to fix it?
This isn’t quite accurate afaik. The explorer window isn’t a plugin GUI and isn’t run by lua (the output isn’t either, and, unless it was changed in the new UI update, the properties widget still isn’t). The toolbox is an example of a plugin GUI, along with the game settings window, and the asset viewer.
It is most likely a built in plugin which iterates over the selection and does something expensive, and if it’s new, it might have to do with this new feature. I bet the selection boxes are Highlight instances. Unfortunately Studio lacks the tools to really dig in to these kinds of performance issues, even the plugin related ones, and Roblox kind of lacks the places to easily report them too. It’s especially hard when the cause can’t really be identified, I’d love to report them if it weren’t for the fact that my reports would be as vague as “Studio lags after a while.”
I have noticed that as Studio expands and more and more big bulky bits of lua code are being added, a lot of stuff has been slowing down as of recently and I have been encountering more and more performance issues. I don’t think this is really Roact’s fault but Roact does seem to maybe add a lot of overhead somehow. I experience the same thing with bulky React apps too, they always seem to slow down and stutter and I often can’t even capture these issues in browser profilers and stuff, so I’ve never really understood what causes such slowdown.
It’s unfortunate, but, as a result of these slowly building performance issues, I can no longer really do local server tests because it absolutely cripples my system. I think this specifically is because Studio ends up needing to initialize hundreds and hundreds of modules for every plugin, all of the dependencies are individually packaged in each.
Hopefully a lot of the performance issues that are coming up will get addressed together or something, unfortunately I think there is way too little information and not enough ways to really diagnose them yet.