web space | free website | Business Web Hosting | Free Website Submission | shopping cart | php hosting




HostCraze.com - An independent review of the top rated web hosts

Free Background Images

Article 5:

Local IDs for MPQ files

At first I give you an overview of Local IDs that have been used by Blizzard in their games up to Warcraft III:

Language Language ID decimal Language ID hexadecimal
Language Neutral 0 0x000
Spanish 1024 0x400
Chinese (Traditional) 1028 0x404
Czech 1029 0x405
German 1031 0x407
English (US) 1033 0x409
Spanish 1034 0x40A
French 1036 0x40C
Italian 1040 0x410
Japanese 1041 0x411
Korean 1042 0x412
Polish 1045 0x415
Portuguese (Brazilian) 1046 0x416
Russian 1049 0x419
Thai 1054 0x41E
Turkish 1055 0x41F
Chinese (Simplified) 2052 0x804
English (UK) 2057 0x809
Portuguese (Portugal) 2070 0x816

Now comes the question "Why do we need Local IDs?". The answer is simple. Local IDs are used to keep different language versions of a file in the same directory inside a MPQ file. According to the value set in config.txt (which can be found inside war3.mpq) Warcraft III will use the appropriate language. Therefore Warcraft III will use the files with the same language ID as set in config.txt with higher priority than language neutral files (ID = 0). Anyway, Warcraft III looks for a file it needs only with neutral ID (0) and with the ID set in config.txt.

Concrete example: Let's take one of the ID dependent files (see list below). I will take UI\war3skins.txt. If there is a war3skins.txt with ID 1031 and ID 0 in War3Patch.mpq and the current language ID is set to 1031, Warcraft III will use the file with ID 1031 and ignore the file with ID 0 (and any other IDs). If there is a war3skins.txt with ID 0 and none with ID 1031 and 1031 is the current ID, Warcraft III will use the file with ID 0 and ignore any other IDs. If the current ID is 1031 and neither a war3skins.txt with ID 1031 nor with ID 0 is in War3Patch.mpq Warcraft III will find none, even if there is a war3skins.txt with ID 1033 (for example). In this case Warcraft III will find a file war3skins.txt, because in war3.mpq there is also a war3skins.txt with ID 0 (in version 1.0 Warcraft III doesn't use language IDs for files as all files in war3.mpq are ID 0). Otherwise Warcraft III would find no file and would maybe hang.

 Local ID dependent files:

Filename Used IDs Game Version
UI\FrameDef\GlobalStrings.fdf 0, 1028,1029, 1031, 1034,1036, 1040, 1041, 1042, 1045, 1049 Warcraft III 1.04b
UI\FrameDef\Glue\BattleNetChatPanel.fdf 0, 1028,1029, 1031, 1034,1036, 1040, 1041, 1042, 1045, 1049 Warcraft III 1.04b
UI\FrameDef\NetworkStrings.fdf 0, 1028,1029, 1031, 1034,1036, 1040, 1041, 1042, 1045, 1049 Warcraft III 1.04b
UI\FrameDef\UI\EscMenuOptionsPanel.fdf 0, 1028,1029, 1031, 1034,1036, 1040, 1041, 1042, 1045, 1049 Warcraft III 1.04b
UI\MacHelpStrings.txt 0, 1031, 1036 Warcraft III 1.04b
UI\MacStrings.txt 0, 1031, 1036 Warcraft III 1.04b
UI\war3skins.txt 0, 1028,1029, 1031, 1034,1036, 1040, 1041, 1042, 1045, 1049 Warcraft III 1.04b
UI\WorldEditLayout.txt 1031, 1036 Warcraft III 1.04b
UI\WorldEditStrings.txt 0, 1028,1029, 1031, 1034,1036, 1040, 1041, 1042, 1045, 1049 Warcraft III 1.04b
Units\CommandStrings.txt 0, 1028,1029, 1031, 1034,1036, 1040, 1041, 1042, 1045, 1049 Warcraft III 1.04b
Units\HumanAbilityStrings.txt 0, 1028,1029, 1031, 1034,1036, 1040, 1041, 1042, 1045, 1049 Warcraft III 1.04b
Units\HumanUnitStrings.txt 0, 1028,1029, 1031, 1034,1036, 1040, 1041, 1042, 1045, 1049 Warcraft III 1.04b
Units\ItemStrings.txt 0, 1028,1029, 1031, 1034,1036, 1040, 1041, 1042, 1045, 1049 Warcraft III 1.04b
Units\NeutralAbilityStrings.txt 0, 1028,1029, 1031, 1034,1036, 1040, 1041, 1042, 1045, 1049 Warcraft III 1.04b
Units\NeutralUnitStrings.txt 0, 1028,1029, 1031, 1034,1036, 1040, 1041, 1042, 1045, 1049 Warcraft III 1.04b
Units\NightElfAbilityStrings.txt 0, 1028,1029, 1031, 1034,1036, 1040, 1041, 1042, 1045, 1049 Warcraft III 1.04b
Units\OrcAbilityStrings.txt 0, 1028,1029, 1031, 1034,1036, 1040, 1041, 1042, 1045, 1049 Warcraft III 1.04b
Units\UndeadAbilityStrings.txt 0, 1028,1029, 1031, 1034,1036, 1040, 1041, 1042, 1045, 1049 Warcraft III 1.04b

Note: The column "Used IDs" is based on the german version of Warcraft III (which is the only one I have). In other versions there may be other IDs used. If you want to, you can inform me about which IDs are used in other language versions of Warcraft III.

This article corresponds to Warcraft III since 1.04b.

Any question/suggestion/comment regarding this article should be sent to scfreak045@hotmail.com or posted into my forum.