.zzar mod packages. It automates the complex process of scanning game files, matching audio, and generating proper mod metadata.
What it does
The mod creator bridges the gap between raw audio files and distributable mods:- Import from PCK files: Extract and convert modded PCK files into
.zzarpackages - Import from WEM files: Package loose WEM files by automatically finding where they belong in the game
- Smart matching: Scans your game installation to determine which PCK files need modification
- Automatic metadata: Generates proper file mappings for both standalone and BNK-embedded audio
- Batch processing: Handle multiple PCK files or hundreds of WEM files at once
- Validation: Ensures output packages are valid and installable
Import modes
The mod creator supports four import workflows:PCK file import
Select one or more modded PCK files. The creator extracts all audio, compares it to the vanilla game files, and packages only the modified sounds.
PCK folder import
Point to a folder containing modded PCK files. Automatically discovers and processes all PCK files in the folder and subfolders.
WEM file import
Select loose WEM files. The creator scans your entire game to find where each file belongs, supporting both standalone and BNK-embedded locations.
WEM folder import
Point to a folder of WEM files. Recursively finds all WEM files and matches them to game locations automatically.
PCK file workflow
Importing from PCK files is the fastest method when you already have modded game archives:Step 1: Select PCK files
- Click Browse Files to select individual PCK files
- Or click Browse Folder to import an entire directory
- The creator lists all detected PCK files
Step 2: Extract and compare
The creator automatically:- Extracts all audio from the modded PCK files
- Extracts embedded BNK audio from soundbanks inside the PCKs
- Scans matching game PCKs from your vanilla installation
- Compares file by file to identify which audio was actually modified
- Skips identical files to keep the mod package size small
The creator compares file contents, not just names. Only audio files that are actually different from vanilla are included in the final mod package.
Step 3: Map to game locations
For each modified WEM file, the creator determines:- Target PCK file: Which game PCK needs to be modified
- Embedded vs standalone: Whether the file is inside a BNK or standalone
- BNK parent: If embedded, which BNK soundbank contains it
- Language ID: Which language subfolder the file belongs to
- Priority: Prefers SoundBank over Streamed locations when files exist in both
Step 4: Generate package
The final.zzar package contains:
metadata.jsonwith file mappingswem_files/directory with all modified WEM files- Optional thumbnail image
WEM file workflow
Importing from loose WEM files requires game scanning to locate where each file belongs:Step 1: Select WEM files
- Click Browse Files to select individual WEM files
- Or click Browse Folder to import a directory
- The creator lists all WEM files by their numeric ID
Step 2: Scan game files
The creator performs an exhaustive scan:- Loads all game PCK files recursively from your game directory
- Indexes each PCK to build a database of file IDs
- Scans every BNK soundbank to find embedded WEM files
- Maps WEM IDs to locations across all PCKs and BNKs
- Resolves duplicates using priority rules (SoundBank > Streamed)
Step 3: Priority resolution
When a WEM ID appears in multiple locations (common for voice lines), the creator chooses:- SoundBank PCKs over Streamed PCKs (priority 1 vs 0)
- BNK-embedded over standalone (embedded is higher quality)
- First found if priorities are equal
Step 4: Copy and package
The creator:- Copies WEM files to
wem_files/directory - Generates metadata with proper file mappings
- Packages everything into a
.zzarfile
Metadata configuration
Before finalizing the mod package, you provide metadata:Required fields
- Name: Mod title (e.g., “Better Combat Sounds”)
- Author: Your name or username
- Version: Semantic version (e.g., “1.0.0”)
Optional fields
- Description: Detailed explanation of what the mod changes
- Thumbnail: Image file (PNG/JPG) for visual identification
Good descriptions help users understand what your mod does and which language/game version it’s for. Include installation notes and compatibility information.
File mapping details
The metadata file contains replacement mappings in this structure:- PCK file: Which game archive to modify
- File ID: Numeric identifier of the audio to replace
- WEM file path: Location in the mod package
- Lang ID: Language folder index (0 for Full, varies for voice)
- BNK ID: Parent soundbank ID (null if standalone)
- File type: “wem” (standalone) or “bnk” (embedded)
Best practices
PCK imports
- Use matching game versions: Import PCKs from the same game version as your installation to ensure accurate comparison
- Preserve folder structure: When importing multiple PCKs, maintain the original folder structure (Full/En/Jp/etc.)
- Test before distributing: Install and test your generated mod to verify all replacements work correctly
WEM imports
- Name by ID: Name WEM files by their numeric ID (e.g.,
123456789.wem) for automatic matching - Separate by language: Keep voice line WEMs in separate folders by language to make organization clearer
- Verify source: Make sure your WEM files are actually intended for ZZZ and not from other games
Metadata
- Use semantic versioning: Follow
major.minor.patchformat (1.0.0, 1.1.0, 2.0.0) - Write clear descriptions: Explain what’s changed, which characters/sounds are affected, and any known issues
- Add thumbnails: Visual previews help users identify and remember your mod
- Credit sources: If using community resources, credit the original creators
Advanced features
Recursive folder scanning
When you select a folder, the creator automatically:- Detects if the folder contains “SoundBank” or “Streaming” subfolders
- Uses recursive search (
rglob) if game-like structure is detected - Uses flat search (
glob) for simple folders - Preserves relative paths when game structure is found
Duplicate detection
During PCK import, the creator:- Compares extracted WEM bytes to vanilla WEM bytes
- Skips files that are byte-for-byte identical
- Reports how many files were identical (and excluded)
- Only packages actually modified files
BNK extraction
The creator handles complex BNK structures:- Parses BNK DIDX sections to find embedded WEMs
- Extracts embedded audio data from BNK files
- Writes temporary WEM files for processing
- Cleans up temporary files after completion
Progress tracking
The import process shows detailed progress:- 5%: Starting extraction/file selection
- 30%: Extracting audio from PCKs
- 60%: Scanning game files to match IDs
- 70%: Building replacement mappings
- 90%: Copying files and generating metadata
- 100%: Creating final ZIP package
Output validation
Before completing the import, the creator validates:- All referenced WEM files exist in the package
- Metadata JSON is properly formatted
- Required fields (name, author, version) are present
- PCK names and file IDs are valid
- Package structure matches
.zzarspecification