Before You Begin#
Before installing Radial Menu, make sure your server meets the minimum requirements. Only one resource is mandatory; the framework is optional and detected on its own.
Requirement | Status | Notes |
|---|---|---|
| Required | Database access for what the in-game editor saves. The table creates itself. |
Framework | Optional | ESX, QBCore, Qbox or vRP — auto-detected. Without one the menu runs standalone, and buttons restricted to a job or gang stay hidden. |
| Optional | Read first by conditions that check an item. Without it, the ESX or QBCore inventory is read instead. |
Everything framework-specific sits behind a small bridge file in custom/, and the resource picks one by looking at what is already running:
Running resource | Config.Framework | Bridge |
|---|---|---|
|
|
|
|
|
|
|
|
|
None of them |
|
|
If more than one framework runs on the same server, set Config.Framework by hand. Integrations explains what each bridge provides.
Downloading Radial Menu#
After purchasing Radial Menu, the resource is automatically linked to your CFX Portal account.
Sign in to the CFX Portal using the same account used during checkout, open Granted Assets, and download Radial Menu.
After extracting the download, you should have the following folder:
qs-radialmenu/
├── config/ -- main.lua and menu.lua: what you may edit
├── custom/ -- framework bridges, actions, conditions, clothing (editable)
├── client/ -- the wheel, the settings and the editor
├── server/ -- admin checks and the database
├── shared/ -- helpers
├── locales/ -- 41 languages, one JSON file each
└── web/ -- the interface, ready to useKeep the folder named
qs-radialmenu. Other resources reach it throughexports['qs-radialmenu'], and the editor's import reads config/menu.lua by that name — a renamed copy breaks both.
Installing the Resource#
Move the qs-radialmenu folder into your server's resources directory. It can live anywhere inside it, including a category folder:
resources/
└── [qs]/
└── qs-radialmenu/Once copied, open your server.cfg and make sure the database and your framework start before Radial Menu:
ensure oxmysql
# Framework
ensure qb-core
# ensure qbx_core
# ensure es_extended
# ensure vrp
# Optional
ensure ox_inventory
ensure qs-radialmenuThe loading order matters. The framework is detected once, when Radial Menu starts, and only resources that are already started count — a framework that starts after it is not found and the menu runs standalone.
The Database#
There is no SQL file to import. Radial Menu creates a single table, qs_radialmenu, on first start and keeps everything the in-game editor saves in it, one row per document:
Row | Holds | Saved from |
|---|---|---|
| The server's look — colours, shape, layout, size, position — and the three player permissions. | /radialedit → Appearance, Permissions |
| The menu built in the editor, and whether it replaces config/menu.lua. | /radialedit → Menu |
| The named actions created in the editor. | /radialedit → Actions |
Until an admin saves something, the rows do not exist and the resource uses config/main.lua and config/menu.lua as they are. The rows are read once when the resource starts and kept in memory, so a save in the editor never waits on the database to reach players.
Each player's own look and shortcuts are not on the server.
/radialsettingsstores them on the player's own PC, so they follow the computer, not the character.
Claiming Admin Access#
/radialedit changes the menu and the look for every player, so the server checks who opens it and who saves from it. Any one of these routes is enough:
The usual route. Add this line to server.cfg with the player's identifier:
add_ace identifier.license:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx qs-radialmenu.saveDefaults allowPlayers already in the group.admin or group.god ACE groups are accepted without it.
A plain list of identifiers in config/main.lua. Any identifier the player has works — license, FiveM, Discord, Steam — and the comparison ignores upper and lower case.
Config.AdminIdentifiers = {
'license:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'fivem:1234567',
}Automatic, nothing to configure. ESX admin, superadmin and owner; QBCore and Qbox admin and god; vRP admin, superadmin and owner groups.
Not sure of a player's identifiers? Set Config.DevOpenEditor = true, restart the resource and have them type /radialedit: the editor opens and the server console prints every identifier they have. Copy one into Config.AdminIdentifiers, then set it back to false.
Configuring the Resource#
The configuration lives in a handful of open files. Anything saved from the in-game editor takes priority over the matching values in them.
File | Contents |
|---|---|
| Language, framework, commands and keys, the first-launch look, the theme presets, admins, the clothing animations. |
| The menu: every section and button, with its restrictions and conditions. |
| Your own named actions and conditions, offered in the editor's dropdowns. |
| The eleven clothing slots, what "off" means for each, and their animations. |
| The bridge to your framework: jobs, gangs, money, items, notifications, admin groups. |
| Every text in the interface, and the labels of the default menu. |
The values worth reviewing first:
Config.Locale = 'en' -- 41 languages, see locales/
Config.OpenCommand = 'radial' -- /radial opens and closes the wheel
Config.EditCommand = 'radialsettings' -- the player's settings panel
Config.OpenKey = 'F3' -- first-launch key; players rebind it in FiveM
Config.CloseKeys = { 322, 200 } -- ESC; key names work too: { 'ESC', 'X' }
Config.Shape = 'hexagon' -- the look until an admin saves one
Config.LayoutMode = 'radial' -- radial | stack
Config.CarouselAnimation = true
Config.InnerRingMaxItems = 6 -- buttons on the inner ring; the outer holds two more
Config.Debug = false -- explains every menu decision in the F8 console
Config.OpenKeyis only the key a player gets the first time. FiveM remembers each player's own binding, so changing it later does not move a key they already have — they rebind it under Settings → Key Bindings → FiveM → Radial Menu: Open.
Verifying the Installation#
After completing the installation, restart your server and look for the line that names the framework it picked — in the server console, and in the F8 console once you join:
[qs-radialmenu:INFO] Server framework loaded: qb
[qs-radialmenu:INFO] Client framework loaded: qbstandalone means it found no framework running. If you do run one, move it above ensure qs-radialmenu or set Config.Framework by hand.
Then join your server and work through the first loop:
Open the wheel
Press F3 or type
/radial. Click a section to open it; right-click or Backspace goes back one level, and ESC closes the wheel. Stand next to a car and a Vehicle section appears.Make it yours
Click the gear in the centre of the wheel, or type
/radialsettings. Pick a theme, a shape and a layout, then Save Settings — the wheel opens that way from now on.Open the editor
/radialeditopens on the Menu tab. Press Import from menu.lua to load the shipped menu into the tree, then set the server's look in the Appearance tab and save it. Read The In-Game Editor before turning on Override active.
Nothing needs a restart from here on. The menu, the server's look and the player permissions are saved from the editor and reach every player at once.



