This asset pre-loader isn't working.

game:GetService("ReplicatedFirst"):RemoveDefaultLoadingScreen()
local cp = game:GetService("ContentProvider")
local optionalAssets = {}
local disabledServices = {
	["Lighting"] = false;
}

local ui = script:WaitForChild("loadingUI")
ui.Parent = game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui")

warn("starting preload")
local startTick = tick()
cp:PreloadAsync(optionalAssets)

for i,service in pairs(game:GetChildren()) do
	pcall(function()
		if not disabledServices[service.Name] then
			cp:PreloadAsync((service))
			print("loaded!")
		end
	end)
end
wait(2)
warn("preload done, time : " ..string.sub(tick()-startTick,1, 5).."s")
ui:Remove()