Roblox assets — images, meshes, audio, and more — are stored in the cloud, so you don't need to maintain local copies as part of a saved Studio experience. You can import your own assets for usage within a group account or your own individual account, or you can choose from millions of creator-produced assets in the Creator Marketplace.
Each imported asset is moderated and can be accessed through a unique asset ID as part of its content format string.
Asset Formats and Usage
Images
Roblox utilizes images in .png, .jpg, .tga, or .bmp format. You can import images within Studio for use as textures/decals on parts, user interface elements, textures for materials or special effects, and more.

Meshes
Studio supports import of custom meshes in .fbx or .obj format as exported from dedicated 3D modeling applications such as Blender or Maya. For details on importing and inserting meshes, see Meshes.


Audio
Roblox supports audio in .mp3 or .ogg format for use as background audio, positional point source emission, and volumetric ambience. For details on audio requirements and adding audio assets to an experience, see Audio Assets.
Animations
Animations created via the built-in Animation Editor can be saved within the experience itself or uploaded to Roblox. See Animation for an overview of animation on the platform.
Video
Roblox utilizes video in .webm format. Currently, only curated videos made by the community are available through the Toolbox for use with the VideoFrame object.
Content Format Strings
Assets and other content is reflected through formatted strings, each of which points to an online file or a file saved to the client's device. The basic structure is a protocol followed by :// and a string that varies according to the protocol.
Protocol | String | Description |
---|---|---|
rbxassetid | An existing asset ID | Fetches a user-created asset uploaded to Roblox. |
rbxasset | A file path | Fetches a file from Roblox's content folders. |
rbxthumb | Parameters and values | Allows for easy loading of thumbnails. |
rbxhttp | A path on the Roblox website | Fetches content from the Roblox website. |
https / http | A website URL | Fetches content from a website using a URL. |
rbxassetid
rbxassetid points to a user-uploaded asset on Roblox. This format is a common standard for properties such as Decal.Texture, ParticleEmitter.Texture, and Sound.SoundId.


rbxasset
rbxasset points to Roblox's content folder on the user's device, for example:
The content folder's location depends on the user's operating system:
%localappdata%\Roblox\Versions\<version>\content
rbxthumb
rbxthumb points to a thumbnail image for the provided asset. Its string format takes a thumbnail type, an asset ID, width, height, and an optional circular filter.
Supported types (type) and sizes (w and h) are as follows:
Type | Supported Sizes |
---|---|
Asset | 150×150, 420×420 |
Avatar | 100×100, 352×352, 720×720 |
AvatarHeadShot | 48×48, 60×60, 150×150 |
BadgeIcon | 150×150 |
BundleThumbnail | 150×150, 420×420 |
FontFamily | 1200×80 |
GameIcon | 50×50, 150×150 |
GamePass | 150×150 |
GroupIcon | 150×150, 420×420 |
Outfit | 150×150, 420×420 |
You can also include a filters=circular parameter to crop the thumbnail circularly, useful for displaying thumbnails like AvatarHeadShot in an on-screen GUI like an ImageLabel.
LocalScript - Get AvatarHeadShot Thumbnail
local Players = game:GetService("Players")
local userId = Players.LocalPlayer.UserId
local success, content, isReady = pcall(function()
return Players:GetUserThumbnailAsync(userId, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size150x150)
end)
if success then
print(content) --> rbxthumb://type=AvatarHeadShot&id=505306092&w=150&h=150&filters=circular
end
rbxhttp
rbxhttp is shorthand for ContentProvider.BaseUrl, for example:
https / http
https or http points to the exact location of something on the internet. It only works on Roblox-approved domains and raises an error if you use it elsewhere.
Asset Type Matching
If needed, you can cross-reference an asset's type through its asset ID by calling MarketplaceService:GetProductInfo(). This method returns a dictionary containing an AssetTypeId property that represents an AssetType enum. For example, in the following code snippet, the asset ID 7229442422 returns a value of 1 which equates to an "Image" asset type.
Get Asset Type ID
local MarketplaceService = game:GetService("MarketplaceService")local ASSET_ID = 7229442422local assetInfo = MarketplaceService:GetProductInfo(ASSET_ID)print(assetInfo.AssetTypeId) --> 1
Asset Moderation
All assets uploaded to Roblox are moderated and Roblox has very high standards when it comes to safety and civility on the platform. An asset will be flagged and removed if it violates Roblox moderation policies, for example infringing copyright or including adult content. See Understanding Moderation for a complete list of asset-related moderation policies.
Internally, moderation functions as follows:
- Roblox performs both pre-moderation and post-moderation. Images, meshes, etc. are pre-moderated, generally within a few hours, and you can use the assets inside Studio while they're being reviewed. Once an experience is published, post-moderation begins and Roblox may shut down an experience if it exhibits inappropriate content or behavior.
- Individual asset updates don't require review time since assets are reviewed for safety when they're uploaded. This allows you to instantly publish an experience update as soon as it's ready, although assets will be retroactively moderated.
- You will always receive a notification if one of your assets is flagged by moderation, explaining why a particular item was problematic.
Additionally, in order to comply with the Digital Millennium Copyright Act (DMCA), Roblox must respond expeditiously if copyright holders or their agents request removal of material they believe infringes upon their copyrights. See DMCA guidelines for details.