31 min read

Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.

AvatarEditorService

Inherits from: Instance → Object

AvatarEditorService is a service to support developer Avatar Editors. It provides methods to modify the player's platform avatar, request information about a user's inventory, and request information about the catalog.

For more information regarding the Avatar Editor, see Avatar Editor Service.

Throttling

The following endpoints on AvatarEditorService have experience-level throttling:

For each experience, this throttling allows you to send up to 100 requests per second to these AvatarEditorService endpoints, regardless of the number of servers or user count. Exceeding these limits returns a 429 Too Many Requests error.

Item Details Response

The following methods return item data in a shared response format:

{
  "Id": 0,
  "ItemType": "Asset",
  "AssetType": "Image",
  "BundleType": "BodyParts",
  "Name": "string",
  "Description": "string",
  "ProductId": 0,
  "ItemStatus": ["New"],
  "ItemRestrictions": ["Collectible"],

  "BundledItems": [
    {
      "Id": 0,
      "Name": "string",
      "Type": "Asset",
      "AssetType": "string",
      "SupportsHeadShapes": false,
      "Owned": false
    }
  ],
  "IsRecolorable": false,

  "CollectibleItemId": "string",
  "TotalQuantity": 0,
  "UnitsAvailableForConsumption": 0,
  "QuantityLimitPerUser": 0,
  "HasResellers": false,
  "OffSaleDeadline": null,

  "Price": 0,
  "PremiumPricing": {
    "PremiumDiscountPercentage": 0,
    "PremiumPriceInRobux": 0
  },
  "LowestPrice": 0,
  "LowestResalePrice": 0,
  "PriceStatus": "string",
  "SaleLocationType": "ShopAndAllExperiences",
  "PurchaseCount": 0,
  "FavoriteCount": 0,

  "CreatorType": "User",
  "CreatorTargetId": 0,
  "CreatorName": "string",
  "CreatorHasVerifiedBadge": false,

  "SupportsHeadShapes": false,

  "TimedOptions": [
    { "Duration": 259200, "Price": 30 },
    { "Duration": 604800, "Price": 40 },
    { "Duration": 1209600, "Price": 50 }
  ]
}
Basic Information
Field Type Description
Id number The unique identifier of the item.
ItemType string The type of item: "Asset" or "Bundle". Corresponds to Enum.AvatarItemType.
AssetType string The asset type. Corresponds to Enum.AvatarAssetType values (e.g., "Hat", "Shirt"). Only present if ItemType is "Asset".
SupportsHeadShapes boolean Whether the asset supports head shape swapping. Only present if AssetType is "DynamicHead".
BundleType string The bundle type. Corresponds to Enum.BundleType values (e.g., "BodyParts", "Animations"). Only present if ItemType is "Bundle".
Name string The display name of the item.
Description string The item's description text.
ProductId number The product ID associated with this item.
ItemStatus array An array of status strings (e.g., "New", "Sale", "XboxExclusive", "AmazonExclusive").
ItemRestrictions array An array of restriction strings. See the itemRestrictions table below.
Bundle Information
Field Type Description
BundledItems array An array of items contained in the bundle. Only present if ItemType is "Bundle". Each entry contains:
Id: The unique identifier of the bundled item.
Name: The display name of the bundled item.
Type: The type of the bundled item (e.g., "Asset").
AssetType: The asset type as a string. Corresponds to Enum.AvatarAssetType values (e.g., "Hat", "DynamicHead").
SupportsHeadShapes: Whether the asset supports head shape swapping. Only present if AssetType is "DynamicHead".
Owned: Whether the bundled item is owned by the current user.
IsRecolorable boolean Whether the bundle supports skin tone matching. Only applies to BodyParts and DynamicHead bundles.
Collectible Information
Field Type Description
CollectibleItemId string The unique item ID of the collectible.
TotalQuantity number The total quantity of the collectible available for purchase (not resale).
UnitsAvailableForConsumption number The number of units available for purchase. Only applies to Limited items with remaining stock.
QuantityLimitPerUser number Maximum number of the same collectible item a user can own.
HasResellers boolean true when item is a Limited collectible and there are copies available for resale.
OffSaleDeadline string The date/time when the item goes off sale.
Pricing and Sale Information
Field Type Description
Price number The price in Robux. 0 if free or not for sale.
PremiumPricing table Premium pricing information. Contains the following fields:
PremiumDiscountPercentage: The discount percentage for Premium members.
PremiumPriceInRobux: The discounted price in Robux for Premium members.
LowestPrice number The lowest resale price for Limited items.
LowestResalePrice number The lowest resale price for the collectible in Robux.
PriceStatus string The price status (e.g., "Free", "Off Sale", "No Resellers").
SaleLocationType string The type of sale location setting. See SaleLocationType values below.
PurchaseCount number The total number of times this item has been purchased.
FavoriteCount number The total number of users who have favorited this item.
Creator Information
Field Type Description
CreatorType string Either User or Group. See Enum.CreatorType.
CreatorTargetId number The ID of the creator user or group.
CreatorName string The display name of the creator.
CreatorHasVerifiedBadge boolean Boolean of whether the creator has a verified badge.
Timed Options Information
Field Type Description
TimedOptions array Optional. An array of available timed options with durations and prices. Only present for assets that support timed ownership. Do not hardcode duration values; always retrieve them from the API as available options may change. Each entry contains:
Duration: The duration in seconds (e.g. 259200 for 3 days, 604800 for 7 days).
Price: The price in Robux for this duration.
SaleLocationType Values
ValueDescription
NotApplicableDefault value, should not occur in practice.
ShopOnlyItem can only be purchased in the Roblox catalog shop.
MyExperiencesOnlyItem can only be purchased in the creator's experiences.
ShopAndMyExperiencesItem can be purchased in the Roblox catalog shop or the creator's experiences.
ExperiencesByIdItem can only be purchased in a specific list of experiences.
ShopAndAllExperiencesItem can be purchased in the Roblox catalog shop and all experiences.
ExperiencesDevApiOnlyItem can only be purchased in experiences via developer APIs.
ShopAndExperiencesByIdItem can be purchased in the Roblox catalog shop or a whitelisted list of experiences.
itemRestrictions Values
itemRestrictionsLimited or Unlimited
emptyUnlimited
CollectibleUGC Limited
LimitedRoblox Limited
LimitedUniqueRoblox Limited Unique

