Introduction
RadialMenuUI is a C# library for building radial menus and action wheels in Grand Theft Auto V with ScriptHookVDotNet 3.

It comes from the action wheel of InteractV. It keeps drawing and input handling apart from gameplay, so your mod only supplies the actions.
Why RadialMenuUI?
A radial menu in GTA V runs into a few problems:
- Native Scaleform menus are rigid and slow to customize.
- Drawing 2D sprites via ScriptHookV often leads to flickering, aspect ratio stretching, or frame drops.
- Gamepad stick deadzones and mouse cursors easily trigger unwanted hovers if not carefully calibrated.
RadialMenuUI provides input handling, rendering and texture warmup for these cases:
- Hybrid Dual-Input: Right stick on gamepad (with angular deadzones) + mouse pointer on a virtual 1280×720 canvas. The most recently moved device takes control.
- Native Texture Rendering: Uses ScriptHookV texture functions (
createTexture,drawTexture) and warms textures progressively, one per update, to limit first-open loading work. - Hierarchical Submenus: Build multi-level menus with breadcrumbs and back navigation.
- Variant Pagination: Attach multiple options to a single slot (e.g. weather, emotes, weapons) and cycle horizontally with D-Pad Left/Right or mouse wheel.
- Theming: Support for 3 to 10 sectors (or 12), customized colors, alpha, dimensions, and custom PNG icons.
- Gameplay Host: Optional
RadialMenuGameplayHosthelper providing hold-to-open lifecycle, cinematic slow motion, control blocking, and pause/death safety guards.
Architecture at a Glance
RadialMenuUI is split into four layers:
- Data Layer (
RadialMenuDef,RadialEntryDef,RadialVariantDef): Pure POCO declarations. No gameplay dependencies. - Input Layer (
IRadialMenuInput,GtaRadialMenuInput): Abstracts device input. - Controller Layer (
RadialMenuController): FSM managing hovers, active submenus, variants, sound effects, and lifecycle. - View Layer (
RadialMenuView,RadialMenuAssets): Draws background rings, active slices, center disc, labels, arrows, and icons.
Quick Navigation
| Topic | Description |
|---|---|
| Installation | How to add RadialMenuUI.dll and base textures to your project. |
| Quickstart | Build a radial menu in a ScriptHookVDotNet script. |
| Menus | Creating submenus, keeping the wheel open, and slot placement. |
| Variants | Cycling multiple choices on a single slot. |
| Theming | Customizing ring textures, colors, and supported slot counts. |
| Assets | Icons by path or theme keys, and dynamic runtime textures. |
| Gameplay Integration | Slow motion, hold-to-open, and replacing the native weapon wheel. |
| API Reference | Complete classes, methods, and events reference. |