Server Theme
Admins run/uitheme to open the theme editor and style the UI for the entire server. The theme is saved to data/theme.json inside the resource and automatically replicated to every player - including players who join later.
The
/uitheme command requires the lation_ui.admin ACE permission - see the installation guide for setup instructions.Personal Themes
If enabled, players can run/uisettings to personalize their own UI. Personal themes are stored client-side per player via FiveM KVP - no database required - and layer on top of your server theme.
Personal themes are disabled by default. To enable them, add the following convar to your server.cfg:
The Editor
The editor is the same for admins and players - only where the theme is saved differs:- General - presets, global colors, corner radius, font, UI scale, panel opacity, border width, shadow, and reduced motion
- Components - per-component overrides for all 13 components; anything unset inherits from the general theme
- Live preview - the preview pane renders the real components, so every change is shown exactly as it will look in-game
- Presets - distinct built-in themes to use as-is or as a starting point
Surfaces
Panels are built from five surface colors:- Surface - the panel background
- Header / Footer - the bands at the top and bottom of panels
- Hover - hovered and selected rows
- Elevated - inputs, chips and progress tracks
- Well - recessed areas: key hints, list menu progress bars, and the background behind cards in Modern Banking and Modern Shops
Share Codes
The editor includes Share Theme and Import Theme actions. Share Theme produces a single copy-paste code containing your entire theme - send it to anyone and they can paste it under Import Theme to get your exact look. Codes work across players and across servers.Exports
For scripts that want to read or apply themes programmatically:- client
- server
Theme format
Both exports take the same table the editor saves. Every key is optional - anything left out inherits as usual.#RGB or #RRGGBB):
Everything else:
components accepts the same keys (except the global-only ones) for notify, menu, listmenu, progress, textui, alert, input, radial, drawer, skillcheck, patternlock, signalbreach and timeline.
Events
To keep your own UI in step with Modern UI, listen forlation_ui:themeChanged on the client. It fires whenever the theme the player sees changes:
- an admin saves or resets the server theme
- the player saves or resets their personal theme in
/uisettings - a script calls the
setThemeexport
The event only reports changes. Read the current theme once when your script starts with
exports.lation_ui:getTheme(), then use the event from there.