A customizable virtual joystick for touchscreen games in Godot Engine, supporting both 2D and 3D with multiple modes.
Godot Virtual Joystick is a Godot Engine addon that provides a virtual joystick UI component for touchscreen games. It solves the problem of implementing intuitive mobile controls in both 2D and 3D Godot projects, offering customizable appearance and multiple behavior modes.
Godot developers creating mobile games or touchscreen applications who need reliable virtual joystick controls. This includes indie game developers, hobbyists, and studios targeting Android, iOS, or other touchscreen platforms.
Developers choose this addon because it's specifically designed for Godot's workflow, integrates seamlessly with the engine's input system, and offers more customization options than basic touchscreen buttons while being easier to implement than building a joystick from scratch.
A simple virtual joystick for touchscreens, for both 2D and 3D games, with useful options.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The addon integrates easily into Godot scenes with minimal configuration, and the README provides a clear quick start guide with example code for rapid prototyping.
Offers Fixed, Dynamic, and Following joystick modes, along with dead zone and clamp zone adjustments, allowing fine-tuned control sensitivity as highlighted in the Options table.
Seamlessly works with Godot's input actions defined in Project Settings, enabling consistent control mapping across virtual and physical inputs, as noted in the Features list.
Provides multiple visibility options (Always, Touchscreen Only, When Touched) to manage UI clutter and adapt to different device contexts, enhancing mobile user experience.
The README warns that specific project settings must be adjusted to avoid multitouch issues, which can be non-intuitive and require manual troubleshooting for proper functionality.
Bugs like Input.get_vector() not working in versions before 4.2.1 necessitate workarounds, indicating potential instability and extra effort when using older or future engine updates.
The FAQ mentions that the Android editor is unstable and can freeze or crash, complicating testing and debugging on mobile platforms and relying on external documentation for fixes.