Installation
Install and set up Universal UI 1.1.0.
Thank you for purchasing Universal UI. Setup takes about five minutes.
Requirements
- FiveM server (fx_version
cerulean, Lua 5.4 — any current artifact) - Works standalone. ox_lib is not required. QBCore / QBox / ESX notification adapters and the optional ox_lib bridge activate only when those resources exist.
1. Install the resources
You received two resources:
| Resource | What it is |
|---|---|
universal_ui | The product |
universal_bridge | The suite's shared layer: merged theming across Universal products, the ox redirect if you still have ox_lib / ox_target, and (when later suite products are installed) Hub pages, player card, and notification history. No dependencies. Same folder ships with every Universal product; keep one copy. |
-
Drop both folders into your server's
resources/folder. -
Add to
server.cfg:ensure ox_lib # only if you have it - keep it where it is ensure ox_target # only if you have it ensure universal_bridge # AFTER ox_lib / ox_target, BEFORE your other scripts ensure universal_uiPut the bridge and Universal UI before your other scripts: scripts register their menus and context menus at startup, and the bridge queues anything registered before Universal UI is up, but starting early keeps everything instant. If you also run Universal Targeting, ensure it right after the bridge.
2. Existing ox_lib scripts (drop-in redirect)
Nothing to change in any script. With ox_lib installed and the bridge
ensured after it, the bridge answers ox_lib's interface exports itself, so
every call to lib.notify, lib.registerContext, lib.progressBar,
lib.skillCheck, the radial API, etc. renders through Universal UI, and
ox's own radial and third-eye are switched off. ox_lib's files are never
modified. The console prints ox redirect active at boot.
- A fresh Qbox ships with ox_lib and needs it for non-UI features (callbacks, zones, locales). Leave it installed; the bridge simply makes its UI calls yours. Servers that only had ox_lib for the UI can stop it whenever they like — the suite never depends on it.
- Health check:
universal_bridge status(server console, or in game with theuniversal_bridge.manageace). - One platform limit: a script that fires
TriggerClientEvent('ox_lib:notify', ...)from the server reaches ox_lib's own handler, so that one notification renders in ox's style. Qbox'sexports.qbx_core:Notifyis redirected on the server too, so this only affects scripts calling ox_lib directly.universal_bridge statuslists them; switch them toexports.universal_ui:notify(source, data)(same payload) and they're done.
3. Theme it
Grant yourself the theme ace and open the live editor in-game:
add_ace group.admin universal_ui.theme allow/universal_ui:theme— live editor: presets, accent color, glass intensity, corner softness, UI scale, blur, 3D interface toggles.- Drag to place — reposition notifications, text UI prompts, and the task guide anywhere on screen. Escape steps back / discards.
- Themes persist server-side and apply to every player.
/universal_ui:theme clear— revert everyone to config defaults.
Config defaults live in shared/config.lua (readable), including every
player-facing string for translation (Config.Locale).
4. Verify (optional)
Enable the built-in demos and smoke-test each module:
setr universal_ui:dev 1/universal_ui:demo notify|context|input|alert|progress|skillcheck|textui|multitextui|menu|guide|keyspam|memory|scramble|ui3d
and /universal_bridge:test for the end-to-end ox_lib redirect check (it
drives real lib.* calls; if they render as Universal UI, the redirect wins).
Set universal_ui:dev back to 0 for production.
Performance notes
performanceMode = true(config or theme editor) freezes ambient animation and disables backdrop blur for weak clients.- The 3D holographic interface is pure CSS and costs nothing when disabled.
Scripting against Universal UI directly
Exports mirror ox_lib's interface API — exports.universal_ui:notify(...),
inputDialog, progressBar, skillCheck, showTextUI, plus extensions:
minigames, task guides, multi text UI, world-anchored holo prompts, and
server-side notify/setTheme/clearTheme. See the store page or the
readable client/demo.lua for working examples of every module.
Support
Questions or issues: join the GenZee Discord at https://discord.gg/yfEQ2QX6tx and open a ticket. Please include your artifact version and any F8 / server console errors.
