Scripts 2026-04-10

Agency-Notify: Notifications Should Feel Like iOS, Not Like 2014 FiveM

TDYSKY

TDYSKY

Founder & Lead Developer at Agency Scripts

The Notification Ghetto

Notifications on most FiveM servers still look like default ESX from 2019. Basic colored bar at the top, maybe an icon, one line of text. Players have trained themselves to ignore them. This is a massive wasted channel for communicating important information.

What Modern Notifications Look Like

Agency-Notify ships toast-style notifications that stack cleanly, support rich content (icons, images, multi-line text, action buttons), and have clear severity levels with distinct visual treatments. Success, warning, error, info — each has its own animation, color, and typography weight.

Grouping That Prevents Spam

If three similar notifications would fire in quick succession, Agency-Notify collapses them into one grouped notification. No more three identical "You gained $500" toasts blocking the screen. This is behavior players expect from any modern app and it finally exists in FiveM.

Programmer-Friendly API

One function call to fire a notification from any script: exports['agency-notify']:Show({title, body, icon, level, duration, actions}). Returns an ID you can use to update or dismiss the notification later. That's it. No framework coupling, no magic globals.

Standalone for a Reason

Agency-Notify is a framework-independent building block. Your QBCore scripts, ESX scripts, and standalone custom code all call the same API. This is how you keep a server's visual language consistent across dozens of scripts from different authors.

Installation & Setup

Getting Agency-Notify running takes under ten minutes. Download the resource from your Tebex library, drag the agency-notify folder into your server's resources directory, and add ensure agency-notify to your server.cfg. The resource has no database dependency — all notification state is handled client-side in memory.

Once running, any script on your server can call the exports API immediately. No post-install configuration is required to start firing notifications; the defaults are sensible out of the box.

Configuration Options

Open config.lua to customize the visual and behavioral defaults:

  • Position — top-right (default), top-left, bottom-right, or bottom-left corner anchoring.
  • Max visible — how many notifications stack before older ones are dismissed. Default is 5.
  • Default duration — milliseconds before auto-dismiss. Individual notifications can override this.
  • Animation style — slide-in-right (default), fade, or scale. Applies to all notifications globally.
  • Group window — time window in milliseconds within which identical notifications get collapsed.
  • Sound enabled — toggle the subtle notification chime on or off per severity level.

All settings live in a single flat config table — no nested structures to dig through, no separate client and server configs.

Framework Compatibility

Agency-Notify is 100% standalone. It has no framework imports, no QBCore dependency, no ESX dependency. This means:

  • It works on any FiveM server regardless of your base framework.
  • Switching frameworks later does not break your notification calls.
  • Every script from every author can fire notifications through the same API without knowing what framework you run.

If you're replacing an existing notification system (ox_lib's notify, QBCore's QBNotify, etc.), you simply update the export call in your scripts. The signature is close enough to common patterns that find-and-replace handles most migrations.

Why This Matters for Roleplay

Notifications are the primary feedback channel between server systems and players. When a drug deal completes, when a rival gang enters your territory, when an admin needs to alert everyone about an event — all of that runs through notifications. If that channel looks dated or gets ignored, critical server communication fails silently.

Players who trust their notification system pay attention to it. Players who've learned to tune out a spammy, ugly notification bar miss things and feel out of the loop. Agency-Notify's grouping system specifically addresses the spam problem: if your server fires three fast notifications during a heist, players see one grouped message rather than three toasts competing for attention.

The severity tiers (success, warning, error, info) add a second layer of signal. Players learn quickly that green means good, red means act now. That color literacy reduces cognitive load during high-action situations.

Frequently Asked Questions

Can I update or dismiss a notification after it's shown?

Yes. The Show() export returns an ID. Pass that ID to exports['agency-notify']:Update(id, {body, level}) to change content, or to exports['agency-notify']:Dismiss(id) to remove it early. This is useful for progress-style notifications that change state (e.g., "Processing…" → "Done").

Does this replace ox_lib notifications?

It can. Agency-Notify covers the same use cases with a different visual style. If you want the glassmorphism aesthetic consistent with other Agency scripts, swapping is straightforward. If your server is heavily ox_lib-integrated and you're happy with that look, keeping ox_lib for notifications is fine — no conflict exists.

Can players customize their notification position?

Not out of the box — position is a server-level config choice. This is intentional: server owners control the visual language, not individual players. If you want per-player preferences, you'd need to save their choice to a database and pass it through the player data on join.

Is there a rate limit to prevent notification spam from scripts?

The grouping system handles deduplication automatically. For hard rate limiting, set Config.RateLimit = true and Config.RateLimitWindow = 1000 (ms) in config.lua. This caps how many unique notifications any single script can fire within the window.

Requirements

  • FiveM server (any framework or standalone)
  • cfx.re account with a valid Agency-Notify license key in your keymaster
  • No database dependency
  • No external resource dependencies

Comparing Agency-Notify to Alternatives

The FiveM notification ecosystem has several options: ox_lib notifications, QBCore's built-in notifications, and various standalone scripts. Here's where each makes sense:

ox_lib notifications are competent and well-maintained, but they're stylistically tied to the ox_lib visual language. If your server already runs full ox_lib, the visual consistency may outweigh the upgrade. If you're building an Agency-first stack, Agency-Notify's matching aesthetic is a stronger fit.

QBCore's QBNotify is functional but minimal — no grouping, no update API, no action buttons. It works for basic use cases and costs nothing additional if you're already on QBCore. If you need anything beyond simple toasts, you've outgrown it.

Agency-Notify targets servers that care about the notification experience as a product detail rather than an afterthought. If you've ever thought "our notifications look bad and players ignore them," that's the problem this script exists to solve.

Share this article

Ready to upgrade your server?

Check out our premium FiveM scripts in the Agency Scripts store or join our Discord community for support and updates.