Inherits from: Instance

Memory category: Instances

Tags: NotCreatable, Service

Methods

NameType / ReturnsDescription
AvatarEditorService:CheckApplyDefaultClothingHumanoidDescriptionUsed to apply default clothing to the HumanoidDescription if necessary.
AvatarEditorService:CheckApplyDefaultClothingAsyncHumanoidDescriptionUsed to apply default clothing to the HumanoidDescription if necessary.
AvatarEditorService:ConformToAvatarRulesHumanoidDescriptionDeprecated. Returns a copy of the given HumanoidDescription that conforms to the platform Avatar rules.
AvatarEditorService:ConformToAvatarRulesAsyncHumanoidDescriptionReturns a copy of the given HumanoidDescription that conforms to the platform Avatar rules.
AvatarEditorService:GetAccessoryTypeAccessoryTypeReturns the AccessoryType that corresponds to the given AvatarAssetType.
AvatarEditorService:GetAvatarRulesDictionaryReturns the platform Avatar rules for things such as scaling, default shirts and pants, number of wearable assets.
AvatarEditorService:GetAvatarRulesAsyncDictionaryReturns the platform Avatar rules for things such as scaling, default shirts and pants, number of wearable assets.
AvatarEditorService:GetBatchItemDetailsArrayGets the item details for a list of items at once.
AvatarEditorService:GetBatchItemDetailsAsyncArrayGets the item details for a list of items at once.
AvatarEditorService:GetBundlesByAssetIdAsyncCatalogPagesReturns a CatalogPages object containing bundles that include the given asset.
AvatarEditorService:GetFavoritebooleanReturns if the Players.LocalPlayer has favorited the given bundle or asset.
AvatarEditorService:GetFavoriteAsyncbooleanReturns if the Players.LocalPlayer has favorited the given bundle or asset.
AvatarEditorService:GetHeadShapesAsyncArrayReturns an array of head shape names that the Players.LocalPlayer owns.
AvatarEditorService:GetInventoryInventoryPagesReturns an InventoryPages object with information about owned items in the users inventory with the given AvatarAssetTypes.
AvatarEditorService:GetInventoryAsyncInventoryPagesReturns an InventoryPages object with information about owned items in the users inventory with the given AvatarAssetTypes.
AvatarEditorService:GetItemDetailsDictionaryReturns the item details for the given item.
AvatarEditorService:GetItemDetailsAsyncDictionaryReturns the item details for the given item.
AvatarEditorService:GetOutfitDetailsDictionaryReturns the outfit details for the given outfit.
AvatarEditorService:GetOutfitDetailsAsyncDictionaryReturns the outfit details for the given outfit.
AvatarEditorService:GetOutfitsOutfitPagesReturns outfit data for the Players.LocalPlayer.
AvatarEditorService:GetOutfitsAsyncOutfitPagesReturns outfit data for the Players.LocalPlayer.
AvatarEditorService:GetRecommendedAssetsArrayReturns a list of recommended assets based on a given AssetType and asset ID.
AvatarEditorService:GetRecommendedAssetsAsyncArrayReturns a list of recommended assets based on a given AssetType and asset ID.
AvatarEditorService:GetRecommendedBundlesArrayReturns a list of recommended bundles for a given bundle id.
AvatarEditorService:GetRecommendedBundlesAsyncArrayReturns a list of recommended bundles for a given bundle id.
AvatarEditorService:PromptAllowInventoryReadAccess()Prompts the Players.LocalPlayer to allow the developer to read what items the user has in their inventory and other avatar editor related information.
AvatarEditorService:PromptCreateOutfit()Prompts the Players.LocalPlayer to save the given HumanoidDescription as an outfit.
AvatarEditorService:PromptDeleteOutfit()Prompts the Players.LocalPlayer to delete the given outfit.
AvatarEditorService:PromptRenameOutfit()Prompts the Players.LocalPlayer to rename the given outfit.
AvatarEditorService:PromptSaveAvatar()Prompts the Players.LocalPlayer to update their avatar based on the given HumanoidDescription and HumanoidRigType of R6 or R15.
AvatarEditorService:PromptSetFavorite()Prompts the Players.LocalPlayer to favorite or unfavorite the given asset or bundle.
AvatarEditorService:PromptUpdateOutfit()Prompts the Players.LocalPlayer to update the given outfit.
AvatarEditorService:SearchCatalogCatalogPagesReturns a CatalogPages object containing the result of the given search.
AvatarEditorService:SearchCatalogAsyncCatalogPagesReturns a CatalogPages object containing the result of the given search.

Inherited from Instance

