Alcarin.9024:

In the past weeks I’ve worked a lot with item_detail.json API and I’ve found some problems and/or errors. I’ve posted some of them on the sticket topic, but I think that should be useful to collect them all (with any other if someone else find something) in a single toipc.

  1. Image errors:
    the following image are 16×16 instead of 32×32 like the others:
    item_id:24695 Major Rune of the Flock
    https://render.guildwars2.com/file/2BA523C17A3BE0D6D2EC773361746A6FE3282E23/222500.png
    https://render.guildwars2.com/file/2BA523C17A3BE0D6D2EC773361746A6FE3282E23/222500.jpg
    item_id:24766 Minor Rune of Dwayna
    https://render.guildwars2.com/file/BC7E4DD2B7717AD7054CAFE103C7BEAC55C8142B/222502.png
    https://render.guildwars2.com/file/BC7E4DD2B7717AD7054CAFE103C7BEAC55C8142B/222502.jpg
  2. Not correct item type (or subtype):
    1. Items 8640, 8897, 8898 are type=consumable, consumable.type=utility. They are Tonics, it should be consumable.type:generic as other tonics
    2. Items 43485, 48951, 45045, 45003, 43996, 19999, 20020, 21268, 42597 are booster like all consumable.type=Halloween items (why booster are halloween consumable?)
    3. Items 43902 (Gift of Quartz), 44884 (Basic Ore Node Pack), 48804 (Gift of Candy Corn), 49825 (Gift of Sprockets), 2 (Assassin Pill) are type=consumable consumable.type=Food, are they really food? Should be they under consumable.type=Generic ?
    4. Item 19984 (Bank Access Express) is consumable.type=Generic , is doesn’t summon an NPC but seem better placed in consumable.type …
    5. Jewels, Infusions, PvP Rune and PvP Sigils, are all upgrade_component.type=Default. Universal upgrades and Gemstones are upgrade_component.type=Gem. Is it possible to have more distinction expacially in the first group?
    6. It could be useful also a consumable.type=MealFeast instead of placing them inside type=Food
    7. items: 64754 ( “Pirate Captain’s Outfit”), 64756 (“Cook’s Outfit”), 65194 (“Executioner’s Outfit”), 65195 (“Bloody Prince’s Outfit”), 65196 (“Mad King’s Outfit”), 65198 (“Fancy Winter Outfit”), 65201 (“Witch’s Outfit”) are type=Consumable, consumable.type=Unlock, consumable.unlock_type=Unknown. Unlock_type=Unknown, is an error?
  3. Minis 21047 (Miniature Rytlock) and 39090 (Risen Priest of Balthazar) are the only two miniatures withouth a description.
  4. Items have no indication if they are usable by a crafting profession (this info is available in in-game tooltip) and the relative level requirment.
  5. I’ve found on Trinket and Back (I’ve not analyzed Armors and Weapons yet) that the stat bonuses (back.infix_upgrade) sometimes are splitted in attributes and buff, both give bonus to character attributes. Are there any reason for this? It could be very useful to have all bonuses with the same structure of back.infix_upgrade.attributes instead of splitting them.
  6. item_id: 2 “Assassin Pill” ?
  7. Antique Gold Dye (item_id 20476) is the only Dye with rarity Basic.
  8. There are about 28 Alcholics (consumable.type=Booze) missing
  9. There are 2125 weapons withouth info about stats (weapon.infix_upgrade), some are correct, but a lot no, I’ve saw a lot of Exotic weapon withouth any info about their stat…

13/05: modified list in ordered list, added items 21268, 42597 to point 2.1, added point 2.7, added point 7 and 8
16/5: added point 9

StevenL.3761:

Pretty good list. Especially the upgrade component types have been bothering me as well. Not in that it hurts my application, but it’s just weird.

Items have no indication if they are usable by a crafting profession (this info is available in in-game tooltip) and the relative level requirment.

Actually… you can export the data from recipe_details into a database, then filter that data by the crafting material’s item_id. This way, you should be able to get both the minimum required rating as well as all of the professions that have a recipe that requires the material.

