> For the complete documentation index, see [llms.txt](https://bsensei-script.gitbook.io/bsensei-script-documentation-officiel-fivem/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bsensei-script.gitbook.io/bsensei-script-documentation-officiel-fivem/illegal-and-criminalite/bsensei-npc-robbery-braquage-de-citoyens-immersif/systeme-de-notifications.md).

# Système de notifications

## 🔔 Système de notifications

**BSensei NPC Robbery** permet d’utiliser plusieurs systèmes de notifications selon la configuration de ton serveur.

Le système utilisé se sélectionne dans `config.lua`, tandis que les intégrations personnalisées se trouvent dans `editable.lua`.

***

### 📁 Localisation des fichiers

La sélection du système se trouve ici :

```
BSensei_npcrobbery/shared/config.lua
```

Les fonctions modifiables se trouvent ici :

```
BSensei_npcrobbery/shared/editable.lua
```

***

### ⚙️ Choisir le système de notifications

Dans `config.lua`, repère cette configuration :

```lua
Config.Notifications = {
    System = "esx"
}
```

Remplace la valeur `System` par le système utilisé sur ton serveur.

Systèmes disponibles :

```
esx
ox_lib
okokNotify
qbcore
custom
```

***

### 🟦 Notifications ESX

Pour utiliser les notifications natives d’ESX Legacy :

```lua
Config.Notifications = {
    System = "esx"
}
```

Le script utilisera alors :

```lua
ESX.ShowNotification(message)
```

Assure-toi que la ressource suivante est installée et démarrée :

```
es_extended
```

***

### 🔴 Notifications ox\_lib

Pour utiliser les notifications de `ox_lib` :

```lua
Config.Notifications = {
    System = "ox_lib"
}
```

Le script utilisera une notification similaire à celle-ci :

```lua
lib.notify({
    title = "NPC Robbery",
    description = message,
    type = "inform"
})
```

Assure-toi que `ox_lib` démarre avant le script :

```
ensure ox_lib
ensure BSensei_npcrobbery
```

***

### 🟢 Notifications okokNotify

Pour utiliser `okokNotify` :

```lua
Config.Notifications = {
    System = "okokNotify"
}
```

Le script utilisera une notification similaire à celle-ci :

```lua
exports["okokNotify"]:Alert(
    "NPC Robbery",
    message,
    5000,
    "info"
)
```

Assure-toi que la ressource démarre avant NPC Robbery :

```
ensure okokNotify
ensure BSensei_npcrobbery
```

***

### 🟡 Notifications QBCore

Pour utiliser le système natif de QBCore :

```lua
Config.Notifications = {
    System = "qbcore"
}
```

Le script utilisera alors :

```lua
QBCore.Functions.Notify(message, "primary")
```

Assure-toi que le framework sélectionné est également QBCore :

```lua
Config.Framework = "qbcore"
```

***

### 🛠️ Système personnalisé

Pour connecter ton propre système de notifications :

```lua
Config.Notifications = {
    System = "custom"
}
```

Ouvre ensuite :

```
BSensei_npcrobbery/shared/editable.lua
```

Repère la partie réservée aux notifications personnalisées, puis ajoute ton export ou ton événement.

#### Exemple avec un export personnalisé

```lua
exports["mon_hud"]:Notify({
    title = "NPC Robbery",
    message = message,
    type = notifyType
})
```

#### Exemple avec un événement

```lua
TriggerEvent(
    "mon_hud:notification",
    "NPC Robbery",
    message,
    notifyType
)
```

💡 Modifie uniquement la section `custom` afin de préserver les autres intégrations.

***

### 🎨 Types de notifications

Le script peut transmettre différents types selon la situation :

```
inform
success
error
warning
```

Exemples :

```lua
Editable.Notify("Braquage lancé.", "inform")
Editable.Notify("Récompense récupérée.", "success")
Editable.Notify("Il n’y a pas assez de policiers.", "error")
Editable.Notify("La victime appelle la police.", "warning")
```

Le nom exact des types peut varier selon ton système de notifications.

Adapte-les dans `editable.lua` si nécessaire.

***

### 🌍 Modifier les messages

Le contenu des notifications ne se modifie pas dans `editable.lua`.

Tous les textes sont regroupés dans :

```
BSensei_npcrobbery/shared/locale.lua
```

Exemple :

```lua
robbery_failed = "Le braquage a échoué."
```

Tu peux le remplacer par :

```lua
robbery_failed = "La victime a résisté. Le racket est un échec."
```

***

### ⚠️ Erreurs à éviter

* Vérifie l’orthographe exacte du système choisi
* Démarre la ressource de notifications avant NPC Robbery
* Ne sélectionne pas `ox_lib` si la ressource n’est pas installée
* Ne sélectionne pas `okokNotify` sans démarrer son script
* Utilise `custom` uniquement après avoir configuré `editable.lua`
* Ne modifie pas les événements internes du script pour changer une notification

***

### 🧠 Exemple de configuration

Voici un exemple pour un serveur ESX utilisant `ox_lib` :

```lua
Config.Framework = "esx"

Config.Notifications = {
    System = "ox_lib"
}
```

Ordre conseillé dans `server.cfg` :

```
ensure ox_lib
ensure es_extended
ensure ox_target
ensure BSensei_npcrobbery
```

***

➡️ **Étape suivante : Dépendances nécessaires**


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://bsensei-script.gitbook.io/bsensei-script-documentation-officiel-fivem/illegal-and-criminalite/bsensei-npc-robbery-braquage-de-citoyens-immersif/systeme-de-notifications.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
