A simple API to interact with the Path of Exile game client for tasks like packet logging, memory manipulation, and more. Even better - all in your favorite languages. This project continues to be a work in progress.
While this software is not intended to provide any explicit competitive advantage, it may still be against the game's terms of service. Please use it responsibly, and at your own risk.
At the moment, C++, C#, and Python are supported first-class languages.
The library currently supports these features:
- Packet receive notifications.
- Packet send notifications.
The poedbg library currently only works on the Windows operating system, and is only compatible with the 64-bit version of the game. Both the standard and Steam versions are supported.
The latest compiled version of the library can be found here.
You can find the C++ sample code here.
You can find the C# sample code here.
For both of these samples, make sure that you build the project for the x64 architecture. Once built, simply make sure the latest poedbg.dll is in the same folder as the new executable. Run the executable as administrator.
You can find the Python sample code here.
You must make sure that you are using the 64-bit Python interpreter when running the script, or it will not correctly load poedbg.dll. Make sure that you run the console as administrator before executing the script. Also ensure that the latest poedbg.dll is in the same folder as the script.
Most of the exported APIs in poedbg will return a status code. Positive status codes (>= 0) indicate success, while negative status codes (< 0) indicate failure. For detailed error information, refer to this table.
Value | Name | Description |
---|---|---|
0 | POEDBG_STATUS_SUCCESS |
The operation completed successfully. |
-1 | POEDBG_STATUS_PRIVILEGES_NOT_FOUND |
The privilege value required for the host application was not found on this computer. You may be running as a user with restricted privileges. |
-2 | POEDBG_STATUS_PRIVILEGES_NOT_ASSIGNED |
The privilege value required for the host application was not able to be assigned. You may not have sufficient privileges to apply the required value. |
-3 | POEDBG_STATUS_PRIVILEGES_INSUFFICIENT |
The user is not running as administrator. |
-4 | POEDBG_STATUS_CACHE_DOS_HEADER_NOT_FOUND |
The library was unable to locate a PE DOS header for the game. |
-5 | POEDBG_STATUS_CACHE_NT_HEADER_NOT_FOUND |
The library was unable to locate a PE NT header for the game. |
-6 | POEDBG_STATUS_CACHE_NT_HEADER_INVALID |
The NT header located was not valid. |
-7 | POEDBG_STATUS_CACHE_ALLOCATION_FAILED |
The library was unable to cache sufficient memory in the host application. There may be memory pressure in your application that is preventing the library from caching. |
-8 | POEDBG_STATUS_CACHE_COPY_FAILED |
The library was unable to cache data from the game into the host application. There may be a permissions problem with your application. |
-9 | POEDBG_STATUS_HOOK_SEND_FAILED |
The game's send() hook location could not be applied. |
-10 | POEDBG_STATUS_HOOK_RECV_FAILED |
The game's recv() hook location could not be applied. |
-11 | POEDBG_STATUS_HOOK_WSARECV_FAILED |
The game's WSArecv() hook location could not be applied. |
-12 | POEDBG_STATUS_GAME_NOT_FOUND |
The game is not running. |
-13 | POEDBG_STATUS_GAME_HOOK_NOT_SET |
The debugging engine could not be attached to the game. |
-14 | POEDBG_STATUS_GAME_HOOK_BEHAVIOR_NOT_SET |
The debugger behavior could not be adjusted. |
-15 | POEDBG_STATUS_CALLBACK_NOT_SUPPORTED |
The provided callback is not supported. |
-16 | POEDBG_STATUS_CALLBACK_ALREADY_REGISTERED |
The provided callback is already registered. |
-17 | POEDBG_STATUS_EXCEPTION_NOT_HANDLED |
The library detected a second-chance unhandled exception and the game can not recover. |
-18 | POEDBG_STATUS_HOOK_PROPERTIES_SEND_FAILED |
The game's send() hook location was not found. This could be due to a game update or running an altered version of the game. |
-19 | POEDBG_STATUS_HOOK_PROPERTIES_RECV_FAILED |
The game's recv() hook location was not found. This could be due to a game update or running an altered version of the game. |
-20 | POEDBG_STATUS_HOOK_PROPERTIES_WSARECV_FAILED |
The game's WSArecv() hook location was not found. This could be due to a game update or running an altered version of the game. |
You are free to use this software as you see fit. Please keep in mind that some uses of this software may be a violation of the game's terms of service, which you do at your own risk.
If you do use this software, please retain the attribution to poedbg in your source files, and consider open sourcing your own work to help the community learn and grow.