The game in Roblox gets bigger and uses more assets in invariably takes longer to load. Instead of showing the incomplete level, it is usually better to show some kind of loading screen while assets are being loaded and the game is setup. Fortunately, Roblox provides the loading screen by default. However, you are able to make the advanced custom loading screen by yourself.
Apparently, the loading screen can use any or all of the Gui elements that Roblox itself provide. Those elements should be parented to the Players.LocalPlayer PlayerGui in the local script in ReplicatedFirst. Please take a note that the GUI elements can either be stored in ReplicatedFirst or can be created by the script and put immediately into the PlayerGui. As for the Topbar, it also should be made opaque to hid any geometry that might be loading behind it.
For those who want to know how to make the advanced custom loading screen in Roblox, here are the steps that you have to follow.
1. First, insert the Local Script to the ReplicatedFirst. Please type:
2. Second, insert the script to the workspace. You have to type :
game.Players.PlayersAddedconnect(function(player)local gui = ga.ReplicatedStorage:WaitForChild(“GUI Name Here”)
gui:Clone().Parent = player
gui. Script.Disabled = false end)
3. Third, insert the ScreenGui to the StarterGui
4. Fourth, insert the Frame to the ScreenGui. That will be your laoding fame. Please edit that. You are able to make it full screen if you want.
5. Fifth, insert the textlabel to the Frame. This one will be your laoding label. Please take a note that there is no loading bar because it is advanced. Edit it.
6. Sixth, insert the script to the ScreenGui. You have to type:
while wait() do
if contentprovider.RequestQueueSize == 0 then
(Udim2.new(0, 0, -1, 0), “in”, “Quart”)
7. Seventh, put the Gui to the ReplicatedStorage. Then, disable the script.
8. Eighth, test the game.
Please keep in mind that that there is the small delay when waiting for the PlayerGui. If you hide the default loading screen before you wait for the PlayerGui to load, the game will be visible for the certain moment. In this case, it is better for you to wait for the PlayerGui to load first, insert the initial screen you want to display, and then hide the default loading GUI.
You have to know that at some point, the loading screen should be hidden when all the loading has been finished. Even if the loading screen is intended to play for longer than the exact time need to load, it is still important to know when the game is ready to be played. The functions like ContentProvider.RequestQueueSize and DataModel:IsLoaded is able to be used to see if the content is present in the game. however, those will not say if the level has rendered or not. Therefore, you are encouraged to have your loading screen wait the set amount of time scaled on how long it takes your game to initially render.