ContentProvider:PreloadAsync loads after rest of game loads?

I wish to use PreloadAsync in my custom loading screen, but the rest of the game loads way before the preloaded images used in such loading screen are loaded. Why does this happen? (The custom loading screen is in ReplicatedFirst.) All help is appreciated!

Yes, I’ve had this issue as well, where the game finishes loading, then loading screen starts working.

I think you need to remove the default loading screen.

I forgot to mention that I have removed the default loading screen. RemoveDefaultLoadingScreen is called after I attempt to preload the aforementioned assets (which don’t end up working). Does this affect anything?

Can you send the script for me to check?

Condensed version (in ReplicatedFirst):

local ReplicatedFirst = game:GetService("ReplicatedFirst")
local Players = game:GetService("Players")
local StarterGui = game:GetService("StarterGui")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Lighting = game:GetService("Lighting")
local ContentProvider = game:GetService("ContentProvider")
local SoundService = game:GetService("SoundService")

local startTime = os.clock()
ContentProvider:PreloadAsync({"rbxassetid://8802804068", "rbxassetid://8811664317", "rbxassetid://8812467150", "rbxassetid://8812382249"})
local deltaTime = os.clock() - startTime
print(("Preloading complete, took %.2f seconds"):format(deltaTime))

local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")

local LoadingGui = ReplicatedFirst:WaitForChild("LoadingGui")

LoadingGui.Parent = PlayerGui

local LoadingFrame = LoadingGui:WaitForChild("LoadingFrame")

local LogoCSL = LoadingFrame:WaitForChild("LogoCSL")
local LogoOldHouse = LoadingFrame:WaitForChild("LogoOldHouse")
local PlayButton = LoadingFrame:WaitForChild("PlayButton")
local IntroSound = LoadingFrame:WaitForChild("IntroSound")

local IntroLookPart = ReplicatedFirst:WaitForChild("IntroLookPart")
local IntroLookPartCFrame = IntroLookPart.CFrame

local startTime = os.clock()
print("second preload started")
ContentProvider:PreloadAsync({LogoCSL, LogoOldHouse, PlayButton, IntroSound, "rbxassetid://8802804068", "rbxassetid://8811664317", "rbxassetid://8812467150", "rbxassetid://8812382249"})
--I tried preloading both AssetIds and the actual Instances >:(
--ContentProvider:PreloadAsync({"rbxassetid://8802804068", "rbxassetid://8811664317", "rbxassetid://8812467150", "rbxassetid://8812382249"})
local deltaTime = os.clock() - startTime
print(("Preloading complete, took %.2f seconds"):format(deltaTime))

local TweenService = game:GetService("TweenService")

LogoCSL.ImageTransparency = 1
LogoOldHouse.ImageTransparency = 1
PlayButton.ImageTransparency = 1

-- A bunch of TweenInfo.new() and TweenService:Create()

--Some dictionaries for volume tweens

ReplicatedFirst:RemoveDefaultLoadingScreen()
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.All, false)

local IsCharacterReady = false
local CharacterReady = ReplicatedStorage:WaitForChild("CharacterReady")
print("characterready")
local connection = spawn(function()
	CharacterReady.OnClientEvent:Connect(function()
		IsCharacterReady = true
		--print("IsCharacterReady = true")
	end)
end)

while not IntroSound.IsLoaded do
	task.wait()
end

task.wait(1)

--plays the intro tweens using the ImageLabels

ReplicatedFirst looks like this (PleaseWork exists to hopefully force a load??):

image