O sistema de validação UGC é o mecanismo técnico da Roblox que verifica se os ativos de avatar atendem às especificações da plataforma antes que você possa enviá-los e publicá-los no Marketplace. Esse processo garante que os corpos de avatar, cosméticos, roupas e acessórios se comportem de maneira consistente em toda a plataforma.
O sistema de validação UGC é executado sempre que você:
- Tenta enviar um ativo de avatar para o Marketplace através do Studio.
- Chama APIs de AvatarCreationService para criação de ativos de avatar dentro da experiência.
Durante esse processo, o sistema de validação UGC analisa seu ativo para verificar se ele atende aos requisitos nas categorias de validação que são específicas para seu tipo de ativo. Para uma lista abrangente desses requisitos, consulte Especificações de corpo, Especificações de cabeça dinâmica, Especificações de maquiagem, Especificações de acessórios rígidos e Especificações de acessórios em camadas.
Quando um ativo de avatar passa na validação, você pode prosseguir com o processo de envio no Studio pagando a taxa de envio, submetendo o ativo para moderação e vendendo-o no Marketplace, ou o jogador pode prosseguir para comprar o ativo de avatar que criaram dentro de uma experiência.

Quando um ativo de avatar não passa na validação, você ou o jogador recebem mensagens de erro com informações sobre o motivo pelo qual o ativo de avatar não passou na validação. Para assistência na resolução de problemas, a validação UGC possui ferramentas de visualização com verificações que fornecem guias visuais específicas do ativo sobre como corrigir ou melhorar seu ativo para que ele possa passar na validação.

Categorias de validação
O sistema de validação UGC organiza a validação em várias categorias de alto nível. Para informações sobre essas categorias e algumas áreas que elas validam, consulte a tabela a seguir.
| Categoria | O que valida |
|---|---|
| Esquema |
|
| Geometria de malha |
|
| Textura / materiais |
|
| Rigging / skinning |
|
| Gaiolas internas e externas |
|
| Anexos |
|
| Cabeça dinâmica |
|
| Segurança / moderação |
|
Verificações de visualização
O sistema de validação UGC inclui ferramentas de visualização opcionais com verificações para ajudá-lo a identificar, entender, diagnosticar e corrigir ativos de avatar que ainda não estão prontos para estar no Marketplace. Quando ativas, as verificações de visualização fornecem informações sobre erros de validação para ativos não conformes e avaliações de qualidade para ativos conformes que podem ser aprimorados.


Para acessar as ferramentas de visualização do sistema de validação UGC, você deve primeiro habilitar o recurso beta. Para habilitar e usar as verificações de visualização opcionais:
No Studio, navegue até Arquivo > Recursos Beta.
Ative Visualizando Validação UGC.
Reinicie o Studio e, em seguida, na mezzanine, clique no ícone de mais para adicionar uma guia personalizada. Uma nova guia será exibida.

Na sua guia personalizada, clique no botão Adicionar ferramentas. A janela pop-up Adicionar Ferramentas será exibida.

Ative Validação UGC para adicioná-la à sua barra de ferramentas e, em seguida, feche a janela.
Navegue de volta para sua guia personalizada e selecione o botão Validação UGC para executar o plugin. Uma janela de Validação UGC será exibida.
Na janela Explorer, selecione um corpo de personagem, cabeça dinâmica, acessório rígido ou acessório em camadas e, em seguida, volte para a janela Validação UGC e clique no botão Executar validação. Uma janela pop-up será exibida.
Na janela pop-up:
Confirme o tipo de ativo do ativo de avatar que você selecionou. Por exemplo, se você selecionou um acessório em camadas Enum.AccessoryType.Pants, use o menu suspenso para selecionar PantsAccessory.

