Description
Changelog
Reviews (1)
Virtual Joystick DX
A 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 start
- Copy
addons/virtual_joystick_DX/into your project'saddons/folder. - Enable Virtual Joystick DX in Project → Project Settings → Plugins.
- Add the
VirtualJoystickDXnode under aCanvasLayer. - Read movement with
Input.get_axis()— notget_vector().
For full property tables, trigger-mode details, signals, and troubleshooting, see the extended Readme.
Changelog for version v1.1c Action Binding
No changelog provided for this version.