Fix URP Materials Imported into a VRChat Project

A material made for Unity's Universal Render Pipeline can turn pink or lose features when it is imported into a VRChat project. VRChat does not use URP or HDRP, so installing URP is not the repair.

Keep the VRChat project on Unity's Built-in Render Pipeline. Preserve the source textures and settings, then rebuild the material with a shader that works for the content type and target platform.

Repair one material first

Keep the original material for reference until its replacement works in the VRChat project.

  1. Record the URP material's shader, textures, colors, tiling, and surface settings.
  2. Create a replacement material with a compatible Built-in or VRChat shader.
  3. Transfer the available properties, assign the replacement, and test the target platform.
VRChat project requirement

VRChat's SDK setup documentation says not to use HDRP or URP. Creator Companion provides the correct World and Avatar project templates, supported Unity version, and SDK packages.

Identify the source and destination

SRP is Unity's Scriptable Render Pipeline technology. URP and HDRP are both render pipelines built on SRP, so "convert an SRP material to URP" does not describe the VRChat repair.

Item VRChat repair
Source A material that uses a URP shader
Destination A Creator Companion project using the Built-in Render Pipeline
Reusable assets Meshes, textures, audio, and other pipeline-independent files
Replacement A new material using a compatible shader

If the source asset includes several materials, repair one representative material before replacing the rest.

Confirm the render-pipeline mismatch

Check the VRChat project

Unity reads the active render pipeline from both Quality and Graphics settings:

  1. Open Edit > Project Settings > Quality.
  2. Check the Render Pipeline field for each quality level.
  3. Open Edit > Project Settings > Graphics.
  4. Check Scriptable Render Pipeline Settings.

If neither setting has a Render Pipeline Asset assigned, Unity uses the Built-in Render Pipeline. A clean Creator Companion project should already have the correct setup.

Do not remove a pipeline asset from an existing URP project and treat it as converted. Its materials, Shader Graphs, renderer features, and other pipeline dependencies still need replacement.

Check the affected material

Select the pink or incorrect material in the Project window and inspect its Shader field. Common URP dependencies include:

  • Universal Render Pipeline/Lit
  • Universal Render Pipeline/Unlit
  • Shader Graphs created for URP
  • asset-package shaders that require URP

If Unity shows a missing or internal error shader, open the asset in its original URP project or consult the asset's documentation. Record the material properties there before rebuilding it.

Choose the recovery path

Situation Recovery
A few imported materials use URP shaders Rebuild those materials inside the VRChat project
An imported model includes URP materials Keep the model and textures, then create and remap replacement materials
A Shader Graph requires URP Find a Built-in-compatible version or replace the effect
The complete source project uses URP Use it as a reference and migrate compatible assets into a clean Creator Companion project
The destination is a non-VRChat URP project Use Unity's material upgrade tools instead of this guide

Unity's upgrade tools convert Built-in materials to URP or HDRP. They do not perform the URP-to-Built-in repair required for VRChat.

Record the source material

Before changing anything, capture the inputs that affect its appearance:

  • shader name
  • base texture and color
  • metallic or specular map
  • smoothness value and source channel
  • normal map and strength
  • occlusion map and strength
  • emission texture and color
  • texture tiling and offset
  • opaque, cutout, fade, or transparent surface mode
  • alpha cutoff and culling settings

Duplicate the source material or leave it untouched. A screenshot of the Inspector can help when the original shader becomes unavailable.

Select a replacement shader

The correct replacement depends on both the content type and build platform.

PC world

Unity's Built-in Standard shader is a useful baseline for a conventional lit material. A compatible custom Built-in shader can also be used after checking its license, VR behavior, and performance.

PC avatar

Use a Built-in-compatible avatar shader. VRChat can replace blocked avatar shaders at runtime, so creators using custom shaders should also configure and test the shader fallback behavior described in VRChat's official fallback documentation.

Android avatar

VRChat permits only the avatar shaders included with the latest SDK. They appear under VRChat/Mobile in Unity's shader menu. Select the closest mobile shader and rebuild the material using the properties it supports.

