General purpose CLI utility. Mostly for manipulating client side files. This is not meant to be one tool but rather a collection of different tools sharing the same framework. Supports both linux & windows.
A sub-tool to work with MPQs.
Examples:
-
Get the (listfile)
wow-file-tools mpq view -a ./Work/patch-A.MPQ
-
Extract a file from a MPQ as hex
wow-file-tools mpq extract -a ./Work/patch-A.MPQ -f "World\wmo\kalimdor\uldum\uldum_fishing_village.wmo"
-
Extract a file from a MPQ to disk
wow-file-tools mpq extract -a ./Work/patch-A.MPQ -f "World\wmo\kalimdor\uldum\uldum_fishing_village.wmo" -t ./
-
Extract everything from a MPQ to ./Work
wow-file-tools mpq extract-tree -a .\Work\patch-A.mpq -t "/" -d .\Work\
-
Insert a file to the archieve
wow-file-tools mpq pack -a ".\Work\patch-A.mpq" -f ".\crabby.blp" -d "creature/crab"
Output all of the map dependencies. The given --map-ids
must be found in Map.dbc
.
OPTIONS:
-m, --map-ids <map-id>...
-w, --workspace <workspace>
Dump the conversion of the binary file into JSON. Supported formats:
- DBC
- Map.dbc
- LoadingScreens.dbc
- AreaTable.dbc
- LightSkybox.dbc
- LightParams.dbc
- Light.dbc
- BattlemasterList.dbc
- GroundEffectTexture.dbc
- GroundEffectDoodad.dbc
- GameObjectDisplayInfo.dbc
- PvpDifficulty.dbc
- Spell.dbc
- SpellIcon.dbc
- SpellVisual.dbc
- SpellVisualKit.dbc
- SpellVisualEffectName.dbc
- Talent.dbc
- TalentTab.dbc
- ADT
- WDT
- WMO
Note: some formats might be lacking fields
OPTIONS:
-f, --file <file>
Like the view command will output DBC info. However unlike the view command it will work across multiple files and join the results together to a more readable format.
OPTIONS:
-d, --dbc-folder <dbc-folder>
-j, --join-name <join> join to display, one of: SPELLS, TALENTS
-r, --record-id <record-id>
In order to compile this project you will need
- rust language toolchain, successfully compiled with
rustc 1.43.0-nightly (75cf41afb 2020-03-04)
but other version should work fine as well - A C/C++ compiler
- CMake
- (On linux)
bzip2
/zlib
. Depending on the distro you most likely have them installed already.
To compile, run:
cargo build --release
The binary will be in $PROJECT/target/release
.