Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The Bungie API returns the wrong magazine size for Rapid Fire frame Sniper Rifles (should be 6, returns 5) #1303

Closed
JosephBono opened this issue Sep 29, 2020 · 3 comments

Comments

@JosephBono
Copy link

Bug description:
The manifest file returned by the Bungie API for Rapid Fire Frame Sniper Rifles indicates that the magazine size is 5 (for items that do not have an inventory modifying perk or mod), but in game these items have a magazine size of 6.

Repro:

Pull the manifest for the Tongeren-LR3 sniper rifle (either version), included in full below.
Pull the Tongeren-LR3 sniper rifle from collections in game.
Compare the magazine size in game to the value returned by the manifest. They do not match.

The magazine size is indicated by this data block:

      "3871231066": {
        "statHash": 3871231066,
        "value": 5,
        "minimum": 0,
        "maximum": 0,
        "displayMaximum": 100
      },

The value should be 6, but is listed as 5. In game weapons of this archetype with no inventory size altering mods or perks hold 6 bullets in the magazine. This value would indicate that they hold 5. This impacts the accuracy of websites and apps that display data about these weapons (e.g. Destiny Item Manager, Light.gg, D2Gunsmith, etc).

Full manifest for Tongeren-LR3 sniper rifle (Year 1) below:

