Almost everything in Roblox is represented as a cloud-based asset with a unique corresponding ID. This ID is typically in the form of rbxassetid://[ID], which gets applied to various instances as a property that's appropriate for that particular asset type. For example, Texture, MeshPart, and Sound instances reference image, mesh, and audio assets through their respective TextureID, MeshID, and SoundID properties.
This cloud-based asset system allows you to store assets through Roblox and reuse them across the platform in various contexts, such as in different objects and places, without maintaining local copies as part of each saved Studio experience. You can find millions of project assets in the Creator Store, equip avatar assets in the Marketplace, or you can create your own assets and import them directly into Studio through the asset management tools.
When you import assets, they must pass a moderation check before users can see and interact with them in published experiences. After Roblox approves imported assets, you can choose to retain ownership of their usage on the platform or make them publicly available as detailed in Asset Permissions.
All asset types available on the platform generally fall into one of three categories:
- Assets that map to project-level items. You can find and configure these assets for specific experiences on the Creator Dashboard.
- Assets that change the body, clothing, or animation of avatars and non-playable characters. You can find these assets in the Marketplace.
There are three asset types that map to project-level items. These asset types are unique to the experience that they map to, meaning they are non-transferable to other projects.
- Badges — A badges is a special award you can gift users when they meet a goal within an experience, such as completing a difficult objective or playing for a certain amount of time.
- Passes — A pass is a monetization product that allows you to charge a one-time Robux fee in order for users to access special privileges within an experience, such as entry to a restricted area, an in-experience avatar item, or a permanent power-up.
- Assets that you apply as an object's property, such as audio, images, fonts, and videos.
For more information on both types of these assets for places, such as where and how you can use them in Studio, reference the following table.
|A Model is a container object for geometric groupings such as BaseParts, MeshParts, and other Model objects. Models can also contain objects such as Scripts. Whenever you group objects together in Studio, they automatically become a Model object. For more information, see Models.
|A MeshPart is a type of part object that includes a physically-simulated custom mesh. For more information, see Meshes.
|A Sound object is an object that emits audio when you apply an audio asset ID within its SoundId property. Where you place the Sound object in the data model changes how and where the sound emits within the experience. For more information, see Audio Assets and Sound Objects.
|Images are used in several ways within a place, including textures/decals on parts, UI elements, mesh textures, textures for custom materials, textures for special effects, and more.
|TextButton, TextLabel, and TextBox objects display typography in a specific style when you apply a font asset ID. You cannot import fonts, but the Creator Store offers over 80 different fonts for your use.
|A VideoFrame object displays a video through its Video asset property. See Video Frames for more information.
There are three categories of asset types for avatars that you can find in the Marketplace and equip to avatars:
- Body Parts — Assets that represent sections of the avatar character model, such as its head, torso, or legs.
- Clothing and Accessories — Assets that represent clothing and accessories on top of body parts.
- Animations — Assets that animate the avatar character model, such as how it runs, jumps, or swims.
Every character model contains a HumanoidDescription object with asset IDs for the character's body parts, clothing, accessories, and animations. By default, a user's playable character references their personal Roblox avatar, but you can apply a custom HumanoidDescription if desired. For more information, see Character Appearance.
Within Studio, you can convert single assets or asset hierarchies into packages and reuse them in multiple experiences, letting you optimize asset management across your entire team or across multiple projects. When a package is updated, you or your team members can update specific copies to the most current version, update all copies across an experience, or set specific copies to auto update.
For more information, see Packages.
Assets are 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.
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:
|48×48, 60×60, 100×100, 150×150, 180×180, 352×352, 420×420, 720×720
|50×50, 60×60, 75×75, 100×100, 150×150, 180×180, 352×352, 420×420
|48×48, 60×60, 100×100, 150×150, 180×180, 352×352, 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 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.
An asset's privacy status determines who has permission to use the asset within their experiences. By default, all assets are private when you or your group members import them into Studio. If you want to grant everyone access to the asset ID, you must publish the asset to the Creator Store.
If an asset is still in the moderation queue when you publish your experience, users cannot see or interact with the asset until Roblox approves it. If the asset doesn't pass moderation, you will receive a notification explaining why the asset cannot be on the platform in its current state. For more information, see Working with Assets - Asset Moderation.
Roblox offers several tools to import, store, and publish your assets:
|Imports and stores images, meshes, packages, audio, and models. Only displays assets that you've imported into the currently opened experience.
|Stores every asset that you or your groups have ever imported into Studio, regardless of what experience you currently have open. Also includes assets from the Creator Store, allowing you to quickly drop user-generated assets directly into your experiences.
|Imports .fbx or .obj 3D models from third-party modeling tools as a custom Model instance.
|Imports avatar and custom rigs.
To further help with organization, you can archive most asset types in the Development Items section of the Creator Dashboard.
After you archive an asset, it disappears from the website and is no longer usable or visible in Roblox experiences, including your own.