Reference API Roblox

Engine API

Website

Related

Reference API Roblox

ContentProvider

Service that is used to load content, or assets, into a game.

This class is not replicated. Its interface does not cross the network boundary.
This class is not creatable. Instances of this class cannot be created with Instance.new.
This class is a service. It is a singleton that may be acquired with GetService.
Tags: [NotCreatable, Service, NotReplicated]

Member index 17

HistoryMember
553BaseUrl: string
553RequestQueueSize: int
645GetAssetFetchStatus(contentId: ContentId): AssetFetchStatus
645GetAssetFetchStatusChangedSignal(contentId: ContentId): RBXScriptSignal
640GetDependencyContentIds(root: Instance): Array
462GetFailedRequests(): Array
462ListEncryptedAssets(): Array
645Preload(contentId: ContentId): null
573PreloadAsync(contentIdList: Array, callbackFunction: Function = nil): null
573RegisterDefaultEncryptionKey(encryptionKey: string): null
573RegisterDefaultSessionKey(sessionKey: string): null
645RegisterEncryptedAsset(assetId: ContentId, encryptionKey: string): null
645RegisterSessionEncryptedAsset(contentId: ContentId, sessionKey: string): null
573SetBaseUrl(url: string): null
573UnregisterDefaultEncryptionKey(): null
645UnregisterEncryptedAsset(assetId: ContentId): null
645AssetFetchFailed(assetId: ContentId)
inherited from Instance
553Archivable: bool
635Capabilities: SecurityCapabilities
553ClassName: string
553Name: string
553Parent: Instance
635Sandboxed: bool
616UniqueId: UniqueId
553className: string
576AddTag(tag: string): null
573ClearAllChildren(): null
462Clone(): Instance
573Destroy(): null
486FindFirstAncestor(name: string): Instance
486FindFirstAncestorOfClass(className: string): Instance
486FindFirstAncestorWhichIsA(className: string): Instance
486FindFirstChild(name: string, recursive: bool = false): Instance
486FindFirstChildOfClass(className: string): Instance
486FindFirstChildWhichIsA(className: string, recursive: bool = false): Instance
486FindFirstDescendant(name: string): Instance
563GetActor(): Actor
486GetAttribute(attribute: string): Variant
462GetAttributeChangedSignal(attribute: string): RBXScriptSignal
631GetAttributes(): Dictionary
486GetChildren(): Objects
462GetDebugId(scopeLength: int = 4): string
486GetDescendants(): Array
486GetFullName(): string
462GetPropertyChangedSignal(property: string): RBXScriptSignal
641GetStyled(name: string): Variant
576GetTags(): Array
576HasTag(tag: string): bool
486IsA(className: string): bool
486IsAncestorOf(descendant: Instance): bool
486IsDescendantOf(ancestor: Instance): bool
580IsPropertyModified(name: string): bool
573Remove(): null
576RemoveTag(tag: string): null
580ResetPropertyToDefault(name: string): null
573SetAttribute(attribute: string, value: Variant): null
462WaitForChild(childName: string, timeOut: double): Instance
553children(): Objects
553clone(): Instance
573destroy(): null
553findFirstChild(name: string, recursive: bool = false): Instance
553getChildren(): Objects
462isA(className: string): bool
553isDescendantOf(ancestor: Instance): bool
573remove(): null
462AncestryChanged(child: Instance, parent: Instance)
462AttributeChanged(attribute: string)
462Changed(property: string)
462ChildAdded(child: Instance)
462ChildRemoved(child: Instance)
462DescendantAdded(descendant: Instance)
462DescendantRemoving(descendant: Instance)
500Destroying()
553childAdded(child: Instance)

Removed member index 9

HistoryMember
642CalculateNumTrianglesInMesh(meshId: string): int
642CalculateNumTrianglesInMeshSync(meshId: string): int
646GetDetailedFailedRequests(): Array
311GetFailedUrls(): Array
66GetRequestQueue(): Array
66GetRequestedUrls(): Array
311SetAssetUrl(url: string): void
311SetCacheSize(count: int): void
311SetThreadPool(count: int): void

Description

Service that loads content (assets) into a game.

Roblox servers stream all assets to the client at runtime: objects in the Workspace, mesh assets, texture assets, etc. Assets such as mesh visual data, textures, decals, and sounds are streamed in as required, regardless of whether Streaming is enabled.

In some cases, this behavior is undesirable, as it can lead to a delay before the content loads into the experience.

ContentProvider lets you preload assets into an experience using the ContentProvider:PreloadAsync() method. You might want to display a loading screen, preload critical assets, and only then allow the player into the experience.

Best Practices for Preloading

  • Only preload essential assets, not the entire Workspace. You might get occasional pop-in, but it decreases load times and generally doesn't disrupt the player experience. Assets that are good candidates for preloading include those required for the loading screen, the UI, or the starting area.
  • Let players skip the loading screen, or automatically skip it after a certain amount of time.

History 78

Members 17

AssetFetchFailed

Parameters (1)
assetIdContentId

History 5

BaseUrl

TypeDefault
string

