This project is a blast from the past. It was created prior to the introduction of console versions of Path of Exile, when they officially developed a client with the capability of using gamepads. Please refrain from using this program and wait until Path of Exile 2 as it will probably have official gamepad support on PC.
However, due to a request from an user, who did not wish to use similar fan-made softwares for playing PoE with a gamepad on PC, I decided to port the entire project to ElectronJS, instead of NWJS. This new version has a Developer's Guide, since the goal is that it implements many types of gamepads for use within this application (Although I hope to just implement the ones I have).
Other software that does the same stuff as this and is better maintained: Zhadok's poe-controller project
An easy way to play Path of Exile with a gamepad.
The main problem with using a gamepad in Path of Exile is that the game is in no way designed to be friendly to few key bindings. It heavily focuses use of the mouse cursor and several key bindings for optimal gameplay.
Many people provided solutions to play Path of Exile with a gamepad before. However, the main focus of this solution is to reduce the need of using a gamepad input as a mouse cursor to a minimum.
After some players' feedback, I decided to remove support for auto detection of game input method using pixels. It was just a very slow method for doing this and it was hard to maintain, as the game keeps being developed and many things change.
In the future, I want to try to scan the game's memory and change the input method based on that. However, it might not be allowed by their EULA terms.
The provided solution focus on mimicking the input methods of another similar game on game consoles, Diablo 3.
So the focus is to give the players one thumbstick for character movement, some keys bound to access menus and freedom to bind the other keys to his character's abilities.
(Notice that you can hide the help overlay text in the main menu!)
The application detects what I called "pixel signatures" from the screen in an attempt to adjust the input methods accordingly to whats needed to be done by the player.
As you can see here, when a player opens his stash, and the application detects it, the input methods change drastically compared to the previous screenshot:
This solution has several drawbacks. It costs a lot, in terms of performance, and this asynchronous type of state detection creates an error prone environment, which leads to being an application hard to work in. My hopes lies with GGG and the player community seeing this as a viable option to play the game and providing the necessary support to make this in the best possible way (APIs, add-on support, etc).
The application fallbacks to the XBOX 360 controller driver. All gamepads that can work as such will work with the application. That is one of the reasons that the PS3 game overlay was implemented (eg: PS3 gamepad can work as XBOX 360 gamepad with ScpToolkit).