diff --git a/src/pipeline/wowee_model.cpp b/src/pipeline/wowee_model.cpp index 962d678c..65b4c30b 100644 --- a/src/pipeline/wowee_model.cpp +++ b/src/pipeline/wowee_model.cpp @@ -259,7 +259,10 @@ WoweeModel WoweeModelLoader::fromM2(const std::string& m2Path, AssetManager* am) auto m2 = M2Loader::load(data); - if (!m2.isValid()) { + // WotLK+ M2s store header in .m2 but geometry in .skin — always merge the + // skin file when present so we get vertices/indices/batches even for M2s + // that already report isValid() (older expansions). + { std::string skinPath = m2Path; auto dotPos = skinPath.rfind('.'); if (dotPos != std::string::npos)