Docsob_notifyConfiguration

Configuration

Every config.lua option with its default and what it changes. Icons, sounds, locales and QBCore aliases.


config.lua ships outside escrow

You can open it, read it and edit it. It is commented line by line. Only the business logic is encrypted; the configuration is yours.

Notifications

Option Default What it changes
Config.Position 'top-center' Where they appear on screen
Config.MaxVisible 4 How many at once. The rest queue up and show a +N
Config.Duration 4500 Base milliseconds
Config.ReadingTime true Extends the duration based on how much there is to read
Config.Style 'cristal' Card shape: cristal · solido · minima · barra
Config.Accent '#E8B466' Colour of the ring and of neutral notifications
Config.Opacity 1.0 Card opacity, from 0.5 to 1
Config.CountdownRing true The ORBE O drawing itself as a countdown
Config.ProgressBar false A linear bar instead of the ring
Config.Eyebrow false Automatic header with the type
Config.PauseOnHover true Stops the timer on mouse over
This is the starting point, not the last word

Everything in this table can be changed from inside the game with /notify, without editing the file or restarting. See In-game panel.

Positions

Lua
Config.Position = 'top-center'

top-center · top-right · top-left · bottom-center · bottom-right · bottom-left

Think about your HUD before moving them

top-center covers nothing on most servers. If you move them down, watch the minimap and the voice bar; if you move them right, watch the status HUD.

Duration

Lua
Config.Duration    = 4500
Config.ReadingTime = true

With ReadingTime on, 45 ms per word is added on top of the base. A two-word notice does not last as long as a thirty-word one, which is what you want.

An explicit duration in the call overrides both.

TextUI

Option Default What it changes
Config.TextUI.Position 'right' Where it appears
Config.TextUI.HighlightKeys true Draws whatever is in brackets as a key
Config.TextUI.PressFeedback 220 Milliseconds the key stays pressed

Positions: left · right · top · bottom

Sound

Option Default What it changes
Config.Sound.Enabled false Native GTA sounds on appear
Config.Sound.Set 'HUD_FRONTEND_DEFAULT_SOUNDSET' The sound set

It ships off on purpose: on a busy server, a notification sound every few seconds gets old in ten minutes. You can force it per call with sound = true for the ones that actually matter.

Icons

27 inline SVG icons. No emojis: they inherit the type colour and stay sharp at any size.

Terminal
/obnotify iconos

All 27 show up with their name below, which is how you pass them.

QBCore aliases

QBCore mixes Font Awesome and Material Icons classes in the same field. If a resource asks for an icon we do not recognise, the generic one for its type shows up instead.

Lua
Config.IconAliases = {
    ['fas fa-wrench'] = 'wrench',
    ['attach_money']  = 'money',
    ['local_police']  = 'shield'
}
How to find which ones you are missing

Run the test:

Terminal
/obnotify qb

Seven notices come out with the icons QBCore uses most. The ones falling back to the generic type icon are the ones that need an alias.

For one that is not on the list, check the console: ob_notify logs the exact name it received and could not translate.

Adding a new icon

Icons are <symbol> elements inside web/index.html, which ships outside escrow.

Copy one, change its id and its paths:

HTML
<symbol id="i-my-icon" viewBox="0 0 24 24">
  <path d="M12 2 L22 20 H2 Z"/>
</symbol>

The id without the i- prefix is the name you pass: icon = 'my-icon'.

Lucide-style strokes, no fill: they inherit the colour on their own.

Locales

In locales/*.json, also outside escrow. Spanish and English out of the box.

JSON
{
  "queue_more": "+%s more"
}

Adding a language means creating the file and pointing at it:

Lua
Config.Locale = 'en'

The /notify panel

Option Default What it changes
Config.Panel.Enabled true false and the command stops existing
Config.Panel.Command 'notify' The command that opens it
Config.Panel.Ace 'ob_notify.admin' The permission that shows the Server tab
Config.Panel.Storage 'auto' auto · db · archivo
Config.Panel.Admins {} Admins by hand, if the ACE doesn't work out
Config.Panel.PlayerEditable — What each player may touch

Explained in full, with screenshots, in In-game panel.

If something forces you into client/ or web/

That is a design failure on our side, not yours. Open a ticket and we will move it into config.lua: the idea is that nothing configurable lives outside it.