Filename Structures
This page lists filename structures that are used inside WoW's content system to better supply authors of listfile generators with structures to search/bruteforce on. As such, this article is only for versions of WoW that use CASC (6.0+).
Maps
Map files can be guessed based upon the Directory name found in Map.db2.
world/maps/[mapname]/[mapname].tex world/maps/[mapname]/[mapname].wdl world/maps/[mapname]/[mapname].wdt world/maps/[mapname]/[mapname]_occ.wdt world/maps/[mapname]/[mapname]_lgt.wdt world/maps/[mapname]/[mapname]_fogs.wdt
You can choose to parse the WDT for a list of available tiles, but it is usually faster to just bruteforce them.
ADTs
Keep in mind that unlike the minimaps and LOD textures, ADTs are not padded with zero.
world/maps/[mapname]/[mapname]_[0-63]_[0-63].adt world/maps/[mapname]/[mapname]_[0-63]_[0-63]_tex0.adt world/maps/[mapname]/[mapname]_[0-63]_[0-63]_obj0.adt world/maps/[mapname]/[mapname]_[0-63]_[0-63]_obj1.adt
world/maps/[mapname]/[mapname]_[0-63]_[0-63]_tex1.adt
world/maps/[mapname]/[mapname]_[0-63]_[0-63]_lod.adt
Minimaps
world/minimaps/[mapname]/map[00-63]_[00-63].blp
LOD textures
world/maptextures/[mapname]/[mapname]_[00-63]_[00-63].blp world/maptextures/[mapname]/[mapname]_[00-63]_[00-63]_n.blp
WMOs
You can find most WMOs through parsing the ADT obj files as they (at the time of writing) contain their filenames.
Group IDs start at 0 and are padded to 3 characters with 0's. You can find the number of groups inside the parent WMO or by bruteforcing [000-512].
world/wmo/[dir]/[name].wmo world/wmo/[dir]/[name]_[groupid].wmo
LOD
LOD textures are sometimes referenced from the WMO itself and can be used to guess a WMO filename not referenced in any ADT.
world/wmo/[dir]/[name]_[groupid]_lod1.wmo world/wmo/[dir]/[name]_[groupid]_lod1.blp world/wmo/[dir]/[name]_[groupid]_lod2.wmo world/wmo/[dir]/[name]_[groupid]_lod2.blp
world/wmo/[dir]/[name]_[groupid]_lod1_l.blp world/wmo/[dir]/[name]_[groupid]_lod2_l.blp world/wmo/[dir]/[name]_[groupid]_lod1_e.blp world/wmo/[dir]/[name]_[groupid]_lod2_e.blp
Minimaps
Minimaps are usually not larger than 1-2 tiles per WMO group and have currently never exceeded 22x14.
world/minimaps/wmo/[dir]/[name]_[groupid]_[00-63]_[00-63].blp
NPC textures
textures/bakednpctextures/creaturedisplayextra-[id].blp textures/bakednpctextures/creaturedisplayextra-[id]_hd.blp textures/bakednpctextures/creaturedisplayextra-[id]_e.blp textures/bakednpctextures/creaturedisplayextra-[id]_s.blp
M2's
pathandfilename.m2 pathandfilename[00-??].skin pathandfilename_LOD[01-02].skin pathandfilename_[00-??].bone pathandfilename_[0000-1600]-[00-99].anim pathandfilename.skel pathandfilename.phys pathandfilename.blp
Sounds
This is a generic structure that applies to a lot of sound files added in 7.x and higher. However, there are often exceptions to these structures where Blizzard randomly likes added/removing underscores or stuff like that.
Creature sounds
NAME should be the creature's name. If a creature has sounds per gender an _m or _f is added after the name. PREFIX can change based on the content the sound is for. Recently used prefixes include vo_801 and mon.
%% is where a number would go. If the number is lower than 10 it is padded by a 0.
This list covers most sounds but is probably still missing a few. Feel free to add stuff!
sound/creature/[NAME]/[PREFIX]_[NAME]_aggro_%%.ogg sound/creature/[NAME]/[PREFIX]_[NAME]_attack_%%.ogg sound/creature/[NAME]/[PREFIX]_[NAME]_attack_ranged_%%.ogg sound/creature/[NAME]/[PREFIX]_[NAME]_attackcrit_%%.ogg sound/creature/[NAME]/[PREFIX]_[NAME]_attackcrit_ranged_%%.ogg sound/creature/[NAME]/[PREFIX]_[NAME]_battle_cry_%%.ogg sound/creature/[NAME]/[PREFIX]_[NAME]_battle_shout_%%.ogg sound/creature/[NAME]/[PREFIX]_[NAME]_battlecry_%%.ogg sound/creature/[NAME]/[PREFIX]_[NAME]_battleroar_%%.ogg sound/creature/[NAME]/[PREFIX]_[NAME]_battleshout_%%.ogg sound/creature/[NAME]/[PREFIX]_[NAME]_chuff_%%.ogg sound/creature/[NAME]/[PREFIX]_[NAME]_clickable_%%.ogg sound/creature/[NAME]/[PREFIX]_[NAME]_death_%%.ogg sound/creature/[NAME]/[PREFIX]_[NAME]_emerge_%%.ogg sound/creature/[NAME]/[PREFIX]_[NAME]_idle_loop_%%.ogg sound/creature/[NAME]/[PREFIX]_[NAME]_laugh_%%.ogg sound/creature/[NAME]/[PREFIX]_[NAME]_preaggro_%%.ogg sound/creature/[NAME]/[PREFIX]_[NAME]_preagro_%%.ogg sound/creature/[NAME]/[PREFIX]_[NAME]_stand_%%.ogg sound/creature/[NAME]/[PREFIX]_[NAME]_wound_%%.ogg sound/creature/[NAME]/[PREFIX]_[NAME]_wound_crit_%%.ogg sound/creature/[NAME]/[PREFIX]_[NAME]_woundcrit_%%.ogg
Voice lines
Voice lines work similarly to creature sounds with the rules being mostly the same. Only difference is that the gender part of the filename is now after the number like so:
sound/creature/[NAME]/[PREFIX]_[NAME]_%%_f.ogg sound/creature/[NAME]/[PREFIX]_[NAME]_%%_m.ogg
Music
Music is generally structured the same per expansion, but names will have to be guessed as these are generally not available through direct references from the game.
[FOLDER]s are usually named after the expansion or specific feature they are for. Examples: battleforazeroth, legion, draenor, pandaria, cataclysm, petbattles.
[PREFIX]es are similar to folders, but are more specific per major patch as well. Examples: mus_80, mus_73, mus_72, mus_715, mus_71, mus_70, mus_62, mus_60
[SUFFIX]es are generally part indicators with different versions/parts of the piece of music. There is usually an underscore between the name and the suffix, but sometimes not. Examples: a, b, c, d, e, h, a1, h1.
sound/music/[FOLDER]/[PREFIX]_[NAME]_[SUFFIX].mp3