NameType / ReturnsDescription
Instance:AddTag()Applies a tag to the instance.
Instance:childrenInstancesReturns an array of the object's children.
Instance:ClearAllChildren()This method destroys all of an instance's children.
Instance:CloneInstanceCreate a copy of an instance and all its descendants, ignoring instances that are not Archivable.
Instance:cloneInstance
Instance:Destroy()Sets the Instance.Parent property to nil, locks the Instance.Parent property, disconnects all connections, and calls Destroy() on all children.
Instance:destroy()
Instance:FindFirstAncestorInstance?Returns the first ancestor of the Instance whose Instance.Name is equal to the given name.
Instance:FindFirstAncestorOfClassInstance?Returns the first ancestor of the Instance whose Object.ClassName is equal to the given className.
Instance:FindFirstAncestorWhichIsAInstance?Returns the first ancestor of the Instance for whom Object:IsA() returns true for the given className.
Instance:FindFirstChildInstance?Returns the first child of the Instance found with the given name.
Instance:findFirstChildInstance
Instance:FindFirstChildOfClassInstance?Returns the first child of the Instance whose ClassName is equal to the given class name.
Instance:FindFirstChildWhichIsAInstance?Returns the first child of the Instance for whom Object:IsA() returns true for the given className.
Instance:FindFirstDescendantInstance?Returns the first descendant found with the given Instance.Name.
Instance:GetActorActor?Returns the Actor associated with the Instance, if any.
Instance:GetAttributeVariantReturns the value which has been assigned to the given attribute name.
Instance:GetAttributeChangedSignalRBXScriptSignalReturns an event that fires when the given attribute changes.
Instance:GetAttributesDictionaryReturns a dictionary of the instance's attributes.
Instance:GetChildrenInstancesReturns an array containing all of the instance's children.
Instance:getChildrenInstances
Instance:GetDebugIdstringReturns a coded string of the debug ID used internally by Roblox.
Instance:GetDescendantsInstancesReturns an array containing all of the descendants of the instance.
Instance:GetFullNamestringReturns a string describing the instance's ancestry.
Instance:GetStyledVariantReturns the styled or explicitly modified value of the specified property, or else the default property value if it hasn't been styled/modified.
Instance:GetStyledPropertyChangedSignalRBXScriptSignalReturns an event that fires when the given style property changes on the instance.
Instance:GetTagsArrayGets an array of all tags applied to the instance.
Instance:HasTagbooleanCheck whether the instance has a given tag.
Instance:IsAncestorOfbooleanReturns true if an Instance is an ancestor of the given descendant.
Instance:IsDescendantOfbooleanReturns true if an Instance is a descendant of the given ancestor.
Instance:isDescendantOfboolean
Instance:IsPropertyModifiedbooleanReturns true if the value stored in the specified property is not equal to the code-instantiated default.
Instance:QueryDescendantsInstancesReturns an array containing all descendants of the instance that match the selector string.
Instance:Remove()Sets the object's Parent to nil, and does the same for all its descendants.
Instance:remove()
Instance:RemoveTag()Removes a tag from the instance.
Instance:ResetPropertyToDefault()Resets a property to its default value.
Instance:SetAttribute()Sets the attribute with the given name to the given value.
Instance:WaitForChildInstanceReturns the child of the Instance with the given name. If the child does not exist, it will yield the current thread until it does.

Inherited from Object

NameType / ReturnsDescription
Object:GetPropertyChangedSignalRBXScriptSignalGet an event that fires when a given property of the object changes.
Object:IsAbooleanReturns true if an object's class matches or inherits from a given class.
Object:isAboolean

AvatarEditorService:CheckApplyDefaultClothing

Deprecated.

Deprecated in favor of AvatarEditorService:CheckApplyDefaultClothingAsync(). This method has the same behavior: it returns a new HumanoidDescription with the Shirt and Pants properties updated if necessary, or nil if default clothing was not needed.

Default clothing is necessary if the HumanoidDescription does not currently have Shirt and Pants equipped and the body colors are too similar.

Parameters

NameTypeDefaultDescription
humanoidDescriptionHumanoidDescriptionThe HumanoidDescription to check if default clothing is required.

Returns

TypeDescription
HumanoidDescriptionReturns a HumanoidDescription if default clothing was necessary. Otherwise returns nil.
FieldValue
tags["Yields","Deprecated"]
securityNone
thread safetyUnsafe
capabilities["AvatarAppearance"]

AvatarEditorService:CheckApplyDefaultClothingAsync

Returns a new HumanoidDescription with the Shirt and Pants properties updated if necessary. Returns nil if default clothing was not needed.

Default clothing is necessary if the HumanoidDescription does not currently have Shirt and Pants equipped and the body colors are too similar.

Parameters

NameTypeDefaultDescription
humanoidDescriptionHumanoidDescriptionThe HumanoidDescription to check if default clothing is required.

Returns

TypeDescription
HumanoidDescriptionReturns a HumanoidDescription if default clothing was necessary. Otherwise returns nil.
FieldValue
tags["Yields"]
securityNone
thread safetyUnsafe
capabilities["AvatarAppearance"]

AvatarEditorService:ConformToAvatarRules

Deprecated.

Deprecated in favor of AvatarEditorService:ConformToAvatarRulesAsync(). Clones the given description and adjusts scale values, accessory counts, accessory adjustments, default clothing, and layered-clothing limits to comply with the platform Avatar rules. It also remaps classic face and classic head assets to their corresponding Dynamic Head asset IDs.

Parameters

NameTypeDefaultDescription
humanoidDescriptionHumanoidDescriptionThe HumanoidDescription to conform to the platform Avatar rules.

Returns

TypeDescription
HumanoidDescriptionA new HumanoidDescription that conforms to the platform Avatar rules.
FieldValue
tags["Yields","Deprecated"]
securityNone
thread safetyUnsafe
capabilities["AvatarAppearance"]

AvatarEditorService:ConformToAvatarRulesAsync

This method also remaps classic face and classic head assets to their corresponding Dynamic Head asset IDs, with the appropriate HeadShape pre-applied. This remapping happens automatically and requires no code changes.

Parameters

NameTypeDefaultDescription
humanoidDescriptionHumanoidDescriptionThe HumanoidDescription to conform.

Returns

TypeDescription
HumanoidDescriptionA new HumanoidDescription that conforms to the platform Avatar rules.
FieldValue
tags["Yields"]
securityNone
thread safetyUnsafe
capabilities["AvatarAppearance"]

AvatarEditorService:GetAccessoryType

Returns the AccessoryType that corresponds to the given AvatarAssetType, which is useful for grouping avatar assets by the accessory slot they occupy.

The mapping covers accessory asset types — for example, AvatarAssetType.HairAccessory maps to AccessoryType.Hair, and layered-clothing types such as AvatarAssetType.ShirtAccessory map to AccessoryType.Shirt. An AvatarAssetType that does not correspond to an accessory (for example, an animation or a body part) returns AccessoryType.Unknown.

This method returns immediately; it does not yield or perform a web request.

Parameters