{
  "displayProperties": {
    "description": "Long march. Stone road. Old city. Know the land.",
    "name": "Tongeren-LR3",
    "icon": "/common/destiny2_content/icons/4e01fe72996711168af633f8fc02f583.jpg",
    "hasIcon": true
  },
  "tooltipNotifications": [],
  "collectibleHash": 1203091685,
  "backgroundColor": {
    "colorHash": 0,
    "red": 255,
    "green": 255,
    "blue": 255,
    "alpha": 255
  },
  "screenshot": "/common/destiny2_content/screenshots/1177293325.jpg",
  "itemTypeDisplayName": "Sniper Rifle",
  "uiItemDisplayStyle": "",
  "itemTypeAndTierDisplayName": "Rare Sniper Rifle",
  "displaySource": "",
  "action": {
    "verbName": "Dismantle",
    "verbDescription": "",
    "isPositive": false,
    "requiredCooldownSeconds": 0,
    "requiredItems": [],
    "progressionRewards": [],
    "actionTypeLabel": "shard",
    "rewardSheetHash": 0,
    "rewardItemHash": 0,
    "rewardSiteHash": 0,
    "requiredCooldownHash": 0,
    "deleteOnAction": true,
    "consumeEntireStack": false,
    "useOnAcquire": false
  },
  "inventory": {
    "maxStackSize": 1,
    "bucketTypeHash": 2465295065,
    "recoveryBucketTypeHash": 215593132,
    "tierTypeHash": 2127292149,
    "isInstanceItem": true,
    "nonTransferrableOriginal": false,
    "tierTypeName": "Rare",
    "tierType": 4,
    "expirationTooltip": "",
    "expiredInActivityMessage": "",
    "expiredInOrbitMessage": "",
    "suppressExpirationWhenObjectivesComplete": true
  },
  "stats": {
    "disablePrimaryStatDisplay": false,
    "statGroupHash": 1069606838,
    "stats": {
      "1480404414": {
        "statHash": 1480404414,
        "value": 0,
        "minimum": 0,
        "maximum": 0,
        "displayMaximum": 100
      },
      "1935470627": {
        "statHash": 1935470627,
        "value": 0,
        "minimum": 0,
        "maximum": 0,
        "displayMaximum": 100
      },
      "1885944937": {
        "statHash": 1885944937,
        "value": 0,
        "minimum": 0,
        "maximum": 0,
        "displayMaximum": 100
      },
      "3555269338": {
        "statHash": 3555269338,
        "value": 35,
        "minimum": 0,
        "maximum": 0,
        "displayMaximum": 100
      },
      "4284893193": {
        "statHash": 4284893193,
        "value": 140,
        "minimum": 0,
        "maximum": 0,
        "displayMaximum": 100
      },
      "4043523819": {
        "statHash": 4043523819,
        "value": 55,
        "minimum": 0,
        "maximum": 0,
        "displayMaximum": 100
      },
      "1240592695": {
        "statHash": 1240592695,
        "value": 32,
        "minimum": 0,
        "maximum": 0,
        "displayMaximum": 100
      },
      "155624089": {
        "statHash": 155624089,
        "value": 38,
        "minimum": 0,
        "maximum": 0,
        "displayMaximum": 100
      },
      "3871231066": {
        "statHash": 3871231066,
        "value": 5,
        "minimum": 0,
        "maximum": 0,
        "displayMaximum": 100
      },
      "4188031367": {
        "statHash": 4188031367,
        "value": 57,
        "minimum": 0,
        "maximum": 0,
        "displayMaximum": 100
      },
      "1931675084": {
        "statHash": 1931675084,
        "value": 28,
        "minimum": 0,
        "maximum": 0,
        "displayMaximum": 100
      },
      "943549884": {
        "statHash": 943549884,
        "value": 66,
        "minimum": 0,
        "maximum": 0,
        "displayMaximum": 100
      },
      "1345609583": {
        "statHash": 1345609583,
        "value": 66,
        "minimum": 0,
        "maximum": 0,
        "displayMaximum": 100
      },
      "2715839340": {
        "statHash": 2715839340,
        "value": 48,
        "minimum": 0,
        "maximum": 0,
        "displayMaximum": 100
      }
    },
    "hasDisplayableStats": true,
    "primaryBaseStatHash": 1480404414
  },
  "equippingBlock": {
    "uniqueLabelHash": 0,
    "equipmentSlotTypeHash": 2465295065,
    "attributes": 0,
    "equippingSoundHash": 0,
    "hornSoundHash": 0,
    "ammoType": 2,
    "displayStrings": [
      ""
    ]
  },
  "translationBlock": {
    "weaponPatternHash": 132676424,
    "defaultDyes": [
      {
        "channelHash": 1667433279,
        "dyeHash": 2851135825
      },
      {
        "channelHash": 1667433278,
        "dyeHash": 3892234202
      },
      {
        "channelHash": 1667433277,
        "dyeHash": 1802371083
      }
    ],
    "lockedDyes": [],
    "customDyes": [],
    "arrangements": [
      {
        "classHash": 0,
        "artArrangementHash": 1177293325
      }
    ],
    "hasGeometry": true
  },
  "preview": {
    "screenStyle": "screen_style_sockets",
    "previewVendorHash": 0,
    "previewActionString": ""
  },
  "quality": {
    "itemLevels": [],
    "qualityLevel": 0,
    "infusionCategoryName": "2806069436",
    "infusionCategoryHash": 2806069436,
    "infusionCategoryHashes": [
      2806069436
    ],
    "progressionLevelRequirementHash": 1749211501,
    "currentVersion": 0,
    "versions": [
      {
        "powerCapHash": 2127292149
      }
    ],
    "displayVersionWatermarkIcons": [
      "/common/destiny2_content/icons/0dac2f181f0245cfc64494eccb7db9f7.png"
    ]
  },
  "acquireRewardSiteHash": 0,
  "acquireUnlockHash": 0,
  "sockets": {
    "detail": "Details",
    "socketEntries": [
      {
        "socketTypeHash": 3956125808,
        "singleInitialItemHash": 878286503,
        "reusablePlugItems": [],
        "preventInitializationOnVendorPurchase": false,
        "preventInitializationWhenVersioning": false,
        "hidePerksInItemTooltip": false,
        "plugSources": 6,
        "reusablePlugSetHash": 245,
        "overridesUiAppearance": false,
        "defaultVisible": true
      },
      {
        "socketTypeHash": 1283453667,
        "singleInitialItemHash": 2193118399,
        "reusablePlugItems": [],
        "preventInitializationOnVendorPurchase": false,
        "preventInitializationWhenVersioning": false,
        "hidePerksInItemTooltip": false,
        "plugSources": 6,
        "reusablePlugSetHash": 698,
        "overridesUiAppearance": false,
        "defaultVisible": true
      },
      {
        "socketTypeHash": 3815406785,
        "singleInitialItemHash": 1885400500,
        "reusablePlugItems": [],
        "preventInitializationOnVendorPurchase": false,
        "preventInitializationWhenVersioning": false,
        "hidePerksInItemTooltip": false,
        "plugSources": 6,
        "reusablePlugSetHash": 644,
        "overridesUiAppearance": false,
        "defaultVisible": true
      },
      {
        "socketTypeHash": 2614797986,
        "singleInitialItemHash": 2869569095,
        "reusablePlugItems": [],
        "preventInitializationOnVendorPurchase": false,
        "preventInitializationWhenVersioning": false,
        "hidePerksInItemTooltip": false,
        "plugSources": 6,
        "reusablePlugSetHash": 421,
        "overridesUiAppearance": false,
        "defaultVisible": true
      },
      {
        "socketTypeHash": 1466776700,
        "singleInitialItemHash": 2273483223,
        "reusablePlugItems": [],
        "preventInitializationOnVendorPurchase": false,
        "preventInitializationWhenVersioning": false,
        "hidePerksInItemTooltip": false,
        "plugSources": 1,
        "overridesUiAppearance": false,
        "defaultVisible": false
      },
      {
        "socketTypeHash": 1288200359,
        "singleInitialItemHash": 4248210736,
        "reusablePlugItems": [],
        "preventInitializationOnVendorPurchase": false,
        "preventInitializationWhenVersioning": false,
        "hidePerksInItemTooltip": false,
        "plugSources": 7,
        "reusablePlugSetHash": 4,
        "overridesUiAppearance": false,
        "defaultVisible": true
      }
    ],
    "intrinsicSockets": [],
    "socketCategories": [
      {
        "socketCategoryHash": 3956125808,
        "socketIndexes": [
          0
        ]
      },
      {
        "socketCategoryHash": 4241085061,
        "socketIndexes": [
          1,
          2,
          3
        ]
      },
      {
        "socketCategoryHash": 2685412949,
        "socketIndexes": [
          4
        ]
      },
      {
        "socketCategoryHash": 2048875504,
        "socketIndexes": [
          5
        ]
      }
    ]
  },
  "talentGrid": {
    "talentGridHash": 521135891,
    "itemDetailString": "Details",
    "hudDamageType": 1
  },
  "investmentStats": [
    {
      "statTypeHash": 1480404414,
      "value": 0,
      "isConditionallyActive": false
    },
    {
      "statTypeHash": 1935470627,
      "value": 0,
      "isConditionallyActive": false
    },
    {
      "statTypeHash": 1885944937,
      "value": 0,
      "isConditionallyActive": false
    },
    {
      "statTypeHash": 3555269338,
      "value": 35,
      "isConditionallyActive": false
    },
    {
      "statTypeHash": 4284893193,
      "value": 100,
      "isConditionallyActive": false
    },
    {
      "statTypeHash": 4043523819,
      "value": 0,
      "isConditionallyActive": false
    },
    {
      "statTypeHash": 1240592695,
      "value": 25,
      "isConditionallyActive": false
    },
    {
      "statTypeHash": 155624089,
      "value": 31,
      "isConditionallyActive": false
    },
    {
      "statTypeHash": 3871231066,
      "value": 90,
      "isConditionallyActive": false
    },
    {
      "statTypeHash": 4188031367,
      "value": 52,
      "isConditionallyActive": false
    },
    {
      "statTypeHash": 1931675084,
      "value": 28,
      "isConditionallyActive": false
    },
    {
      "statTypeHash": 943549884,
      "value": 62,
      "isConditionallyActive": false
    },
    {
      "statTypeHash": 1345609583,
      "value": 66,
      "isConditionallyActive": false
    },
    {
      "statTypeHash": 2715839340,
      "value": 48,
      "isConditionallyActive": false
    }
  ],
  "perks": [],
  "summaryItemHash": 75112946,
  "allowActions": true,
  "doesPostmasterPullHaveSideEffects": false,
  "nonTransferrable": false,
  "itemCategoryHashes": [
    3,
    1,
    10
  ],
  "specialItemType": 0,
  "itemType": 3,
  "itemSubType": 12,
  "classType": 3,
  "breakerType": 0,
  "equippable": true,
  "damageTypeHashes": [
    1847026933
  ],
  "damageTypes": [
    3
  ],
  "defaultDamageType": 3,
  "defaultDamageTypeHash": 1847026933,
  "isWrapper": false,
  "traitIds": [
    "item_type.weapon",
    "weapon_type.sniper_rifle"
  ],
  "hash": 1177293325,
  "index": 2236,
  "redacted": false,
  "blacklisted": false
}
@JosephBono
Copy link
Author

