Skip to main content

Watch Dogs 2 status effect and skill hashes

Source: Watch Dogs 2 status effect hash list.

The entries below are 32-bit hash values used by Watch Dogs 2 status effects and skill upgrades, together with the human-readable names that could still be resolved. They were recovered from a status-effect hash list, so the set is a partial extraction rather than a complete enumeration of the game's upgrades. The names cover the effect families the list could identify: object, vehicle and NPC hacking, gadgets, the RC jumper and RC drone, weapons, health, the Aggressor, Takedown, Ghost and Trickster skill trees, and the botnet upgrades.

Every hash is grouped below by family, then split into the entries whose name is known, the entries that are named but no longer used, and the entries that are still unnamed.

Hash algorithm​

The values are a standard 32-bit CRC32 of the exact case-sensitive name, stored byte-swapped (little-endian). In other words, take the CRC32 of the name as a 32-bit integer, reverse its four bytes, and write the result as eight hex digits.

Recipe, verified on twelve resolved names including ObjectHacking_Shutdown, VehicleHacking_Brakes and RCJumper_Taser: all twelve reproduced their listed value exactly. For example CRC32("ObjectHacking_Shutdown") is 0x91A7795D, which byte-reversed is 0x5D79A791, the value in the list.

python3 -c "import zlib,sys;print('0x%08X'%int.from_bytes((zlib.crc32(sys.argv[1].encode())&0xFFFFFFFF).to_bytes(4,'big'),'little'))" ObjectHacking_Shutdown
# 0x5D79A791

Lowercase or uppercase versions of a name do not match: the hash uses the name exactly as written, including its underscores and capitalisation.

Two rows in the source list do not fit this rule and are marked name unverified in the tables:

  • 0x2EBA26A2 is listed twice as NPCHacking_ExposeToPolice, but only one of the duplicate rows, 0xDEA3A3F5, equals the CRC32 of that name. The second hash belongs to a different, still unnamed effect.
  • 0x9F0B3124 is listed as Weapon_SniperDamage, but CRC32 of that name is 0xFFEB2E49, the value the list gives against the placeholder Weapon_???Damage. So 0xFFEB2E49 is Weapon_SniperDamage, and the real name of 0x9F0B3124 is still unknown.

Resolved entries​

Object hacking​

HashNameStatus
0x5D79A791ObjectHacking_ShutdownResolved
0xEE5C61CAObjectHacking_ArmHackResolved
0x8C46BB4AObjectHacking_CostReductionResolved

Vehicle hacking​

HashNameStatus
0x1852B252VehicleHacking_BrakesResolved
0x826BD28FVehicleHacking_EngineOverheatResolved
0x733A320DVehicleHacking_CostReductionResolved
0xD16701B2Robot_RobotHackingResolved
0x6CDAD773Vehicle_CarNitroEnhancedResolved
0x5418AA19MassHack_BlackoutResolved

NPC hacking​

HashNameStatus
0xDEA3A3F5NPCHacking_ExposeToPoliceResolved
0x2EBA26A2NPCHacking_ExposeToPoliceResolved (name unverified)
0xF327D9EDNPCHacking_CostReductionResolved
0xB1363673NPCHacking_DistractCombatUpgradeResolved
0xCD82DD10NPCHackingGangWarLevel2Resolved
0x5BB2DA67NPCHackingGangWarLevel3Resolved
0x0BBAD103NPCHackingCallCopLevel2Resolved

Gadgets​

HashNameStatus
0x38BEC5E4Gadgets_ZapperQuantityUpgradeResolved
0xC81E5A51Gadgets_IEDQuantityUpgradeResolved
0x22F8748BGadgets_ImprovedIEDResolved
0x22E4BF73Gadgets_ImprovedZapperResolved
0x775AFAD3Gadgets_RadialHackCostReductionResolved
0x3DBF2DA3Gadgets_RadialHackRangeUpgradeResolved
0xBC1BA788Gadgets_GadgeteerResolved

RC jumper​

HashNameStatus
0x9750548DRCJumper_DamageResistanceResolved
0x0F9D4848RCJumper_CooldownReductionResolved
0xDE185BAERCJumper_JumpEnhancementResolved
0x82130338RCJumper_TauntResolved
0x4C3BFB2FRCJumper_SpeedBoostResolved
0xE8121BBDRCJumper_InteractUpgradeResolved
0x79DC6EABRCJumper_SharedInventoryResolved
0x290B85AFRCJumper_SpeedBoostEnhancementResolved

RC drone​

HashNameStatus
0x72B6506FRCDrone_ProximityScannerResolved
0x85306B5ARCDrone_CooldownReductionResolved
0x7254E994RCDrone_ProximityScannerUpgradeResolved
0xCF5D1D60RCDrone_SharedInventroyResolved
0x7339A4F8RCDrone_SpeedBoostResolved

Weapons​

