I’m working on a WoW addon that caches character equipment and appearance data so an offline character can be previewed later.
I’ve been trying to determine whether Blizzard exposes any supported way to reconstruct a fully textured player character when that character is not logged in.
I can currently get partway there, but every approach seems to hit one of two limitations:
-
Some player/model initialization paths produce the correct humanoid geometry but an uninitialized white “ghost” character/material state.
-
A creature/display-backed
DressUpModelcan produce a properly textured race/sex mannequin, and some equipment renders correctly, but several character-composited armor slots do not.
On the textured mannequin, for example:
-
Helm appearances render.
-
Leg appearances with visible geometry render.
-
Weapons render correctly in full color.
-
Some other attached geometry renders.
-
Chest and some Feet appearances can fail to appear even though Blizzard reports the requested transmog as successfully assigned.
I have now tested, among other things:
-
DressUpModel:SetDisplayInfo() -
DressUpModel:SetUnit() -
DressUpModel:SetCustomRace() -
DressUpModel:TryOn("item:<itemID>") -
numeric
TryOn(sourceID) -
DressUpModel:SetItemTransmogInfo() -
DressUpModel:GetItemTransmogInfo() -
PlayerModel:SetItem() -
PlayerModel:SetItemAppearance() -
SetUseTransmogSkin() -
SetUseTransmogChoices() -
SetObeyHideInTransmogFlag() -
IsSlotAllowed()/IsSlotVisible() -
repeated/delayed dressing passes
-
changing equipment application order
-
applying a physical Chest first, then replacing it with the desired transmog
-
forcing known physical appearances
-
ModelScene/ModelSceneActor -
ModelSceneActor:SetModelByCreatureDisplayID() -
useActivePlayerCustomizations -
SetPlayerModelFromGlues() -
player-seeded/custom-race model attempts
-
live vs. cached character display IDs
-
barber/character customization APIs
-
cached customization choice IDs
-
C_TransmogCollectionsource/appearance information -
the newer
C_TransmogOutfitInfoAPIs and slot/category mappings
The newer transmog APIs are particularly interesting because they confirm that some of the appearances I am testing are valid for the character and valid for the expected equipment slot.
For example, I can have a Chest source reported as:
-
Chest category
-
correct Chest inventory slot
-
canDisplayOnPlayer = true -
valid for the player
and then:
-
TryOn()returns Success, -
GetItemTransmogInfo(ChestSlot)reads back the requested source, -
a delayed verification still reads back the same source,
yet the Chest texture never appears on the offline mannequin.
I also tried deliberately priming the torso by applying the character’s physical Chest first, then applying the desired Chest item/source multiple ways. The final slot state still reports the desired appearance, but visually the torso remains unchanged.
Direct PlayerModel:SetItem() / SetItemAppearance() experiments were worse: the calls could succeed without throwing, but the underlying creature-backed model became invalid/untextured afterward and fell back to the white “ghost” state.
ModelSceneActor was also unsuccessful. I could create a humanoid actor with equipment geometry, but the player body/materials remained white/uninitialized. SetPlayerModelFromGlues() was tested across multiple character indices and returned false in the in-world addon context.
The most functional result I have at this point is therefore a hybrid offline mannequin:
-
race/sex body can be textured,
-
Helm works,
-
Legs work,
-
weapons work,
-
some equipment geometry works,
-
but certain player-composited armor textures such as Chest still do not render.
This has me wondering whether the missing piece is Blizzard’s internal player texture/geoset compositor, which may only be initialized for a real live player/unit or Blizzard-owned Dressing Room/character UI context.
So my main question is:
Is there actually a supported addon API for creating a fully initialized, textured player model for an arbitrary offline/cached character, including normal Chest/Feet skin-composited armor?
Or are addons fundamentally limited to either:
-
a real/live player-backed model with the full compositor, or
-
an offline display/creature model that can only render a subset of player equipment correctly?
If anyone knows of an addon that genuinely reconstructs a logged-out character — not merely the current player in the Dressing Room — I’d be very interested in seeing which API path it uses.
At this point I’m mostly trying to determine whether I’m missing one supported initialization step, or whether I’ve reached an intentional limitation of the WoW model API.