Quote Originally Posted by Sheriyana View Post
They've said it's very limited on what they can put into the armoire, just seems like another technical limitation. People have been asking for this for years.
My guess, as I've noted before, is that their storage backend likely was not designed with support for sparse bitfields as a data type.

To explain, imagine you have a checklist; each row has a checkbox, and the name of a piece of gear. As you get that gear, you go down and check off the checkbox. This list can be represented as a 'bitfield' -- basically, a series of the 0s and 1s that make up binary numbers. So, one byte (8 bits) can represent 8 pieces of gear. The armoire is almost certainly stored as a bitfield, since all it has is "is this gear in the armoire or not", no dye information or HQ or anything else, like the glamour dresser does.

Now, an approach like this is fine when you have a short checklist, but if your checklist is, say, a million items long and is going to continue to grow, that begins to be a Problem. Moreover, the most effective way to do this is use the existing item IDs as the bits.

So, according to the lodestone, the Augmented Cryptlurker's Robe of Healing is "ac97d9229b0", or 11860511435184 -- assuming that is the internal item ID (which seems quite possible, as it's how Lodestone refers to the item), that's what we'd need to use in a bitfield; toggle on the 11860511435184th bit in a single number. However, it would take 1.3 terabytes to store a 11,860,511,435,184-bit number -- and that's assuming they never added another item to the game beyond that one. Obviously, using 1.3 terabytes of storage for each player's armoire wouldn't be ideal... and that's without even getting into the fact that you'd have to load that value into memory to check for a bit being on or off.

Now, you could do a translation table of things like "item ID 11860511435184 maps to gear ID 89764532" but that has other issues.

The proper way to solve this is a sparse bitfield; it's a bit beyond the scope of this post to explain how they work, but you could store someone's gear checklist in a much smaller number; easily fit into on-disk storage and suchnot. However, if your backend storage system—and the engine, and the network protocol—doesn't support sparse bitfields, retrofitting it in could be a potentially large task.

My standing assumption is that's the obstacle to the armoire holding more stuff; it's one thing to have, say, a 1024-bit checklist (only 128 bytes!) and a lookup table saying "item X is bit 873" or whatever, but it becomes another thing entirely to try to have a checklist of all gear well after the fact.

Doesn't mean it can't be solved, just that my guess is that it wouldn't be a small task to do so. :/