Alcarin.9024:

Pretty good list. Especially the upgrade component types have been bothering me as well. Not in that it hurts my application, but it’s just weird.

Items have no indication if they are usable by a crafting profession (this info is available in in-game tooltip) and the relative level requirment.

Actually… you can export the data from recipe_details into a database, then filter that data by the crafting material’s item_id. This way, you should be able to get both the minimum required rating as well as all of the professions that have a recipe that requires the material.

Thanks for the info, I’m planning to do a similar post-elaboration to have better formatted attributes info. But the point is: IF those information are easy to give API-side, it should be better to give them instead of forcing a post-elaboration cross-API-function (that must be re-executed on every item update). Just to be clear, I’m going to work to the post-elaboration because I don’t know if those information are really easy to give API-side (only a Dev can say this), but it’s not a bad idea to keep a note on this.

Dr Ishmael.9685:

That’s just how some icons are. Most skills use 128×128, but some of them have 64×64 icons. Same thing with items.

2. Not correct item type (or subtype):
7. items: 64754 ( “Pirate Captain’s Outfit”), 64756 (“Cook’s Outfit”), 65194 (“Executioner’s Outfit”), 65195 (“Bloody Prince’s Outfit”), 65196 (“Mad King’s Outfit”), 65198 (“Fancy Winter Outfit”), 65201 (“Witch’s Outfit”) are type=Consumable, consumable.type=Unlock, consumable.unlock_type=Unknown. Unlock_type=Unknown, is an error?

Internally, all these enumerations (types/subtypes, rarity, etc.) are stored as integer IDs, and the API has to use lookup tables to translate the internal ID to a text representation. ‘Unknown’ is the default value when an internal ID doesn’t have an entry in the lookup tables, and it usually shows up when a new ID is added to one of these enumerations.

3. Minis 21047 (Miniature Rytlock) and 39090 (Risen Priest of Balthazar) are the only two miniatures withouth a description.

Simply anomalous, I wouldn’t call it an error.

4. Items have no indication if they are usable by a crafting profession (this info is available in in-game tooltip) and the relative level requirment.

This data is not part of the item’s data entry. It is generated for the in-game tooltips exactly as StevenL described, rendered here as pseudo-SQL:

select discipline, min(rating)
from recipe_tb
where item_id in (ingredient1_id, ingredient2_id, ingredient3_id, ingredient4_id)
group by discipline
;

5. I’ve found on Trinket and Back (I’ve not analyzed Armors and Weapons yet) that the stat bonuses (back.infix_upgrade) sometimes are splitted in attributes and buff, both give bonus to character attributes. Are there any reason for this? It could be very useful to have all bonuses with the same structure of back.infix_upgrade.attributes instead of splitting them.

Two reasons:

  1. The internal mechanics of how the game handles attribute bonuses on equipment don’t recognize Boon/Condition Duration as attributes. Thus Giver’s armor/weapons have to have a buff applied to them in order to modify these attributes.
  2. The baked-in ascended jewel on ascended trinkets/back items similarly has to be added as a buff, rather than being added to the infixed attribute bonuses. This is probably due to how the item creation process generates default attribute bonus values based on type/level/rarity.

In both cases, I doubt it would be possible for the API to combine them.

6. item_id: 2 “Assassin Pill” ?

No clue.

7. Antique Gold Dye (item_id 20476) is the only Dye with rarity Basic.

Again, this is simply anomalous; it’s a starter dye, so the rarity doesn’t really matter.

8. There are about 28 Alcholics (consumable.type=Booze) missing

Probably due to the discovery bug that still seems to plague karma vendors.

9. There are 2125 weapons withouth info about stats (weapon.infix_upgrade), some are correct, but a lot no, I’ve saw a lot of Exotic weapon withouth any info about their stat…

I bet most of those will have Pillaging/Explorer’s/Traveler’s/Wayfarer’s prefixes.

When Magic Find was removed as an equipment attribute, all affected items were modified to remove the infix attributes. At the same time, they added a new architecture to the game where players can double-click an item with no stats to select the stats from a list.

