WC3MapSpecification
WC3MapSpecification copied to clipboard
The specification of WC3 .w3x files as a living document
WC3MapSpecification
The specification of WC3 .w3x files as a living document
File versions
| WarCraft III | 1.32.9.16589 | Pre-reforged |
|---|---|---|
| Terrain | 11 | 11 |
| Units† | 8_11 | 8_11 |
| Doodads† | 8_11 | 8_11 |
| Regions | 5 | 5 |
| Cameras | 0 | 0 |
| Sounds | 3 | 1 |
| Objects | 2 | 2 |
| Strings†† | 1 | 1 |
| Info | 31 | 25 |
| Imports | 1 | 1 |
| GameConfiguration | 1 | 1 |
† Units and Doodads files seem to have a version and subversion. Or it's possible the "11" integer is not part of the version and has just never changed or is unused by WC3.
†† Strings file does not have a version number; we have assigned v1
Files
- Terrain (
war3map.w3e) - Units (
war3mapUnits.doo) - Doodads (
war3map.doo) - Regions (
war3map.w3r) - Cameras (
war3map.w3c) - Sounds (
war3map.w3s) - Objects (
war3map.w3uwar3map.w3twar3map.w3awar3map.w3bwar3map.w3dwar3map.w3qwar3map.w3h) - Strings (
war3map.wts) - Info (
war3map.w3i) - Imports (
war3map.imp) - GameConfiguration (
.wgc)
Types
byteshort- 2 bytes, Little-Endianint- 4 bytes, Little-Endian (usually unsigned)float- IEEE 32-bit floating point, Little-Endianchar(X)- 1-byte ASCII character repeated X timesstring- a stream of characters, usually UTF-8, zero-terminated Expect strings that are used in-game to support TRIGSTR_ placeholders.string_max(X)- same as above but with a hard limit ofXbytes, including\0- Generally, file/folder path strings are limited to 260 bytes (see Windows'
MAX_PATH).
- Generally, file/folder path strings are limited to 260 bytes (see Windows'
unknown(X)- treat as X bytes of binary data