How to get a body part's CatalogId from its MeshId?

For example, the MeshId of the LeftUpperArm is 645273172

How would I get the corresponding catalog body part Id? (in this case 27112052)

I can’t retrieve the ID using HumanoidDescriptions as this is for NPC without any HDs.

I don’t think you can fetch CatalogIds from MeshIds, but you can go the other way.

The APIs for interacting with assets and whatnot on the site are mostly located within the AssetService. I would assume that you need GetBundleDetailsAsync for this, as it is the current only known API for interacting with bundleIds and fetching the ids of them.

If you run a quick lazy test like I did, you can see the construct of the table. There’s no documentation, so you have to resort to these kinds of tests to see what you can get.

local bundleDetails = game:GetService("AssetService"):GetBundleDetailsAsync(311)

-- v Lazy test with manual "recursion"
for a, b in pairs(bundleDetails) do
	print(a, "-", b)
	if typeof(b) == "table" then
		for c, d in pairs(b) do
			print("\t", c, "-", d)
			if typeof(d) == "table" then
				for e, f in pairs(d) do
					print("\t\t", e, "-", f)
				end
			end
		end
	end
end

I honestly have no clue where to go from here without a HumanoidDescription.

6 Likes

I think I may resort to brute force and iterate through every package in the catalog comparing this to the existing body part MeshId. Appreciate your help though.

1 Like