User:Yoone/Armor Display Case Format Research

From GW2 Wiki English Mirror
< User:Yoone
Revision as of 03:01, 3 July 2026 by imported>Yoone (Added link to Python script to decode payload)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Reverse-engineering of part of the <payload> data on Armor Display Case homestead decorations (from exported layout XML).

1. Starting data

One Armor Display Case + Armor Display Case—Mannequin. Character wearing full Suffused Obsidian medium set, dyed Shadow Orange + Flame, with a backpiece.

Equipped skin IDs:

Slot Skin ID
Head Suffused Obsidian Medium Mask 12167
Shoulders Suffused Obsidian Medium Shoulders 12202
Chest Suffused Obsidian Medium Jacket 12168
Hands Suffused Obsidian Medium Gloves 12154
Legs Suffused Obsidian Medium Leggings 12196
Feet Suffused Obsidian Medium Boots 12186
Back The Ascension 6561

Dyes: Shadow Orange (color ID 1350), Flame (color ID 1240).

Character: male asura.

<prop id="437" name="Armor Display Case" pos="12839.464844 4952.257812 -241.320312" rot="0.000000 0.000000 6.252506" scl="1.000000">
    <payload pt="2" v="1">AAADfAYA/8PsdP//AgAAAwAAAINVwYCA64P/AA8AGQAZ/wD/gaj/gAC17gAg;iC8AAJovAAB6LwAAhy8AAKQvAACqLwAAoRkAAA==;RgVGBdgE2ARGBUYF2ATYBEYFRgXYBNgERgUSANgE2ARGBUYF2ATYBIABRgXYBNgEAQABAAEAAQA=;statueattack</payload>
</prop>

Layout: 4 parts, ; separated.

p1(b64) ; p2(b64) ; p3(b64) ; pose

2. Parts

Part 1: Unknown

AAADfAYA/8PsdP//AgAAAwAAAINVwYCA64P/AA8AGQAZ/wD/gaj/gAC17gAg

  • Assumption: profession, race, character creation customization (gender, face/hair/body, colors, etc.)
  • Identical with different armors & outfits on the same character.

Part 2: skins, 7 x uint32 (little endian)

iC8AAJovAAB6LwAAhy8AAKQvAACqLwAAoRkAAA==

# Slot Bytes ID Skin
0 Coat 88 2f 00 00 12168 Suffused Obsidian Medium Jacket
1 Boots 9a 2f 00 00 12186 Suffused Obsidian Medium Boots
2 Gloves 7a 2f 00 00 12154 Suffused Obsidian Medium Gloves
3 Helm 87 2f 00 00 12167 Suffused Obsidian Medium Mask
4 Leggings a4 2f 00 00 12196 Suffused Obsidian Medium Leggings
5 Shoulders aa 2f 00 00 12202 Suffused Obsidian Medium Shoulders
6 Back a1 19 00 00 6561 The Ascension

Part 3: dyes, 7 x 4 x uint16 (little endian)

RgVGBdgE2ARGBUYF2ATYBEYFRgXYBNgERgUSANgE2ARGBUYF2ATYBIABRgXYBNgEAQABAAEAAQA=

Slot Ch1 Ch2 Ch3 Ch4
Coat 1350 1350 1240 1240
Boots 1350 1350 1240 1240
Gloves 1350 1350 1240 1240
Helm 1350 18 1240 1240
Leggings 1350 1350 1240 1240
Shoulders 384 1350 1240 1240
Back 1 1 1 1

1350 Shadow Orange, 1240 Flame. 18 Earthen / 384 Mocha: likely per-piece defaults on unset channels (needs to be investigated further). 1 Dye Remover (The Ascension has no dye slots).

Field 4: pose (string)

Values:

  • statueattack
  • statuesalute
  • statuecheer
  • statuerelax

Outfits

On the same character, tried with an outfit equipped: p1 identical, p2 / p3 differed.

Outfit Slot chunk2 ID /v2/skins
Pirate Captain's Outfit (3) Coat 1076 Armor/Coat, name "", Clothing
Boots 1083 Armor/Boots, name "", Clothing
Gloves 1149 Armor/Gloves, name "", Clothing
Helm 1193 Armor/Helm, name "", Clothing
Leggings 1057 no such id
End of Dragons Emblem Clothing Outfit (113) Coat 10273 no such id
Boots 1047 Armor/Boots, name "", Clothing
Leggings 1053 Armor/Leggings, name "", Clothing

Observations:

  • The outfit ID is clearly not used to store this data (3 and 113 are the IDs of the tested outfits, absent at every byte width).
  • Some of the skin IDs have no name but exist in the API, and the icons look like they match the theme of the given outfit.
    • Many IDs missing from the API (not uncommon for older items/skins/etc. unfortunately)

Links