Agency-Notify : des notifications dignes d’iOS, pas de FiveM en 2014
Agency-Notify est né d’un constat : sur la plupart des serveurs FiveM, les notifications semblent encore dater d’il y a dix ans.
Agency Scripts
Fondateur et développeur principal chez Agency Scripts
Le ghetto des notifications
Sur la plupart des serveurs FiveM, les notifications ressemblent encore à celles d’ESX par défaut en 2019. Une simple barre colorée en haut, peut-être une icône, une ligne de texte. Les joueurs ont pris l’habitude de les ignorer. C’est un canal de communication important totalement gaspillé.
À quoi ressemblent les notifications modernes
Agency-Notify propose des notifications toast qui s’empilent proprement, prennent en charge du contenu enrichi (icônes, images, texte sur plusieurs lignes, boutons d’action) et comportent des niveaux de gravité clairement différenciés par leur apparence. Succès, avertissement, erreur, info, chacun a son animation, sa couleur et son épaisseur de typographie.
Regroupement pour éviter le spam
Si trois notifications similaires doivent s’afficher rapidement à la suite, Agency-Notify les regroupe en une seule notification. Fini les trois toasts identiques « Tu as gagné 500 $ » qui bloquent l’écran. C’est un comportement que les joueurs attendent de toute application moderne, et il existe enfin dans FiveM.
API pensée pour les développeurs
Un seul appel de fonction pour déclencher une notification depuis n’importe quel script : exports['agency-notify']:Show({title, body, icon, level, duration, actions}). Renvoie un ID que tu peux utiliser plus tard pour modifier ou fermer la notification. C’est tout. Aucun couplage à un framework, aucune variable globale magique.
Le choix du standalone n’est pas un hasard
Agency-Notify est un composant indépendant des frameworks. Tes scripts QBCore, tes scripts ESX et ton code personnalisé standalone utilisent tous la même API. C’est ainsi que tu assures la cohérence visuelle de ton serveur entre des dizaines de scripts créés par différents auteurs.
Installation & configuration
L’installation d’Agency-Notify prend moins de dix minutes. Télécharge la ressource depuis ta bibliothèque Tebex, glisse le agency-notify dossier dans le répertoire resources de ton serveur et ajoute ensure agency-notify à ton server.cfg. La ressource ne dépend d’aucune base de données, toutes les données des notifications sont gérées en mémoire côté client.
Une fois la ressource lancée, tous les scripts de ton serveur peuvent immédiatement appeler l’API exports. Aucune configuration après l’installation n’est nécessaire pour déclencher des notifications, les paramètres par défaut sont adaptés dès le départ.
Options de configuration
Ouvre config.lua pour personnaliser les paramètres visuels et comportementaux par défaut :
- Position, ancrage en haut à droite (par défaut), en haut à gauche, en bas à droite ou en bas à gauche.
- Nombre maximum affiché , combien de notifications peuvent s’empiler avant que les plus anciennes soient supprimées. La valeur par défaut est 5.
- Durée par défaut, délai en millisecondes avant la fermeture automatique. Les notifications individuelles peuvent utiliser une autre durée.
- Style d’animation, slide-in-right (par défaut), fade ou scale. S’applique globalement à toutes les notifications.
- Fenêtre de regroupement, intervalle en millisecondes pendant lequel les notifications identiques sont regroupées.
- Son activé, active ou désactive la légère sonnerie des notifications pour chaque niveau de gravité.
Tous les paramètres se trouvent dans une seule table de configuration plate, sans structures imbriquées à parcourir ni configurations client et serveur séparées.
Compatibilité avec les frameworks
Agency-Notify est 100 % standalone. Il n’importe aucun framework et ne dépend ni de QBCore ni d’ESX. Cela signifie que :
- Il fonctionne sur n’importe quel serveur FiveM, quel que soit le framework utilisé.
- Changer de framework plus tard ne casse pas les appels de notification.
- Tous les scripts, quels que soient leurs auteurs, peuvent déclencher des notifications via la même API sans savoir quel framework tu utilises.
Si tu remplaces un système de notification existant (la fonction notify d’ox_lib, QBNotify de QBCore, etc.), il te suffit de mettre à jour l’appel à l’export dans tes scripts. La signature est suffisamment proche des modèles courants pour que rechercher et remplacer suffise pour la plupart des migrations.
Pourquoi c’est important pour le roleplay
Les notifications sont le principal canal de communication entre les systèmes du serveur et les joueurs. Quand une transaction de drogue se termine, quand un gang rival entre sur ton territoire ou quand un admin doit informer tout le monde d’un événement, tout passe par les notifications. Si ce canal paraît dépassé ou est ignoré, les communications essentielles du serveur passent inaperçues.
Les joueurs qui font confiance à leur système de notification y prêtent attention. Ceux qui ont appris à ignorer une barre de notification envahissante et peu esthétique ratent des informations et ont l’impression de ne pas être au courant. Le système de regroupement d’Agency-Notify s’attaque précisément au problème du spam : si ton serveur déclenche trois notifications rapprochées pendant un braquage, les joueurs voient un seul message regroupé plutôt que trois notifications concurrentes.
Les niveaux de gravité (success, warning, error, info) ajoutent un deuxième niveau d’information. Les joueurs comprennent vite que le vert signifie que tout va bien et que le rouge demande d’agir immédiatement. Cette compréhension des couleurs réduit la charge cognitive dans les situations d’action intense.
Questions fréquentes
Puis-je modifier ou fermer une notification après son affichage ?
Oui. L’ Show() export renvoie un ID. Passe cet ID à exports['agency-notify']:Update(id, {body, level}) pour modifier le contenu, ou à exports['agency-notify']:Dismiss(id) pour la supprimer avant terme. C’est utile pour les notifications de progression dont l’état évolue (par exemple : « Traitement en cours… » → « Terminé »).
Cela remplace-t-il les notifications d’ox_lib ?
Oui, c’est possible. Agency-Notify couvre les mêmes cas d’utilisation avec un style visuel différent. Si tu veux conserver l’esthétique glassmorphism des autres scripts Agency, le remplacement est simple. Si ton serveur utilise beaucoup ox_lib et que son apparence te convient, tu peux garder ox_lib pour les notifications, il n’y a aucun conflit.
Les joueurs peuvent-ils personnaliser la position de leurs notifications ?
Pas par défaut, le choix de la position se fait dans la configuration du serveur. C’est intentionnel : les propriétaires du serveur définissent l’identité visuelle, pas les joueurs individuellement. Si tu veux proposer des préférences propres à chaque joueur, tu devras enregistrer leur choix dans une base de données et le transmettre avec leurs données de joueur à la connexion.
Existe-t-il une limite de fréquence pour empêcher les scripts de spammer les notifications ?
Le système de regroupement élimine automatiquement les doublons. Pour imposer une limite stricte, définis Config.RateLimit = true et Config.RateLimitWindow = 1000 (ms) dans config.lua. Cela limite le nombre de notifications uniques qu’un même script peut déclencher pendant cet intervalle.
Prérequis
- Serveur FiveM (n’importe quel framework ou standalone)
- compte cfx.re avec une clé de licence Agency-Notify valide dans ton keymaster
- Aucune dépendance à une base de données
- Aucune dépendance à des ressources externes
Comparer Agency-Notify aux alternatives
L’écosystème des notifications FiveM propose plusieurs options : les notifications ox_lib, les notifications intégrées à QBCore et divers scripts standalone. Voici dans quels cas chacune convient :
Les notifications ox_lib sont fiables et bien entretenues, mais leur style est lié à l’identité visuelle d’ox_lib. Si ton serveur utilise déjà pleinement ox_lib, la cohérence visuelle peut l’emporter sur la mise à niveau. Si tu construis une stack axée sur Agency, l’esthétique assortie d’Agency-Notify sera plus adaptée.
QBNotify de QBCore est fonctionnel, mais minimal : pas de regroupement, pas d’API de mise à jour, pas de boutons d’action. Il convient aux usages de base et ne coûte rien de plus si tu utilises déjà QBCore. Si tu as besoin d’autre chose que de simples notifications toast, tu as atteint ses limites.
Agency-Notify s’adresse aux serveurs qui considèrent l’expérience de notification comme un détail produit plutôt que comme une réflexion après coup. Si tu t’es déjà dit « nos notifications sont moches et les joueurs les ignorent », ce script est là pour résoudre ce problème.