D3Inferno

StringList Files (enUS)

Affixes.stlPrefix and suffix names (e.g., "of the Lion")
Powers.stlClass spell descriptions
AttributeDescriptions.stlAttribute modifier descriptions
Items.stlItem names (anything that can go in your inventory)
ItemTypeNames.stlItem type names (e.g., "Melee")
ItemDescriptions.stlMisc. item descriptions (e.g., crafting plans)
ItemSets.stlItem set names (e.g., "Bul-Kathos' Children")
ItemEnhancements.stlItem Enhance names
Recipes.stlRecipe names for cube
Gizmos.stlMisc game items (e.g., "Resplendent Chest")
RareNameStrings_P*.stlRare item name prefixes (e.g., "Lord's")
RareNameStrings_S*.stlRare item name suffixes (e.g., "Focus")
Monsters.stlMonster and NPC names
MonsterNames.stlMonster name pre/suffixes

For each StringList above, you can view the "Current" (default), "All", or "Changes".


Click on the link to download a zip file containing all of the raw StringList files for version 8296. The older version 8059, version 7841, version 7728 and version 7338 are still available as well. The fields in each "*.stl" file are delimited using the tilde ('~') character. This character was chosen as it is not used in any of the StringList text (unlike commas, quotes, and apostrophes).

The StringList files are used by Diablo 3 to convert Non-NLS keys into language specific strings.

What is a Non-NLS key?
It is a language independent string that represents something. That "something" could be an item, a spell name, a spell description, etc.
For example, the Non-NLS key "Amethyst_04" corresponds to "Flawless Amethyst" in US English (which has a locale of "enUS").
That very same key will be mapped to "Améthyste Parfaite" for a French speaker (playing a version of the game that has been localized in French).

What does "Non-NLS" even mean?
The term NLS is an acronym for National Language Support. Consequently, the term "Non-NLS" means a string that is language-independent and that will need to be mapped into a localized string before it is displayed to the user.

In the case if the Diablo 3 Non-NLS keys, they look a lot like their US English counterparts. That is not surprising since Blizzard is based in the US and as such, will pick Non-NLS key names which are easy to identify.

So what is the purpose of these files?
These files reveal all of the text that is shown to the user at any point during the game. They include the name of all item types, all affixes, all mobs, all spells, all NPC conversations, etc. In short, they can reveal a lot of useful information about Diablo 3!

While the list above is not (yet) complete, it does provide changes between versions. That is, changes that have been made to these strings in the beta patches.

How is this possible?
To obtain the differences between versions, I simply extracted all of the core StringList files from the "enUS_Text" MPQ file. I then loaded all of this data into a database. I proceeded to extract each file one at a time from the "enUS\d3-update-enUS-XXXX.MPQ" patch MPQs. I then checked for differences between the new version and the old version (both updates and deletes), and then loaded those into the same database with the new version number. Finally, I formatted this data into a not-so-nice looking HTML table for your viewing pleasure.

How is this information stored in the MPQ files?
Check out the StringList (*.stl) section for complete details on the inner workings of the StringList files.

Email Contact:

contact_email