manniche_radial and can change before the release.Items
Every item has a label (string) and normally an icon. It has either items (a submenu) or one action. An item without a string label is skipped. The icon is a Lucide icon name or an https link to an image.
Action fields
| Field | What it does |
|---|---|
builtin = 'engine' | Runs a built-in action. |
event = 'my:event' | TriggerEvent with args if given. |
serverEvent = 'my:event' | TriggerServerEvent with args if given. Validate on the server. |
command = 'e sit' | ExecuteCommand. |
onSelect = function(item) end | Any Lua. |
Optional fields
| Field | What it does |
|---|---|
id | Name used as parentId with addItem. |
args | List passed to event and serverEvent. |
keepOpen | Stay open after picking it. |
vehicle | true only in a vehicle, false only on foot. |
driver | Only in the driver seat. |
job | 'police' for one job, or { police = 2, sheriff = 0 } for these jobs from a grade. |
duty | Only on duty. Skipped where the framework gives no duty value. |
canInteract | Function that returns true when the item should show. An error counts as false. |
items can also be a built-in submenu name ('animations', 'doors', 'windows', 'seats', 'extras', 'job') or a function that returns a list. A submenu with no items is left out. The menu is rebuilt each time it opens.
Built-in actions
| Action | What it does |
|---|---|
serverId | Shows the server ID. |
job | Shows job and grade. |
handsUp | Hands up, or down again. |
stopAnimation | Clears the ped's tasks. |
engine | Engine on or off. |
lock | Lock or unlock. See Vehicle locks. |
hazards | Hazard lights on or off. |
interiorLight | Interior light on or off. |
The submenus doors, windows, seats and extras list only what the current vehicle has. Seat changes are refused while the vehicle moves faster than 2.0 and you are the driver or pick the driver seat, and for taken seats.
Jobs and animations
Config.jobs maps a job name to a list of items. The Job submenu shows only the player's own job.
Config.jobs = {
police = {
{ label = 'Cuff', icon = 'link', event = 'police:client:CuffPlayer' },
{ label = 'Fine', icon = 'receipt', command = 'fine', duty = true },
},
}
Entries in Config.animations use either scenario, or dict and anim. Optional: loop (loop it) and upper (upper body only, the player can still walk).