Asset Types

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


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.

Images used for wall textures, decorations, and user interface icons


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.

Mesh with standard texture
Mesh with advanced surface texture


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 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.


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 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 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:



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)
if success then
print(content) --> rbxthumb://type=AvatarHeadShot&id=505306092&w=150&h=150&filters=circular


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 = 7229442422
local 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.