NameTypeDefaultDescription
avatarAssetTypeAvatarAssetTypeThe AvatarAssetType to convert to its corresponding AccessoryType.

Returns

TypeDescription
AccessoryTypeThe AccessoryType corresponding to the given AvatarAssetType, or AccessoryType.Unknown if the asset type has no matching accessory type.
FieldValue
securityNone
thread safetyUnsafe

AvatarEditorService:GetAvatarRules

Deprecated.

Deprecated in favor of AvatarEditorService:GetAvatarRulesAsync(). This method has the same behavior: it returns a dictionary containing the platform Avatar rules. See AvatarEditorService:GetAvatarRulesAsync() for the response format.

Returns

TypeDescription
DictionaryA dictionary containing the platform Avatar rules for things like scaling, default shirts and pants, number of wearable assets, ect. See the example return in the main description above.
FieldValue
tags["Yields","Deprecated"]
securityNone
thread safetyUnsafe

AvatarEditorService:GetAvatarRulesAsync

This function returns the platform Avatar rules for things like scaling, default shirts and pants, number of wearable assets, ect.

The returned table includes the following fields:

{
  "PlayerAvatarTypes": [
    "R6"
  ],
  "Scales": {},
  "WearableAssetTypes": [
    {
      "MaxNumber": 0,
      "Id": 0,
      "Name": "string"
    }
  ],
  "BodyColorsPalette": [
    {
      "BrickColorId": 0,
      "NexColor": "string",
      "Name": "string"
    }
  ],
  "BasicBodyColorsPalette": [
    {
      "BrickColorId": 0,
      "HexColor": "string",
      "Name": "string"
    }
  ],
  "MinimumDeltaEBodyColorDifference": 0,
  "ProportionsAndBodyTypeEnabledForUser": true,
  "DefaultClothingAssetLists": {
    "DefaultShirtAssetIds": [
      0
    ],
    "DefaultPantAssetIds": [
      0
    ]
  },
  "BundlesEnabledForUser": true,
  "EmotesEnabledForUser": true
}

Returns

TypeDescription
DictionaryA dictionary containing the platform Avatar rules for things like scaling, default shirts and pants, number of wearable assets, ect. See the example return in the main description above.
FieldValue
tags["Yields"]
securityNone
thread safetyUnsafe

AvatarEditorService:GetBatchItemDetails

Deprecated.

Deprecated in favor of AvatarEditorService:GetBatchItemDetailsAsync(). This method has the same behavior: it gets the item details for a list of items at once and returns an array of item details in the Item Details Response format.

Parameters

NameTypeDefaultDescription
itemIdsArrayThe list of item ids to get details of.
itemTypeAvatarItemTypeThe type of the item ids provided.

Returns

TypeDescription
ArrayReturns an array of item details. See AvatarEditorService:GetBatchItemDetailsAsync() for the response format.
FieldValue
tags["Yields","Deprecated"]
securityNone
thread safetyUnsafe
capabilities["AssetRead"]

AvatarEditorService:GetBatchItemDetailsAsync

Gets the item details for a list of items at once. More efficient than AvatarEditorService:GetItemDetailsAsync() if you need to get the item details for multiple items.

Returns an array of items (see Item Details Response above in summary). Each item includes the TimedOptions field when the asset supports timed ownership.

Parameters

NameTypeDefaultDescription
itemIdsArrayThe list of item ids to get details of.
itemTypeAvatarItemTypeThe type of the item ids provided.

Returns

TypeDescription
ArrayReturns an array of item details.
FieldValue
tags["Yields"]
securityNone
thread safetyUnsafe
capabilities["AssetRead"]

AvatarEditorService:GetBundlesByAssetIdAsync

Returns a paginated list of bundles that contain the specified asset. Results are returned in ascending order by date created. Each page entry uses the Item Details Response format (see service description above).

Parameters

NameTypeDefaultDescription
assetIdint64The ID of the asset to find bundles for.
limitint6410The number of results per page. Accepts 10, 25, 50, and 100.

Returns

TypeDescription
CatalogPagesA CatalogPages object containing bundles that include the given asset.
FieldValue
tags["Yields"]
securityNone
thread safetyUnsafe
capabilities["AssetRead"]

AvatarEditorService:GetFavorite

Deprecated.

Deprecated in favor of AvatarEditorService:GetFavoriteAsync(). This method has the same behavior: it returns whether the Players.LocalPlayer has favorited the given bundle or asset.

Parameters

NameTypeDefaultDescription
itemIdint64The ID of the specified asset or bundle.
itemTypeAvatarItemTypeThe AvatarItemType of the specified asset or bundle.

Returns

TypeDescription
booleanWhether the LocalPlayer has favorited the given bundle or asset.
FieldValue
tags["Yields","Deprecated"]
securityNone
thread safetyUnsafe
capabilities["Players","AssetRead"]

AvatarEditorService:GetFavoriteAsync

This function returns if the Players.LocalPlayer has favorited the given bundle or asset.

Parameters

NameTypeDefaultDescription
itemIdint64The ID of the specified asset or bundle.
itemTypeAvatarItemTypeThe AvatarItemType of the specified asset or bundle.

Returns

TypeDescription
booleanWhether the LocalPlayer has favorited the given bundle or asset.
FieldValue
tags["Yields"]
securityNone
thread safetyUnsafe
capabilities["Players","AssetRead"]

AvatarEditorService:GetHeadShapesAsync

Each head shape corresponds to a classic head owned by the user and can be applied to any Dynamic Head that supports shape swapping (see BodyPartDescription.HeadShape).

This method requires the user to have accepted the AvatarEditorService:PromptAllowInventoryReadAccess() prompt.

Returns

