We are pleased to announce the full release of our Improvements to Play Solo beta feature. This release reduces the median time to load Play Solo mode from ~5.50s to 2.35s (down from approximately 3.19 seconds during the beta), a 57% total decrease.
Loading Plugins in Play Solo
Most of these optimizations did not require any behavior changes to Play Solo. One exception was that we no longer run most built-in plugins in Play Solo. If your workflow requires them, you can opt back into running them in Studio Settings. This will, however, give back some of the performance gains from this release. Alternatively, if you do not require your own installed plugins during Play Solo mode, you can opt out of running them as well to load Play Solo even faster.
Some developers in the Beta thread asked what other optimizations were made to improve Play Solo performance. While we cannot provide a complete list, here is a small selection:
Script Editor now initializes the Luau type system lazily in the Play Solo data models
Core Scripts are now excluded from several pieces of infrastructure that only make sense for user-provided scripts
Improved batching of updates to the Explorer and Debugger widgets
Reorganized the loading process so that fewer UI elements need to process semi-loaded states
Improved re-use of the Sound system between DataModels
We will continue to monitor Play Solo start times and make improvements where possible. Aside from Play Solo, Studio team is laser-focused on improving performance and quality, helping creators work more efficiently and iterate fast.
Thank you for your feedback so far and let us know if you have any questions below!
this is genuinely really great, i can’t express how much this has improved my workflow and that sometimes i’ve even gone below 2 seconds of load times
one thing i’ve noticed is that disconnect messages aren’t displayed, are there plans for these to be displayed or are they to do with the optimisations
3 seconds in saving time isn’t genuinely bad to get rid of plugin loading. I’d stick to 5 seconds because 3 seconds aren’t noticeable for a blink of an eye
I really appreciate this change! I barely ever touch my plugins in Play Solo so these are some very nice gains
Perhaps in the future us plugin authors can mark our plugins as unloadable in Play Solo by default, so if our plugins don’t provide useful runtime functions they can be disabled?
Love the update makes it much smoother to play test now. However I have noticed that without Load All Built In Studio plugins on some of my plugins docking gets reset causing unwanted ui squishing/ reshaping. Also when turning Load All-Built In plugins off it will stop user plugins from running as well unless you disable then reenable Load User Plugins
Perhaps in the future us plugin authors can mark our plugins as unloadable in Play Solo by default, so if our plugins don’t provide useful runtime functions they can be disabled?
This is something we’re planning but no timeline yet.
It would be nice to properly benchmark the startup times of plugins that we’re writing, currently, there’s too much background noise for an os.clock to work efficiently here.
However I have noticed that without Load All Built In Studio plugins on some of my plugins docking gets reset causing unwanted ui squishing/ reshaping.
Thanks for the bug report - we’ll look into this.
Also when turning Load All-Built In plugins off it will stop user plugins from running as well unless you disable then reenable Load User Plugins
Is this consistent for you? I can’t reproduce this behavior and these settings should be entirely independent.
This is cool. I assumed my .PlayerAdded was breaking because Play Solo was slower, not because it was faster but that makes sense. I guess I’ll have to update all my join scripts to loop through players that might arrive before the server loads now!
I’d like to see an option in the Plugin Manager that lets us dictate which of our plugins load in Play Solo - for example, I use weld manipulation and some visualization plugins occasionally, but otherwise don’t need most of them.