Tool | Description |
---|---|
Loading Editor | Add images, descriptions, and icons to loading screens. |
SoundEvent Editor | Edit in-game sounds easily. |
Hotkey Editor | Customize, edit, and manage new keyboard shortcuts. |
AssetGroup Maker | Edit multiple files at once, ideal for large modular sets. |
SmartProp Editor | Simplifies creating smart props. |
This part provides a complete overview of the Hammer5Tools project, covering its setup and structure.
Whether you’re building tools on top of this foundation or maintaining the existing code, this guide will help you get started.
- Python 3.10+ (3.12 recommended)
- PySide6 for the GUI framework
- All requirements declared in the
requirements.txt
file - An IDE with Python support (PyCharm recommended)
-
Clone the Repository:
git clone https://github.com/dertwist/Hammer5Tools.git
cd Hammer5Tools
-
(Optional) Create and Activate a Virtual Environment:
python -m venv venv source ./venv/Scripts/activate
It is recommended to use a virtual environment to manage project dependencies.
-
Install Dependencies:
pip install -r requirements.txt
Hammer5Tools/
├── src/
│ ├── common/ # Shared utilities and constants
│ ├── main.py # Application entry point
│ └── updater.py # Auto-update functionality
├── dev/
│ └── build.py # Build file
└── .run/ # Run configurations (PyCharm)
- common/: Contains helper functions, tools, and shared logic used in multiple parts of the application.
- main.py: Launches the overall UI and integrates the available tool modules.
- updater.py: Handles auto-update features, ensuring the user always has the latest version.
The project uses a custom build script and supports multiple run modes:
-
Development Mode
- Adds debugging utilities and detailed console logs.
- Launch by running:
python src/script.py --dev
- Useful for diagnosing problems or stepping through new features.
-
Build Process
- Creates a distributable archive of the Hammer5Tools suite.
- Execute:
python dev/build.py --build-all --archive
- This process compiles relevant data and ensures everything is packaged consistently for distribution.
Hammer5Tools uses InstallForge for generating installers.
Refer to the hammer5tools_setup.ifp
configuration file within the project for settings related to the installer.