The asset manager
wowee_assets builds the asset tree this client reads, out of a World of
Warcraft installation you own. It is a native program - SDL3 and Dear ImGui,
both of which the client already carries - and it calls the extractor in its own
process. Nothing is shelled out to, and it needs no interpreter of its own. The
client draws the same panel itself; see In the client.
wowee_assets [game folder] [a later client] [where to put it]
All three are optional: each is a field in the window, filled by typing or
through the system’s folder chooser, and the game folder can also be dropped
onto the window. On Windows, asset_extract run with no arguments - a
double-click - opens this window instead when it sits beside it.
What it asks
-
Which game’s assets do you want to use? The installation to take them from, and where the assets should go. The archives say which game they came from, so it reads that off rather than asking. The destination defaults to the per-user data directory the client itself looks in -
~/Library/Application Support/Wowee/Dataon macOS,%LOCALAPPDATA%\Wowee\Dataon Windows,$XDG_DATA_HOME/wowee/Data(or~/.local/share/wowee/Data) on Linux - so a build lands where the client will find it. -
Which game does your server run? Vanilla, The Burning Crusade, Wrath, Cataclysm, or Turtle. Preselected to whatever the folder turned out to be.
-
Do you want updated assets? Optional, and each can be left off. The second installation an upgrade needs is asked for beside it:
Upgrade Needs What it does Sharper foliage nothing Resamples every foliage texture into a sidecar beside the original. Reversible. Cataclysm’s trees and doodads a Cataclysm install The re-authored foliage, where it sits at the same paths. Not offered for Cataclysm itself. Legion’s creatures and doodads a Legion install Models converted to the format this client reads. Legion’s player character models a Legion install Unproven on screen. -
What will happen. The steps, in the order they will run, and roughly how long. Models are imported before the foliage is sharpened, because the upscale resamples the textures of the models that are there.
Several games in one folder
Each game is built under expansions/<id> in the destination, so building a
second one into the same folder adds to it rather than replacing it. The window
says which are already there, and the client offers the choice at its login
screen - an Assets row appears once more than one set is installed.
Packs
Save what I have as a pack writes everything in the destination to one
.zip beside it, wowee-<name>-<date>.zip, with a pack.json describing it.
It is offered whenever the destination holds a built game, not only after a
build. With more than one game in there the button reads Save all N as one
pack and the pack is named universal, because that is what it holds.
Install a pack… unpacks one back over the destination. Any entry naming a path outside the folder it is installing into is refused: a zip entry’s name is chosen by whoever built the archive.
Where models come from
The importer asks the other installation for each model already here, by that
model’s own path. It does not sweep the installation matching on the name inside
each file - Legion’s earth elemental calls itself ElementalEarth2 and lives at
elementalearth.m2, so that match never lands. A Legion installation is read
through CASC and a Cataclysm one through its MPQs, by the same pass. A model is
taken only when it has more than 30% more vertices than the one already there,
and it is resolved whole before anything is written: skins, the animations an
AFID chunk names, and every texture it names for itself. A model whose
textures cannot be resolved is refused rather than written half-finished,
because a model on disk that looks complete and draws flat white is worse than
one that is not there.
In the client
The client carries the same panel, drawn through its own Vulkan-backed ImGui
on the login screen’s paper. When it finds no extraction at startup it opens
the builder instead of the login screen, since there is no getting past login
without assets. With assets installed, “add or rebuild assets…” under “more
options” on the login card opens it again, with a way back. The client reads
its assets once at startup, so a build wants the client closed and reopened.
It is compiled in only where StormLib is (WOWEE_HAVE_ASSET_PANEL).
Reporting what it looks like
WOWEE_ASSETS_SCREENSHOT=<file> wowee_assets writes a PNG of the window and
exits, for a bug report from a machine where taking a screenshot is the hard
part.