Alcarin.9024:

Thank you Dr Ishmael for your very detailed reply. I agree with you that lot of my points are simple anomalies, most of them I think could be fixed very easly, but if nobody know that there is an anomaly nobody can fix it! This is the reason why I opened a topic, from a developer point of view I think could be simple to find a list of problems and choose which to fix based on available resource and time, rather than reading a lot of not ordered and heterogeneous post in a sticky topic.

5. I’ve found on Trinket and Back (I’ve not analyzed Armors and Weapons yet) that the stat bonuses (back.infix_upgrade) sometimes are splitted in attributes and buff, both give bonus to character attributes. Are there any reason for this? It could be very useful to have all bonuses with the same structure of back.infix_upgrade.attributes instead of splitting them.

Two reasons:

  1. The internal mechanics of how the game handles attribute bonuses on equipment don’t recognize Boon/Condition Duration as attributes. Thus Giver’s armor/weapons have to have a buff applied to them in order to modify these attributes.
  2. The baked-in ascended jewel on ascended trinkets/back items similarly has to be added as a buff, rather than being added to the infixed attribute bonuses. This is probably due to how the item creation process generates default attribute bonus values based on type/level/rarity.

In both cases, I doubt it would be possible for the API to combine them.

  1. You are right, boon duration and condition duration buff are always considered a buff and not attributes
  2. There are also a lot of ascended back and trinket with buffs: this is the complete list of buff descriptions on back:
    32 Power\n18 Toughness\n+18 Vitality”,
    32 Toughness\n18 Power\n+18 Ferocity”,
    32 Condition Damage\n18 Precision\n+18 Toughness”,
    32 Power\n18 Ferocity\n+18 Precision”,
    32 Power\n18 Toughness\n+18 Vitality\n+5 Agony Resistance”,
    32 Toughness\n18 Power\n+18 Ferocity\n+5 Agony Resistance”,
    32 Condition Damage\n18 Precision\n+18 Toughness\n+5 Agony Resistance”,
    32 Power\n18 Ferocity\n+18 Precision\n+5 Agony Resistance”,
    32 Healing\n18 Condition Damage\n+18 Toughness”
    and trinket:
    32 Condition Damage\n18 Precision\n+18 Toughness”,
    32 Power\n18 Ferocity\n+18 Precision”,
    32 Power\n18 Toughness\n+18 Vitality”,
    13 Condition Damage\n13 Precision\n+13 Toughness\n+13 Power\n+13 Vitality\n+13 Healing Power\n+13 Ferocity”,
    32 Toughness\n18 Power\n+18 Ferocity”,
    32 Power\n18 Ferocity\n+18 Vitality”,
    32 Healing\n18 Condition Damage\n+18 Toughness”,
    32 Condition Damage\n18 Precision\n+18 Toughness\n+5 Agony Resistance”,
    32 Power\n18 Ferocity\n+18 Precision\n+5 Agony Resistance”,
    32 Power\n18 Toughness\n+18 Vitality\n+5 Agony Resistance”,
    13 Condition Damage\n13 Precision\n+13 Toughness\n+13 Power\n+13 Vitality\n+13 Healing Power\n+13 Ferocity\n+5 Agony Resistance”,
    32 Toughness\n18 Power\n+18 Ferocity\n+5 Agony Resistance”,
    32 Power\n18 Ferocity\n+18 Vitality\n+5 Agony Resistance”,
    32 Healing\n18 Condition Damage\n+18 Toughness\n+5 Agony Resistance”,
    “+1% Boon Duration”,
    32 Healing Power\n18 Toughness\n+18 Power”,
    32 Healing Power\n18 Toughness\n+18 Power\n+5 Agony Resistance”,
    32 Toughness\n18 Power\n+18 Precision”,
    32 Precision\n18 Power\n+18 Condition Damage”,
    32 Precision\n18 Toughness\n+18 Power”,
    32 Toughness\n18 Power\n+18 Precision\n+5 Agony Resistance”,
    32 Precision\n18 Power\n+18 Condition Damage\n+5 Agony Resistance”,
    32 Precision\n18 Toughness\n+18 Power\n+5 Agony Resistance”,
    11 Precision\n8 Ferocity\n+8 Power”

