I suggest you create some type of loading screen, that way while the game is loading you can make all of your images visible for a short period of time. (0.2 each maybe) This means it should render for the player in the future
Just make sure you have enough ZIndex so they don’t show up
you don’t need to create an ImageLabel to load the image, you can just do rbxassetid://id
local preloadIDTable = {} -- asset ids here
for i, id in ipairs(preloadIDTable) do
preloadIDTable[i] = "rbxassetid://" .. id
end
contentprovider:PreloadAsync(preloadIDTable)