Used by the ContentProvider to download assets from the Roblox website.

This URL points to a Roblox hosted website from which assets are downloaded and is pulled from the AppSettings.xml file, located in the version-hash folder.

It is possible to overwrite this property using the ContentProvider:SetBaseUrl() function in the command bar; however, this is not recommended and may cause asset loading issues.

This property is not replicated. Its interface does not cross the network boundary.
This property is read-only. Its value can be read, but it cannot be modified.

History 4

Tags: [ReadOnly, NotReplicated]

GetAssetFetchStatus

Parameters (1)
contentIdContentId
Returns (1)
AssetFetchStatus

Gets the current AssetFetchStatus of the contentId provided. Use GetAssetFetchStatusChangedSignal() to listen for changes to this value.

History 2

GetAssetFetchStatusChangedSignal

Parameters (1)
contentIdContentId
Returns (1)
RBXScriptSignal

A signal that fires when the AssetFetchStatus of the provided content changes. Connect to this signal by using a callback with one argument of type AssetFetchStatus. This is particularly useful for assets that might update themselves automatically like the thumbnail of a user when they change clothes.

History 2

GetDependencyContentIds

Parameters (1)
rootInstance
Returns (1)
Array

History 1

GetFailedRequests

Parameters (0)
No parameters.
Returns (1)
Array

History 2

ListEncryptedAssets

Parameters (0)
No parameters.
Returns (1)
Array

History 2

Preload

Parameters (1)
contentIdContentId
Returns (1)
null

Usually, content is loaded only when it starts being used. That explains why it often takes a moment for an image to appear in a GUI, or a Mesh|mesh to appear in a part, or why a sound doesn't play for the first time. All because the asset has not yet finished loading. Preload is used to load this content beforehand, so that it works instantly.

This function is deprecated. It exists only for backward compatibility, and should not be used for new work. PreloadAsync should be used instead.

History 7

Tags: [Deprecated]

PreloadAsync

Parameters (2)Default
contentIdListArray
callbackFunctionFunctionnil
Returns (1)
null

Yields until all of the assets associated with the given Instances have loaded. This can be used to pause a script and not use content until it is certain that the content has been loaded into the experience.

When called, the engine identifies links to content for each item in the list. For any of the Instances which have properties that define links to content, such as a Decal or a Sound, the engine attempts to load these assets from Roblox. For each requested asset, the callback function runs, indicating the asset's final AssetFetchStatus.

This method can also take in a list of content ID strings, however these strings must correspond to image assets. Attempting to load non-image assets through the use of their content ID strings will result in failure.

If any of the assets fail to load, an error message appears in the output. The method itself will not error and it will continue executing until it has processed each requested instance or asset ID.

This function yields. It will block the calling thread until completion.

History 4

Tags: [Yields]

RegisterDefaultEncryptionKey

Parameters (1)
encryptionKeystring
Returns (1)
null

History 3

RegisterDefaultSessionKey

Parameters (1)
sessionKeystring
Returns (1)
null

History 3

RegisterEncryptedAsset

Parameters (2)
assetIdContentId
encryptionKeystring
Returns (1)
null

History 4

RegisterSessionEncryptedAsset

Parameters (2)
contentIdContentId
sessionKeystring
Returns (1)
null

History 4

RequestQueueSize

TypeDefault
int

Gives the number of items in the ContentProvider request queue that need to be downloaded.

Items are added to the client's request queue when an asset is used for the first time or ContentProvider:PreloadAsync() is called.

Developers are advised not to use RequestQueueSize to create loading bars. This is because the queue size can both increase and decrease over time as new assets are added and downloaded. Developers looking to display loading progress should load assets one at a time (see example below).

This property is not replicated. Its interface does not cross the network boundary.
This property is read-only. Its value can be read, but it cannot be modified.

History 4

Tags: [ReadOnly, NotReplicated]

SetBaseUrl

Parameters (1)
urlstring
Returns (1)
null

History 3

UnregisterDefaultEncryptionKey

Parameters (0)
No parameters.
Returns (1)
null

History 3

UnregisterEncryptedAsset

Parameters (1)
assetIdContentId
Returns (1)
null

History 4

Removed members 9

CalculateNumTrianglesInMesh

Parameters (1)
meshIdstring
Returns (1)
int
This function yields. It will block the calling thread until completion.

History 3

Tags: [Yields]

CalculateNumTrianglesInMeshSync

Parameters (1)
meshIdstring
Returns (1)
int

History 3

GetDetailedFailedRequests

Parameters (0)
No parameters.
Returns (1)
Array

History 2

GetFailedUrls

Parameters (0)
No parameters.
Returns (1)
Array

History 2

GetRequestQueue

Parameters (0)
No parameters.
Returns (1)
Array

History 2

GetRequestedUrls

Parameters (0)
No parameters.
Returns (1)
Array

History 2

SetAssetUrl

Parameters (1)
urlstring
Returns (1)
void

History 2

SetCacheSize

Parameters (1)
countint
Returns (1)
void

History 2

SetThreadPool

Parameters (1)
countint
Returns (1)
void

History 2

Settings