PBR Texture uploaded as basic material

I uploaded a PBR Surface Appearence accessory recently but it displays as non PBR. The Eggcellent Chain of Glory - Roblox

Studio:

Website:

A private message is associated with this bug report

I just tried again with smaller exported textures and still didn’t work. The Eggcellent Chain of Glory - Roblox

Now it says “Advanced” material but still only has the base colour?

hi there, the PBR classification is asynvhronous but I see that it is set. What do you mean by has only the base color

This is before uploading:

This is after uploading:

When you upload any Accessory it’s actually converted to two versions internally:

  1. The MeshPart version of the Accessory, which supports PBR and is used for R15 Avatars.
  2. The SpecialMesh version of the Accessory, which does not support PBR and is used for R6 Avatars.

So what you are seeing here is not that the Accessory has lost PBR support, it’s that the SpecialMesh version of the Accessory is being loaded. If you equip the Accessory to an R15 Avatar and load that Avatar in a place in Studio you should see the MeshPart version which still has the SurfaceAppearance as expected.

Here is an example script which shows how you can load either version:

-- Example of how to load different versions of a multi-format Accessory in Roblox
-- This script demonstrates how to load an accessory in both MeshPart and SpecialMesh formats

local Players = game:GetService("Players")

local function loadAccessoryVersion(assetId, version)
	local rigType = if version == "MeshPart" then Enum.HumanoidRigType.R15 else Enum.HumanoidRigType.R6

	local humanoidDescription = Instance.new("HumanoidDescription")
	humanoidDescription.HatAccessory = tostring(assetId)

	-- In practice, we shouldn't disable AssetTypeVerification
	-- For this example we don't know the Accessory type, and we are loading everything as a HatAccessory
	-- so we disable the verification to avoid errors
	local assetTypeVerification = Enum.AssetTypeVerification.ClientOnly
	local humanoidModel =
		Players:CreateHumanoidModelFromDescription(humanoidDescription, rigType, assetTypeVerification)

	local accessory = humanoidModel:FindFirstChildWhichIsA("Accessory")
	if not accessory then
		error("Accessory not found in humanoid model")
	end

	return accessory
end

local ACCESSORY_ID = 99214676270584

local meshPart = loadAccessoryVersion(ACCESSORY_ID, "MeshPart")
local specialMesh = loadAccessoryVersion(ACCESSORY_ID, "SpecialMesh")

meshPart.Parent = workspace
specialMesh.Parent = workspace

Hope this helps, please let us know if you are seeing any issues with PBR support when the Accessory is equipped for R15 Avatars.

3 Likes