As you can see there are not only boon/condition buff. As an example you can pick item 37002 ( https://api.guildwars2.com/v1/item_details.json?item_id=37002 http://wiki.guildwars2.com/wiki/Sights_Be_True ) this is the infix_upgrade:
“infix_upgrade”:{
“buff”:{
“skill_id”:“15743”,
“description”:“32 Toughness\n18 Power\n+18 Ferocity”},
“attributes”:[
{"attribute":“Toughness”,“modifier”:"24"},
{"attribute":“Power”,“modifier”:"17"},
{"attribute":“CritDamage”,“modifier”:"17"}
]}

attribute bonus on wiki are:
+56 Toughness Toughness
+35 Power Power
+35 Ferocity Ferocity

Maybe you are right with your second hypothesis, but there are also items 46468 (“All Seeing”) and 64196 (“Engagement Ring”) that are not Ascended but have buff property.

Alcarin.9024:

9. There are 2125 weapons withouth info about stats (weapon.infix_upgrade), some are correct, but a lot no, I’ve saw a lot of Exotic weapon withouth any info about their stat…

I bet most of those will have Pillaging/Explorer’s/Traveler’s/Wayfarer’s prefixes.

When Magic Find was removed as an equipment attribute, all affected items were modified to remove the infix attributes. At the same time, they added a new architecture to the game where players can double-click an item with no stats to select the stats from a list.

The problem is that weapon.infix_upgrade it’s not empty, it’s missing!
There are also 445 armor piece with the same behavior, 50 Back, 94 Trinket. But 2125 weapons (they are 14417 in total) are a lot. I can provide a complete item_id list if needed, but just for example:
https://api.guildwars2.com/v1/item_details.json?item_id=25951 http://wiki.guildwars2.com/wiki/Faithful
https://api.guildwars2.com/v1/item_details.json?item_id=623 http://wiki.guildwars2.com/wiki/Jatoro%27s_Boots
I picked up 4 random items with the problem, 2 of them have no wiki page, the other 2 are the above listed.
I don’t know if it’s normal, maybe there is a good reason for this, but I have no info about this noticeable behavior.

Dr Ishmael.9685:

Look at this old version of the Faithful page:

http://wiki.guildwars2.com/index.php?title=Faithful&oldid=524308

It used to have Magic Find as an attribute. That’s why the API entry no longer has an infix_upgrade for the old Faithful, 25951.

Now look at the new Faithful, 47091: https://api.guildwars2.com/v1/item_details.json?item_id=47091

This is exactly what I described above – the original versions of MF items were stripped of their infix, and new items were created to replace them with different stat combos.

Dr Ishmael.9685:

On the buffs, you again reiterated exactly what I had said. Because ascended trinkets and back items don’t have a standard upgrade slot, they instead have a “baked-in” ascended jewel. These baked-in stats are supplied as a buff, rather than being part of the base attributes. As I said above, I believe this to be due to how the base attributes are generated during item creation.

When ascended trinkets were first introduced, the base attributes and the buff’s attributes were listed separately in the tooltip. Refer to this screenshot from November 2012:

http://wiki.guildwars2.com/images/archive/2/22/20131223230756%21Ascended_example.png

This actually reminded me that Magic Find was treated the same as Boon/Condition Duration, it always had to be added as a buff. That’s why Yakkington’s Ring shows two entries for Power/Precision but only one for MF – Power/Precision are the only base attributes, the base MF and the jewel’s MF are added together in the buff.

In May 2013, this was changed so that the base and buff attributes are added together in the tooltip: http://wiki.guildwars2.com/wiki/Game_updates/2013-05-28#Guild_Wars_2_Wiki_Notes_2


I can’t explain All Seeing or Engagement Ring. The latter’s buff doesn’t even have a description.