Universal UI
One design system for the whole city.
Universal UI is a dark-glass interface framework that every script on your server can share: notifications, context menus, dialogs, progress bars, skill checks, minigames, holographic world prompts and a live in-game theme editor. It runs standalone, and with the bridge your existing ox_lib scripts render through it without any code changes.
Installation
Two folders, four lines in server.cfg.
Configuration
Theme defaults, notification position, cancel key and every on-screen string.
Commands
The theme editor, demos and permissions.
Exports
Every function other resources can call.
At a glance
| Resources | universal_ui, universal_bridge |
| Needs | Nothing. ox_lib is optional. |
| Frameworks | Standalone, with automatic QBCore, Qbox and ESX notification support |
| Readable files | shared/config.lua, client/demo.lua |
What it covers
- Everything ox_lib's interface does: notifications (with per-notification positions and update-in-place ids), context menus with submenus and metadata, input dialogs with 11 field types, markdown alert dialogs, progress bars and circles with animations and props, multi-stage skill checks, text UI, keyboard list menus and the clipboard.
- Beyond ox_lib: holographic world-anchored prompts and progress circles, key-mash, memory and scramble minigames, staged task guides for heists and tutorials, several text UI prompts at once, and the live theme editor.
A first call
-- client
exports.universal_ui:notify({ title = 'Paid', description = '$2,500', type = 'success' })
local ok = exports.universal_ui:progressBar({
label = 'Working...',
duration = 5000,
canCancel = true,
})
-- server
exports.universal_ui:notify(playerId, { title = 'Hello' })client/demo.lua in the resource has a working example of every module.
