Created
March 19, 2026 18:40
-
-
Save Daribon/f2148639837476d7b4f02153daf2d5b7 to your computer and use it in GitHub Desktop.
vmangos easy extractor windows
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| @echo off | |
| setlocal EnableDelayedExpansion | |
| echo. | |
| echo === Easy VMaNGOS Data Extractor === | |
| echo. | |
| set /p "WOW_CLIENT_INPUT=WoW client path: " | |
| :: Sanitize path (remove quotes, single quotes, trailing slashes) | |
| set "WOW_CLIENT_PATH=%WOW_CLIENT_INPUT:"=%" | |
| set "WOW_CLIENT_PATH=%WOW_CLIENT_PATH:'=%" | |
| if "%WOW_CLIENT_PATH:~-1%"=="\" ( | |
| if not "%WOW_CLIENT_PATH%"=="\" set "WOW_CLIENT_PATH=%WOW_CLIENT_PATH:~0,-1%" | |
| ) | |
| if not exist "%WOW_CLIENT_PATH%\Data" ( | |
| echo Error: Directory does not contain a 'Data\' folder. | |
| pause | |
| exit /b 1 | |
| ) | |
| :: Build detection: WMIC primary, PowerShell fallback | |
| echo Detecting client build number... | |
| set "WMIC_PATH=%WOW_CLIENT_PATH:\=\\%\\WoW.exe" | |
| for /f "tokens=2 delims==" %%v in ('wmic datafile where "name^='!WMIC_PATH!'" get Version /value 2^>nul ^| find "Version="') do set "VER=%%v" | |
| if not defined VER ( | |
| for /f "usebackq tokens=*" %%v in (`powershell -NoProfile -Command "(Get-Item '%WOW_CLIENT_PATH%\WoW.exe').VersionInfo.FileVersion" 2^>nul`) do set "VER=%%v" | |
| ) | |
| if not defined VER ( | |
| echo Error: Could not detect build number from WoW.exe | |
| pause | |
| exit /b 1 | |
| ) | |
| :: Parse build number | |
| for /f "tokens=1,2,3,4 delims=." %%a in ("!VER!") do ( | |
| if not "%%d"=="" (set "BUILD_NUMBER=%%d") else if not "%%c"=="" (set "BUILD_NUMBER=%%c") else (set "BUILD_NUMBER=%%b") | |
| ) | |
| if not defined BUILD_NUMBER ( | |
| echo Error: Failed to parse build number from version: %VER% | |
| pause | |
| exit /b 1 | |
| ) | |
| set "BUILD_NUMBER=%BUILD_NUMBER: =%" | |
| echo Detected build: %BUILD_NUMBER% | |
| echo Using client data from: %WOW_CLIENT_PATH%\Data | |
| echo. | |
| set /p "DATA_DIR_INPUT=Output data directory: " | |
| set "DATA_DIR=%DATA_DIR_INPUT:"=%" | |
| if "%DATA_DIR:~-1%"=="\" ( | |
| if not "%DATA_DIR%"=="\" set "DATA_DIR=%DATA_DIR:~0,-1%" | |
| ) | |
| if not exist "%DATA_DIR%" mkdir "%DATA_DIR%" | |
| set "BIN_DIR=%~dp0" | |
| set "BIN_DIR=%BIN_DIR:~0,-1%" | |
| for %%e in (MapExtractor.exe VMapExtractor.exe VMapAssembler.exe MoveMapGenerator.exe) do ( | |
| if not exist "%BIN_DIR%\%%e" ( | |
| echo Error: Required extractor not found: %%e | |
| pause | |
| exit /b 1 | |
| ) | |
| ) | |
| cd /d "%DATA_DIR%" || exit /b 1 | |
| echo. | |
| echo Extracting maps and DBC files... | |
| "%BIN_DIR%\MapExtractor.exe" -i "%WOW_CLIENT_PATH%" -o "%DATA_DIR%" -e 7 | |
| if errorlevel 1 ( | |
| echo Error: MapExtractor failed! | |
| pause | |
| exit /b 1 | |
| ) | |
| if exist "dbc" ( | |
| if exist "%BUILD_NUMBER%\dbc" ( | |
| echo Removing old DBC data... | |
| rd /s /q "%BUILD_NUMBER%\dbc" | |
| ) | |
| mkdir "%BUILD_NUMBER%" 2>nul | |
| move "dbc" "%BUILD_NUMBER%\dbc" >nul | |
| echo [OK] DBC files installed to %BUILD_NUMBER%\dbc\ | |
| ) else ( | |
| echo Error: dbc folder not created by MapExtractor | |
| pause | |
| exit /b 1 | |
| ) | |
| echo. | |
| echo Extracting VMaps... | |
| "%BIN_DIR%\VMapExtractor.exe" -d "%WOW_CLIENT_PATH%\Data" | |
| if errorlevel 1 ( | |
| echo Error: VMapExtractor failed! | |
| pause | |
| exit /b 1 | |
| ) | |
| echo Assembling VMaps... | |
| "%BIN_DIR%\VMapAssembler.exe" | |
| if errorlevel 1 ( | |
| echo Error: VMapAssembler failed! | |
| pause | |
| exit /b 1 | |
| ) | |
| echo. | |
| echo Generating movement maps (this may take a while)... | |
| "%BIN_DIR%\MoveMapGenerator.exe" --threads %NUMBER_OF_PROCESSORS% --silent --configInputPath "%BIN_DIR%\config.json" --offMeshInput "%BIN_DIR%\offmesh.txt" | |
| if errorlevel 1 ( | |
| echo Error: MoveMapGenerator failed! | |
| pause | |
| exit /b 1 | |
| ) | |
| :: Cleanup temp files | |
| rd /s /q "Buildings" 2>nul | |
| rd /s /q "Cameras" 2>nul | |
| echo. | |
| echo ============================================================= | |
| echo Extraction finished successfully! | |
| echo. | |
| echo Data structure: | |
| echo %DATA_DIR%\maps\ - game maps | |
| echo %DATA_DIR%\%BUILD_NUMBER%\dbc\ - DBC files (build %BUILD_NUMBER%) | |
| echo %DATA_DIR%\vmaps\ - visual maps | |
| echo %DATA_DIR%\mmaps\ - movement maps | |
| echo ============================================================= | |
| echo. | |
| pause |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment