Notification

License: LGPL-3.0 (GNU Lesser General Public License v3.0)

This resource is based on ox_lib which is licensed under LGPL-3.0.

⚠️ This redesign is a paid product. Only verified purchasers are eligible for support and updates. Unverified users will not receive any assistance under any circumstances.


Overview

3 notification designs available via the ox:notify convar. Additional convars control notification limits and queue behavior.

# config.cfg
set ox:notify 0
set ox:notifyLimit 1
set ox:maxNotifications 3

Designs

Value Name Description
0 Default Icon box + title/description card with type label
1 Quest Tracker Dark quest-style card with document icon, title, progress timer, and description below divider
2 Agent Card Glass card with icon, title, type badge (Error/Success/Warning/Info), description, and bottom progress bar

Design 0 — Default

Notification 0

Design 1 — Quest Tracker

Notification 1

Design 2 — Agent Card

Notification 2


Usage

Client-side

lib.notify({
    title = 'Notification Title',
    description = 'This is the notification body text.',
    type = 'success',
    duration = 5000,
})

Server-side

TriggerClientEvent('ox_lib:notify', source, {
    title = 'Server Notification',
    description = 'Sent from the server.',
    type = 'info',
})

Parameters

Field Type Default Description
id string? auto Unique ID (prevents duplicates, allows updates)
title string? Notification title
description string? Body text (supports Markdown)
duration number? 4000 Display duration in ms
type string? 'info' Type: 'info', 'success', 'warning', 'error'
position string? 'top-left' Screen position
icon string? auto FontAwesome icon name
iconColor string? auto Icon color override
iconAnimation string? 'spin', 'pulse', 'beat', 'fade', 'bounce', 'shake'
image string? Image URL (replaces icon)
sound table? Play game audio
alignIcon string? 'top' or 'center'

sound

Field Type Description
bank string? Audio bank
set string Sound set name
name string Sound name

Type Colors

Type Color Auto Icon
info Blue #3b82f6 circle-info
success Green #10b981 circle-check
warning Yellow #f59e0b circle-exclamation
error Red #ef4444 circle-xmark

Notification Limit

When ox:notifyLimit is 1, notifications exceeding ox:maxNotifications are queued and shown after active ones expire.

set ox:notifyLimit 1          # Enable queue limit
set ox:maxNotifications 3     # Max 3 visible at once

Set ox:notifyLimit 0 for unlimited simultaneous notifications.


Position Options

Value Location
top Top center
top-right Top right
top-left Top left (default)
bottom Bottom center
bottom-right Bottom right
bottom-left Bottom left
center-right Middle right
center-left Middle left

Examples

Success notification

lib.notify({
    title = 'Purchase Complete',
    description = 'You bought **Repair Kit** x1',
    type = 'success',
    duration = 3000,
})

Error with custom icon

lib.notify({
    title = 'Access Denied',
    description = 'You do not have the required key.',
    type = 'error',
    icon = 'lock',
    duration = 5000,
})

With sound effect

lib.notify({
    title = 'New Message',
    description = 'You have a new phone message.',
    type = 'info',
    sound = {
        set = 'Phone_SoundSet_Default',
        name = 'Text_Arrive_Tone',
    },
})

Update existing notification

-- First notification
lib.notify({
    id = 'download-progress',
    title = 'Downloading...',
    description = 'Progress: 50%',
    type = 'info',
    duration = 10000,
})

-- Update it
lib.notify({
    id = 'download-progress',
    title = 'Downloading...',
    description = 'Progress: 100%',
    type = 'success',
    duration = 3000,
})

Last updated: 2026-02-18

Last updated 1 month ago