When opening the Core Escape Menu A Core Script Is Creating a RenderStep Bind For Every Player and whether you switch tabs or close the menu it doesn’t unbind causing extreme performance problems scaling up with more players.
─
Possible Core Script Causing Issue (this is a single bind of the many shown in the later image):
─
In Game example of a ~130 player server and the huge amount of frame time it’s taking up compared to everything else:
─
Running the code below fixed the issue for me live in game, any RenderSteps pictured above disappeared and performance fixed.
I imagine a workaround for developers is to just run this when they detect the escape menu being closed (GuiService.MenuClosed):
for _,v in pairs(game.Players:GetPlayers()) do
game["Run Service"]:UnbindFromRenderStep("utility-focus-state".."-friendstatuslabel-"..v.Name)
game["Run Service"]:UnbindFromRenderStep("utility-focus-state".."-blockbutton-"..v.Name)
game["Run Service"]:UnbindFromRenderStep("utility-focus-state".."-mutestatusbutton-"..v.Name)
game["Run Service"]:UnbindFromRenderStep("utility-focus-state".."-reportplayer-"..v.Name)
game["Run Service"]:UnbindFromRenderStep("utility-focus-state".."-inspect-"..v.Name)
game["Run Service"]:UnbindFromRenderStep("utility-focus-state".."-sharegame")
game["Run Service"]:UnbindFromRenderStep("utility-focus-state".."-muteall")
end
These RenderStep names source from the script:
─
Client Info:
Expected behavior
I expect the RenderStep Binds to Un-Bind when the Menu switches tabs or the menu closes.