Repechul
Virtual Joystick DX
Virtual Joystick DXA fully customizable, modular virtual joystick plugin for touchscreen games in Godot 4. Switch between a smooth **360Β° analog joystick** and an **8-direction D-Pad**, all from a single node.Compatible with Godot 4.6+ β tested on 4.7---Features- Two control styles β Joystick (360Β°) or D-Pad (8-direction), swappable per node.- Three joystick modes β `STATIC`, `DYNAMIC`, `FOLLOWING`, from a fixed base to one that floats and follows the finger.- Action Mapping system β bind any stick to custom InputMap actions with five trigger modes (`ON_TOUCH`, `CONTINUOUS`, `ON_THRESHOLD`, `ON_RELEASE`, `TAP_GESTURE`), great for a second stick dedicated to aiming or shooting.- Full haptic feedback β independent vibration for press, release, and direction change, tuned separately per style.- Active Region β restrict touch detection to a custom screen area, ideal for dual-stick setups.- Dynamic visibility β auto-hides when a gamepad or physical input is detected, and reappears on touch.- Fully skinnable β custom textures for the joystick and D-Pad, with color fallbacks when none are set.- Modular architecture β math, rendering, region logic, and hardware detection each live in their own class.---Quick start1. Copy `addons/virtual_joystick_DX/` into your project's `addons/` folder.2. Enable Virtual Joystick DX in Project β Project Settings β Plugins.3. Add the `VirtualJoystickDX` node under a `CanvasLayer`.4. Read movement with `Input.get_axis()` β not `get_vector()`.For full property tables, trigger-mode details, signals, and troubleshooting, see the extended Readme: https://github.com/Repechul/Virtual-Joystick-DX/blob/master/addons/virtual_joystick_DX/README.md.