Skip to main content
QBCore servers ship with qb-radialmenu, which uses its own NUI and never touches ox_lib. Awoken UI hooks the ox_lib radial, so by default it doesn’t render qb-radialmenu’s items. This guide adds a small bridge to qb-radialmenu that routes everything through ox_lib (and therefore Awoken UI) without removing the resource.
QBX users: qbx_radialmenu already runs on ox_lib. No bridge needed, Awoken UI renders it out of the box.

Setup

1

Add ox_lib to qb-radialmenu's manifest

Open qb-radialmenu/fxmanifest.lua and add @ox_lib/init.lua as the first entry in shared_scripts:
qb-radialmenu/fxmanifest.lua
Without this, the bridge can’t reach lib.addRadialItem and bails on load with a console warning.
2

Paste the bridge at the bottom of qb-radialmenu/client/main.lua

Open qb-radialmenu/client/main.lua and paste the block below at the very end of the file, after the existing exports('AddOption', AddOption) and exports('RemoveOption', RemoveOption) lines. The new exports replace the originals because FiveM uses the last registered handler.
qb-radialmenu/client/main.lua
3

Restart qb-radialmenu

Run restart qb-radialmenu (or restart your server). The bridge initialises on next player load and pushes Config.MenuItems into the Awoken UI radial automatically.

Keybinds

After the bridge is installed, the qb-radialmenu keybind opens Awoken UI’s radial instead of qb-radialmenu’s own UI. Awoken UI’s own radial keybind (default Z, set in awoken_ui/config.lua via radialOpenKey) opens the same overlay. Either key works.
Both keys open the same radial. If you want only one in play, remove RegisterKeyMapping('radialmenu', ...) from qb-radialmenu’s client/main.lua so the qb-radialmenu key is no longer bound.

Troubleshooting

@ox_lib/init.lua is missing from qb-radialmenu’s shared_scripts block. Add it (see step 1 above) and restart the resource.
Config.MenuItems is empty, or the bridge ran before the player was fully loaded. Wait a couple of seconds after spawn and try again. If items added by external scripts via exports['qb-radialmenu']:AddOption(...) still don’t show, check that those scripts call AddOption after QBCore:Client:OnPlayerLoaded has fired.
The bridge wasn’t pasted at the bottom of the file, or there are other exports('AddOption', ...) registrations further down. Make sure the bridge block is the last code in qb-radialmenu/client/main.lua.
The item is using a field the bridge doesn’t recognise. The converter handles type+event, event, serverEvent, command, and onSelect. If a script uses something custom, wrap it in an onSelect callback inside the item definition.