Having multiple PluginGuis in an instance of Studio causes enormous lag (and even more lag if it’s in Run mode).
It does not matter what is in the PluginGui, or if they are enabled. In fact, this is reproduced by instantiating a bunch of disabled/childless PluginGuis.
Repro code below. Instantiates 20 PluginGuis. Run on the command bar:
for i = 1,20 do
local plugin = PluginManager():CreatePlugin()
local name = "Test_" .. game:GetService("HttpService"):GenerateGUID(false)
local widget = plugin:CreateDockWidgetPluginGui(
name,
DockWidgetPluginGuiInfo.new(
Enum.InitialDockState.Float
)
)
widget.Name = name
end
On my system, this drops Studio to 20 FPS. This was reproduced within a blank game instance.
On the Micoprofiler, you can see an individual widget is taking 20ms:
I don’t know if this is related, but if you have OpenGL turned on, PluginGuis will flash constantly on the screen, and your FPS will be sitting around 1 - 5.
Is this a recent thing you’re experiencing? Because never really got lag in studio, except til a few days ago - minimal project with barely any scripts active - yet I’m experiencing tons of lag.
My studio instance also seems to spike lag every 2 or so seconds - which I notice when turning the camera.
Dunno if this is related at all, but this just started popping up in the last day or so when I Test in Studio:
00:10:35.386 - require(assetId) cannot be called from a client](rbxopenscript://#300)
00:10:35.388 - Stack Begin
00:10:35.389 - Script ‘Plugin_144938633.archimedesTwo.initiatePlugin’, Line 300](rbxopenscript://#300)
00:10:35.391 - Stack End
I’ve had this plugin installed for a long time and never got this error until very recently. It may be a problem with the plugin script, but why would it only show up recently?
Scriptos’ plugin was last updated in Dec. 2016:
Test doesn’t seem to have any issues with the error.
Also, ran Crazyman32’s Command Bar script in a 568 KB game in Studio and it froze up my 5 year old PC (I also have about 8 Plugin widgets loaded). Had to use Task Manager to shut it down.
This is a normal error and has consistently popped up for me the past 1-2yrs when starting a test server w/ client. It’s a byproduct of the plugin attempting to require its source code via an ID, which the client can’t do.
Have you recently started using accurate play solo? if so that’s likely why this just started popping up
Roblox recently changed play solo. Now accurate play solo is the default, and there is a separate client and server two more accurately reflect a real game instance. Previously plugins ran in a data model that was both client and server, and could do anything either supported, but now it’s separate data models, the plugin in the client data model can only do things clients are allowed, and the plugin in the server data model can only do things the server is allowed.
Plugin authors will need to update their plugins to account for this, and stop them from running if run service returns that it is not a server. Generally it is also a good idea to have the plugin button warn that it cannot be used on the client data model, so users know why it’s not doing anything.
This is still a problem for me, with the default plugins and a few others enabled, I get a whopping 1.3 fps on an empty baseplate, and sometimes if I minimize it and then reopen it goes down to 0.2 fps.
I have these parts:
i7-8750H
GTX 1070 Max Q
16 GB DDR4 RAM
512 GB M.2 Drive
This is killing me, I can’t work if I have any plugins enabled at all. I have to manually remove them from the install folder to get back up to 60 fps. It needs to be fixed.
I have two displays, and both of them are 144Hz panels.