How do I preload something on the server-side?

I understand that you can use ContentProvider:PreloadAsync() if you want to make sure something loads for them. What I don’t know how to make the server-side preload. I know that ContentProvider can only be used locally, but I’m just asking if there is a way to let the server-side know if something has loaded or not. I cannot find this in the forums or on YouTube.

Assets are something that are seen, heard or otherwise used solely by the client. The server has no sense in visuals or other assets and thus doesn’t need to download anything. It will only forward these assets to clients to download and in terms of the DataModel, manage replication.

The server doesn’t need to preload anything. Only the client needs to, and can know when their own machine has finished a download. What’s your use case for needing the server to do this?

1 Like

I was making a game which you need to load a map. I just wanted the script to detect if the map has loaded in for everyone.

In this case, ContentProvider would be completely irrelevant to involve because this has to do with replication, not assets. There currently is no way to tell when something has fully replicated or not.

ContentProvider will allow the client to download the assets that the map might be using (any decals, MeshParts or UnionOperations) and that’s about it. Anything else, from the server replicating the map’s contents to the client rendering them, most or all of that’s internal.

To make a clear difference: assets and instances are different. Assets are pieces of data that the client might have to download to use in a game (textures, audio, clothing items, anything of that sort - if it has rbxassetid or an asset link in it, that’s a link to an asset). Instances are objects in the DataModel that get replicated by the server to the client. Instances can have assets but assets aren’t instances.