I have a place with around ~50k parts and it takes forever to load and I don't want the player to see the bricks loading so I used the script recommended from "custom loading screen" on the wiki. http://wiki.roblox.com/index.php?title=Custom_loading_screen

local player = game.Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
playerGui:SetTopbarTransparency(0)

local screen = playerGui.Loading
local sound = screen.Music
local text = screen.Background.TextLabel

screen.Background.Visible = true
sound:Play()
game.ReplicatedFirst:RemoveDefaultLoadingScreen()

local count = 0
local start = tick()
while tick() - start < 20 do
	text.Text = "Loading " .. string.rep(".",count)
	count = (count + 1) % 4
	wait(.3) 
end

screen.Parent = nil

But, when the game is opened the loading screen doesn't even show up until the player and game is already loaded. A Localscript in ReplicatedFirst