RLS Studios
ProjectsPatreonCommunityDocsAbout
Join Patreon
BeamNG Modding Docs

Guides

Reference

server/commands - Camera & Input Commandsge_utils - Game Engine Utility Functionsmain.lua - GE Lua Entry Point & Game Loopmap.lua - Navigation Graph (AI Road Map)screenshot.lua - Screenshot Systemserver/server - Level Loading & Game ServerserverConnection - Client-Server Connection Manager`setSpawnpoint` - Default Spawn Point Persistence`simTimeAuthority` - Simulation Time & Bullet Time Control`spawn` - Vehicle Spawning & Safe Placement`suspensionFrequencyTester` - Suspension Natural Frequency Analysis
Activity ManagerAudio Bank ManagerAudio Ribbon SystemBus Route ManagerCamera SystemCore Chat (IRC)Core CheckpointsCore Command HandlerCoupler Camera ModifierDevices (RGB Peripherals)Dynamic PropsEnvironmentFlowgraph ManagerForestFun StuffGame ContextGame StateGround Marker ArrowsGround MarkersHardware InfoHighscoresHotlappingInventoryJob SystemLap TimesLevelsLoad Map CommandMetricsMod ManagerMultiseatMultiseat CameraMulti SpawnOnlinePaths (Camera Paths)Quick Access (Radial Menu)Recovery PromptRemote ControllerReplayRepositoryRope Visual TestScheme Command ServerCore SnapshotCore SoundsCore TerrainTraffic SignalsTrailer RespawnVehicle Active PoolingVehicle Bridge (GE ↔ VLua Communication)Vehicle MirrorsVehicle PaintsCore VehiclesVehicle TriggersVersion UpdateWeather SystemWindows Console

UI

Resources

BeamNG Game Engine Lua Cheat SheetGE Developer RecipesMCP Server Setup

// RLS.STUDIOS=true

Premium Mods for BeamNG.drive. Career systems, custom vehicles, and immersive gameplay experiences.

Index

HomeProjectsPatreon

Socials

DiscordPatreon (RLS)Patreon (Vehicles)

© 2026 RLS Studios. All rights reserved.

Modding since 2024

API ReferenceGE Extensionscore

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

FunctionSignatureDescription
M.addEntry(args) → booleanRegisters a menu entry at a given level path
M.isEnabled() → booleanReturns 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() → tableReturns configuration UI data for the active slot
M.openDynamicSlotConfigurator(key)Opens the slot configuration UI
M.getMostRecentAvailableActions(category, count) → tableReturns recently used actions
M.getVehicleName(veh) → stringReturns 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() → tableReturns 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() → numberReturns timestamp of last radial menu movement
M.toNiceName(str) → stringConverts 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

PathDescription
/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 menu
  • recentActions - Most recently used action
  • empty - No action

Settings saved to settings/radialDynamicSlotSettings.json.


Slot Positions

ValuePosition
1Left
2Up-Left
3Up
4Up-Right
5Right
6Down-Right
7Down
8Down-Left

Hooks

HookPurpose
M.onInitCalled on Init event
M.onUpdateCalled on Update event
M.onVehicleSwitchedCalled on VehicleSwitched event
M.onExtensionLoadedCalled on ExtensionLoaded event
M.onExtensionUnloadedCalled on ExtensionUnloaded event
M.onExitCalled on Exit event
M.onUiChangedStateCalled on UiChangedState event
M.onSerializeCalled on Serialize event
M.onBeforeBigMapActivatedCalled on BeforeBigMapActivated event
M.dependenciesTable. Required extensions: {'core_vehicleTriggers', 'core_funstuff'}

Module State

VariableTypeDefault
dependenciestable{"core_vehicleTriggers", "core_funstuff"}

Notes

  • Vehicle-specific menu items are registered from the VLua side via core_quickAccess in vehicle context.
  • Recent actions are tracked per-category and saved to settings/radialRecentActions.json.
  • Entries support generator functions for dynamic content (evaluated when menu opens).
  • The isLTabAction and isRTabAction flags 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

On this page

Key Public FunctionsMenu Entry StructureMenu HierarchyDynamic SlotsSlot PositionsHooksModule StateNotesSee Also