The available list can change with SDK releases. Check VRChat's Android Content Limitations page instead of relying on an old shader list.

Android world

VRChat does not apply the same shader restriction to Android worlds, but custom shaders still need to fit mobile performance limits. VRChat recommends Mobile/VRChat/Lightmapped as a highly optimized basic world shader and recommends baking the world's lighting.

Build the replacement material

  1. In the Project window, create a material beside the imported asset.
  2. Give it a distinct name such as MaterialName_VRC_PC or MaterialName_VRC_Android.
  3. Assign the shader selected for the content type and platform.
  4. Transfer the source textures, colors, numeric values, tiling, and offset.
  5. Apply it to one object or renderer.
  6. Compare it under the scene's actual lighting.
  7. Repeat the process for other materials only after this test works.

Common property translations

URP Lit property Common Built-in Standard property
Base Map Albedo texture
Base Color Albedo tint
Metallic Map Metallic map
Smoothness Smoothness
Normal Map Normal Map
Occlusion Map Occlusion
Emission Map and Color Emission map and color
Tiling and Offset Tiling and Offset

These mappings transfer source inputs; they do not guarantee an identical result. URP and Built-in shaders use different lighting code and may pack smoothness or other data into different texture channels.

Remap model and prefab materials

Editing a material does not help if the renderer still points to another asset.

  1. Select the scene object and inspect its Mesh Renderer or Skinned Mesh Renderer material slots.
  2. Assign the replacement material to the correct slot.
  3. If the object comes from a prefab, check whether the material assignment is a prefab override.
  4. If the model importer manages the materials, select the model asset and inspect its Materials tab and remapped material list.
  5. Apply or preserve the intended prefab override before testing another instance.

Rebuild transparency deliberately

Transparent materials require more than copying a texture:

  1. Identify whether the source uses opaque, cutout, fade, or transparent rendering.
  2. Select the closest supported mode on the replacement shader.
  3. Restore the alpha texture, tint, and cutoff value where available.
  4. Inspect sorting and intersections from several camera angles.
  5. Test the material on its actual target platform.

VRChat recommends avoiding transparency on Android because of its fill-rate cost. An opaque alternative is preferable when the design allows it; alpha cutout also carries a mobile cost.

Replace pipeline-only effects

A shader swap cannot reproduce an effect that depends on URP itself. Pipeline-specific features include:

  • URP Renderer Features
  • Shader Graph nodes or subgraphs written for URP
  • URP scene color or depth sampling
  • decals implemented through URP
  • custom URP lighting functions
  • URP post-processing

Keep reusable meshes and textures, but replace the effect with a Built-in-compatible shader or redesign it for the VRChat target.

Test the repaired asset

  • Reopen the scene and confirm no renderer is pink.
  • Check the Console for shader compile errors and missing references.
  • Inspect prefabs and model instances for material overrides.
  • Open the VRChat SDK Builder and resolve relevant validation errors.
  • Test PC and Android versions separately when the content supports both.
  • For Android content, use VRChat's current Build and Test workflow on supported hardware when available.
The material is still pink after I selected Standard.

Confirm the renderer uses the new material, then inspect the Console for shader errors. A model importer, prefab override, or another material slot may still reference the incompatible material.

I cannot see the original texture assignments.

Open the material in a project where its URP shader is installed. Record the texture slots and values there, then assign the same texture assets to the properties available on the replacement shader.

The replacement looks flatter or shinier.

Compare metallic or specular values, smoothness, normal strength, occlusion, and emission under the same lighting. Check whether the source and replacement read smoothness from different texture channels.

The PC material works, but the Android avatar upload rejects it.

Create an Android replacement using a shader under VRChat/Mobile. VRChat permits only the avatar shaders supplied with the latest SDK on Android.

The whole project was created with URP.

Create the correct World or Avatar project with Creator Companion. Migrate the required models, textures, audio, and other compatible assets, then rebuild pipeline-dependent materials and effects in that destination project.

The prefab changes back to the old material.

Inspect the prefab's material overrides and the model importer's remapped materials. Assign the replacement at the level that owns the reference, then apply the intended prefab override if other instances should inherit it.

Continue learning

Official references