Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

World-of-MapCraft - World of Warcraft Slippy Maps

To see the maps in action:

For an explanation of how it all works:

Generating the map tiles

This code will help you to generate your own set of map tiles. It wont work immediately out of the box - there's some fiddling involved. There are many more maps included in WoW than are used on the website - try extracting some different ones!


  • Make sure you have at least 10 GB of space!
  • Install ImageMagick
  • Install MPQExtractor & BLPConverter
  • Both of these tools require cmake to build
  • Create some folders:
  • mpqs - base MPQ files will go here
  • blps - extracedt BLP files will go here
  • pngs - PNGs converted from BLPs will go here
  • maps - Preview maps will go here
  • built - Final built tilesets will go here
  • It is very helpful for these folders to be accessible in a browser.
  • Modify build/config.php with the paths and URLs to these folders
  • Copy MPQ files from your WoW install, specifically:
  • art.MPQ
  • world.MPQ
  • wow-update-nnnnn.MPQ (multiple files)
  • wow-update-base-nnnnn.MPQ (multiple files)
  • You'll find them all inside the Data subfolder of your WoW installation


  • Extract the BLP and WMO files from the MPQs:

  • ./ is a good starting point

  • This will take a few minutes!

  • Run build/0_rename.php to fix path casing.

  • You don't need to do this if you have the -c option in MPQExtractor

  • Run build/1_convert.php to convert all of the BLP files to PNGs

  • This takes a while!

  • You should now have lots of sub-folders in the pngs folder

  • Run build/2_combine.php to make HTML previews or all the maps

  • You can now browse the maps subfolder and view everything you extracted

  • The files ending --16 use lower-resolution files so are good for quick previews

  • Once you know the tiles you want, modify the code at the top of build/3_build.php

  • The defaults are set for patch 4.3, extracting a few different maps - you may want more or less

  • They include combining multiple maps and patching over unused parts of tiles

  • This script builds the most-zoomed level of tiles for the final maps

  • The background colors specified here need to match build/colors.php

  • Run build/4_recombine.php to preview your creaed tilesets

  • The $size setting at the top lets you change the preview output size

  • Choose 16 or smaller to load the quick preview images

  • Run build/5_resize.php to build the other zoom levels

  • This will take a long time for big maps

  • You should now be able to view your slippy maps!

  • Modify www/index.php to point to the tiles

  • Also add the zoom levels & dimensions here

  • If you want to put the tiles on S3, use build/6_sync.php

  • To compress the PNGs for faster serving, use build/7_crush.php

  • If you want to make WMO maps, you'll need some extra tools:

  • build/wmo_build.php to assemble a flat image from a WMO group

  • build/wmo_assemble.php to assemble multiple flats into a tileset

  • From there, you can use build/5_resize.php to build the other zoom levels

Changes in MoP

  • art.MPQ has been renamed textures.MPQ
  • Expansion minimap textures have been moved to exspansionX.MPQ files
  • world2.MPQ is gone, with contents moved into a bunch of new MPQs
  • All patch MPQs have no prefix (this changed in cata in March 2012)

To find new WMOs to build and preview for MoP, I used the following commands:

find dungeon | grep pa_ | grep .blp | perl -pi -e's!_\d\d\d_\d\d_\d\d.blp!!' | \
    sort | uniq | perl -pi -e's/(.*)\/(.*?)$/$1!!$2/' >> wmos.txt
find pandaria | grep .blp | perl -pi -e's!_\d\d\d_\d\d_\d\d.blp!!' | \
    sort | uniq | perl -pi -e's/(.*)\/(.*?)$/$1!!$2/' >> wmos.txt

This found all WMO groups under either the pandaria folder, or inside the dungeons folder with a prefix of pa_. I then used this list to make a bunch of calls to build_wmo_map() in wmo_build.php.

Installing the web site



World of Warcraft Slippy Maps






No releases published


No packages published