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 so you don't need to maintain local copies as part of a saved Studio experience, and that you can reuse assets across the platform in various contexts for your projects, such as in different objects, places, or character bodies. You can find millions of free-to-use assets for projects on the Creator Marketplace, purchase assets for avatars on the Marketplace, or create your own assets and import them directly into Studio through asset management tools.
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 within the Game Settings window in Studio.
- Assets that are objects, or that change the appearance or behavior of objects within places. You can find these assets within the Creator Marketplace.
- Assets that change the body, clothing, or animation of avatars and non-playable characters. You can find these assets within the Marketplace.
Every asset type works differently depending on where it lives on the platform. For information on how to use each asset type for experiences, places, and avatars, see each of the following sections.
There are three asset types that map to project-level items:
- Places - Every experience has one or more places, or individual 3D worlds. Each place is represented by a data model that describes the place's 3D world and logic.
- Badges - A badge 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.
These asset types are unique to the experience that they map to, meaning they are non-transferable to other projects. For more information on these asset types, see Projects - Places, Badges, and Passes.
In general, there are two categories of asset types for places that you can either import or find on the Creator Marketplace:
- Assets that exist as objects within the data model, such as models and meshes.
- Assets that you apply as an object's property, such as audio, images, fonts, and videos.
Assets that exist as objects within the data model are objects that you can drag-and-drop from the Creator Marketplace, and they automatically display within the viewport without any extra steps. However, assets that you must apply as an object's property are objects that only display or sound correctly in the viewport after you attach them to their appropriate objects.
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.
|Models||A Model is a container object for geometric groupings, such as BasePart, MeshPart, Motor6D, and other Model objects. Whenever you group objects together in Studio, they automatically become a Model object.|
For more information, see Models.
|Meshes||A MeshPart is a type of part object that includes a physically-simulated custom mesh. You cannot create meshes in Studio, but you can import them in either .fbx or .obj format from third-party modeling tools.|
For more information, see Meshes.
|Audio||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 where the sound emits and how its volume changes in relation to each user's position within the experience.|
You can import audio assets in either .mp3 or .ogg format. For more information, see Audio Assets and Sound Objects.
|Images||A Decal object is an object that displays an image that stretches to fit the surface of a part or union when you apply an image asset ID within the Decal.Texture property, and a Texture object is an object that displays an image that repeat both horizontally and vertically on the surface of a part or union when you apply an image asset ID within the Texture.Texture property.|
You can import images in .png, .jpg, .tga, or .bmp format. For more information, see Textures and Decals.
|Fonts||A TextButton, TextLabel, or TextBox object is an object that displays typography in a specific style when you apply a font asset ID within its respective TextButton.FontFace, TextLabel.FontFace, or TextBox.FontFace property.|
You cannot import fonts, but the Creator Marketplace offers over 80 different fonts you can use. For more information, see Creator Marketplace.
|Videos||A VideoFrame object is an object that displays a video when you apply a video asset ID within the VideoFrame.Video property.|
Some creators can import videos in .webm format, otherwise the Creator Marketplace offers many curated videos you can use in your projects.
There are three categories of asset types for avatars that you can find on the Marketplace and equip to avatars:
- Body Parts - Assets that represent sections of the avatar character model, such as a Head, Torso, or LeftLeg.
- Clothing and Accessories - Assets that represent clothing and accessories on top of body parts, such as a HairAccessory, ShirtAccessory, or PantsAccessory.
- Animations - Assets that animate the avatar character model, such as a RunAnimation, JumpAnimation, or SwimAnimation.
Every avatar character model contains a HumanoidDescription object with asset IDs for the avatar's body parts, clothing, accessories, and animations. By default, when a user joins an experience, their Player.Character references the HumanoidDescription object for the user's personal avatar, but you can apply a different HumanoidDescription object as the user joins in order to adjust the characteristics of their playable character while they're accessing the experience, such as different asset IDs for their body parts, clothing and accessories, and how the character animates, as well as their scale and color.
For more information, see Character Appearance - HumanoidDescription.
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:
|Avatar||48×48, 60×60, 100×100, 150×150, 180×180, 352×352, 420×420, 720×720|
|AvatarBust||50×50, 60×60, 75×75, 100×100, 150×150, 180×180, 352×352, 420×420|
|AvatarHeadShot||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.UserIdlocal success, content, isReady = pcall(function()return Players:GetUserThumbnailAsync(userId, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size150x150)end)if success thenprint(content) --> rbxthumb://type=AvatarHeadShot&id=505306092&w=150&h=150&filters=circularend
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 reuse the asset within their experiences. There are two types of privacy statuses:
- Private - Only you or a group can use the asset.
- Public - Everyone can use the asset.
By default, all assets are private when you or a group import them into Studio, meaning only you or the group have access to the asset's unique asset ID. However, if you want to grant everyone access to the asset ID, you must publish the asset to the Creator Marketplace to make that information public.
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:
|Asset Manager||Imports and stores image, mesh, package, audio, and model assets on an experience-level. As you use the Asset Manager within different experiences, it only displays the assets that you imported into that specific open experience.|
|3D Importer||Imports .fbx or .obj 3D models from third-party modeling tools as a custom Model instance.|
|Avatar Importer||Imports avatar and custom rigs.|
|Toolbox||Stores every asset you or your groups have ever imported into Studio, regardless of what experience you currently have open. It also includes assets from the Creator Marketplace, allowing you to quickly drag-and-drop free user-generated assets directly into your experiences.|
To further help with asset organization, you can archive audio, decals, images, and meshes in the DEVELOPMENT ITEMS section of the Creator Dashboard.
After you archive an asset, it is no longer usable in Roblox experiences. The asset fails to load and disappears from the website.