- π Description
- β¨ What's New in v2.3
- π Requirements
- π Installation
- πͺ How it Works
- π§βπ» Usage
- π Project Structure
- π§ Configuration
- π§ͺ Testing
- π¨ Development
- π€ Contributing
- π License
- π« Special Thanks
- π FAQ
β οΈ Legal Disclaimer
WOG Dump is a modern, completely refactored Python tool for extracting 3D gun models from World of Guns: Gun Disassembly. This v2.3 release features a complete rewrite with modern Python 3.12+ features, improved error handling, comprehensive testing, and a beautiful CLI interface.
π Educational Tool: Designed for 3D model enthusiasts, modders, and researchers interested in studying game assets and 3D modeling techniques.
- π Pure Python - Removed C dependencies for 100% Python implementation
- π¦ uv Integration - Lightning-fast package management and installation
- π Modern Python 3.12+ - Native type annotations and latest features
- ποΈ Professional Structure - Clean
src/
layout with modular architecture - π¨ Beautiful CLI - Rich console interface with progress bars and colors
- β‘ Optimized Performance - Chunked processing and parallel operations
- π§ Type Safety - Complete type hints and Pydantic configuration
- π§ͺ Comprehensive Tests - 95%+ test coverage with pytest
- π¦ Modern Packaging - pyproject.toml with hatchling backend
- π‘οΈ Better Error Handling - Graceful error recovery and detailed logging
- π Modular Design - Clean separation of concerns and dependency injection
- Python 3.12+ (Required)
- AssetStudio - for final asset unpacking
uv is the modern, fast Python package installer and resolver.
# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh
# or with pip: pip install uv
# Clone the repository
git clone https://github.com/InzGIBA/ReWOG
cd ReWOG
# Install in development mode with uv
uv pip install -e .
Traditional pip:
# Clone repository
git clone https://github.com/InzGIBA/ReWOG
cd ReWOG
# Install with pip
pip install -e .
Development Setup with uv:
# Install with development dependencies
uv pip install -e ".[dev]"
# Install pre-commit hooks
pre-commit install
# Run tests
pytest
- Download Weapon List - Fetches and processes the weapon catalog
- Fetch Decryption Keys - Retrieves keys for each weapon asset
- Download Assets - Downloads encrypted Unity3D files
- Decrypt Assets - Uses XOR decryption to unlock files
- Unpack Assets - Extracts models, textures, and materials
- Convert Normal Maps - Converts Unity normal maps to standard format
Complete Extraction (Recommended):
# Extract all weapons with normal map conversion
wog-dump full-pipeline --update-keys --convert-normals
Step-by-Step Process:
# 1. Check configuration and status
wog-dump info
# 2. Download weapon catalog
wog-dump download-weapons
# 3. Download and decrypt assets
wog-dump download-assets --update-keys
wog-dump decrypt-assets
# 4. Extract models and textures
wog-dump unpack-assets
# 5. Convert normal maps (optional)
wog-dump convert-normals ./unpacked --recursive
WOG Dump v2.3 provides a comprehensive CLI with multiple commands:
# Get help for any command
wog-dump --help
wog-dump <command> --help
# View configuration and system status
wog-dump info
# Complete pipeline with all options
wog-dump full-pipeline --verbose --max-threads 8 --update-keys --convert-normals
π Pro Tip: Use
wog-dump info
to check your system configuration and available storage space before starting large operations.
Download Management:
# Download weapon list from servers
wog-dump download-weapons
# Download assets with key updates
wog-dump download-assets --update-keys
# Check for updates without downloading
wog-dump download-assets --check-only
# Download specific weapons only
wog-dump download-assets --weapons "ak74,m4a1,glock17"
Processing Operations:
# Decrypt all downloaded assets
wog-dump decrypt-assets
# Decrypt specific weapons
wog-dump decrypt-assets --weapons "ak74,m4a1"
# Unpack Unity assets to models/textures
wog-dump unpack-assets
# Convert normal maps with backup
wog-dump convert-normals ./textures --recursive --backup
Configuration and Monitoring:
# Show detailed configuration
wog-dump info --verbose
# Enable debug logging for troubleshooting
wog-dump --debug full-pipeline
# Use custom thread count for parallel processing
wog-dump --max-threads 16 download-assets
Selective Processing:
# Process only specific weapon categories
wog-dump download-assets --weapons "ak74,ak47,akm" # AK variants
wog-dump download-assets --weapons "m4a1,m16a4" # M4/M16 variants
# Resume interrupted downloads
wog-dump download-assets --resume
# Force re-download of existing files
wog-dump download-assets --force
Performance Optimization:
# High-performance setup for powerful machines
wog-dump --max-threads 32 full-pipeline
# Conservative setup for limited resources
wog-dump --max-threads 2 --verbose full-pipeline
# Memory-efficient processing for large batches
wog-dump full-pipeline --chunk-size 4096
Development and Testing:
# Dry run to see what would be processed
wog-dump download-assets --dry-run
# Validate downloaded files without processing
wog-dump decrypt-assets --validate-only
# Export configuration for reproducible builds
wog-dump info --export-config > wog_config.json
from wog_dump.core.download import DownloadManager
from wog_dump.core.decrypt import KeyManager, AssetDecryptor
from wog_dump.core.config import get_config
# Get configuration
config = get_config()
# Download assets
with DownloadManager(config) as downloader:
successful, failed = downloader.download_assets(["ak74", "m4a1"])
# Decrypt assets
key_manager = KeyManager(config)
keys = key_manager.load_keys()
decryptor = AssetDecryptor(config)
decrypted_files, failed_assets = decryptor.decrypt_all_assets(keys)
ReWOG/
βββ src/wog_dump/ # Main package (source layout)
β βββ __init__.py # Package initialization
β βββ core/ # Core business logic
β β βββ __init__.py
β β βββ config.py # Pydantic configuration management
β β βββ download.py # Multi-threaded asset downloading
β β βββ decrypt.py # XOR decryption (pure Python)
β β βββ unpack.py # Unity asset extraction
β βββ utils/ # Utility modules
β β βββ __init__.py
β β βββ logging.py # Rich-formatted logging
β β βββ normal_map.py # Normal map format conversion
β βββ cli/ # Command-line interface
β βββ __init__.py
β βββ main.py # Click-based CLI commands
βββ tests/ # Comprehensive test suite
β βββ __init__.py
β βββ conftest.py # Pytest configuration and fixtures
β βββ unit/ # Unit tests for individual modules
β β βββ test_config.py
β β βββ test_download.py
β β βββ test_normal_map.py
β βββ integration/ # Integration and end-to-end tests
β βββ test_cli.py
βββ docs/ # Additional documentation
βββ CHANGELOG.md # Version history and migration guides
βββ CONTRIBUTING.md # Development and contribution guidelines
βββ README.md # This file (main documentation)
βββ pyproject.toml # Modern Python packaging (PEP 621)
WOG Dump v2.0 uses Pydantic for robust configuration management:
# Configuration is automatically managed
# Default directories: assets/, encrypted/, decrypted/
# Customizable via CLI options or environment variables
# View current configuration
wog-dump info
# Run all tests
pytest
# Run with coverage
pytest --cov=wog_dump
# Run specific test categories
pytest tests/unit/ # Unit tests only
pytest tests/integration/ # Integration tests only
pytest -m slow # Slow tests
# Install development dependencies with uv
uv pip install -e ".[dev]"
# Code formatting
black src/ tests/
isort src/ tests/
# Type checking
mypy src/
# Linting
flake8 src/ tests/
# Run all checks
uv run pre-commit run --all-files
We welcome contributions from the community! Whether you're fixing bugs, adding features, or improving documentation, your help makes WOG Dump better for everyone.
- π Contributing Guidelines - Detailed contribution process
- π Issue Tracker - Report bugs or request features
- π¬ Discussions - Ask questions and get help
- π‘οΈ Code of Conduct - Community standards
- π Support - Get help and troubleshooting
-
Fork & Clone
git clone https://github.com/your-username/ReWOG cd ReWOG
-
Setup Development Environment
uv pip install -e ".[dev]" pre-commit install
-
Create Feature Branch
git checkout -b feature/amazing-feature
-
Make Changes & Test
# Make your changes pytest # Run tests black src/ tests/ # Format code
-
Submit Pull Request
git commit -m 'feat: add amazing feature' git push origin feature/amazing-feature # Then create PR on GitHub
- π Bug Reports: Help us identify and fix issues
- β¨ Feature Requests: Suggest new functionality
- π Documentation: Improve guides, examples, and help text
- π§ͺ Testing: Add test coverage or improve existing tests
- π Performance: Optimize code for speed or memory usage
- π Localization: Add support for other languages
- π¦ Packaging: Improve installation and distribution
All contributors are recognized in our CHANGELOG.md and commit history. Significant contributors may be invited to join the core team.
This project is licensed under the MIT License - see the LICENSE file for details.
- DeadZoneGarry - Original decryption research
- Noble Empire Corp. - Game and assets
- Contributors to the original WOG Dump project
Q: What is WOG Dump and what does it do? A: WOG Dump extracts 3D gun models, textures, and materials from the World of Guns: Gun Disassembly game for educational, research, and personal use purposes.
Q: Do I need to own the game to use this tool? A: The tool downloads public asset files from the game's servers. While game ownership isn't technically required for the tool to function, we recommend owning the game to support the developers.
Q: What file formats does it extract? A: The tool extracts Unity3D assets including:
- 3D Models (FBX format via AssetStudio)
- Textures (PNG, TGA formats)
- Materials and shaders
- Normal maps (converted to standard format)
Q: Why does it require Python 3.12+?
A: We use modern Python features like native type annotations (list[str]
instead of List[str]
) and improved error handling that are only available in Python 3.12+.
Q: Can I use this on Windows/macOS/Linux? A: Yes! The tool is pure Python and works on all major operating systems. The v2 release removed all C dependencies for better cross-platform compatibility.
Q: How much disk space do I need? A: Plan for:
- Encrypted assets: ~2-5 GB
- Decrypted assets: ~2-5 GB
- Extracted models/textures: ~3-8 GB
- Total recommended: 10-20 GB free space
Q: Is internet connection required? A: Yes, for downloading assets from game servers. After initial download, you can process files offline.
Q: How long does the complete extraction take? A: Depends on your system and internet speed:
- Fast system (SSD, 8+ cores, 50+ Mbps): ~1-3 minutes
- Average system (HDD, 4 cores, 25 Mbps): ~5-10 minutes
- Slow system (older hardware, slow internet): ~15-30 minutes
Q: Can I extract only specific weapons?
A: Yes! Use the --weapons
parameter:
wog-dump download-assets --weapons "ak74,m4a1,glock17"
Q: What if the download fails or gets interrupted? A: The tool supports resuming interrupted downloads. Simply run the same command again and it will continue where it left off.
Q: I get "Permission denied" errors, what should I do? A: Ensure you have write permissions in the current directory, or specify a different output directory:
wog-dump --output-dir /path/to/writable/directory full-pipeline
Q: The tool seems stuck or very slow, what's wrong? A: Try these steps:
- Check your internet connection
- Reduce thread count:
--max-threads 2
- Enable verbose logging:
--verbose
- Check available disk space
Q: How do I report bugs or request features? A: Please create an issue on GitHub with:
- Your operating system and Python version
- Complete error message and traceback
- Steps to reproduce the problem
- Output of
wog-dump info --verbose
This tool is intended for educational and research purposes only. Users are responsible for:
- Respecting Copyright: All extracted assets remain the intellectual property of Noble Empire Corp.
- Terms of Service: Ensure compliance with the game's Terms of Service
- Personal Use: Use extracted content only for personal, educational, or research purposes
- No Redistribution: Do not redistribute game assets or use them commercially
The authors and contributors are not responsible for any misuse of this software or violation of terms of service.
For questions about asset usage rights, please contact Noble Empire Corp. directly.