TypeDescription
ArrayAn array of strings, each identifying a head shape owned by Players.LocalPlayer. Possible values include: "Blockhead", "Cheeks", "Chiseled", "ClassicFemaleV2", "ClassicMaleV2", "CoolThing", "Default", "EraserHead", "FatHead", "FlatTop", "GoldenKorbloxGeneral", "GoldenMrRobot", "KnightOfChivalry", "KnightOfCourage", "ManHead", "MercilessNinja", "MrToilet", "Narrow", "NeoClassicFemaleV2", "NeoClassicMaleV2", "Paragon", "Peabrain", "Perfection", "RobloxClassic", "Roll", "Roundy", "RoxBox", "StrongJaw", "TheEngineer", "Trim", "WomanHead".
FieldValue
tags["Yields"]
securityNone
thread safetyUnsafe
capabilities["Players","AssetRead"]

Code samples: View on Creator Hub (getting-owned-head-shapes).

AvatarEditorService:GetInventory

Deprecated.

Deprecated in favor of AvatarEditorService:GetInventoryAsync(). This method has the same behavior: it returns an InventoryPages object with information about items owned by the Players.LocalPlayer that match the given AvatarAssetTypes. See AvatarEditorService:GetInventoryAsync() for the response format.

Parameters

NameTypeDefaultDescription
assetTypesArrayThe AvatarAssetType that can will be checked for in the player's inventory.

Returns

TypeDescription
InventoryPagesAn InventoryPages object containing information about owned items matching the given asset types.
FieldValue
tags["Yields","Deprecated"]
securityNone
thread safetyUnsafe
capabilities["Players","AssetRead"]

AvatarEditorService:GetInventoryAsync

Returns an InventoryPages object with information about owned items in the users inventory with the given AvatarAssetTypes.

The returned table includes the following fields:

[
    {
      "AssetId": 0,
      "AssetType": "string",
      "Created": "string",
      "Name": "string",
      "CreatedTime": DateTime,
      "ExpirationTime": DateTime,
    }
]
Field Type Description
AssetId number The asset ID.
AssetType string The asset type as a string.
Created string ISO 8601 timestamp of when the item was acquired.
Name string The display name of the item.
CreatedTime DateTime When the item was acquired, as a Datatype.DateTime value.
ExpirationTime DateTime Optional. The absolute time when the item's timed ownership expires. Only present for items acquired via a timed option. Absent for permanently owned items.

Parameters

NameTypeDefaultDescription
assetTypesArrayThe AvatarAssetType that can will be checked for in the player's inventory.

Returns

TypeDescription
InventoryPagesAn InventoryPages object containing information about owned items matching the given asset types.
FieldValue
tags["Yields"]
securityNone
thread safetyUnsafe
capabilities["Players","AssetRead"]

Code samples: View on Creator Hub (AvatarEditorService-GetInventoryAsync-TimedOptions).

AvatarEditorService:GetItemDetails

Deprecated.

Deprecated in favor of AvatarEditorService:GetItemDetailsAsync(). This method has the same behavior: it returns a table containing the item details for the given item. See AvatarEditorService:GetItemDetailsAsync() for the response format.

Parameters

NameTypeDefaultDescription
itemIdint64The ID of the item whose details are being retrieved.
itemTypeAvatarItemTypeAn enum value indicating the type of item whose details are being retrieved.

Returns

TypeDescription
DictionaryA table containing the item info for the retrieved item. See above for a sample table.
FieldValue
tags["Yields","Deprecated"]
securityNone
thread safetyUnsafe
capabilities["AssetRead"]

AvatarEditorService:GetItemDetailsAsync

This function returns the item details for the given item. It accepts two parameters - the first indicating the ID of the item being retrieved and the second indicating its AvatarItemType.

The response includes all fields from Item Details Response (see above in summary), plus the following additional fields specific to single-item queries:

Field Type Description
Owned boolean Whether the item is owned by the current user.
IsPurchasable boolean Whether the item can be purchased by the current user.
ExpectedSellerId number The user ID of the lowest private seller if resellable, or the creator's target ID otherwise. Used when calling purchase APIs.
CreatingUniverseId number If this asset was created in an experience via the In-Experience Creation (IEC) pipeline, this is the universe ID of the creating experience. nil for standard catalog items. Use this to display attribution (e.g., "Created in [experience]") in your avatar editor UI.
ExpirationTime DateTime Optional. The absolute time when the item's timed ownership expires. Only present when the item is owned by the current user via a timed option. Absent for permanently owned items.

Parameters

NameTypeDefaultDescription
itemIdint64The ID of the item whose details are being retrieved.
itemTypeAvatarItemTypeAn enum value indicating the type of item whose details are being retrieved.

Returns

TypeDescription
DictionaryA table containing the item info for the retrieved item.
FieldValue
tags["Yields"]
securityNone
thread safetyUnsafe
capabilities["AssetRead"]

Code samples: View on Creator Hub (AvatarEditorService-GetItemDetailsAsync-TimedOptions).

AvatarEditorService:GetOutfitDetails

Deprecated.

Deprecated in favor of AvatarEditorService:GetOutfitDetailsAsync(). This method has the same behavior: it returns a table containing the outfit details for the given outfit. See AvatarEditorService:GetOutfitDetailsAsync() for the response format.

Parameters

NameTypeDefaultDescription
outfitIdint64The ID of the outfit whose details are being retrieved.

Returns

TypeDescription
DictionaryA table containing the outfit info for the retrieved outfit. See above for a sample table.
FieldValue
tags["Yields","Deprecated"]
securityNone
thread safetyUnsafe
capabilities["AssetRead"]

AvatarEditorService:GetOutfitDetailsAsync

This function returns the outfit details for the given outfit. It accepts one parameter: the ID of the outfit.

Data returns in the following format:

{
  "Assets": [
    {
      "AssetType": {
        "Id": 31,
        "Name": "RightLeg"
      },
      "CurrentVersionId": 16447385805,
      "Id": 11584239464,
      "Name": "Anime Female - Right Leg",
      "SupportsHeadShapes": false
    }
  ],
  "BodyColors": {
    "HeadColor": Color3(204, 142, 105),
    "LeftArmColor": Color3(204, 142, 105),
    "LeftLegColor": Color3(204, 142, 105),
    "RightArmColor": Color3(204, 142, 105),
    "RightLegColor": Color3(204, 142, 105),
    "TorsoColor": Color3(204, 142, 105)
  },
  "Id": 14703770624,
  "IsEditable": true,
  "Name": "Your Costume",
  "OutfitType": "Avatar",
  "PlayerAvatarType": "R15",
  "Scale": {
    "BodyType": 0,
    "Depth": 1,
    "Head": 1,
    "Height": 1,
    "Proportion": 0,
    "Width": 1
  },
}

