It's been on my mind lately when I saw a Robloxian by the name of Nikilis who made the game called Murder Mystery 2. When you enter a server from the game, the first thing it does it is present the player with a screen gui that says that the player must wait until the world has completely loaded or until they a button appears giving them the option to skip but miss out on the unfinished textures and such. Here is a GIF of what it looks like so you don't have to investigate what I mean.
GIF: https://gyazo.com/65e989922dc9d7870c16d98a91fe118a
I am guessing it might have to do with the content provider service and the RequestQueueSize but I'm not 100% sure. It would be nice if someone can give some light on this curiosity that I have. I'm not asking for anyone to make the script for me. I just want to how Nikilis did this.
An easy way to make the player "wait until the world is loaded" is to, as you said, use ContentProvider.RequestQueueSize in a custom Gui object.
local CP = game:GetService("ContentProvider) local gui = script.Parent repeait wait() until CP.RequestQueueSize <= 0 --wait until there is nothing left to load gui:Destroy() --stop showing the "Loading Screen"
The way this works is, the Script fetches the local ContentProvider and waits until the RequestQueueSize
[which represents how much needs to load as an IntValue] is empty.
Then, script hides the GUI so that way the player can get to playing the game.
Creating a Loading Gui is rather easy. But, yes, I was once you.