HashNameStatus
0x8CED1C27Weapon_TaserFireRateResolved
0x41FD4620Weapon_TaserRangeResolved
0xC087D0ACWeapon_TaserReloadResolved
0x69ECE8DEWeapon_TaserDamageVsArmorResolved
0xFA97CADCWeapon_PistolDamageResolved
0xC30DBA6FWeapon_PistolReloadResolved
0x1B175C01Weapon_PistolFireRateResolved
0x72AF7AE2Weapon_AssaultRifleStabilityImpulseLimitResolved
0x95F15F99Weapon_AssaultRifleStabilityRecoilImpulseResolved
0xC6715EFAWeapon_SniperReloadResolved
0x9F0B3124Weapon_SniperDamageResolved (name unverified)
0x9C338AEAWeapon_SniperStabilityImpulseLimitResolved
0x76CEE5DEWeapon_SniperStabilityRecoilImpulseResolved
0xC6625EF2Weapon_SniperStabilityCamShakeResolved
0x9D7180DEWeapon_ShotgunReloadResolved
0xDAB897AAWeapon_ShotgunStabilityInitialRecoilResolved
0x018FD6F2Weapon_ShotgunStabilityImpulseLimitResolved
0x337D4350Weapon_ShotgunStabilityRecoilImpulseResolved
0xC63904A6Weapon_ShotgunDamageVsArmorResolved
0xCF74293BWeapon_ShotgunDamageVsVehicleResolved
0xC9720B12Weapon_AutoHackBulletResolved
0xBBCF8BA8Weapon_AutoTagBulletResolved
0xBCDCE46EWeapon_InfiniteAmmoResolved

Health​

HashNameStatus
0xDB69AF6AHealth_RegenRateResolved
0x99402BFCHealth_RegenDelayResolved
0x8EA29915Health_ShieldSizeResolved
0xD8A3E4CAHealth_ShieldRechargeSpeedResolved

Aggressor​

HashNameStatus
0x975BDB71AggressorMeleeKnockoutResolved
0xC8316DA4AggressorVehicleHackingResolved
0x2039B9E6AggressorIEDsResolved
0x398785A9AggressorArmoredMeleeResolved

Takedown​

HashNameStatus
0xAD6CC9C9TakedownGatesResolved
0xDED5F9F5TakedownSteamPipesResolved
0x9E0F0946TakedownTraficLightsResolved

Ghost​

HashNameStatus
0x256094CEGhostStealthMeleeResolved
0xE9F065B1GhostNPCHackingResolved
0x86C81858GhostZappersResolved
0x5BE09ED0GhostHideInCarResolved
0x4A5432B0GhostHijackerResolved

Trickster​

HashNameStatus
0xE821B092TricksterNetHackingResolved
0x35D7920BTricksterXIngredientsHackResolved
0x48089EB4TricksterSecurityCameraResolved
0x430D9325TricksterRCHacksResolved
0x866265B7TricksterRCJumperResolved
0x7C53D05ETricksterMassHackResolved
0x43A07622TricksterRCDroneResolved
0x14886E70TricksterImprovedProfilerResolved
0x3F802BA6TricksterMassDistactResolved
0xB2FE3DBCTricksterMassVehicleHackResolved
0x193D4F6ATricksterRobotHacksResolved
0x15A0608FTricksterCarNitroResolved
0xC1C65D9FTricksterChopperHacksResolved

Botnet upgrades​

HashNameStatus
0x66C3B440UpgradeBotnetLevel1Resolved
0xDC92BDD9UpgradeBotnetLevel2Resolved
0x4AA2BAAEUpgradeBotnetLevel3Resolved
0xE937DE30UpgradeBotnetLevel4Resolved
0x7F07D947UpgradeBotnetLevel5Resolved
0xC556D0DEUpgradeBotnetLevel6Resolved
0x5366D7A9UpgradeBotnetLevel7Resolved

Unused entries​

These hashes have a resolved name but are flagged as no longer used by the game.