Parameters

NameTypeDefaultDescription
outfitIdint64The ID of the outfit whose details are being retrieved.

Returns

TypeDescription
DictionaryA table containing the outfit info for the retrieved outfit. See above for a sample table.
FieldValue
tags["Yields"]
securityNone
thread safetyUnsafe
capabilities["AssetRead"]

AvatarEditorService:GetOutfits

Deprecated.

Deprecated in favor of AvatarEditorService:GetOutfitsAsync(). This method has the same behavior: it returns outfit data for the Players.LocalPlayer. See AvatarEditorService:GetOutfitsAsync() for the response format.

Parameters

NameTypeDefaultDescription
outfitSourceOutfitSourceAllAn OutfitSource filter specifying which outfits to include. Defaults to OutfitSource.All.
outfitTypeOutfitTypeAllAn OutfitType filter specifying the type of outfits to return. Defaults to OutfitType.All.

Returns

TypeDescription
OutfitPagesAn OutfitPages object containing the outfit data for the local player.
FieldValue
tags["Yields","Deprecated"]
securityNone
thread safetyUnsafe
capabilities["Players","AssetRead"]

AvatarEditorService:GetOutfitsAsync

This function returns outfit data for the Players.LocalPlayer. This would be used with Players:GetHumanoidDescriptionFromOutfitIdAsync() to update the players character to the outfit. Access to this would also depend on AvatarEditorService:PromptAllowInventoryReadAccess() being accepted by the user.

The returned table includes the following fields:

[
    {
      "Id": 0,
      "Name": "string",
      "IsEditable": true
    }
]
Name type Description
id int
name string
isEditable boolean

Parameters

NameTypeDefaultDescription
outfitSourceOutfitSourceAllAn OutfitSource filter specifying which outfits to include. Defaults to OutfitSource.All.
outfitTypeOutfitTypeAllAn OutfitType filter specifying the type of outfits to return. Defaults to OutfitType.All.

Returns

TypeDescription
OutfitPagesAn OutfitPages object containing the outfit data for the local player.
FieldValue
tags["Yields"]
securityNone
thread safetyUnsafe
capabilities["Players","AssetRead"]

AvatarEditorService:GetRecommendedAssets

Deprecated.

Deprecated in favor of AvatarEditorService:GetRecommendedAssetsAsync(). This method has the same behavior: it returns a list of recommended assets based on the given AvatarAssetType and context asset ID. See AvatarEditorService:GetRecommendedAssetsAsync() for the response format.

Parameters

NameTypeDefaultDescription
assetTypeAvatarAssetTypeThe type of asset recommendations to retrieve recommendations for. Only affects the response when item based recommendations don't exist for the given contextAssetId.
contextAssetIdint640The ID of an asset with a type matching the provided assetType used for context when retrieving recommendations.

Returns

TypeDescription
ArrayA list of recommendations based on the given AssetType.
FieldValue
tags["Yields","Deprecated"]
securityNone
thread safetyUnsafe
capabilities["AssetRead"]

Code samples: View on Creator Hub (getting-a-hat-recommendation).

AvatarEditorService:GetRecommendedAssetsAsync

Returns a list of recommended assets based on a given AssetType and asset ID. Use this to gather a list of similar assets to the asset provided. Take a look at the code sample below for more information on possible usages for this function.

Data is in the format:

[
    {
      "Item": {
        "AssetId": 0,
        "Name": "string",
        "Price": 0,
        "PremiumPrice": 0
      },
      "Creator": {
        "CreatorId": 0,
        "CreatorType": "string",
        "Name": "string"
      },
      "Product": {
        "Id": 0,
        "PriceInRobux": 0,
        "IsForSale": true,
        "IsResellable": true,
        "IsLimited": true,
        "IsLimitedUnique": true,
        "TotalPrivateSales": 0,
        "OffsaleDeadline": "string",
        "IsFree": true
      }
    }
]

Parameters

NameTypeDefaultDescription
assetTypeAvatarAssetTypeThe type of asset recommendations to retrieve recommendations for. Only affects the response when item based recommendations don't exist for the given contextAssetId.
contextAssetIdint640The ID of an asset with a type matching the provided assetType used for context when retrieving recommendations.

Returns

TypeDescription
ArrayA list of recommendations based on the given AssetType.
FieldValue
tags["Yields"]
securityNone
thread safetyUnsafe
capabilities["AssetRead"]

Code samples: View on Creator Hub (getting-a-hat-recommendation).

AvatarEditorService:GetRecommendedBundles

Deprecated.

Deprecated in favor of AvatarEditorService:GetRecommendedBundlesAsync(). This method has the same behavior: it returns a list of recommended bundles for a given bundle ID. See AvatarEditorService:GetRecommendedBundlesAsync() for the response format.

Parameters

NameTypeDefaultDescription
bundleIdint64A list of recommended bundles.

Returns

TypeDescription
ArrayThe bundle ID that the recommended bundles will be returned for.
FieldValue
tags["Yields","Deprecated"]
securityNone
thread safetyUnsafe
capabilities["AssetRead"]

AvatarEditorService:GetRecommendedBundlesAsync

This function returns a list of recommended bundles for a given bundle id.

Data is in the format:

[
    {
      "Id": 0,
      "Name": "string",
      "Description": "string",
      "BundleType": "string",
      "Items": [
        {
          "Owned": true,
          "Id": 0,
          "Name": "string",
          "Type": "string",
          "AssetType": "string",
          "SupportsHeadShapes": false
        }
      ],
      "Creator": {
        "Id": 0,
        "Name": "string",
        "Type": "string"
      },
      "Product": {
        "Id": 0,
        "Type": "string",
        "IsPublicDomain": true,
        "IsForSale": true,
        "PriceInRobux": 0,
        "PremiumPricing": {
          "PremiumDiscountPercentage": 0,
          "PremiumPriceInRobux": 0
        }
      }
    }
]