Clique no botão Executar validação.
O serviço de validação será executado em segundo plano e relatará os resultados na janela Validação UGC como uma combinação de erros e/ou avisos, dependendo do estado do seu ativo. Para informações sobre cada verificação de validação visual, consulte as seguintes subseções.
Measure_Cage_Distance_Head
Measure_Cage_Distance_Head é uma verificação de validação que pontua quão de perto a gaiola externa da cabeça do avatar se ajusta à malha da cabeça, verificando se a gaiola não flutua muito longe da malha nem afunda dentro dela.
| Código de erro | Severidade |
|---|---|
| A pontuação de qualidade não pode ser computada corretamente devido aos dados de entrada estarem incorretos ou incompletos. Verifique seu modelo ou envie um relatório de bug. | Bloqueia a validação |
| A gaiola da cabeça intersecta com a malha da cabeça. {negativeSDFPercent}% dos vértices da gaiola da cabeça estão dentro da malha da cabeça. | Bloqueia a validação |
| A gaiola da cabeça está muito longe da malha da cabeça. A distância máxima entre a gaiola da cabeça e a malha é {max_sdf}, que está acima do limite permitido {max_sdf_threshold} | Bloqueia a validação |
| Aviso de qualidade do ativo: A pontuação de distância da gaiola da cabeça é {score}. A distância máxima entre a gaiola da cabeça e a malha é {max_distance}, {negative_sdf_percent}% dos vértices da gaiola da cabeça estão dentro da malha da cabeça. | Aviso |
Measure_Cage_Mesh_Distance
Measure_Cage_Mesh_Distance é uma verificação de validação que pontua quão de perto a gaiola externa da roupa em camadas acompanha a malha renderizada, sinalizando quando uma gaiola se desvia muito ou empurra para dentro da malha.
| Código de erro | Severidade |
|---|---|
| A pontuação de qualidade não pode ser computada corretamente devido aos dados de entrada estarem incorretos ou incompletos. Verifique seu modelo ou envie um relatório de bug. | Bloqueia a validação |
| A gaiola externa intersecta com a malha de renderização. {negativeSDFPercent}% dos vértices da gaiola externa estão dentro da malha de renderização. | Bloqueia a validação |
| A gaiola externa está muito longe da malha de renderização. A distância máxima entre a gaiola externa e a malha é {max_sdf}, que está acima do limite permitido {max_sdf_threshold}. | Bloqueia a validação |
| Aviso de qualidade do ativo: A pontuação de distância da gaiola para a malha é {score}. A distância máxima entre a gaiola externa e a malha é {max_distance}, {negative_sdf_percent}% dos vértices da gaiola externa estão dentro da malha de renderização. | Aviso |
Measure_Cage_Mesh_Distance_Avatar
Measure_Cage_Mesh_Distance_Avatar é uma verificação de validação que pontua quão de perto a gaiola externa do corpo inteiro segue a malha do corpo, sinalizando quando uma gaiola flutua muito longe da superfície ou a intersecta.
| Código de erro | Severidade |
|---|---|
| A pontuação de qualidade não pode ser computada corretamente devido aos dados de entrada estarem incorretos ou incompletos. Verifique seu modelo ou envie um relatório de bug. | Bloqueia a validação |
| A gaiola do corpo intersecta com a malha do corpo. {negativeSDFPercent}% dos vértices da gaiola do corpo estão dentro da malha do corpo. | Bloqueia a validação |
| A gaiola do corpo está muito longe da malha do corpo. A distância máxima entre a gaiola do corpo e a malha é {max_sdf}, que está acima do limite permitido {max_sdf_threshold}. | Bloqueia a validação |
| Aviso de qualidade do ativo: A pontuação de distância da gaiola do corpo é {score}. A distância máxima entre a gaiola do corpo e a malha é {max_distance}, {negative_sdf_percent}% dos vértices da gaiola do corpo estão dentro da malha do corpo. | Aviso |
Measure_Cage_Relevancy
Measure_Cage_Relevancy é uma verificação de validação que pontua quanto da gaiola externa que você moveu realmente se ajusta sobre o acessório, para que as edições da gaiola permaneçam onde a peça veste.
| Código de erro | Severidade |
|---|---|
| A pontuação de qualidade não pode ser computada corretamente devido aos dados de entrada estarem incorretos ou incompletos. Verifique seu modelo ou envie um relatório de bug. | Bloqueia a validação |
| {outer_cage_face_irrelevant_percent}% dos vértices da gaiola externa modificada não cobrem o acessório. Certifique-se de que você está movendo a gaiola externa apenas onde necessário. | Bloqueia a validação |
| Aviso de qualidade do ativo: A pontuação de relevância da gaiola é {score}. {irrelevant_percent}% dos vértices da gaiola externa modificada não cobrem o acessório. | Aviso |
Measure_Cage_UV
Measure_Cage_UV é uma verificação de validação que verifica se os UVs da gaiola interna e externa correspondem ao modelo de roupa em camadas; UVs que não correspondem ao modelo de roupa em camadas quebram como o ativo se ajusta ao corpo.
| Código de erro | Severidade |
|---|---|
| A pontuação de qualidade não pode ser computada corretamente devido aos dados de entrada estarem incorretos ou incompletos. Verifique seu modelo ou envie um relatório de bug. | Bloqueia a validação |
| Existem {incorrect_uv_count} valores UV na gaiola {cage_name} que estão incorretos ou não pertencem ao modelo. Corrija os UV da gaiola. | Bloqueia a validação |
| Aviso de qualidade do ativo: A pontuação UV da gaiola é {score} para {cage_name}. Contagem de UVs incorretos: {incorrect_uv_count}. | Aviso |
Measure_Cage_UV_Avatar
Measure_Cage_UV_Avatar é uma verificação de validação que verifica se cada parte do corpo tem uma gaiola que mantém seus UVs no modelo padrão; UVs de gaiola errados distorcem como a roupa em camadas se ajusta ao corpo.
| Código de erro | Severidade |
|---|---|
| A pontuação de qualidade não pode ser computada corretamente devido aos dados de entrada estarem incorretos ou incompletos. Verifique seu modelo ou envie um relatório de bug. | Bloqueia a validação |
| Existem {incorrect_uv_count} valores UV na gaiola {cage_name} que estão incorretos ou não pertencem ao modelo. Corrija os UV da gaiola. | Bloqueia a validação |
| Aviso de qualidade do ativo: A pontuação UV da gaiola é {score} para {cage_name}. Contagem de UVs incorretos: {incorrect_uv_count}. | Aviso |
Measure_Degen_Triangles
Measure_Degen_Triangles é uma verificação de validação que pontua cada parte da malha por triângulos degenerados (faces com área zero ou quase zero); triângulos degenerados não adicionam superfície e podem quebrar a renderização.
| Código de erro | Severidade |
|---|---|
| Qualidade do ativo: {partName} possui {degenerate_triangle_percent}% triângulos degenerados (pontuação: {score}). | Aviso |
| A pontuação de qualidade do ativo para {measureName} não pode ser computada porque os dados de entrada estavam incompletos ou inválidos. Isso não bloqueia seu envio. | Aviso |
Measure_Dynamic_Head
Measure_Dynamic_Head é uma verificação de validação que verifica se uma cabeça dinâmica pode ser animada. Cabeças dinâmicas que são animáveis têm uma gaiola da cabeça, dados FACS, marcos alinhados e podem fechar os olhos, abrir a boca e expressar emoções.
| Código de erro | Severidade |
|---|---|
| A pontuação de qualidade não pode ser computada corretamente devido aos dados de entrada estarem incorretos ou incompletos. Verifique seu modelo ou envie um relatório de bug. | Bloqueia a validação |
| As cabeças dinâmicas no Marketplace devem estar devidamente enjauladas para que os vértices dos olhos e da boca na gaiola se alinhem com os vértices da malha. Melhore sua gaiola e seu alinhamento com a malha. | Bloqueia a validação |
| Não é possível detectar a expressão de sorriso para a cabeça dinâmica. Ajuste os marcos da gaiola para a boca de modo que correspondam aonde a boca está na cabeça e garanta que ela possa mostrar uma expressão de sorriso. | Bloqueia a validação |
| Não é possível detectar a expressão de fechamento do olho esquerdo para a cabeça dinâmica. Ajuste os marcos da gaiola para o olho esquerdo de modo que correspondam aonde o olho esquerdo está na cabeça e garanta que ele possa ser fechado. | Bloqueia a validação |
| As cabeças dinâmicas no Marketplace não têm gaiolas. Crie uma gaiola para a cabeça dinâmica. | Bloqueia a validação |
| Não é possível detectar a expressão de abertura da boca para a cabeça dinâmica. Ajuste os marcos da gaiola para a boca de modo que correspondam aonde a boca está na cabeça e garanta que ela possa abrir. | Bloqueia a validação |
| As cabeças dinâmicas no Marketplace devem ser animadas, mas esta cabeça não tem dados FACS. | Bloqueia a validação |
| Não é possível detectar a expressão de fechamento do olho direito para a cabeça dinâmica. Ajuste os marcos da gaiola para o olho direito de modo que correspondam aonde o olho direito está na cabeça e garanta que ele possa ser fechado. | Bloqueia a validação |
| Não é possível detectar a expressão de franzir a testa para a cabeça dinâmica. Ajuste os marcos da gaiola para a boca de modo que correspondam aonde a boca está na cabeça e garanta que ela possa mostrar uma expressão de franzir a testa. | Bloqueia a validação |
| Aviso de qualidade do ativo: a pontuação da expressão da cabeça dinâmica é {score}. | Aviso |
Measure_Joint_Number
Measure_Joint_Number é uma verificação de validação que pontua a configuração de juntas do rig do corpo em relação à configuração esperada. A configuração de juntas do rig do corpo inclui as contagens de juntas nas mãos esquerda e direita para rigs de maior fidelidade.
| Código de erro | Severidade |
|---|---|
| Qualidade do ativo: a configuração de juntas pontuou {score} (juntas: {joint_number}, mão esquerda: {left_hand_joint_number}, mão direita: {right_hand_joint_number}). | Aviso |
| A pontuação de qualidade do ativo para {measureName} não pode ser computada porque os dados de entrada estavam incompletos ou inválidos. Isso não bloqueia seu envio. | Aviso |
Measure_Mesh_Manifold
Measure_Mesh_Manifold é uma verificação de validação que pontua cada parte da malha pela integridade do manifold, identificando buracos, bordas não-manifold e problemas de topologia semelhantes na geometria.
| Código de erro | Severidade |
|---|---|
| Qualidade do ativo: {partName} tem problemas de manifold de malha (pontuação: {score}). | Aviso |
| A pontuação de qualidade do ativo para {measureName} não pode ser computada porque os dados de entrada estavam incompletos ou inválidos. Isso não bloqueia seu envio. | Aviso |
Measure_Mesh_Outside_OuterCage
Measure_Mesh_Outside_OuterCage é uma verificação de validação que pontua quanto da malha renderizada de um acessório permanece entre suas gaiolas; uma malha que se projeta para fora da gaiola externa se deforma mal quando usada.
| Código de erro | Severidade |
|---|---|
| A pontuação de qualidade não pode ser computada corretamente devido aos dados de entrada estarem incorretos ou incompletos. Verifique seu modelo ou envie um relatório de bug. | Bloqueia a validação |
| {mesh_outside_outer_cage_percent}% dos vértices da malha para o acessório estão fora de sua gaiola externa. Faça ajustes para que mais do acessório seja colocado entre as gaiolas. | Bloqueia a validação |
| Aviso de qualidade do ativo: A pontuação de contenção da malha é {score}. {mesh_outside_outer_cage_percent}% dos vértices da malha estão fora da gaiola externa. | Aviso |
Measure_Texture_Complexity
Measure_Texture_Complexity é uma verificação de validação que pontua cada textura pela complexidade visual, sinalizando texturas planas ou quase vazias que adicionam pouco detalhe ao ativo.
| Código de erro | Severidade |
|---|---|
| A pontuação de qualidade do ativo para {measureName} não pode ser computada porque os dados de entrada estavam incompletos ou inválidos. Isso não bloqueia seu envio. | Aviso |
| Qualidade do ativo: a textura {textureName} tem baixa complexidade (pontuação: {score}). | Aviso |
Measure_Texture_Resolution
Measure_Texture_Resolution é uma verificação de validação que pontua cada textura por suas dimensões em pixels, premiando resoluções altas o suficiente para manter o ativo nítido no corpo.
| Código de erro | Severidade |
|---|---|
| A pontuação de qualidade do ativo para {measureName} não pode ser computada porque os dados de entrada estavam incompletos ou inválidos. Isso não bloqueia seu envio. | Aviso |
| Qualidade do ativo: a textura {textureName} tem resolução {texture_width}x{texture_height} (pontuação: {score}). | Aviso |
Measure_Triangle_Intersection
Measure_Triangle_Intersection é uma verificação de validação que pontua cada parte da malha por triângulos que se intersectam, em que faces passam umas pelas outras e criam uma geometria bagunçada e sobreposta.
| Código de erro | Severidade |
|---|---|
| A pontuação de qualidade do ativo para {measureName} não pode ser computada porque os dados de entrada estavam incompletos ou inválidos. Isso não bloqueia seu envio. | Aviso |
| Qualidade do ativo: {partName} possui {intersecting_tri_face_percent}% faces de triângulos intersectantes (pontuação: {score}). | Aviso |
Measure_UV_Bound
Measure_UV_Bound é uma verificação de validação que mede quantos vértices UV de uma malha caem fora do espaço de textura de 0-1; ele relata uma pontuação, mas nunca bloqueia o envio.
| Código de erro | Severidade |
|---|---|
| A pontuação de qualidade do ativo para {measureName} não pode ser computada porque os dados de entrada estavam incompletos ou inválidos. Isso não bloqueia seu envio. | Aviso |
| Qualidade do ativo: {partName} possui {uv_outside_bound_vert_percent}% vértices UV fora dos limites (pontuação: {score}). | Aviso |
Measure_Vertex_Similarity
Measure_Vertex_Similarity é uma verificação de validação que mede a porcentagem de vértices quase duplicados em uma malha; ela relata uma pontuação, mas nunca bloqueia o envio.
| Código de erro | Severidade |
|---|---|
| A pontuação de qualidade do ativo para {measureName} não pode ser computada porque os dados de entrada estavam incompletos ou inválidos. Isso não bloqueia seu envio. | Aviso |
| Qualidade do ativo: {partName} possui {similar_vertex_percent}% vértices similares (pontuação: {score}). | Aviso |