HashName as listedStatus
0xCE131936RCJumper_Taser (UNUSED)Unused
0x8E350C5FRCDrone_SpeedIncrease (UNUSED)Unused
0xC2446734RCDrone_NoiseReduction (UNUSED)Unused
0x617403B5RCDrone_ElectronicStealth (UNUSED)Unused
0xBC5F4246Weapon_PistolRange (UNUSED)Unused
0xCF7A8102Weapon_PistolStabilityInitialRecoil (UNUSED)Unused
0xACCFCB83Weapon_PistolStabilityImpulseLimit (UNUSED)Unused
0x26BF55F8Weapon_PistolStabilityRecoilImpulse (UNUSED)Unused
0x12CD9E09Weapon_SMGReload (UNUSED, NOT REAL NAME)Unused
0x48B7EFC6Weapon_SMGInitialRecoil (UNUSED, NOT REAL NAME)Unused
0x55F04C8CWeapon_SMGStabilityImpulseLimit (UNUSED, NOT REAL NAME)Unused
0xA1723B3CWeapon_SMGStabilityRecoilImpulse (UNUSED, NOT REAL NAME)Unused
0xD1471B02Weapon_SMGFireRate (UNUSED, NOT REAL NAME)Unused
0x10D801D1Weapon_SMGDamageVsArmor (UNUSED, NOT REAL NAME)Unused
0x3869F55DWeapon_AssaultRifleReload (UNUSED)Unused
0x90474AD1Weapon_AssaultRifleRange (UNUSED)Unused
0x63B8CBBCWeapon_AssaultRifleFireRate (UNUSED)Unused
0x7C348B63Weapon_AssaultRifleStabilityInitialRecoil (UNUSED)Unused
0x59682E4FWeapon_AssaultRifleClipSize (UNUSED)Unused
0xAD4B9825Weapon_SniperFireRate (UNUSED)Unused
0x8725D777Weapon_ShotgunRange (UNUSED)Unused
0xF57327D6Weapon_GrenadeLauncherFireRate (UNUSED)Unused
0xBAE68BB6Weapon_GrenadeLauncherDamage (UNUSED)Unused
0x24502D5EAggressorGunFinisher (UNUSED)Unused
0xD0ABAB01AggressorBruiserSpeedModifier (UNUSED)Unused
0xAF299E37AggressorBruiserDamageModifier (UNUSED)Unused
0x8CDFCA48GhostParkourMaster (UNUSED)Unused
0x0D0AAC7AGhostNinja (Unused)Unused
0x9D8AD674NPCHackingCallCopLevel3 (UNUSED)Unused

Unresolved entries​

These hashes have no confirmed name. Some are marked NO CODE LEFT in the source, some are outright UNKNOWN, and the ? and * entries only preserve a family guess. They remain open and need a name source.

HashLabelStatus
0x8D0F8D1CUNKNOWNUnknown
0x718FD8BDUNKNOWNUnknown
0xE5F69113UNKNOWNUnknown
0xF6F63D25NO CODE LEFT, UNKNOWNNo code left
0xB5A1A039NO CODE LEFT, UNKNOWNNo code left
0x37731C71UNKNOWNUnknown
0x5E5AA7F6UNKNOWNUnknown
0xE756459CUNKNOWNUnknown
0x9CD2DC57UNKNOWNUnknown
0x60975B2FUNKNOWNUnknown
0x47E4D16FUNKNOWNUnknown
0x5F5F2FAEUNKNOWNUnknown
0xBFA0891BUNKNOWNUnknown
0x71640D7DUNKNOWNUnknown
0xC3C257ACUNKNOWNUnknown
0x9A583E6DUNKNOWNUnknown
0x987B7833UNKNOWNUnknown
0x7E0F2154UNKNOWNUnknown
0x02B24ED6UNKNOWNUnknown
0xC5CBB977UNKNOWNUnknown
0x92B53022UNKNOWNUnknown
0x90C36E43NO CODE LEFT, UNKNOWNNo code left
0xC6FC45C1NO CODE LEFT, UNKNOWNNo code left
0xBFAD31C8UNKNOWNUnknown
0xEB87DAB3NO CODE LEFT, UNKNOWNNo code left
0x88114346UNKNOWNUnknown
0xEE4966B2UNKNOWNUnknown
0x8B49870EUNKNOWNUnknown
0x5E5CEC97Weapon_???InitialRecoil (UNUSED)Unknown name
0x64DCA751Weapon_???StabilityImpulseLimit (UNUSED)Unknown name
0xB799386DWeapon_???StabilityRecoilImpulse (UNUSED)Unknown name
0x4D1BECCAWeapon_???FireRate (UNUSED)Unknown name
0xFFEB2E49Weapon_???Damage (UNUSED)Unknown name
0x486D696AAggressor* UNKNOWN (UNUSED)Unknown name
0x267DC2ECNO CODE LEFT, UNKNOWNNo code left
0x8C73E146Aggressor* UNKNOWN (UNUSED)Unknown name
0xBC03A3CDAggressor* UNKNOWN (UNUSED)Unknown name
0xDC7AEBAAAggressor* UNKNOWN (UNUSED)Unknown name
0x8FE8469EGhost* UNKNOWN (UNUSED)Unknown name
0xD1D3E531Ghost* UNKNOWN (UNUSED)Unknown name
0x5044F364Ghost* UNKNOWN (UNUSED)Unknown name
0xAEFE2479Ghost* UNKNOWN (UNUSED)Unknown name
0xCF927038Ghost* UNKNOWN (UNUSED)Unknown name
0x7386821FGhost* UNKNOWN (UNUSED)Unknown name
0xF4E29C67Trickster* UNKNOWN (UNUSED)Unknown name

Status of this list​

The list is incomplete. It records the hashes that were recovered from one status-effect dump, but it does not cover every status effect or skill upgrade in the game, and a large block of hashes still has no name. Matching a hash back to a name only works in one direction: a known name can be hashed to confirm its value, but an unnamed hash cannot be reversed. The unresolved entries therefore need a name source, such as the item and upgrade definitions that ship with the game, to be identified.