Challenge Data

2011-01-26
2013-05-08
  • MouseyPounds
    MouseyPounds
    2011-01-26

    I've been exploring the "Challenge Data" section of the saves of my characters and this is what I've found:

    ## ID/Flag Description
      0 550601 Total Shots Fired
      1 560601 Shots from Pistols
      2 570601 Shots from Shotguns
      3 580601 Shots from SMGs
      4 590601 Shots from Snipers
      5 5a0601 Shots from Launchers
      6 5b0601   ??UNKNOWN??
      7 5d0601 Shots from Combat Rifles
      8 5e0601 Weapons Picked Up
      9 8f0601 Shots from Tediore and Vehicle Weapons
     10 900601 Shots from Jakobs Weapons
     11 910601 Shots from Torgue Weapons
     12 920601 Shots from Hyperion Weapons
     13 930601 Shots from Maliwan Weapons
     14 940601 Shots from S&S Weapons
     15 950601 Shots from Atlas Weapons
     16 960601 Shots from Dahl Weapons
     17 970601 Shots from Vladof Weapons
     18 980601   ??UNKNOWN??
     19 990601   ??UNKNOWN??
     20 9a0601   ??UNKNOWN??
     21 9b0601   ??UNKNOWN??
     22 9c0601 Shots from Gearbox Weapons
     23 5f0601 Total enemies killed
     24 600601 Skags killed
     25 610601 Kills using Pistols
     26 620601 Kills using Shotguns
     27 630601 Kills using SMGs
     28 640601 Kills using Sniper Rifles
     29 650601 Kills using Combat Rifles
     30 660601 Kills using Launchers
     31 670601 Kills using Grenades
     32 680601 Kills using Vehicles (runover)
     33 690601 Kills using Vehicle Weapons
     34 cc0601   ??UNKNOWN??
     35 6a0601 Kills using Acid
     36 6b0601 Kills using Fire
     37 6c0601 Kills using Shock
     38 6d0601 Kills using Explosives
     39 6e0601 Kills from Critical Hits
     40 b20601 Longest Killing Spree
     41 6f0601   ??UNKNOWN??
     42 700601   ??UNKNOWN??
     43 710601   ??UNKNOWN??
     44 720601 Kills using Melee
     45 730601   ??UNKNOWN??
     46 740601 Scythids killed
     47 750601   ??UNKNOWN??
     48 760601 Larva Crab Worms killed
     49 770601 Spiderants killed
     50 780601 Humans killed
     51 790601 Rakks killed
     52 7a0601 Turrets killed (includes Gatling/Rocket and Scorpio)
     53 8b0601   ??UNKNOWN??
     54 8c0601   ??UNKNOWN??
     55 9d0601 Guardians killed
     56 9e0601 ??Sera Guardians killed
     57 9f0601 ??Arch Guardians killed
     58 a00601   ??UNKNOWN??
     59 a60601 Kills using Action Skill
     60 7b0601   ??UNKNOWN??
     61 7c0601   ??UNKNOWN??
     62 7d0601   ??UNKNOWN??
     63 7e0601   ??UNKNOWN??
     64 7f0601   ??UNKNOWN??
     65 800601   ??UNKNOWN??
     66 810601   ??UNKNOWN??
     67 820601   ??UNKNOWN??
     68 830601   ??UNKNOWN??
     69 840601   ??UNKNOWN??
     70 850601 Red Chests Opened
     71 860601 Lootable Objects Opened
     72 870601   ??UNKNOWN??
     73 880601   ??UNKNOWN??
     74 890601   ??UNKNOWN??
     75 8a0601   ??UNKNOWN??
     76 8d0601 Items Bought
     77 8e0601 Items Sold
     78 a10601 Money Earned
     79 a20601 Longest Vehicle Hang Time
     80 a30601   ??UNKNOWN??
     81 a40601   ??UNKNOWN??
     82 a50601   ??UNKNOWN??
     83 a70601   ??UNKNOWN??
     84 a80601   ??UNKNOWN??
     85 a90601 Times "downed"
     86 aa0601   ??UNKNOWN??
     87 ab0601   ??UNKNOWN??
     88 ac0601   ??UNKNOWN??
     89 ad0601   ??UNKNOWN??
     90 ae0601   ??UNKNOWN??
     91 af0601   ??UNKNOWN??
     92 b00601   ??UNKNOWN??
     93 b10601   ??UNKNOWN??
     94 b70601   ??UNKNOWN??
     95 b30601   ??UNKNOWN??
     96 b40601   ??UNKNOWN??
     97 b50601   ??UNKNOWN??
     98 b80601   ??UNKNOWN??
     99 b90601   ??UNKNOWN??
    100 ba0601   ??UNKNOWN??
    101 bb0601   ??UNKNOWN??
    102 bc0601   ??UNKNOWN??
    103 bd0601   ??UNKNOWN??
    104 be0601   ??UNKNOWN??
    105 bf0601   ??UNKNOWN??
    106 c00601   ??UNKNOWN??
    107 c10601   ??UNKNOWN??
    108 c20601   ??UNKNOWN??
    109 c30601 Action Skill usage
    110 c40601   ??UNKNOWN??
    111 c50601   ??UNKNOWN??
    112 c60601   ??UNKNOWN??
    113 c70601   ??UNKNOWN??
    114 cb0601   ??UNKNOWN??
    115 c80601   ??UNKNOWN??
    116 c90601   ??UNKNOWN??
    117 ca0601   ??UNKNOWN??
    118 cd0601 ??DLC3 Generic Lances killed (includes medic, rocketeer, defender, infantry, engineer)
    119 ce0601 ??DLC3 Badass Lances killed
    120 cf0601 DLC3 Lance Pyros killed
    121 d00601 DLC3 Lance Chemical Troopers killed
    122 d10601 DLC3 Lance Shock Troopers killed
    123 d20601   ??UNKNOWN??
    124 d30601 DLC3 Drifters killed
    125 d40601 DLC3 Prisoners killed
    126 d50601 DLC3 Lance Probes killed
    127 d60601 DLC3 Lance Devastators killed
    128 d70601 ??DLC3 Lance Assassins killed
    129 d80601 DLC3 Midgets killed
    130 d90601   ??UNKNOWN??
    131 da0601   ??UNKNOWN??
    132 db0601 DLC3 Crimson Shortys killed
    133 dc0601 DLC3 Meat Popsicles killed
    134 dd0601 DLC3 Dumpster Divers killed
    135 de0601 DLC3 Mini-Steves killed
    136 df0601 DLC3 Truxican Wrestlers killed
    137 e00601   ??UNKNOWN??
    138 e10601 DLC4 Claptraps killed
    139 e20601   ??UNKNOWN??
    140 e30601   ??UNKNOWN??
    141 e40601 ??DLC4 possibly related to DLC4 hive battle
    142 e50601   ??UNKNOWN??
    143 e60601 DLC4 Hyperion Soldiers killed
    144 e70601   ??UNKNOWN??
    145 e80601   ??UNKNOWN??
    146 e90601   ??UNKNOWN??
    147 ea0601 DLC4 Hyperion Super-Bad Soldiers killed
    148 eb0601 DLC4 ??Cluck-Traps killed
    149 ec0601 DLC4 General Knoxx-Traps killed
    150 ed0601 DLC4 Commandant Steele-Traps killed
    151 ee0601 DLC4 Dr. Ned-Traps killed
    152 ef0601 DLC4 Undead Ned-Traps killed
    153 f00601 DLC4 D-Fault Bandits killed
    154 f10601 DLC4 INACs killed
    155 f20601 DLC4 MINACs killed
    156 f30601 DLC4 ?? MINAC Turrets killed
    157 f40601   ??UNKNOWN??
    158 f50601 DLC4 Oil cans picked up
    159 f60601 DLC4 Bobbleheads picked up
    160 f70601 DLC4 3D Glasses picked up
    161 f80601 DLC4 Pink Panties picked up
    162 f90601 DLC4 Clap-Fish picked up
    163 fa0601 DLC4 Pizza Slices picked up
    164 fb0601   ??UNKNOWN??
    165 fc0601   ??UNKNOWN??
    166 fd0601   ??UNKNOWN??
    167 fe0601   ??UNKNOWN??
    168 ff0601   ??UNKNOWN??
    169 000701 DLC4 Hyperion Dump Statue visits
    170 010701 DLC4 Sanders Gorge Statue visits
    171 020701 DLC4 Dividing Faults Statue visits
    172 030701 DLC4 Scorched Snake Canyon Statue visits
    173 040701 DLC4 Wayward Pass Statue visits
    174 050705   ??UNKNOWN??
    175 060705   ??UNKNOWN??
    176 070705   ??UNKNOWN??
    177 080705   ??UNKNOWN??
    178 090705   ??UNKNOWN??
    179 0a0705   ??UNKNOWN??
    180 0b0705   ??UNKNOWN??
    181 0c0705   ??UNKNOWN??
    182 0d0705   ??UNKNOWN??
    183 0e0705   ??UNKNOWN??
    184 0f0705   ??UNKNOWN??
    185 100705   ??UNKNOWN??
    186 110705   ??UNKNOWN??
    187 120705   ??UNKNOWN??
    

    Things with question marks I haven't satisfactorily confirmed, and things marked UNKNOWN are exactly that. Also, there doesn't appear to be any tracking of additional DLC1 enemy kills like there is for DLCs 3 & 4 aside from the possibility of Skele-rakks counting as regular Rakks.

     
  • matt911
    matt911
    2011-01-27

    da_fileserver posted some code he has been working on to read/write savegame files in this thread a few days ago:

    https://sourceforge.net/projects/willowtree/forums/forum/1117810/topic/4060592

    It has a lot of files, but one of them named BuiltInStatResolver.cs has some code that looks like a very complete list of these challenge data that you may find interesting.  He must have found the strings describing these somewhere in one of the game files.  Here is an excerpt:

                    case 0x0655: return "STAT_PLAYER_SHOTS_FIRED";
                    case 0x0656: return "STAT_PLAYER_SHOTS_FIRED_PISTOL";
                    case 0x0657: return "STAT_PLAYER_SHOTS_FIRED_SHOTGUN";
                    case 0x0658: return "STAT_PLAYER_SHOTS_FIRED_SMG";
                    case 0x0659: return "STAT_PLAYER_SHOTS_FIRED_SNIPERRIFLE";
                    case 0x065A: return "STAT_PLAYER_SHOTS_FIRED_ROCKETLAUNCHER";
                    case 0x065B: return "STAT_PLAYER_SHOTS_FIRED_GRENADELAUNCHER";
                    case 0x065D: return "STAT_PLAYER_SHOTS_FIRED_ASSAULTRIFLE";
                    case 0x065E: return "STAT_PLAYER_WEAPONS_PICKED_UP";
                    case 0x065F: return "STAT_PLAYER_KILLS";
                    case 0x0660: return "STAT_PLAYER_KILLS_SKAG";
                    case 0x0661: return "STAT_PLAYER_KILLS_WITH_PISTOL";
                    case 0x0662: return "STAT_PLAYER_KILLS_WITH_SHOTGUN";
                    case 0x0663: return "STAT_PLAYER_KILLS_WITH_SMG";
                    case 0x0664: return "STAT_PLAYER_KILLS_WITH_SNIPER_RIFLE";
                    case 0x0665: return "STAT_PLAYER_KILLS_WITH_ASSAULT_RIFLE";
                    case 0x0666: return "STAT_PLAYER_KILLS_WITH_FRAG_GRENADE";
                    case 0x0667: return "STAT_PLAYER_KILLS_WITH_PROTEAN_GRENADE";
                    case 0x0668: return "STAT_PLAYER_KILLS_WITH_VEHICLE";
                    case 0x0669: return "STAT_PLAYER_KILLS_WITH_VEHICLE_WEAPON";
                    case 0x066A: return "STAT_PLAYER_KILLS_WITH_CORROSIVE_ATTACK";
                    case 0x066B: return "STAT_PLAYER_KILLS_WITH_INCINDIARY_ATTACK";
                    case 0x066C: return "STAT_PLAYER_KILLS_WITH_SHOCK_ATTACK";
                    case 0x066D: return "STAT_PLAYER_KILLS_WITH_EXPLOSIVE_ATTACK";
                    case 0x066E: return "STAT_PLAYER_KILLS_WITH_CRITICAL_HIT";
                    case 0x066F: return "STAT_PLAYER_KILLS_ALPHA_SKAG";
                    case 0x0670: return "STAT_PLAYER_KILLS_SPITTER_SKAG";
                    case 0x0671: return "STAT_PLAYER_KILLS_YOUNG_SKAG";
                    case 0x0672: return "STAT_PLAYER_KILLS_WITH_MELEE_ATTACK";
                    case 0x0673: return "STAT_PLAYER_KILLS_BARNACLE";
                    case 0x0674: return "STAT_PLAYER_KILLS_SCYTHID_CRAWLER";
                    case 0x0675: return "STAT_PLAYER_KILLS_SCYTHID_DRONE";
                    case 0x0676: return "STAT_PLAYER_KILLS_SCYTHID_SPRINTER";
                    case 0x0677: return "STAT_PLAYER_KILLS_SCYTHID_WARRIOR";
                    case 0x0678: return "STAT_PLAYER_KILLS_BANDIT";
                    case 0x0679: return "STAT_PLAYER_KILLS_RAKK";
                    case 0x067A: return "STAT_PLAYER_KILLS_AUTOMATED_TURRET";
                    case 0x067B: return "STAT_PLAYER_DUELS_WINS";
                    case 0x067C: return "STAT_PLAYER_DUELS_LOSSES";
                    case 0x067D: return "STAT_PLAYER_DUELS_DRAWS";
                    case 0x067E: return "STAT_PLAYER_ARENA_KILLS";
                    case 0x067F: return "STAT_PLAYER_ARENA_DEATHS";
                    case 0x0680: return "STAT_PLAYER_ARENA_ROUNDSWON";
                    case 0x0681: return "STAT_PLAYER_ARENA_ROUNDSLOST";
                    case 0x0682: return "STAT_PLAYER_ARENA_ROUNDSDRAW";
                    case 0x0683: return "STAT_PLAYER_ARENA_MATCHESWON";
                    case 0x0684: return "STAT_PLAYER_ARENA_MATCHESLOST";
                    case 0x0685: return "STAT_PLAYER_CHESTS_OPENED";
                    case 0x0686: return "STAT_PLAYER_LOOTABLES_OPENED";
                    case 0x0687: return "STAT_PLAYER_ARENA_CONSECUTIVEROUNDSWON";
                    case 0x0688: return "STAT_PLAYER_ARENA_CONSECUTIVEMATCHESWON";
                    case 0x0689: return "STAT_PLAYER_ARENA_MAXCONSECUTIVEROUNDSWON";
                    case 0x068A: return "STAT_PLAYER_ARENA_MAXCONSECUTIVEMATCHESON";
                    case 0x068B: return "STAT_PLAYER_KILLS_SLEDGE_BANDIT";
                    case 0x068C: return "STAT_PLAYER_KILLS_INSANE_BANDIT";
                    case 0x068D: return "STAT_PLAYER_INVENTORY_PURCHASED";
                    case 0x068E: return "STAT_PLAYER_INVENTORY_SOLD";
                    case 0x068F: return "STAT_PLAYER_MANUFACTURER_PREF_TEDIORE";
                    case 0x0690: return "STAT_PLAYER_MANUFACTURER_PREF_JAKOBS";
                    case 0x0691: return "STAT_PLAYER_MANUFACTURER_PREF_TORGUE";
                    case 0x0692: return "STAT_PLAYER_MANUFACTURER_PREF_HYPERION";
                    case 0x0693: return "STAT_PLAYER_MANUFACTURER_PREF_MALIWAN";
                    case 0x0694: return "STAT_PLAYER_MANUFACTURER_PREF_S_AND_S";
                    case 0x0695: return "STAT_PLAYER_MANUFACTURER_PREF_ATLAS";
                    case 0x0696: return "STAT_PLAYER_MANUFACTURER_PREF_DAHL";
                    case 0x0697: return "STAT_PLAYER_MANUFACTURER_PREF_VLADOF";
                    case 0x0698: return "STAT_PLAYER_MANUFACTURER_PREF_PANGOLIN";
                    case 0x0699: return "STAT_PLAYER_MANUFACTURER_PREF_CORRAZA";
                    case 0x069A: return "STAT_PLAYER_MANUFACTURER_PREF_ANSHIN";
                    case 0x069B: return "STAT_PLAYER_MANUFACTURER_PREF_ERIDAN";
                    case 0x069C: return "STAT_PLAYER_MANUFACTURER_PREF_GEARBOX";
                    case 0x069D: return "STAT_PLAYER_KILLS_PRINCIPLE_GUARDIAN";
                    case 0x069E: return "STAT_PLAYER_KILLS_SERA_GUARDIAN";
                    case 0x069F: return "STAT_PLAYER_KILLS_ARCH_GUARDIAN";
                    case 0x06A0: return "STAT_PLAYER_KILLS_CHERUB_GUARDIAN";
                    case 0x06A1: return "STAT_PLAYER_CURRENCY_EARNED";
                    case 0x06A2: return "STAT_VEHICLE_HANG_TIME";
                    case 0x06A3: return "STAT_QUESTS_COMPLETED_ZONE_ZERO";
                    case 0x06A4: return "STAT_QUESTS_COMPLETED_ZONE_ONE";
                    case 0x06A5: return "STAT_QUESTS_COMPLETED_ZONE_TWO";
                    case 0x06A6: return "STAT_PLAYER_KILLS_ACTION_SKILL";
                    case 0x06A7: return "STAT_QUESTS_COMPLETED_COOP";
                    case 0x06A8: return "STAT_SPENT_SKILL_POINT";
                    case 0x06A9: return "STAT_PLAYER_TIMES_INJURED";
                    case 0x06AA: return "STAT_PLAYER_TECH_WEAPONS_PICKED_UP";
                    case 0x06AB: return "STAT_PLAYER_SHOCK_WEAPONS_PICKED_UP";
                    case 0x06AC: return "STAT_PLAYER_GRENADES_PICKED_UP";
                    case 0x06AD: return "STAT_PLAYER_PICKUP_FAILS_FULL";
                    case 0x06AE: return "STAT_PLAYER_HOVERED_OVER_INSTINCT";
                    case 0x06AF: return "STAT_PLAYER_CORROSIVE_WEAPONS_PICKED_UP";
                    case 0x06B0: return "STAT_PLAYER_INCENDIARY_WEAPONS_PICKED_UP";
                    case 0x06B1: return "STAT_PLAYER_SLOW_WEAPONS_PICKED_UP";
                    case 0x06B2: return "STAT_PLAYER_KILLS_HIGHEST_SPREE";
                    case 0x06B3: return "STAT_PLAYER_FIRST_LEVEL_UP";
                    case 0x06B4: return "STAT_PLAYER_UNLOCKED_ADRENALINE_SKILL";
                    case 0x06B5: return "STAT_PLAYER_UNLOCKED_ACTION_SKILL";
                    case 0x06B7: return "STAT_PLAYER_EXPLOSIVE_WEAPONS_PICKED_UP";
                    case 0x06B8: return "STAT_PLAYER_STORAGE_UPGRADE_PICKED_UP";
                    case 0x06B9: return "STAT_PLAYER_ELEMENTAL_ARTIFACT_PICKED_UP";
                    case 0x06BA: return "STAT_PLAYER_AMMO_CAPACITY_UPGRADE_PICKED_UP";
                    case 0x06BB: return "STAT_PLAYER_FIRST_AID_KIT_PICKED_UP";
                    case 0x06BC: return "STAT_PLAYER_ENTERED_VEHICLE";
                    case 0x06BD: return "STAT_PLAYER_GRENADE_PURCHASED";
                    case 0x06BE: return "STAT_PLAYER_SHIELD_PURCHASED";
                    case 0x06BF: return "STAT_PLAYER_FIRST_AID_KIT_PURCHASED";
                    case 0x06C0: return "STAT_PLAYER_AMMO_PURCHASED";
                    case 0x06C1: return "STAT_PLAYER_STORAGE_UPGRADE_PURCHASED";
                    case 0x06C2: return "STAT_PLAYER_COMMAND_DECK_PURCHASED";
                    case 0x06C3: return "STAT_PLAYER_ACTION_SKILL_USES";
                    case 0x06C4: return "STAT_PLAYER_FIRST_SKILL_POINT_ROLAND";
                    case 0x06C5: return "STAT_PLAYER_FIRST_SKILL_POINT_MORDECAI";
                    case 0x06C6: return "STAT_PLAYER_FIRST_SKILL_POINT_LILITH";
                    case 0x06C7: return "STAT_PLAYER_FIRST_SKILL_POINT_BRICK";
                    case 0x06C8: return "STAT_PLAYER_SHIELD_EQUIPPED";
                    case 0x06C9: return "STAT_PLAYER_GRENADE_MOD_EQUIPPED";
                    case 0x06CA: return "STAT_PLAYER_COMMAND_DECK_EQUIPPED";
                    case 0x06CB: return "STAT_PLAYER_FIRST_SKILL_POINT";
                    case 0x06CC: return "STAT_PLAYER_KILLS_SKAG_WITH_VEHICLE";
                    case 0x06CD: return "STAT_PLAYER_KILLS_CRIMSONLANCE";
                    case 0x06CE: return "STAT_PLAYER_KILLS_LANCEBADASS";
                    case 0x06CF: return "STAT_PLAYER_KILLS_LANCEPYRO";
                    case 0x06D0: return "STAT_PLAYER_KILLS_LANCECHEMICAL";
                    case 0x06D1: return "STAT_PLAYER_KILLS_LANCESHOCK";
                    case 0x06D2: return "STAT_PLAYER_KILLS_JETPACK";
                    case 0x06D3: return "STAT_PLAYER_KILLS_DRIFTER";
                    case 0x06D4: return "STAT_PLAYER_KILLS_PRISONER";
                    case 0x06D5: return "STAT_PLAYER_KILLS_PROBE";
                    case 0x06D6: return "STAT_PLAYER_KILLS_MECH";
                    case 0x06D7: return "STAT_PLAYER_KILLS_ASSASSIN";
                    case 0x06D8: return "STAT_PLAYER_KILLS_MIDGET";
                    case 0x06D9: return "STAT_PLAYER_KILLS_LANCER";
                    case 0x06DA: return "STAT_PLAYER_KILLS_MONSTER";
                    case 0x06DB: return "STAT_PLAYER_KILLS_CRIMSONSHORTY";
                    case 0x06DC: return "STAT_PLAYER_KILLS_MEATPOPSICLE";
                    case 0x06DD: return "STAT_PLAYER_KILLS_DUMPSTERDIVER";
                    case 0x06DE: return "STAT_PLAYER_KILLS_MINISTEVE";
                    case 0x06DF: return "STAT_PLAYER_KILLS_TRUXICANWRESTLER";
                    case 0x06E0: return "STAT_PLAYER_KILLS_CRAWMERAX";
                    case 0x06E1: return "STAT_PLAYER_KILLS_CLAPTRAPS";
                    case 0x06E2: return "STAT_PLAYER_KILLS_BANDIT_TRAPS";
                    case 0x06E3: return "STAT_PLAYER_KILLS_RAKK_TRAPS";
                    case 0x06E4: return "STAT_PLAYER_KILLS_RAKK_TRAP_HIVE";
                    case 0x06E5: return "STAT_PLAYER_KILLS_SKAG_TRAPS";
                    case 0x06E6: return "STAT_PLAYER_KILLS_HYPERION_SOLDIERS";
                    case 0x06E7: return "STAT_PLAYER_KILLS_HYPERION_SOLDER_TRAPS";
                    case 0x06E8: return "STAT_PLAYER_KILLS_CRAB_TRAPS";
                    case 0x06E9: return "STAT_PLAYER_KILLS_SPIDERANT_TRAPS";
                    case 0x06EA: return "STAT_PLAYER_KILLS_HYPERION_SUPERBAD";
                    case 0x06EB: return "STAT_PLAYER_KILLS_DFAULT";
                    case 0x06EC: return "STAT_PLAYER_KILLS_KNOXX_TRAP";
                    case 0x06ED: return "STAT_PLAYER_KILLS_STEELE_TRAP";
                    case 0x06EE: return "STAT_PLAYER_KILLS_NED_TRAP";
                    case 0x06EF: return "STAT_PLAYER_KILLS_ZOMBIENED_TRAP";
                    case 0x06F0: return "STAT_PLAYER_KILLS_DFAULT_BANDITS";
                    case 0x06F1: return "STAT_PLAYER_KILLS_INAC";
                    case 0x06F2: return "STAT_PLAYER_KILLS_MINAC";
                    case 0x06F3: return "STAT_PLAYER_KILLS_MINAC_TURRETS";
                    case 0x06F4: return "STAT_PLAYER_CLAP_COMPONENT_1";
                    case 0x06F5: return "STAT_PLAYER_OILCANS_COLLECTED";
                    case 0x06F6: return "STAT_PLAYER_BOBBLEHEADS_COLLECTED";
                    case 0x06F7: return "STAT_PLAYER_3DGLASSES_COLLECTED";
                    case 0x06F8: return "STAT_PLAYER_PANTIES_COLLECTED";
                    case 0x06F9: return "STAT_PLAYER_FISHINABAG_COLLECTED";
                    case 0x06FA: return "STAT_PLAYER_PIZZAS_COLLECTED";
                    case 0x06FB: return "STAT_PLAYER_CLAP_COMPONENT_2";
                    case 0x06FC: return "STAT_PLAYER_CLAP_COMPONENT_3";
                    case 0x06FD: return "STAT_PLAYER_CLAP_COMPONENT_4";
                    case 0x06FE: return "STAT_PLAYER_CLAP_COMPONENT_5";
                    case 0x06FF: return "STAT_PLAYER_STATUE1_COLLECTED";
                    case 0x0700: return "STAT_PLAYER_STATUE2_COLLECTED";
                    case 0x0701: return "STAT_PLAYER_STATUE3_COLLECTED";
                    case 0x0702: return "STAT_PLAYER_STATUE4_COLLECTED";
                    case 0x0703: return "STAT_PLAYER_STATUE5_COLLECTED";
                    case 0x0704: return "STAT_PLAYER_STATUE6_COLLECTED";
                    case 0x0705: return "STAT_PLAYER_ZRESERVED_DLC_FLOAT_FG";
                    case 0x0706: return "STAT_PLAYER_ZRESERVED_DLC_FLOAT_FH";
                    case 0x0707: return "STAT_PLAYER_ZRESERVED_DLC_FLOAT_FI";
                    case 0x0708: return "STAT_PLAYER_ZRESERVED_DLC_FLOAT_FJ";
                    case 0x0709: return "STAT_PLAYER_ZRESERVED_DLC_FLOAT_FK";
                    case 0x070A: return "STAT_PLAYER_ZRESERVED_DLC_FLOAT_FL";
                    case 0x070B: return "STAT_PLAYER_ZRESERVED_DLC_FLOAT_FM";
                    case 0x070C: return "STAT_PLAYER_ZRESERVED_DLC_FLOAT_FN";
                    case 0x070D: return "STAT_PLAYER_ZRESERVED_DLC_FLOAT_FO";
                    case 0x070E: return "STAT_PLAYER_ZRESERVED_DLC_FLOAT_FP";
                    case 0x070F: return "STAT_PLAYER_ZRESERVED_DLC_FLOAT_FQ";
                    case 0x0710: return "STAT_PLAYER_ZRESERVED_DLC_FLOAT_FR";
                    case 0x0711: return "STAT_PLAYER_ZRESERVED_DLC_FLOAT_FS";
                    case 0x0712: return "STAT_PLAYER_ZRESERVED_DLC_FLOAT_FT";

     
  • MouseyPounds
    MouseyPounds
    2011-01-27

    Thanks for pointing that out (and thanks to da_fileserver for finding them). I guess I can stop trying to figure out the unknown ones now. :) I wonder where these are defined; I did try looking through the editor before I started compiling the list, but I find that incredibly confusing…

     
  • matt911
    matt911
    2011-01-27

    Apparently the list is located at offset 26301496 in the current pc version of Borderlands.exe.  Its a long list of strings.  I searched for "FLOAT" with my hex editor and found it.  I don't know if the indexes are somewhere else or if he just used logic to connect the string list with the challenge data indexes which is not too tough a connection to make once you start reading the names of these strings.  The names also explain why some entries have a 5 value in them and some have a 1 value when you look at the list of the strings along with that value.  All the unused float ones are 5s and all the rest are 1.  5 either means "floating point value" or it means "not used".  I'm guessing it is a type indicator and it means floating point.

     
  • da_fileserver
    da_fileserver
    2011-01-27

    You are nearly correct on how those values were extracted. I found one of the strings in the executable and then used a disassembler to find where it's being used. And it happens that there is a function in which it (I assume) adds all the stat names and their associated identifiers. However, the standard borderlands executable has an encrypted text section, so good luck on finding one that's decrypted. :P

    Also, you are correct about the data types. A value of 1 means that it is an Int32 (or maybe UInt32) and 5 means it is a single precision float. I don't know about any other values, since I have not encountered any others.

     
  • MouseyPounds
    MouseyPounds
    2011-02-02

    Merging the internal stat names with my previous test results gives the following annotated list of stats which behave unexpectedly. Apologies if the formatting turns out weird.

    case 0x0655: return "STAT_PLAYER_SHOTS_FIRED"; 
    case 0x0656: return "STAT_PLAYER_SHOTS_FIRED_PISTOL"; 
    case 0x0657: return "STAT_PLAYER_SHOTS_FIRED_SHOTGUN"; 
    case 0x0658: return "STAT_PLAYER_SHOTS_FIRED_SMG"; 
    case 0x0659: return "STAT_PLAYER_SHOTS_FIRED_SNIPERRIFLE"; 
    case 0x065A: return "STAT_PLAYER_SHOTS_FIRED_ROCKETLAUNCHER"; 
    case 0x065B: return "STAT_PLAYER_SHOTS_FIRED_GRENADELAUNCHER"; 
    case 0x065D: return "STAT_PLAYER_SHOTS_FIRED_ASSAULTRIFLE"; 
    case 0x065E: return "STAT_PLAYER_WEAPONS_PICKED_UP"; 
    case 0x065F: return "STAT_PLAYER_KILLS"; 
    case 0x0660: return "STAT_PLAYER_KILLS_SKAG"; 
    case 0x0661: return "STAT_PLAYER_KILLS_WITH_PISTOL"; 
    case 0x0662: return "STAT_PLAYER_KILLS_WITH_SHOTGUN"; 
    case 0x0663: return "STAT_PLAYER_KILLS_WITH_SMG"; 
    case 0x0664: return "STAT_PLAYER_KILLS_WITH_SNIPER_RIFLE"; 
    case 0x0665: return "STAT_PLAYER_KILLS_WITH_ASSAULT_RIFLE"; 
    case 0x0666: return "STAT_PLAYER_KILLS_WITH_FRAG_GRENADE"; 
    case 0x0667: return "STAT_PLAYER_KILLS_WITH_PROTEAN_GRENADE"; 
    case 0x0668: return "STAT_PLAYER_KILLS_WITH_VEHICLE"; 
    case 0x0669: return "STAT_PLAYER_KILLS_WITH_VEHICLE_WEAPON"; 
    case 0x066A: return "STAT_PLAYER_KILLS_WITH_CORROSIVE_ATTACK"; 
    case 0x066B: return "STAT_PLAYER_KILLS_WITH_INCINDIARY_ATTACK"; 
    case 0x066C: return "STAT_PLAYER_KILLS_WITH_SHOCK_ATTACK"; 
    case 0x066D: return "STAT_PLAYER_KILLS_WITH_EXPLOSIVE_ATTACK"; 
    case 0x066E: return "STAT_PLAYER_KILLS_WITH_CRITICAL_HIT"; 
    case 0x066F: return "STAT_PLAYER_KILLS_ALPHA_SKAG"; // unused; all skags count for 0x0660
    case 0x0670: return "STAT_PLAYER_KILLS_SPITTER_SKAG"; // unused; all skags count for 0x0660
    case 0x0671: return "STAT_PLAYER_KILLS_YOUNG_SKAG"; // unused; all skags count for 0x0660
    case 0x0672: return "STAT_PLAYER_KILLS_WITH_MELEE_ATTACK"; 
    case 0x0673: return "STAT_PLAYER_KILLS_BARNACLE"; 
    case 0x0674: return "STAT_PLAYER_KILLS_SCYTHID_CRAWLER"; // Includes all scythids
    case 0x0675: return "STAT_PLAYER_KILLS_SCYTHID_DRONE"; 
    case 0x0676: return "STAT_PLAYER_KILLS_SCYTHID_SPRINTER"; // Actually Larva crab worms
    case 0x0677: return "STAT_PLAYER_KILLS_SCYTHID_WARRIOR"; // Actually Spiderants
    case 0x0678: return "STAT_PLAYER_KILLS_BANDIT"; // "Humans" including non-DLC midgets and Crimson Lance
    case 0x0679: return "STAT_PLAYER_KILLS_RAKK"; 
    case 0x067A: return "STAT_PLAYER_KILLS_AUTOMATED_TURRET"; // includes Scorpio Turrets
    case 0x067B: return "STAT_PLAYER_DUELS_WINS"; 
    case 0x067C: return "STAT_PLAYER_DUELS_LOSSES"; 
    case 0x067D: return "STAT_PLAYER_DUELS_DRAWS"; 
    case 0x067E: return "STAT_PLAYER_ARENA_KILLS"; 
    case 0x067F: return "STAT_PLAYER_ARENA_DEATHS"; 
    case 0x0680: return "STAT_PLAYER_ARENA_ROUNDSWON"; 
    case 0x0681: return "STAT_PLAYER_ARENA_ROUNDSLOST"; 
    case 0x0682: return "STAT_PLAYER_ARENA_ROUNDSDRAW"; 
    case 0x0683: return "STAT_PLAYER_ARENA_MATCHESWON"; 
    case 0x0684: return "STAT_PLAYER_ARENA_MATCHESLOST"; 
    case 0x0685: return "STAT_PLAYER_CHESTS_OPENED"; 
    case 0x0686: return "STAT_PLAYER_LOOTABLES_OPENED"; 
    case 0x0687: return "STAT_PLAYER_ARENA_CONSECUTIVEROUNDSWON"; 
    case 0x0688: return "STAT_PLAYER_ARENA_CONSECUTIVEMATCHESWON"; 
    case 0x0689: return "STAT_PLAYER_ARENA_MAXCONSECUTIVEROUNDSWON"; 
    case 0x068A: return "STAT_PLAYER_ARENA_MAXCONSECUTIVEMATCHESON"; 
    case 0x068B: return "STAT_PLAYER_KILLS_SLEDGE_BANDIT"; 
    case 0x068C: return "STAT_PLAYER_KILLS_INSANE_BANDIT"; // unused; psychos count for 0x0678
    case 0x068D: return "STAT_PLAYER_INVENTORY_PURCHASED"; 
    case 0x068E: return "STAT_PLAYER_INVENTORY_SOLD"; 
    case 0x068F: return "STAT_PLAYER_MANUFACTURER_PREF_TEDIORE"; // Vehicle weapons count for this too
    case 0x0690: return "STAT_PLAYER_MANUFACTURER_PREF_JAKOBS"; 
    case 0x0691: return "STAT_PLAYER_MANUFACTURER_PREF_TORGUE"; 
    case 0x0692: return "STAT_PLAYER_MANUFACTURER_PREF_HYPERION"; 
    case 0x0693: return "STAT_PLAYER_MANUFACTURER_PREF_MALIWAN"; 
    case 0x0694: return "STAT_PLAYER_MANUFACTURER_PREF_S_AND_S"; 
    case 0x0695: return "STAT_PLAYER_MANUFACTURER_PREF_ATLAS"; 
    case 0x0696: return "STAT_PLAYER_MANUFACTURER_PREF_DAHL"; 
    case 0x0697: return "STAT_PLAYER_MANUFACTURER_PREF_VLADOF"; 
    case 0x0698: return "STAT_PLAYER_MANUFACTURER_PREF_PANGOLIN"; // unused; no Pangolin weapons
    case 0x0699: return "STAT_PLAYER_MANUFACTURER_PREF_CORRAZA"; // unused; no Corraza weapons
    case 0x069A: return "STAT_PLAYER_MANUFACTURER_PREF_ANSHIN"; // unused; no Anshin weapons
    case 0x069B: return "STAT_PLAYER_MANUFACTURER_PREF_ERIDAN"; // unused
    case 0x069C: return "STAT_PLAYER_MANUFACTURER_PREF_GEARBOX"; 
    case 0x069D: return "STAT_PLAYER_KILLS_PRINCIPLE_GUARDIAN"; // Includes Wraith and Spectre Guardians
    case 0x069E: return "STAT_PLAYER_KILLS_SERA_GUARDIAN"; 
    case 0x069F: return "STAT_PLAYER_KILLS_ARCH_GUARDIAN"; 
    case 0x06A0: return "STAT_PLAYER_KILLS_CHERUB_GUARDIAN"; 
    case 0x06A1: return "STAT_PLAYER_CURRENCY_EARNED"; 
    case 0x06A2: return "STAT_VEHICLE_HANG_TIME"; 
    case 0x06A3: return "STAT_QUESTS_COMPLETED_ZONE_ZERO"; 
    case 0x06A4: return "STAT_QUESTS_COMPLETED_ZONE_ONE"; 
    case 0x06A5: return "STAT_QUESTS_COMPLETED_ZONE_TWO"; 
    case 0x06A6: return "STAT_PLAYER_KILLS_ACTION_SKILL"; 
    case 0x06A7: return "STAT_QUESTS_COMPLETED_COOP"; 
    case 0x06A8: return "STAT_SPENT_SKILL_POINT"; 
    case 0x06A9: return "STAT_PLAYER_TIMES_INJURED"; 
    case 0x06AA: return "STAT_PLAYER_TECH_WEAPONS_PICKED_UP"; 
    case 0x06AB: return "STAT_PLAYER_SHOCK_WEAPONS_PICKED_UP"; 
    case 0x06AC: return "STAT_PLAYER_GRENADES_PICKED_UP"; 
    case 0x06AD: return "STAT_PLAYER_PICKUP_FAILS_FULL"; 
    case 0x06AE: return "STAT_PLAYER_HOVERED_OVER_INSTINCT"; 
    case 0x06AF: return "STAT_PLAYER_CORROSIVE_WEAPONS_PICKED_UP"; 
    case 0x06B0: return "STAT_PLAYER_INCENDIARY_WEAPONS_PICKED_UP"; 
    case 0x06B1: return "STAT_PLAYER_SLOW_WEAPONS_PICKED_UP"; 
    case 0x06B2: return "STAT_PLAYER_KILLS_HIGHEST_SPREE"; 
    case 0x06B3: return "STAT_PLAYER_FIRST_LEVEL_UP"; 
    case 0x06B4: return "STAT_PLAYER_UNLOCKED_ADRENALINE_SKILL"; 
    case 0x06B5: return "STAT_PLAYER_UNLOCKED_ACTION_SKILL"; 
    case 0x06B7: return "STAT_PLAYER_EXPLOSIVE_WEAPONS_PICKED_UP"; 
    case 0x06B8: return "STAT_PLAYER_STORAGE_UPGRADE_PICKED_UP"; 
    case 0x06B9: return "STAT_PLAYER_ELEMENTAL_ARTIFACT_PICKED_UP"; 
    case 0x06BA: return "STAT_PLAYER_AMMO_CAPACITY_UPGRADE_PICKED_UP"; 
    case 0x06BB: return "STAT_PLAYER_FIRST_AID_KIT_PICKED_UP"; 
    case 0x06BC: return "STAT_PLAYER_ENTERED_VEHICLE"; 
    case 0x06BD: return "STAT_PLAYER_GRENADE_PURCHASED"; 
    case 0x06BE: return "STAT_PLAYER_SHIELD_PURCHASED"; 
    case 0x06BF: return "STAT_PLAYER_FIRST_AID_KIT_PURCHASED"; 
    case 0x06C0: return "STAT_PLAYER_AMMO_PURCHASED"; 
    case 0x06C1: return "STAT_PLAYER_STORAGE_UPGRADE_PURCHASED"; 
    case 0x06C2: return "STAT_PLAYER_COMMAND_DECK_PURCHASED"; 
    case 0x06C3: return "STAT_PLAYER_ACTION_SKILL_USES"; 
    case 0x06C4: return "STAT_PLAYER_FIRST_SKILL_POINT_ROLAND"; 
    case 0x06C5: return "STAT_PLAYER_FIRST_SKILL_POINT_MORDECAI"; 
    case 0x06C6: return "STAT_PLAYER_FIRST_SKILL_POINT_LILITH"; 
    case 0x06C7: return "STAT_PLAYER_FIRST_SKILL_POINT_BRICK"; 
    case 0x06C8: return "STAT_PLAYER_SHIELD_EQUIPPED"; 
    case 0x06C9: return "STAT_PLAYER_GRENADE_MOD_EQUIPPED"; 
    case 0x06CA: return "STAT_PLAYER_COMMAND_DECK_EQUIPPED"; 
    case 0x06CB: return "STAT_PLAYER_FIRST_SKILL_POINT"; 
    case 0x06CC: return "STAT_PLAYER_KILLS_SKAG_WITH_VEHICLE"; 
    // 0x06cd through 0x06e0 are only for DLC3
    case 0x06CD: return "STAT_PLAYER_KILLS_CRIMSONLANCE"; // includes infantry, engineer, defender, and medic
    case 0x06CE: return "STAT_PLAYER_KILLS_LANCEBADASS"; 
    case 0x06CF: return "STAT_PLAYER_KILLS_LANCEPYRO"; 
    case 0x06D0: return "STAT_PLAYER_KILLS_LANCECHEMICAL"; 
    case 0x06D1: return "STAT_PLAYER_KILLS_LANCESHOCK"; 
    case 0x06D2: return "STAT_PLAYER_KILLS_JETPACK"; 
    case 0x06D3: return "STAT_PLAYER_KILLS_DRIFTER"; 
    case 0x06D4: return "STAT_PLAYER_KILLS_PRISONER"; 
    case 0x06D5: return "STAT_PLAYER_KILLS_PROBE"; 
    case 0x06D6: return "STAT_PLAYER_KILLS_MECH"; // lance devastator
    case 0x06D7: return "STAT_PLAYER_KILLS_ASSASSIN"; 
    case 0x06D8: return "STAT_PLAYER_KILLS_MIDGET"; 
    case 0x06D9: return "STAT_PLAYER_KILLS_LANCER"; // unused; lance occupants count for 0x06cd
    case 0x06DA: return "STAT_PLAYER_KILLS_MONSTER"; 
    case 0x06DB: return "STAT_PLAYER_KILLS_CRIMSONSHORTY"; 
    case 0x06DC: return "STAT_PLAYER_KILLS_MEATPOPSICLE"; 
    case 0x06DD: return "STAT_PLAYER_KILLS_DUMPSTERDIVER"; 
    case 0x06DE: return "STAT_PLAYER_KILLS_MINISTEVE"; 
    case 0x06DF: return "STAT_PLAYER_KILLS_TRUXICANWRESTLER"; 
    case 0x06E0: return "STAT_PLAYER_KILLS_CRAWMERAX"; 
    // 0x06e1 through 0x0704 are only for DLC4
    case 0x06E1: return "STAT_PLAYER_KILLS_CLAPTRAPS"; 
    case 0x06E2: return "STAT_PLAYER_KILLS_BANDIT_TRAPS"; // unused; bandit-traps count for 0x0678 
    case 0x06E3: return "STAT_PLAYER_KILLS_RAKK_TRAPS"; // unused; rakk-traps count for 0x0679
    case 0x06E4: return "STAT_PLAYER_KILLS_RAKK_TRAP_HIVE"; 
    case 0x06E5: return "STAT_PLAYER_KILLS_SKAG_TRAPS"; // unused; skag-traps count for 0x0660
    case 0x06E6: return "STAT_PLAYER_KILLS_HYPERION_SOLDIERS"; 
    case 0x06E7: return "STAT_PLAYER_KILLS_HYPERION_SOLDER_TRAPS"; // unused; hyperion-soldier-traps count for 0x06e6
    case 0x06E8: return "STAT_PLAYER_KILLS_CRAB_TRAPS"; // unused; crab-traps count for 0x0676
    case 0x06E9: return "STAT_PLAYER_KILLS_SPIDERANT_TRAPS"; // unused; spiderant-traps count for 0x0677
    case 0x06EA: return "STAT_PLAYER_KILLS_HYPERION_SUPERBAD"; 
    case 0x06EB: return "STAT_PLAYER_KILLS_DFAULT"; 
    case 0x06EC: return "STAT_PLAYER_KILLS_KNOXX_TRAP"; 
    case 0x06ED: return "STAT_PLAYER_KILLS_STEELE_TRAP"; 
    case 0x06EE: return "STAT_PLAYER_KILLS_NED_TRAP"; 
    case 0x06EF: return "STAT_PLAYER_KILLS_ZOMBIENED_TRAP"; 
    case 0x06F0: return "STAT_PLAYER_KILLS_DFAULT_BANDITS"; 
    case 0x06F1: return "STAT_PLAYER_KILLS_INAC"; 
    case 0x06F2: return "STAT_PLAYER_KILLS_MINAC"; 
    case 0x06F3: return "STAT_PLAYER_KILLS_MINAC_TURRETS"; 
    case 0x06F4: return "STAT_PLAYER_CLAP_COMPONENT_1"; // unused
    case 0x06F5: return "STAT_PLAYER_OILCANS_COLLECTED"; 
    case 0x06F6: return "STAT_PLAYER_BOBBLEHEADS_COLLECTED"; 
    case 0x06F7: return "STAT_PLAYER_3DGLASSES_COLLECTED"; 
    case 0x06F8: return "STAT_PLAYER_PANTIES_COLLECTED"; 
    case 0x06F9: return "STAT_PLAYER_FISHINABAG_COLLECTED"; 
    case 0x06FA: return "STAT_PLAYER_PIZZAS_COLLECTED"; 
    case 0x06FB: return "STAT_PLAYER_CLAP_COMPONENT_2"; // unused
    case 0x06FC: return "STAT_PLAYER_CLAP_COMPONENT_3"; // unused
    case 0x06FD: return "STAT_PLAYER_CLAP_COMPONENT_4"; // unused
    case 0x06FE: return "STAT_PLAYER_CLAP_COMPONENT_5"; // unused
    case 0x06FF: return "STAT_PLAYER_STATUE1_COLLECTED"; // Tartarus Station
    case 0x0700: return "STAT_PLAYER_STATUE2_COLLECTED"; // Hyperion Dump
    case 0x0701: return "STAT_PLAYER_STATUE3_COLLECTED"; // Sanders Gorge
    case 0x0702: return "STAT_PLAYER_STATUE4_COLLECTED"; // Dividing Faults
    case 0x0703: return "STAT_PLAYER_STATUE5_COLLECTED"; // Scorched Snake Canyon
    case 0x0704: return "STAT_PLAYER_STATUE6_COLLECTED"; // Wayward Pass
    // 0x0705 through 0x0712 are currently unused
    case 0x0705: return "STAT_PLAYER_ZRESERVED_DLC_FLOAT_FG"; 
    case 0x0706: return "STAT_PLAYER_ZRESERVED_DLC_FLOAT_FH"; 
    case 0x0707: return "STAT_PLAYER_ZRESERVED_DLC_FLOAT_FI"; 
    case 0x0708: return "STAT_PLAYER_ZRESERVED_DLC_FLOAT_FJ"; 
    case 0x0709: return "STAT_PLAYER_ZRESERVED_DLC_FLOAT_FK"; 
    case 0x070A: return "STAT_PLAYER_ZRESERVED_DLC_FLOAT_FL"; 
    case 0x070B: return "STAT_PLAYER_ZRESERVED_DLC_FLOAT_FM"; 
    case 0x070C: return "STAT_PLAYER_ZRESERVED_DLC_FLOAT_FN"; 
    case 0x070D: return "STAT_PLAYER_ZRESERVED_DLC_FLOAT_FO"; 
    case 0x070E: return "STAT_PLAYER_ZRESERVED_DLC_FLOAT_FP"; 
    case 0x070F: return "STAT_PLAYER_ZRESERVED_DLC_FLOAT_FQ"; 
    case 0x0710: return "STAT_PLAYER_ZRESERVED_DLC_FLOAT_FR"; 
    case 0x0711: return "STAT_PLAYER_ZRESERVED_DLC_FLOAT_FS"; 
    case 0x0712: return "STAT_PLAYER_ZRESERVED_DLC_FLOAT_FT";