Py4GW is a Python library designed to enhance the Guild Wars experience by providing tools for automation, scripting, and in-game interactions.
- Agent Handling: Manage agents (NPCs, enemies, allies) with ease.
- Inventory Management: Automate inventory-related tasks such as item handling and categorization.
- Pathfinding and Navigation: Built-in tools for pathfinding and movement.
- Widgets: Extensible widgets for customizing user experiences, including travel, titles, and more.
- Event Hooks: Hook into game events and create your own custom logic.
- Multi-Account Support: Efficiently manage multiple accounts simultaneously.
- Lightweight and Modular: Designed to be fast, modular, and easy to extend.
- Python 3.13.0 32-bit link (other versions could causes GW Client crashes)
- Guild Wars client
- Clone the repository:
git clone https://github.com/apoguita/Py4GW.git
- Navigate to the project directory:
cd Py4GW - Install dependencies:
pip install -r requirements.txt
Py4GW/
├── Py4GW_python_files/ # Main directory containing all project files
│ ├── Addons/ # Add-on extensions (e.g., GWBlackBOX.dll)
│ ├── DEMO/ # Example scripts demonstrating library usage
│ ├── HeroAI/ # Hero AI automation and logic
│ ├── Py4GWCoreLib/ # Core library for Guild Wars automation
│ ├── Widgets/ # Widgets for in-game interactions
│ ├── resources/ # Fonts, configs, and other resources
│ ├── stubs/ # Type hint files for Python development
│ ├── build/ # Build directory
│ ├── dist/ # Distribution directory
│ ├── Legacy code and tests/ # Archived code and test scripts
│ ├── Working Miscelaneous code/ # Experimental or temporary scripts
│ ├── Py4GW.dll # Main DLL for the project
│ ├── Py4GW.ini # Configuration file
│ ├── Py4GW_Launcher.py # Launcher script
│ ├── Barebones_Example_module.py # Minimal example script
│ └── requirements.txt # Dependencies
- Go to the Releases Page.
- Download the files under "Assets."
- Extract them to your preferred directory.
We welcome contributions from the community! Here’s how you can get involved:
- Fork the repository.
- Create a new branch for your feature or bugfix.
- Commit your changes and push the branch.
- Submit a pull request for review.
If you want want to stop tracking local changes to the log and configuration files used by Py4GW you can use the following commands to temporarly remove them from the worktree.
git update-index --skip-worktree Py4GW_injection_log.txt
git update-index --skip-worktree Py4GW.ini
git update-index --skip-worktree Py4GW_Launcher.iniYou can then verify that the files are correctly skipped by running this command that should output the list of skipped files:
git ls-files -v | grep "^S"
S Py4GW.ini
S Py4GW_Launcher.ini
S Py4GW_injection_log.txtTo re-enable local tracking of the files run the following commands:
git update-index --no-skip-worktree Py4GW_injection_log.txt
git update-index --no-skip-worktree Py4GW.ini
git update-index --no-skip-worktree Py4GW_Launcher.ini