Quick Access (Radial Menu)
Radial quick-access menu system. Provides the in-game radial menu for vehicle actions, sandbox tools, AI control, traffic, repair/recovery, and dynamic configurable slots.
Radial quick-access menu system. Provides the in-game radial menu for vehicle actions, sandbox tools, AI control, traffic, repair/recovery, and dynamic configurable slots.
Key Public Functions
| Function | Signature | Description |
|---|---|---|
M.addEntry | (args) → boolean | Registers a menu entry at a given level path |
M.isEnabled | () → boolean | Returns whether the radial menu is currently visible |
M.setEnabled | (enabled, root) | Shows/hides the radial menu at the given root path |
M.reload | () | Rebuilds and refreshes the current menu |
M.resetDynamicSlotSettings | () | Resets all dynamic slots to factory defaults |
M.setDynamicSlotConfiguration | (key, data) | Configures a dynamic slot (unique action, recent, empty) |
M.getDynamicSlotConfigurationData | () → table | Returns configuration UI data for the active slot |
M.openDynamicSlotConfigurator | (key) | Opens the slot configuration UI |
M.getMostRecentAvailableActions | (category, count) → table | Returns recently used actions |
M.getVehicleName | (veh) → string | Returns display name for a vehicle |
M.registerMenu | () | Deprecated - logs error with traceback |
M.gotoLevel | (level) | Navigates to another level, saving history |
M.clearRecentActions | () | Clears all tracked recent actions |
M.tryAction | (action) | Executes a named action if not blocked by action filter |
M.vehicleItemsCallback | (objID, level, vehicleMenuTree) | Callback from vehicle with menu items |
M.vehicleItemSelectCallback | (objID, args) | Callback from vehicle item selection |
M.getUiData | () → table | Returns the assembled UI data for the radial menu |
M.selectItem | (id, buttonDown, actionIndex) | UI callback to select a menu item by index |
M.contextAction | (id, buttonDown, actionIndex) | UI callback for context action on a menu item |
M.back | () | Navigates back in the menu history |
M.moved | () | Records timestamp of last radial menu movement |
M.getMovedRadialLastTimeMs | () → number | Returns timestamp of last radial menu movement |
M.toNiceName | (str) → string | Converts camelCase/underscore string to Title Case |
M.toggle | (level) | Toggles radial menu visibility |
Menu Entry Structure
core_quickAccess.addEntry({
level = "/root/sandbox/repair/", -- Menu path (auto-prefixed with /root/sandbox if needed)
title = "Repair Vehicle", -- Display text
icon = "wrench", -- Icon name
uniqueID = "repairVehicle", -- Unique identifier (prevents duplicates)
priority = 90, -- Sort order
startSlot = 1, -- Radial position (1=left, 3=up, 5=right, 7=down)
endSlot = 2, -- End slot for multi-slot entries
desc = "Repairs all damage", -- Description text
enabled = true, -- Whether the entry is clickable
onSelect = function() -- Action when selected
-- Do something
return {"hide"} -- Return: {"hide"}, {"reload"}, or {}
end,
["goto"] = "/root/sandbox/ai/", -- Navigate to submenu instead of action
generator = function(entries) -- Dynamic entry generator
table.insert(entries, {...})
end
})Menu Hierarchy
| Path | Description |
|---|---|
/root/ | Top-level: Vehicle Actions + Freeroam/Career/Mission |
/root/playerVehicle/ | Vehicle controls: lights, signals, features, helpers |
/root/sandbox/quick/ | Quick actions with dynamic slots |
/root/sandbox/repair/ | Repair, flip, recover, reset |
/root/sandbox/vehicles/ | Vehicle selector, switch, clone, remove |
/root/sandbox/ai/ | AI modes: stop, random, chase, flee, follow |
/root/sandbox/traffic/ | Traffic: spawn, stop, remove |
/root/sandbox/funStuff/ | Fun stuff: boosts, destruction |
/root/sandbox/other/ | Save/load, photo mode, environment, tire marks |
/root/sandbox/mission/ | Mission-specific actions |
/root/sandbox/career/ | Career-specific actions |
Dynamic Slots
Configurable slots that can be set to:
uniqueAction- A specific action from any menurecentActions- Most recently used actionempty- No action
Settings saved to settings/radialDynamicSlotSettings.json.
Slot Positions
| Value | Position |
|---|---|
| 1 | Left |
| 2 | Up-Left |
| 3 | Up |
| 4 | Up-Right |
| 5 | Right |
| 6 | Down-Right |
| 7 | Down |
| 8 | Down-Left |
Hooks
| Hook | Purpose |
|---|---|
M.onInit | Called on Init event |
M.onUpdate | Called on Update event |
M.onVehicleSwitched | Called on VehicleSwitched event |
M.onExtensionLoaded | Called on ExtensionLoaded event |
M.onExtensionUnloaded | Called on ExtensionUnloaded event |
M.onExit | Called on Exit event |
M.onUiChangedState | Called on UiChangedState event |
M.onSerialize | Called on Serialize event |
M.onBeforeBigMapActivated | Called on BeforeBigMapActivated event |
M.dependencies | Table. Required extensions: {'core_vehicleTriggers', 'core_funstuff'} |
Module State
| Variable | Type | Default |
|---|---|---|
dependencies | table | {"core_vehicleTriggers", "core_funstuff"} |
Notes
- Vehicle-specific menu items are registered from the VLua side via
core_quickAccessin vehicle context. - Recent actions are tracked per-category and saved to
settings/radialRecentActions.json. - Entries support
generatorfunctions for dynamic content (evaluated when menu opens). - The
isLTabActionandisRTabActionflags mark left/right tab navigation targets. - Action filters (
core_input_actionFilter) gate many entries based on game state.
See Also
- recoveryPrompt - Recovery buttons integrated into radial menu
- globals -
guihooks.trigger,extensions.hook
Paths (Camera Paths)
Camera path system for cinematic playback. Creates, loads, saves, and plays spline-based camera paths with markers defining position, rotation, FOV, and timing.
Recovery Prompt
Recovery and towing system for career mode. Provides context-sensitive buttons for flipping, towing, repairing, and teleporting vehicles, with cost calculations, conditions, and fade-screen transition