Hi Creators,
To better protect your experiences from potential security vulnerabilities, we are updating the default behavior of two of our widely used APIs: Humanoid:ApplyDescription
and Players:CreateHumanoidModelFromDescription
.
The changes will go into effect 10/20/2025. For best development practices, if your experience is using either of these APIs and allows users to equip custom assets or non-avatar catalog items, action is needed to accommodate for the following changes.
What is changing?
The assetTypeVerification
argument for the Humanoid:ApplyDescription
and Players:CreateHumanoidModelFromDescription
APIs defaults to Enum.AssetTypeVerification.ClientOnly
. We will be changing this default value to be Enum.AssetTypeVerification.Always
. This new default ensures that any assets loaded onto a humanoid are verified by the server, preventing the use of unapproved asset types.
Why are we making this change?
With the current default value, if your experience loads models with a HumanoidDescription
by either calling Players:CreateHumanoidModelFromDescription
or Humanoid:ApplyDescription
on the server, there is no validation of the types of assets being applied (shirts, pants, accessories, etc). This could be a potential security vulnerability. Updating the default to always verify these assets on the server will eliminate this security risk.
Timeline
We want to swiftly enact this change while also giving an appropriate amount of time for developers to take action. This change will go into effect on Monday, October 20, 2025.
Does This Affect You?
-
You are NOT affected if: Your experience only uses these APIs to load standard avatar assets from the Roblox catalog (e.g., shirts, pants, accessories). No action is needed.
-
You ARE affected if: Your experience uses these APIs to load custom assets you’ve created or non-avatar catalog items. Action is required before Monday, October 20, 2025.
Action Needed
If you are loading non-avatar catalog items, you can choose one of the following courses of action depending on your experience:
-
If you can trust the assets being loaded in via
Players:CreateHumanoidModelFromDescription
orHumanoid:ApplyDescription
, you can change all the calls to these functions in your experience to explicitly pass inEnum.AssetTypeVerification.ClientOnly
. -
If you can’t trust the assets being loaded in, then you should try to make your experience work with the new default value or pass in
Enum.AssetTypeVerification.Always
explicitly. This would forbid the loading of such assets via these APIs in your experience going forward.
Example of the Change:
-- Before
Humanoid:ApplyDescription(humanoidDescription)
-- After
Humanoid:ApplyDescription(humanoidDescription, Enum.AssetTypeVerification.ClientOnly)
Note: If your experience only focuses on loading in assets from the catalog rather than from the Creator Marketplace or your own custom models, then no action is needed.
Supporting Custom Use Cases
We know some creators use custom made or non avatar catalog assets; for example if you made assets for your own experience only. Therefore, we are keeping the Enum.AssetTypeVerification.ClientOnly
option available. This allows you to maintain your unique vision while making a conscious choice about asset verification.
We’re committed to refining our APIs for the best possible security. Thank you for staying proactive with your code updates and aligning with best practices.
- Avatar Team
—
FAQs
What would happen if I change my default value, but I’m just loading avatar assets from the catalog?
- Although no action is necessary if you are just loading avatar assets from the catalog, if you do change your default value, this will not impact your current experience.
Is there a way to mitigate the potential security risk, before the update goes live?
- If your experience relies on loading non-avatar assets from outside the catalog, we recommend limiting what assets users can load into your experience by creating a whitelist of trusted assets for them to choose from.
- If you are okay with your users only being able to load avatar catalog assets, we recommend you change all calls to these APIs to pass in
Enum.AssetTypeVerification.Always
. This can be done before the update goes live and will eliminate the security risk.
What assets can I trust?
- Avatar catalog items (which undergo validation upon upload), items made by you, or items that you have personally verified.