Texture specifications

A texture is a digital image applied to the surface of a 3D object to simulate and enhance its visual appearance. Roblox supports various texture types that you import with a custom 3D object, or upload directly as individual image files. For details on implementing basic textures, see Textures and decals.

Roblox also supports physically-based rendering (PBR) textures which override a mesh's existing TextureID and can be used to create immersive environments and objects.

See the following requirements when creating your own basic and advanced textures:

  • File formats — File formats for textures that are uploaded separately in Studio must be submitted as a .png, .jpg, .tga, or .bmp.

  • Resolution — Roblox supports up to 4096x4096 pixel texture resolutions (4K). As a game loads, the engine automatically starts with lower quality versions of the texture and ramps up quality based on device resources. Even still, manually sizing textures before you upload them can improve memory usage in some situations. Consider the following general guidance:

    • For smaller 5×5 stud objects, use 256×256 texture resolutions.
    • For medium 10×10 stud objects, use 512×512 texture resolutions.
    • For larger 20×20 stud objects, use 1024×1024 texture resolutions.
    • See PBR texture budgets for similar guidances with PBR texture maps.
  • Single material - Mesh objects can only have one material assigned.

SurfaceAppearance

You can add a surface appearance to your mesh in Studio to add PBR texture options. The SurfaceAppearance instance uses UV mapping, a form of texture mapping, to accurately map up to four 2D images onto the mesh object.

See the following requirements for SurfaceAppearance assets:

  • Texture files — Ensuring your textures follow consistent conventions optimizes assets for tools like the Importer and helps with organization. When possible, texture files should include the appropriate name affix and follow the appropriate image details:

    Texture typeTexture schema suffixTexture image details
    Albedo_ALBRGB (24-bit)
    Metalness_METSingle Channel Grayscale (8-bit)
    Normal_NORRGB (24-bit) - Roblox only supports OpenGL format - Tangent Space normal maps.
    Roughness_RGHSingle Channel Grayscale (8-bit)
  • PBR Texture Budget — Use an appropriate texture map size based on the asset you are texturing to optimize for visual quality and performance. As a general guideline, each asset should have a texture resolution of 256×256 for every 2×2×2 unit space the asset occupies. If larger than a 2×2×2 cube, use the next highest resolution. The following are some baseline texture sizing examples:

    Recommended map sizeApproximate asset size (unit cube)Example assets
    64×64 - 128×1281×1×1Jewelry, sunglasses, eyebrows, mustaches.
    256×2562×2×2Hair, shoes, tank tops, t-shirts, shorts, short skirts.

    256x256 is the maximum budget for non-albedo maps (RGH, MTL, NOR) for rigid accessories.
    512×5124×4×4Jackets, pants, overalls, long-sleeve shirts, long skirts.
    1024×1024 (maximum)8×8×8Full body clothing (onesies, robes), humanoid characters.

UV mapping

All textures use UV mapping, a 3D modeling process to project a 3D model's surface to a 2D image, or UV atlas. See the following requirements for UV mapping, especially if you're manually editing or optimizing your UV atlas:

  • Single UV Set — Use a single UV set for each component, such as a humanoid or accessory. Studio doesn't allow for multiple UV sets.
  • Coordinates — All UVs must be created within a 0:1 space.
  • Overlaps — Overlapping UVs are allowed.
  • Maximum Texture Resolution — Roblox supports up to 1024×1024 pixel spaces for texture maps.
©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.