This contains a very slimmed down version of the WoW.tools site (currently modelviewer for M2s only and DBC browsing/exporting) meant for local use without relying on anything from the main WoW.tools website (or the internet in general, after a listfile has been downloaded, see below).
All dependencies should be included with the executable. If you have the included requirements already installed, feel free to compile it yourself for a smaller/cleaner runtime directory. As this loads quite a bit of data, you'll need at least 4-5GB of free RAM.
While definitions are included in releases, these are likely to go out of date quickly. Hopefully up-to-date definitions can be found on here (to download, click Code -> Download ZIP), to update definitions overwrite the WoWDBDefs/definitions
folder with the definitions
folder from the downloaded version of the WoWDBDefs repo.
The application downloads this listfile on first start, but this can go out of date in time as new files are added/named in future content. Simply remove listfile.csv
to force a redownload on next startup or update it manually. The listfile URL can also be changed in the config.
The latest version can be downloaded here.
- Open
config.json
in your favorite text editor. - Set
wowFolder
to the directory your WoW is installed to. Do NOT point it to a subdirectory like_retail_
or anything like that, just the main "World of Warcraft" folder. You can also leave this empty, but this will stream all required files from the internet, which will be rather slow. - Set
wowProduct
to the product you wish to load. For example, Mainline Retail WoW (the default) would bewow
, Mainline PTRwowt
, Mainline Betawow_beta
, Classic Retail would bewow_classic
, etc. You can view a full list of product here. If you have multiple products installed, you can also switch between them on the "Builds" page after starting, but keep in mind the product set here is always loaded first. - (Optional) If you want to have DBCs/DB2s from other versions be available to the table browser, you can set
dbcFolder
to the path where these files can be found. The contents of this directory MUST be structured as follows:<folder set in dbcFolder>/<x.y.z.build>/dbfilesclient/
, e.g. achievement.dbc for 3.2.0.10192 needs to be in this location:<folder set in dbcFolder>/3.2.0.10192/dbfilesclient/achievement.dbc
. Depending on operating system, the DBC/DB2 names might need to be lowercase. - (Optional) If you left wowFolder empty (online mode), you can set region to the region you are in (e.g. us, eu, tw, cn)
- (Optional) If you want to load a specific locale (e.g. deDE, zhCN, etc), set
locale
to the locale you want to load. Supported locales are listed here.
Make sure WoW is closed and Battle.net is idle/closed before starting it and make sure to close it before starting WoW again to make sure you won't run into issues with files being locked and such.
Start the application by opening wow.tools.local.exe (or whatever executable is relevant for your OS). Startup can take some time depending on which product you are loading. Classic will be relatively fast, but Mainline Retail will take a bit longer due to the amount of files it has.
After startup is complete, it should show something along the lines of Now listening on: http://localhost:5000
, go to whatever URL is mentioned there (including the port) in your favorite web browser to go to the site. The rest should work similarly to how wow.tools does/did.
Outside of all the glue pretty much taken directly from WoW.tools projects, this project uses a few other projects to do the heavy lifting in the hopes that maintaining it in the future (if there need to be changes) should be relatively simple*, if the below projects are still being maintained. Many thanks to their authors!
*(compared to maintaining the main wow.tools site)
- Deamon's WebWowViewerCpp (Emscripten version) which also powers the WoW.tools modelviewer. Does the actual model rendering.
- DBCD used to read WoW's DB2 tables.
- CascLib used to read information from WoW's game files.
- WoWDBDefs definitions required to read WoW's DB2 tables.