UserData Bits

From OuroDev

UserData is the set of 128 bytes that indicate user flags such as "Owns CoV", "Has Pocket D VIP pass", etc. The field user_data on player accounts is formatted as follows.

Format

There are 128 bytes. If you're rusty on terminology, a word is 4 bytes; a byte is 2 nibbles, or 8 bits; and a nibble is 4 bits. Thus, there are 16 words in the user data, of which 4 are used.

On the client, data from the auth server has every nibble swapped. So for example, if your Word 3 was 0x00b08080, the nibble-swapped version is 0x000b0808. This means bit 31 is 1 (has CoH), and bit 23 is 1 (has CoV). This is subject to change depending on AuthServer2.

In the vanilla database, there's two fields - "user_data" (16 bytes) and "user_data_new" (112 bytes). The auth server concatenates these together to send to the client. In CoX, only the first 16 bytes are used, but this does open up future functionality.

Reference

Word 1

  • 0-10 - Unused
  • 11 - Coralax Boss Costume
  • 12 - Vahzilok Meat Doc Costume
  • 13 - Rikti Costume
  • 14 - Ghoul Costume
  • 15 - Mutant Pack
  • 16 - Create Primals
  • 17 - Rogue Access
  • 18 - GR_PO_WILL_SEERS
  • 19 - GR_PO_WILL_CLOCKWORK
  • 20 - GR_PO_WILL_MIGHT_EMPIRE
  • 21 - GR_PO_WILL_RESISTANCE
  • 22 - Rogue Complete Box
  • 23 - Loyalty Reward
  • 24 - CON_2009_BIT5
  • 25 - CON_2009_BIT4
  • 26 - CON_2009_BIT3
  • 27 - CON_2009_BIT2
  • 28 - CON_2009_BIT1
  • 29 - Magic Pack
  • 30 - Super Science Pack
  • 31 - Martial Arts Pack

Word 2

  • 0-11 - Months Played (note one of these counts for 3 months)
  • 12 - Recreation Pack
  • 13 - Holiday Pack
  • 14 - Aura Pack
  • 15 - Vanguard Pack
  • 16 - Facepalm
  • 17 - Animal Pack
  • 18 - Limited Rogue Access
  • 19 - Steam Punk
  • 20 - PROMO_2011_A
  • 21 - PROMO_2011_B
  • 22 - PROMO_2011_C
  • 23 - PROMO_2011_D
  • 24 - PROMO_2011_E
  • 25 - PROMO_2012_A
  • 26 - PROMO_2012_B
  • 27 - PROMO_2012_C
  • 28 - PROMO_2012_D
  • 29 - PROMO_2012_E
  • 30-31 - Unused

Word 3

  • 0 - Unused
  • 1 - Alpha Preorder
  • 2 - Cyborg Pack
  • 3 - Mac Pack
  • 4 - Is Retail Account
  • 5 - Target Promo
  • 6 - PAX Promo
  • 7 - GenCon Promo
  • 8 - Comicon Promo
  • 9 - Arachnos Access
  • 10 - Wedding Pack
  • 11 - Trial Account
  • 12 - Pocket D VIP
  • 13 - Jump Pack
  • 14 - Jet Pack
  • 15 - Korean Level Minimum (??)
  • 16 - Valentine 2006
  • 17 - COV Beta
  • 18 - COV Preorder 1
  • 19 - COV Preorder 2
  • 20 - COV Preorder 3
  • 21 - COV Preorder 4
  • 22 - COV Special Edition
  • 23 - Villain Access
  • 24-26 - Preorder
  • 27 - DVD Special Edition
  • 28 - Kheldian Access
  • 29 - Beta
  • 30 - Transfer to EU
  • 31 - Hero Access

Word 4

(Looks reserved).

  • 0 - ACEINHOLE_A
  • 1 - ACEINHOLE_B
  • 2 - ACEINHOLE_C
  • 3 - ACEINHOLE_D
  • 4 - ACEINHOLE_E
  • 5-31 - Unused

Word 5+

Unused.

Game Data

Also on the same table is the game_data attribute, which is identical to the user_data formatting. If a bit on this is set, is will override the user_data on the DBserver. Generally, this can start as all 0s. DBServer sometimes tells AuthServer to change these in response to ingame events (like unlocking costumes, etc.)