User:Yukimono/Toolchain
Information
This toolchain is a series of unofficial command line tools used to work with Overwatch's formats, you need basic experience with the command prompt to fully use the tools. You can use the bat drag-and-drop presets to make the workflow easier.
Latest Version:
Toolchain v1.8.7.6 (Changelog for 1.8.X.Y) OWMImporter for Blender v1.0.5 OWMImporter for Maya Modified CascLib.dll for CASCExplorer
The toolchain requires .NET v4.6.0.
There is zero risk in using the tools, they do not communicate with your battle.net app in any way, no form of identity is taken or required.
The tool has a custom format, which is documented here
Setting up the Source Code for Editing
Average users can skip this section, as it only applies to programming.
You will need a copy of Visual Studio 2015 installed. If you don't have it, you can download Visual Studio Community for free, or purchase the full version for additional features.
- Download a copy of CASCExplorer into the
src
directory. - Execute
assemble.bat
, this script will copy files from theCascLib.patch
directory into the correct folders. These are modified files that the toolchain depends on. - Open
OverwatchToolchain.sln
in Visual Studio, and begin editing.
OverTool
OverTool is a tool that works directly with the CASC filesystem to load relevant data in real time.
Usage:
OverTool.exe [-LLang] [-n] OVERWATCH_FOLDER MODE [OPTS]
Option L
The L option lets you specify a language to extract, other than enUS.
Example:
OverTool.exe -LdeDE C:\Overwatch t
Full list of supported languages:
deDE, enUS, esES, esMX, frFR, itIT, jaJP, koKR, plPL, ptBR, ruRU, zhCN, zhTW
Option n
This hidden option will disable the automatic collection of keys. This is only useful for people trying to find and collect Overwatch content keys.
Example:
OverTool.exe -n C:\Overwatch t
Mode t
The t option will load hero data and output a list of hero cosmetics with rarity and type.
Example:
OverTool.exe C:\Overwatch t
Mode x
The x option will eXtract hero assets, such as skins, sprays and player icons to appropriate folders.
Usage:
OverTool.exe overwatch_folder x output_folder [types [heroes [superoptions]]]
Examples:
Extract all sprays and icons
OverTool.exe C:\Overwatch x C:\extract spray+icon
Extract all Tracer skins
OverTool.exe C:\Overwatch x C:\extract skin tracer
Extract all Tracer skins without converting models
OverTool.exe C:\Overwatch x C:\extract skin tracer +
Extract D.Va's White Rabbit and B.Va skin, Soldier 76's regular weapon, and Zenyatta's orb
OverTool.exe C:\Overwatch x C:\extract skin "d.va=white rabbit=b.va+soldier: 76=classic|13C6+zenyatta=classic|B6C"
Superoptions
The format for this is
?TAMSC
Where:
- ? = ModelTool format character (+ is "raw")
- T = Suppress Textures (capital = don't export textures, lowercase = default)
- A = Suppress Animations (capital = don't export animations, lowercase = default)
- M = Suppress Models (capital = don't export models, lowercase = default)
- S = Suppress Sounds (capital = don't export sounds, lowercase = default)
- C = Export Collision (capital = export collision models, lowercase = default, not all models have collision models)
Mode m
The m option will list map information
Usage:
OverTool.exe overwatch_folder m
Mode s
The s option will list strings
Usage:
OverTool.exe overwatch_folder s
Mode Z
The Z option will list keys
Usage:
OverTool.exe overwatch_folder Z
Mode M
The M option will extract map data.
Usage:
OverTool.exe overwatch_folder M output_folder [maps]
Examples:
Extract Hanamura
OverTool.exe C:\Overwatch M C:\extract HANAMURA
Extract the Tutorial and Practice Range
OverTool.exe C:\Overwatch M C:\extract TUTORIAL "PRACTICE RANGE"
Mode G
The G option will extract general items.
Usage:
OverTool.exe overwatch_folder G output_folder
Examples:
OverTool.exe C:\Overwatch M C:\extract
Mode v
The v option will extract sounds by hero
Usage:
OverTool.exe [-LLang] overwatch_folder v output_folder [hero names...]
Examples:
Extract All
OverTool.exe C:\Overwatch v C:\extract
Extract Genji and Hanzo sounds
OverTool.exe C:\Overwatch v C:\extract genji+hanzo
Extract Genji and Hanzo sounds in Japanese
OverTool.exe -LjaJP C:\Overwatch v C:\extract genji+hanzo
APMTool
APMTool is a tool to search or list the contents of APM files. This is useful in reverse-searching Key indices.
Usage:
APMTool.exe OVERWATCH_FOLDER MODE
Mode must always start with a single character, valid modes:
Mode f
The "f" option sets the mode to "Find", it has the following sub-queries:
a[APM NAME] i[INDEX HEX] t[TYPE HEX] s[SIZE LESS THAN VALUE] S[SIZE GREATER THAN VALUE] n[INDEX WITHOUT IDENTIFIER HEX]
Example:
APMTool.exe C:\Overwatch f i30 t00C
Mode C
Identical to F except it looks in CMF files instead of APM files.
Mode l
The "l" option sets the mode to "List" package contents, it has the followig sub-queries:
p[PACKAGE KEY HEX] i[CONTENT KEY HEX]
Example:
APMTool.exe C:\Overwatch l pSOMEKEY
Mode c
The "c" option is a helper mode, it converts direct keys into an index + type. Example:
APMTool.exe c c 06E00000128CE602
Mode a
The "a" option is a helper mode, it displays all loaded APMs. Example:
APMTool.exe C:\Overwatch a
Mode t
The "t" option is a helper mode, it displays all types (both in 12-bit and 16-bit) Example:
APMTool.exe C:\Overwatch t
PackageTool
PackageTool is a tool to extract all files in a package.
Usage:
PackageTool.exe [-LLang] OVERWATCH_FOLDER EXTRACT_FOLDER LIST_OF_KEYS
Example:
PackageTool.exe C:\Overwatch C:\Extracted pSOMEKEY pANOTHERKEY PackageTool.exe -LkoKR C:\Overwatch C:\Extracted pSOMEKEY pANOTHERKEY
ModelTool
ModelTool is a tool to convert model (00C) files into known formats.
Usage:
ModelTool.exe MODEL_FILE OUTPUT_TYPE [-t] [-c] [-L] [-l LOD] OUTPUT_FILE
Example:
ModelTool.exe 30.00C b -l 1 -l 255 30.xps ModelTool.exe 30.00C o 30_all.obj
The "-l" flag sets which LODs to extract, you can have more than one.
The "-t" flag sets to export attachments
The "-c" flag sets to export collision models
The "-L" flag sets to export only the first LOD found
Supported output types are: OBJ (o), Binary XNALara/XPS (b), ASCII XNALara/XPS (a)
TextureTool
TextureTool is a tool to convert texture (004 and 04D) files into a DDS. Depending on the 004 file, the resulting DDS may be a DirectX10 DDS, or a Legacy DDS. The tool will try to output a Legacy DDS since it has wider support.
Usage:
TextureTool.exe OUTPUT MODE PATHS
Mode must always be a single character, valid modes:
Mode 1
The "1" option will convert single 004 files (without a known 04D file) Usage:
TextureTool.exe OUTPUT_DDS 1 004_FILE
Example:
TextureTool.exe C:\test.dds 1 000000000001.004
Mode 2
The "2" option will convert 004 files that have a 04D raw texture. Usage:
TextureTool.exe OUTPUT_DDS 2 004_FILE 04D_FILE
Example:
TextureTool.exe C:\test.dds 2 000000000001.004 000100000001.04D
Mode r
The "r" option will convert single 004 files (without a known 04D file) Usage:
TextureTool.exe OUTPUT_FOLDER r 004_PATH [04D_PATH]
04D_PATH is optional, if it's not present it will fail to convert 004 + 04D pairs. Example:
TextureTool.exe C:\test r 004 04D
Attribution
OWLib.dll is COM Visible.
Special thanks to Episoder and Id-daemon for help with the texture format and model format.
Special thanks to usernametoolo for help with OWMImporter and the map formats.
Special thanks for Fusion and Kjasi for providing support regarding the CASC Storage system.
This toolchain uses CascLib from CASCExplorer with minor modifications (to prevent the library from creating "debug.log" and opening too many APM files).
This toolchain uses OpenTK.