Assets

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.

rbxassetid://7229442422rbxassetid://6768917255rbxassetid://9125402735

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.

When you import assets, they must pass a moderation check to ensure they meet Roblox's Community Rules and Terms of Use before users can see and interact with them in published experiences. After Roblox approves imported assets, you can choose to retain sole ownership of their usage on the platform, assign them to group ownership, or publish them to the Creator Marketplace in order to make them publicly available for all users to use within their own projects. Every asset you import is accessible within the Toolbox, allowing you to reuse them across all of your projects.

Asset Types

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.

For Experiences

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.

For Places

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.

Asset TypeDescription
ModelsA 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.
MeshesA 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.
AudioA 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.
ImagesA 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.
FontsA 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.
VideosA 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.

For Avatars

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.

Asset Format Strings

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.

[Protocol]://[String]

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.

rbxassetid://7229442422

rbxassetid://3845386987

rbxassetid://9125402735

rbxasset

rbxasset points to Roblox's content folder on the user's device, for example:

rbxasset://textures/face.png

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.

rbxthumb://type=Asset&id=24813339&w=150&h=150

Supported types (type) and sizes (w and h) are as follows:

TypeSupported Sizes
Asset150×150, 420×420
Avatar48×48, 60×60, 100×100, 150×150, 180×180, 352×352, 420×420, 720×720
AvatarBust50×50, 60×60, 75×75, 100×100, 150×150, 180×180, 352×352, 420×420
AvatarHeadShot48×48, 60×60, 100×100, 150×150, 180×180, 352×352, 420×420
BadgeIcon150×150
BundleThumbnail150×150, 420×420
FontFamily1200×80
GameIcon50×50, 150×150
GamePass150×150
GroupIcon150×150, 420×420
Outfit150×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.

rbxthumb://type=AvatarHeadShot&id=505306092&w=150&h=150&filters=circular

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:

rbxhttp://Thumbs/Avatar.ashx?x=100&y=100&format=png

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.

https://www.roblox.com/asset/?id=9723979220

Asset Permissions

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.

Asset Moderation

Roblox performs both human and automated asset moderation on a proactive and reactive basis to ensure assets adhere to the Community Rules, Terms of Use, and Digital Millennium Copyright Act (DMCA). If any asset violates these moderation policies, such as including discriminatory or adult content, the Moderation team flags and removes the asset to protect users from harmful or non-compliant content. This process generally happens within a few hours after you import the asset.

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.

Asset Management

Roblox offers several tools to import, store, and publish your assets:

ToolDescription
Asset ManagerImports 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 ImporterImports .fbx or .obj 3D models from third-party modeling tools as a custom Model instance.
Avatar ImporterImports avatar and custom rigs.
ToolboxStores 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.