> 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/systemes-and-gestion/bsensei-multijob-gestion-complete-des-metiers/systeme-de-notifications.md).

# Système de notifications

## 🔔 Système de notifications

**BSensei MultiJob** permet d’utiliser plusieurs systèmes de notifications selon les ressources installées sur ton serveur.

Le système actif se sélectionne dans `config.lua`, tandis que l’intégration d’un système personnalisé s’effectue dans `editable.lua`.

***

### 📁 Localisation des fichiers

La configuration se trouve ici :

```
BSensei_multijob/config.lua
```

Les fonctions modifiables se trouvent ici :

```
BSensei_multijob/editable.lua
```

Les textes affichés sont regroupés dans :

```
BSensei_multijob/locale.lua
```

***

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

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

```lua
Config.Notifications = {
    system = "ox_lib",
    position = "top",
    duration = 4500,
    playSound = false,

    resources = {
        esx = "es_extended",
        okokNotify = "okokNotify",
    }
}
```

Systèmes disponibles :

```
ox_lib
esx
okokNotify
custom
```

⚠️ La valeur doit être écrite exactement comme dans les exemples.

***

### 🔴 Notifications `ox_lib`

Pour utiliser les notifications natives de `ox_lib` :

```lua
Config.Notifications.system = "ox_lib"
```

Le script affichera une notification similaire à celle-ci :

```lua
lib.notify({
    title = "Multi-job",
    description = message,
    type = "inform",
    position = "top",
    duration = 4500
})
```

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

```
ensure ox_lib
ensure BSensei_multijob
```

***

### 🟦 Notifications ESX

Pour utiliser les notifications natives d’ESX Legacy :

```lua
Config.Notifications.system = "esx"
```

Le script utilisera alors :

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

Le nom de la ressource ESX est configuré ici :

```lua
Config.Notifications.resources.esx = "es_extended"
```

Assure-toi qu’ESX démarre avant MultiJob :

```
ensure es_extended
ensure BSensei_multijob
```

***

### 🟢 Notifications `okokNotify`

Pour utiliser `okokNotify` :

```lua
Config.Notifications.system = "okokNotify"
```

Le nom de la ressource est défini ici :

```lua
Config.Notifications.resources.okokNotify = "okokNotify"
```

Le script utilisera une notification similaire à celle-ci :

```lua
exports["okokNotify"]:Alert(
    "Multi-job",
    message,
    4500,
    "info"
)
```

Ordre conseillé dans le `server.cfg` :

```
ensure okokNotify
ensure BSensei_multijob
```

***

### 🛠️ Système personnalisé

Pour connecter ton propre HUD ou système de notifications :

```lua
Config.Notifications.system = "custom"
```

Ouvre ensuite le fichier :

```
BSensei_multijob/editable.lua
```

Repère la partie réservée au système personnalisé, puis ajoute ton export ou ton événement.

#### Exemple avec un export

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

#### Exemple avec un événement

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

💡 Modifie uniquement la partie `custom` afin de préserver les intégrations déjà présentes.

***

### 📍 Position des notifications

Cette option concerne principalement `ox_lib` :

```lua
Config.Notifications.position = "top"
```

Positions courantes :

```
top
top-right
top-left
bottom
bottom-right
bottom-left
center-right
center-left
```

Exemple :

```lua
Config.Notifications.position = "top-right"
```

***

### ⏱️ Durée d’affichage

La durée est exprimée en millisecondes :

```lua
Config.Notifications.duration = 4500
```

Exemples :

```
3000 = 3 secondes
4500 = 4,5 secondes
6000 = 6 secondes
```

Pour afficher les notifications pendant six secondes :

```lua
Config.Notifications.duration = 6000
```

***

### 🔊 Son des notifications

Le son peut être activé ou désactivé :

```lua
Config.Notifications.playSound = false
```

* `true` : son activé
* `false` : son désactivé

Exemple :

```lua
Config.Notifications.playSound = true
```

⚠️ Cette option dépend également des capacités du système de notifications sélectionné.

***

### 🎨 Types de notifications

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

```
inform
success
error
warning
```

Exemples :

```lua
Editable.Notify("Métier ajouté avec succès.", "success")
Editable.Notify("Impossible de récupérer tes métiers.", "error")
Editable.Notify("Tu es maintenant en service.", "inform")
Editable.Notify("Tu as atteint la limite de métiers.", "warning")
```

Le nom exact des types peut varier selon le système utilisé.

Tu peux adapter leur correspondance dans `editable.lua`.

***

### 🌍 Modifier les textes affichés

Le contenu des notifications se modifie dans :

```
BSensei_multijob/locale.lua
```

Exemple original :

```lua
duty_started = "Tu es maintenant en service : %s"
```

Exemple personnalisé :

```lua
duty_started = "Votre prise de service est enregistrée pour : %s"
```

Autre exemple :

```lua
limit_reached = "Limite atteinte : %s métiers maximum."
```

Les éléments comme `%s` sont remplacés automatiquement par le script.

⚠️ Ne les supprime pas.

***

### ⚠️ Erreurs à éviter

* Vérifie l’orthographe exacte du système sélectionné
* Démarre la ressource de notifications avant MultiJob
* Ne sélectionne pas `okokNotify` si la ressource n’est pas installée
* Utilise `custom` uniquement après avoir configuré `editable.lua`
* Ne modifie pas les événements internes pour changer une notification
* Redémarre le script après chaque modification
* Vérifie les consoles client et serveur en cas d’erreur

Après une modification :

```
restart BSensei_multijob
```

***

### 🧰 Exemple de configuration

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

```lua
Config.Notifications = {
    system = "ox_lib",
    position = "top-right",
    duration = 5000,
    playSound = false,

    resources = {
        esx = "es_extended",
        okokNotify = "okokNotify",
    }
}
```

Ordre conseillé dans le `server.cfg` :

```
ensure oxmysql
ensure ox_lib
ensure es_extended
ensure BSensei_multijob
```

***

➡️ **É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/systemes-and-gestion/bsensei-multijob-gestion-complete-des-metiers/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.