Parameters

NameTypeDefaultDescription
bundleIdint64A list of recommended bundles.

Returns

TypeDescription
ArrayThe bundle ID that the recommended bundles will be returned for.
FieldValue
tags["Yields"]
securityNone
thread safetyUnsafe
capabilities["AssetRead"]

AvatarEditorService:PromptAllowInventoryReadAccess

Prompts the Players.LocalPlayer to allow the developer to read what items the user has in their inventory and other avatar editor related information. The prompt needs to be confirmed by the user for the developer to use AvatarEditorService:GetInventoryAsync(), AvatarEditorService:GetOutfitsAsync() and AvatarEditorService:GetFavoriteAsync(). Permission does not persist between sessions.

Returns

TypeDescription
()
FieldValue
securityNone
thread safetyUnsafe
capabilities["Players","AssetRead"]

AvatarEditorService:PromptCreateOutfit

Prompts the Players.LocalPlayer to save the given HumanoidDescription as an outfit. Does not yield. The result can be retrieved by listening to the AvatarEditorService.PromptCreateOutfitCompleted event.

Parameters

NameTypeDefaultDescription
outfitHumanoidDescriptionThe Outfit that the player will be prompted to created.
rigTypeHumanoidRigTypeThe HumanoidRigType that the outfit will be created for if the player confirms the prompt.
outfitOptionsDictionarynilReserved for future options. Must be empty or omitted.
outfitTypeVariantOptional OutfitType. Only Avatar and Makeup values are accepted. When omitted, the type is inferred from the description.

Returns

TypeDescription
()
FieldValue
securityNone
thread safetyUnsafe
capabilities["Players","PlatformAvatarEditing"]

AvatarEditorService:PromptDeleteOutfit

Prompts the Players.LocalPlayer to delete the given outfit. Does not yield. The result can be retrieved by listening to the AvatarEditorService.PromptDeleteOutfitCompleted event.

Parameters

NameTypeDefaultDescription
outfitIdint64The outfitId of the outfit to delete.

Returns

TypeDescription
()
FieldValue
securityNone
thread safetyUnsafe
capabilities["Players","PlatformAvatarEditing"]

AvatarEditorService:PromptRenameOutfit

Prompts the Players.LocalPlayer to rename the given outfit. Does not yield. The result can be retrieved by listening to the AvatarEditorService.PromptRenameOutfitCompleted event.

Parameters

NameTypeDefaultDescription
outfitIdint64The outfitId of the outfit to rename.

Returns

TypeDescription
()
FieldValue
securityNone
thread safetyUnsafe
capabilities["Players","PlatformAvatarEditing"]

AvatarEditorService:PromptSaveAvatar

This function prompts the Players.LocalPlayer to update their avatar based on the given HumanoidDescription and HumanoidRigType (R6 or R15). Does not yield and can get the result by listening to the PromptSaveAvatarCompleted event. This is similar to how other prompts such as PromptPurchase work.

Parameters

NameTypeDefaultDescription
humanoidDescriptionHumanoidDescriptionThe given HumanoidDescription being prompted to save.
rigTypeHumanoidRigTypeThe HumanoidRigType that the avatar will be saved for if the player confirms the prompt.

Returns

TypeDescription
()
FieldValue
securityNone
thread safetyUnsafe
capabilities["Players","PlatformAvatarEditing"]

AvatarEditorService:PromptSetFavorite

This function prompts the Players.LocalPlayer to favorite or unfavorite the given asset or bundle.

Parameters

NameTypeDefaultDescription
itemIdint64The ItemId of the item being prompted to favorite.
itemTypeAvatarItemTypeThe type of item being prompted to favorite.
shouldFavoritebooleanWhether to favorite (true) or unfavorite (false) the item.

Returns

TypeDescription
()
FieldValue
securityNone
thread safetyUnsafe
capabilities["Players","PlatformAvatarEditing"]

AvatarEditorService:PromptUpdateOutfit

Prompts the Players.LocalPlayer to update the given outfit with the given HumanoidDescription.

Parameters

NameTypeDefaultDescription
outfitIdint64The outfitId of the outfit to update.
updatedOutfitHumanoidDescriptionA HumanoidDescription that represents the new outfit data.
rigTypeHumanoidRigTypeThe HumanoidRigType to update the outfit to.

Returns

TypeDescription
()
FieldValue
securityNone
thread safetyUnsafe
capabilities["Players","PlatformAvatarEditing"]

AvatarEditorService:SearchCatalog

Deprecated.

Deprecated in favor of AvatarEditorService:SearchCatalogAsync(). This method has the same behavior: it returns a CatalogPages object containing the result of the given search. See AvatarEditorService:SearchCatalogAsync() for details on the response format.

Parameters

NameTypeDefaultDescription
searchParametersCatalogSearchParamsAn object containing the parameters used for the search.

Returns

TypeDescription
CatalogPagesA CatalogPages object containing the search results.
FieldValue
tags["Yields","Deprecated"]
securityNone
thread safetyUnsafe
capabilities["AssetRead"]

AvatarEditorService:SearchCatalogAsync

This function returns a CatalogPages object containing the result of the given search.

Each item in the returned pages uses the Item Details Response format (see above in summary), including the TimedOptions field for assets that support timed ownership.

Use SalesTypeFilter.TimedOptions in CatalogSearchParams to filter results to only items with timed options available.

Parameters

NameTypeDefaultDescription
searchParametersCatalogSearchParamsAn object containing the parameters used for the search.

Returns

TypeDescription
CatalogPagesA CatalogPages object containing the search results.
FieldValue
tags["Yields"]
securityNone
thread safetyUnsafe
capabilities["AssetRead"]

Code samples: View on Creator Hub (AvatarEditorService-SearchCatalogAsync-TimedOptions).

