There are a number of non-Blizzard sites that show a complete list of available items in World of Warcraft (such as wowhead, etc). I would like to know the best (easiest) way to compile a similar list.

I believe some sites are based on user-entered input, which I would like to avoid. Looking at the lua API, it seems that there are functions to get a list of items, but it's not clear if I can just download everything (I remember a reference to throttling somewhere, can't find it now). Does anyone have code samples that would do this, or links to source?

Also, Eve Online has made a database of items available (and I do mean SQL database file for download, not the Armory) - is there anything similar for Wow?

I'm just looking for the names and stats, not the graphic icons.

  • 7
    \$\begingroup\$ -1 . Making a list of items inside of an already developed game is not Game Development. \$\endgroup\$ – AttackingHobo Dec 1 '10 at 20:05
  • 4
    \$\begingroup\$ This is pretty borderline. It's a question that would involve the modding/extension/whatever SDK that Blizzard provides (and we do allow mod/map making questions), but yet still feels like it should be on gaming. \$\endgroup\$ – Tetrad Dec 1 '10 at 20:28
  • 6
    \$\begingroup\$ I disagree that this is borderline; it's pretty blatantly software development concerning a game. "Related" reminds me of the question about building Alien Swarm, which is much less development than this. \$\endgroup\$ – user744 Dec 1 '10 at 20:33
  • 1
    \$\begingroup\$ @Joe Wreschnig If anything it could go on stackoverflow.com instead of here. It is not Game Development; in no way are they developing a game. \$\endgroup\$ – AttackingHobo Dec 1 '10 at 21:27
  • \$\begingroup\$ I guess it is somewhat borderline. Since it might involve programming lua, I wasn't thinking it fit on gaming.se, but granted just because it's programming doesn't necessarily make it game programming. :) If the moderators want, I'll move it (of course, if gaming.se tells me it doesn't belong there, I'm not sure where to next...) \$\endgroup\$ – Cyclops Dec 1 '10 at 21:28

Information on items, quests, etc. is all requested from the server on demand. Items have an ID and that, plus some other parameters for the things like current enchant, are what's transmitted on a chat channel when you link an item using shift-click.

There is an RPC accessible from LUA that returns a formatted description of the item which is what the UI shows in tooltips. It will also include an ID for the model (model and item ID aren't the same thing because lots of items share a model).

How do you get the IDs of the items in order to request their details? Well, players get IDs back when they loot, when they query the auction house, when they examine other players and a bunch of other ways. It's important to realise that there is no publically accessible list of all items in the game.

Websites like Thottbot and Wowhead rely on users running an addin that captures all this information and more and stores it in the file on logout. A Windows/Mac application then uploads that file to Wowhead's servers which de-dupe submissions, sanity-check it, etc. So to start a site from scratch you are going to need to develop a similar 'looter' addin and recruit players to run it and submit their data to you - the more the better.

There is another technique whereby you write some addin code that just guesses item IDs and requests the details for that item (if it exists). The issue with this is that it's against the WoW terms of use to do it on live realms (they seem to tollerate people doing it on PTRs but I wouldn't try it from my main account).

To learn how to do this you could look through the client UI's LUA source, which is included in human-readable format in the install directory. A quicker route though would be to download one of the client apps from existing WoW database sites and look at their code since that will be focussed on exactly what you want.


Every object in the game is on the client side, it's just the server side that says what that object can do. All this involves is finding a program that will unpack the proprietary data files: MPQ's and then extract them. Then you'll probably need to figure out a way to parse that data into easy to an easy to use format (XML), then you can create a program to do whatever you want with it.

HERE is an article on how to get Character Models from MPQs, I would imagine any item would be very similar.

  • \$\begingroup\$ The models, animations, sound effects and other presentation information is downloaded as part of the client, but actually the item information that comes up in the tooltips (which is I assume what the questioner wants to build a website) isn't. \$\endgroup\$ – U62 Dec 2 '10 at 12:48

Parts of game data is delivered to client side at all times - models, maps, intro screens etc. They were once required to be downloaded completely before you can even play, but with incremental downloading introduced in Cataclysm, you can start playing and let missing stuff download as you play, with priority given to data you need right now.

Most spell data is part of game client and so is always available once you're in game. (This, BTW, is the reason why changing tooltips require client patch even when server-side mechanic already works differntly)

As for item data and quest data, it is requested on demand for everything you see in world or query from your mailbox, equipment, inventory, auction, etc. While most sites indeed use collectors and this most of this data is available from inside the game through Lua API, as U62 mentions, many collectors only parse player-specific data in Lua and get item/quest/text data directly from WDB cache files where WoW stores everything info it downloads until wipe on next patch. It have advantage of having most complete information, less hurdles with localized data and saves you from slowing down game with collection task.


Not the answer you're looking for? Browse other questions tagged or ask your own question.