Skip to content

Data workflow

Ketho edited this page Aug 27, 2024 · 15 revisions

Finding an item model for a specific item

https://old.wow.tools/help/view.php?id=1

Implementation

https://github.com/Ketho/WowpediaDoc/blob/master/Projects/WardrobeSort/ItemAppearance.lua

Download DBC files

  • ItemAppearance.db2
  • ItemDisplayInfo.db2
  • ItemDisplayInfoMaterialRes.db2
  • TextureFileData.db2

You can download the DBCs and FileData in CSV format from wow.tools DBC browser and listfile

Map Visual IDs to File Data IDs

Patch 8.2.0 DBC structures:

Item/ObjectComponents:
	ItemAppearance[1>3] ID > ItemDisplayInfoID
	ItemDisplayInfo[1>13] ID > ModelMaterialResourcesID[0]
	TextureFileData[3>1] MaterialResourcesID > FileDataID
	FileData

Item/TEXTURECOMPONENTS:
	ItemAppearance[1>3] ID > ItemDisplayInfoID
	ItemDisplayInfoMaterialRes[4>3] ItemDisplayInfoID > MaterialResourcesID
	TextureFileData[3>1] MaterialResourcesID > FileDataID
	FileData
ItemAppearance = {
	[27921] = 40376,
}

ItemDisplayInfo = {
	[40376] = 15386,
}

TextureFileData = {
	[15386] = 137256,
}

FileData = {
	[137256] = "cape_blood_a_01gold",
}
VisualID = {
	[27921] = "cape_blood_a_01gold",
}
-- tables in separate files
local dbc = {
	"ItemAppearance",
	"ItemDisplayInfo",
	"ItemDisplayInfoMaterialRes",
	"TextureFileData",
	"FileData",
}

for _, v in pairs(dbc) do
	require(v)
end

for k, v in pairs(ItemAppearance) do
	local displayInfo = ItemDisplayInfo[v] or ItemDisplayInfoMaterialRes[v]
	if displayInfo then
		local fd = FileData[TextureFileData[displayInfo]]
		if fd then
			print(k, fd)
		end
	end
end