Events

NameType / ReturnsDescription
AvatarEditorService.PromptAllowInventoryReadAccessCompletedFires when the AvatarEditorService:PromptAllowInventoryReadAccess() prompt is responded to by the user.
AvatarEditorService.PromptCreateOutfitCompletedFires when the PromptSaveOutfit operation is completed.
AvatarEditorService.PromptDeleteOutfitCompletedFires when the PromptDeleteOutfit operation is completed.
AvatarEditorService.PromptRenameOutfitCompletedFires when the PromptRenameOutfit operation is completed.
AvatarEditorService.PromptSaveAvatarCompletedFires when the AvatarEditorService:PromptSaveAvatar() operation is completed.
AvatarEditorService.PromptSetFavoriteCompletedFires when the AvatarEditorService:PromptSetFavorite() operation is completed.
AvatarEditorService.PromptUpdateOutfitCompletedFires when the AvatarEditorService:PromptUpdateOutfit() operation is completed.

Inherited from Instance

NameType / ReturnsDescription
Instance.AncestryChangedFires when the Instance.Parent property of this object or one of its ancestors is changed.
Instance.AttributeChangedFires whenever an attribute is changed on the Instance.
Instance.ChildAddedFires after an object is parented to this Instance.
Instance.childAdded
Instance.ChildRemovedFires after a child is removed from this Instance.
Instance.DescendantAddedFires after a descendant is added to the Instance.
Instance.DescendantRemovingFires immediately before a descendant of the Instance is removed.
Instance.DestroyingFires immediately before (or is deferred until after) the instance is destroyed via Instance:Destroy().
Instance.StyledPropertiesChangedFires whenever any style property is changed on the instance, including when a property is set to nil.

Inherited from Object

NameType / ReturnsDescription
Object.ChangedFires immediately after a property of the object changes, with some limitations.

AvatarEditorService.PromptAllowInventoryReadAccessCompleted

This event fires when the AvatarEditorService:PromptAllowInventoryReadAccess() prompt is responded to by the user. It can only return the Success or PermissionDenied enum statuses as it does not perform any web requests which could fail.

Parameters

NameTypeDefaultDescription
resultAvatarPromptResultThe result of the prompt.
FieldValue
securityNone
capabilities["Players","AssetRead"]

AvatarEditorService.PromptCreateOutfitCompleted

This event fires when the PromptSaveOutfit operation is completed. It gives a status enum indicating whether the prompt succeeded, failed or permission was not granted by the user.

Parameters

NameTypeDefaultDescription
resultAvatarPromptResultThe result of the prompt.
failureTypeVariantAn CreateOutfitFailure value indicating the reason the outfit creation failed, or nil on success.
FieldValue
securityNone
capabilities["Players","PlatformAvatarEditing"]

Code samples: View on Creator Hub (AvatarEditorService-PromptCreateOutfitCompleted).

AvatarEditorService.PromptDeleteOutfitCompleted

Fires when the PromptDeleteOutfit operation is completed. It gives a status enum indicating whether the prompt succeeded, failed or permission was not granted by the user.

Parameters

NameTypeDefaultDescription
resultAvatarPromptResultThe result of the prompt.
FieldValue
securityNone
capabilities["Players","PlatformAvatarEditing"]

AvatarEditorService.PromptRenameOutfitCompleted

Fires when the PromptRenameOutfit operation is completed. It gives a status enum indicating whether the prompt succeeded, failed or permission was not granted by the user.

Parameters

NameTypeDefaultDescription
resultAvatarPromptResultThe result of the prompt.
FieldValue
securityNone
capabilities["Players","PlatformAvatarEditing"]

AvatarEditorService.PromptSaveAvatarCompleted

This event fires when the AvatarEditorService:PromptSaveAvatar() operation is completed. It gives a status enum indicating whether the prompt succeeded, failed or permission was not granted by the user.

Parameters

NameTypeDefaultDescription
resultAvatarPromptResultThe result of the prompt.
humanoidDescriptionHumanoidDescriptionThe HumanoidDescription that was saved (or attempted to be saved) to the platform avatar.
FieldValue
securityNone
capabilities["Players","PlatformAvatarEditing"]

AvatarEditorService.PromptSetFavoriteCompleted

Fires when the AvatarEditorService:PromptSetFavorite() operation is completed. It gives a status enum indicating whether the prompt succeeded, failed or permission was not granted by the user.

Parameters

NameTypeDefaultDescription
resultAvatarPromptResultThe result of the prompt.
FieldValue
securityNone
capabilities["Players","PlatformAvatarEditing"]

AvatarEditorService.PromptUpdateOutfitCompleted

Fires when the AvatarEditorService:PromptUpdateOutfit() operation is completed. It gives a status enum indicating whether the prompt succeeded, failed or permission was not granted by the user.

Parameters

NameTypeDefaultDescription
resultAvatarPromptResultThe result of the prompt.
FieldValue
securityNone
capabilities["Players","PlatformAvatarEditing"]

Properties

Inherited from Instance

NameType / ReturnsDescription
Instance.ArchivablebooleanDetermines if an Instance and its descendants can be cloned using Instance:Clone(), and can be saved/published.
Instance.archivableboolean
Instance.CapabilitiesSecurityCapabilitiesThe set of capabilities allowed to be used for scripts inside this container.
Instance.IsInSandboxbooleanIndicates whether the instance is inside a sandboxed container.
Instance.NamestringA non-unique identifier of the Instance.
Instance.ParentInstanceDetermines the hierarchical parent of the Instance.
Instance.PredictionModePredictionModeReflects the client-side prediction mode applied to the instance under server-authoritative physics.
Instance.RobloxLockedbooleanA deprecated property that used to protect CoreGui objects.
Instance.SandboxedbooleanWhen enabled, the instance can only access abilities in its Capabilities list.
Instance.UniqueIdUniqueIdA unique identifier for the instance.

Inherited from Object

NameType / ReturnsDescription
Object.ClassNamestringA read-only string representing the class this Object belongs to.
Object.classNamestring