Dress a character

Pick a body, then work down it. Every mesh, texture and table is read out of the last official client (build 303) and drawn with ports of its own pixel shaders, so what you see here is what the game draws.

Reading the catalogue…

Parts are composed with no per-part transform, because all of a given race’s LOD0 meshes share one bind space — measured, and only within a race: the Noel bodies sit about 0.43 world units below the human ones.

Which body mesh survives under a garment is the client’s own decision, read out of CCharPartSet::UpdatePartVisibility. Body and equipment share one tag vocabulary — a shirt’s node is called CHEST_Sand so is the naked torso’s — so drawing both would put two surfaces in the same place. _S and _L are short and long, not skin and layer: a long sleeve forces the short glove, long trousers force the short boot.

The lists are grouped by body part, not by equip slot: the armour piece and the costume piece for one part are the same choice to make, so they are the same list. The slot ids underneath are untouched — they are what the hiding rule and the occupancy rule are written in.