Skip to main content
atlasBridge has a single accent color that every bridge UI follows automatically — notifications, progress bars, menus, confirm dialogs, the radial wheel, skill-check zones, markers, and the world-anchored interaction prompts. You never pass a color to a component. They read the accent and tint themselves. There are two layers:
  1. A server default — the atlas:theme:color convar, applied to everyone.
  2. An optional per-player override — a player can pick their own accent at runtime; the bridge persists it on their client and recolors all of their UIs instantly.

The server default

Set the global accent with one convar. The default is #F487F4.
Internally, the accent is published to the NUI as the --atlas-theme-color CSS variable, and the lib’s drawing helpers (Bridge.Draw.Marker, Bridge.Draw.Outline) default to it. Changing the convar and restarting the bridge recolors every UI — no per-component wiring.
This server color is what Bridge.Theme.Get() and Bridge.Theme.Rgba(alpha) return on the server, where there is no per-player HUD. Per-player theming is a client concern (below).

Per-player theming

Each player can have their own accent. The picker UI is yours to build — the bridge gives you the storage, validation, persistence, and live push. You call one export; the bridge handles the rest.

The flow

1

Your script calls the export

A color-changer (a settings menu, an F-key picker, whatever you build) calls exports.atlasBridge:SetTheme(hex) — or, with the Bridge global loaded, Bridge.Theme.Set(hex).
2

The bridge validates the hex

Invalid hex is rejected and the call returns false. A valid hex is accepted.
3

The bridge persists it to that client's KVP

The color is written to the player’s local resource KVP, so it survives a reconnect on that machine. (This is on-client persistence, not a database — a different PC starts from the server default.)
4

The bridge fires atlasBridge:themeChanged

Every consumer that subscribed via Bridge.Theme.OnChange is notified with the new hex.
5

Every NUI recolors instantly

The new accent is pushed to all of the player’s open UIs through the --atlas-theme-color variable, so they re-tint without a reload.

Client API

string → boolean
Validate, persist to KVP, and live-push a new accent. Returns false if hex is not a valid color.
→ string
The player’s current accent hex. Cached, so it is safe to call every frame (e.g. inside a Bridge.Draw loop).
→ boolean
Clear the player’s override and fall back to the server default (atlas:theme:color).
fun(hex: string)
Register a callback fired whenever the accent changes.

Worked example — a minimal picker

A picker only has to collect a hex and hand it to the bridge. Here it uses the bridge’s own input dialog, but any UI works — the only line that matters is the Bridge.Theme.Set call.
That is the whole integration. You build the UI; the bridge owns the color.

Server-side reads

The server has no per-player HUD, so the server facade always returns the configured default — useful for any server-side color need (a Discord embed color, a blip tint computed server-side):
Bridge.Color.ToRgba(hex) returns r, g, b (no alpha). Use Bridge.Theme.Rgba(a) when you need an alpha channel.

UI Library

Every UI component follows the accent automatically.

Configuration

The atlas:theme:color convar and the rest of the bridge config.