I believe that the underlying data for this changed in one of the recent manifest updates (probably the one from last week). I noticed this issue when I was looking at the magazine value in DIM for a The Supremacy that I am 95% sure displayed the correct number on 9/15. I originally wrote a bug for DIM (DestinyItemManager/DIM#5926), but then took a look at the manifest files when I realized that both D2Gunsmith and Light.gg were also displaying the incorrect number.

I can't guarantee that this is the result of a change in the data in the manifest file (as I did not look at this part of the manifest previously when DIM showed the correct value), but since 3 different sources are all showing the incorrect data now and I believe all 3 had the correct data previously, that implies that the underlying data changed.

@floatingatoll
Copy link

floatingatoll commented Sep 29, 2020

As a general note, it's worth mentioning that API magazine sizes are provided with the standing caveat from the API team that they will frequently be inaccurate versus in-game, as the way magazine sizes are calculated involves (to some degree) game scripting that runs exclusively in combat zones. Seeing a sniper magazine vary by +/- 1 from API to in-game is within predictable tolerances for API magazine size 'error'. There may or may not be a separate issue affecting these.

(The API team some years back offered the API users a choice between 'slightly wrong magazine sizes in API' and 'remove magazine sizes from API', and it was generally concluded that the slightly-wrong magazine sizes were still valuable, even if they were often slightly wrong, which is why we still have them today.)

@jshaffstall-bng
Copy link
Member

The comment above is a good summary of the issue. This issue if being closed because we don't have a better option.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants