Roblox runs a rigorous validation to ensure each asset that you upload to the Marketplace is compatible with all other assets on the Marketplace. For dynamic heads, validation primarily ensures that the head asset includes:
- Visibly discernible facial features, such as eyes and a mouth.
- A correctly configured outer cage to wear clothing and accessories.
- Correctly configured facial animation poses to perform basic universal expressions, such as blinking and smiling.
Validation for dynamic heads happens in three steps: facial feature detection, landmark projection, and meaningful animation assessment. See below for a reference of how validation processes, as well as common issues.

Step 1: Facial feature detection
Before checking facial animation, validation checks that the head has readable eyes and a mouth. It renders the head from multiple angles to assess the features: validation checks the eyes in the neutral expression, and checks the mouth in the mouth-open expression so that a mouth that isn't clearly visible at rest can still be detected.
If the eyes or mouth are missing, the head doesn't pass this check and validation stops before the animation checks. This prevents a head from passing based only on movement in its cage or mesh when the head doesn't have the required facial features.
Step 2: Landmark projection
Validation uses the head cage to project landmarks onto the head mesh. This helps Roblox establish where the eyes and mouth are and helps guide the facial animation test.
In the UGC Validation Visualization tool, red landmarks indicate the left eye caged region on the mesh and respond to the avatar's right eye FACS. Blue landmarks indicate the right eye caged region on the mesh and respond to the avatar's left eye FACS. Green landmarks indicate the avatar's discernible mouth, mouth FACS, and mouth caged region on the mesh.



Step 3: Meaningful animation assessment
After the earlier validation checks pass, validation renders a short sequence of expressions, including blinks, mouth movement, a smile, and a frown, from multiple angles. Validation evaluates whether the face performs the expressions, rather than simply detecting that pixels or geometry changed.
The head must show the required expressions clearly. Rigid movement, geometry swaps, random stretching, or other changes that don't read as facial expressions might not be sufficient to pass.

All FACS poses = 0

RightEyeClosed = 1
EyesLookDown = 1.

LeftEyeClosed = 1
EyesLookDown = 1.

JawDrop = 1

Pucker = 1
LeftLipCornerPuller = 1.
RightLipCornerPuller = 1

ChinRaiser = 1
ChinRaiserUpperLip = 1
LeftCheekRaiser = 0.85
RightCheekRaiser = 0.85
LeftInnerBrowRaiser = 1
RightInnerBrowRaiser = 1
LeftLipCornerDown = 1
RightLipCornerDown = 1
LeftLowerLipDepressor = 1
RightLowerLipDepressor = 1
Test face animations
Now that the validation system knows where to check for the eyes and mouth, the validation checks for facial animations to ensure that the following basic actions are possible:
- Left and right eyes can close
- Mouth can open and close
- Basic happy and sad expressions
The validation looks for the relative change in the landmarks. For example, when testing for right eye closing (FACS pose: RightEyeClosed), validation checks if the landmarks move from their original neutral state accordingly.


Common issues
Validation checks for several aspects of your head asset. If you are receiving an error related to dynamic head animation, use the following table for potential culprits:
| Issue | Potential fixes |
|---|---|
| The validation tool is unable to recognize facial features. See Facial feature detection and the related validation errors. | - Verify that the eyes are visible in the default mood and from multiple angles, and that the mouth is visible during the mouth-open animation and from multiple angles. - Verify that there is high contrast between the facial features and the rest of the head. |
| The validation tool is unable to successfully apply landmarks. See Unable to project landmarks. | - Verify that the cage landmark vertices are positioned directly over the corresponding areas of the face. - Verify that the cage is not intersecting with the head mesh. Landmark projection expects the cage to be over the head mesh. - Check for any gaps, holes, or difficult surfaces of the face where landmarks can fail to project. |
| The validation tool is able to apply landmarks, but can not detect animation. See Animations not displacing landmarks. | - Verify that landmarks are on the areas of the eyes and mouth that move during animation. - Verify that the cage is not intersecting with the head mesh. Landmark projection expects the cage to be over the head mesh. - If using separate meshes for eyeballs and mouthbags, ensure that your landmarks are applied to the head mesh, not the eyeballs or mouthbag. This can be achieved by slightly widening the area where your cages project landmarks. |
| The validation tool doesn't detect FACS animations. | - Your head doesn't include FACS animation. Verify that your head includes FACS poses and mapping. |
| The validation tool is unable to recognize one or more expressions. See Meaningful animation assessment and the related validation errors. | - Verify that the animation for each expression matches the motion of its FACS poses from multiple angles. - For the left and right blink animations, make sure the correct eye flattens vertically. - For the mouth open and close animations, make sure the mouth region of the mesh opens noticeably in the vertical direction, and that the close animation does the reverse. - For the happy and sad expressions, curl the mouth corners up into a smile and down into a frown. |
Unable to project landmarks
If validation is unable to apply the projection correctly onto the surface of the head, the validation fails. This often occurs if your cage extends beyond your head mesh, or if your head mesh has a hole or gap that prevents the application of the landmark. See the following examples:


Animations not displacing landmarks
In the case where landmarks are correctly applied to the base mesh and the base mesh includes FACS data, it's possible that the facial animations do not displace the landmarks enough to pass validation. See the following example:


There may also be cases where the landmarks are correct, but the animation itself does not alter the projected landscapes enough to pass validation. In these cases, fixing the animation and/or optimizing the cage could help the validation properly identify the facial animation.
Animation data missing
Heads require 17 specific FACS poses that are used to test the 5 basic actions. Regardless of landmarks or other FACS animations, validation immediately fails if the minimum 17 poses were not detected.
For information on how to pose and map dynamic heads, see Create basic dynamic heads.
Working with non-humanoids
Some character models, typically non-humanoids, have unnatural or missing eyes and mouths. The most common case of this is the classic blocky features.
In this case, the cage still applies the expected landscapes to the head surface, and Roblox validates if facial animations correctly displace the facial animations.



Make sure that your FACS animations properly affect the region where landmarks are applied.
In cases where eyes and mouths might be missing, the validation still projects landmarks and expects facial animation in those areas.



Make sure that your FACS animations properly affect the regions where the landmarks are applied.