Improvements to Play Solo [Full Release]

Greetings Developers,

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.

Optimizations Made to Improve Play Solo

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!

189 Likes

This topic was automatically opened after 10 minutes.

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

18 Likes

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

5 Likes

Amazing update, going on an amazing updating streak so far.

13 Likes

Awesome feature, glad you guys are working on such good updates! :happy1:

8 Likes

I really appreciate this change! I barely ever touch my plugins in Play Solo so these are some very nice gains :slight_smile:

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?

31 Likes

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

6 Likes

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.

17 Likes

Great work! Excited to not have to wait so long to run a simple play solo session!

6 Likes

Omg we needed this for so long! Thank you so much Roblox! :happy4:

4 Likes

Script Editor now initializes the Luau type system lazily in the Play Solo data models

That’s good to hear. I’m curious to know if tags placed in comments at the top of scripts such as !native also work during Play Solo?

3 Likes

This is genuinely a GREAT update for developers who have low-end devices like me.
Thanks pookies :heart: mwah

5 Likes

Amazing! Thank you Roblox. :slight_smile:

  • Co1lective
3 Likes

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.

5 Likes

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.

3 Likes

It only happens if you play test with Load All-In built plugins on. Then turn it off and play again for that next go. Only happens once.

3 Likes

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!

3 Likes

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.

5 Likes

Thank you! I hope Roblox doesn’t stop until startup time is 0 seconds!

7 Likes