> 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/dependances-necessaires.md).

# Dépendances nécessaires

## 🧩 Dépendances nécessaires

Pour fonctionner correctement, **BSensei MultiJob** nécessite plusieurs ressources indispensables.

Certaines dépendances sont obligatoires, tandis que d’autres sont uniquement nécessaires selon le système de notifications sélectionné dans `config.lua`.

***

### 📦 Dépendances principales

Les ressources suivantes doivent être installées et démarrées avant **BSensei MultiJob** :

* `es_extended`
* `ox_lib`
* `oxmysql`

⚠️ Si l’une de ces ressources est absente ou démarre après MultiJob, le menu peut ne pas s’ouvrir et les données peuvent ne pas être enregistrées.

***

### 🧠 ESX Legacy

**BSensei MultiJob** est conçu pour fonctionner avec **ESX Legacy**.

Ressource nécessaire :

```
es_extended
```

Ordre conseillé dans le `server.cfg` :

```
ensure es_extended
ensure BSensei_multijob
```

Le script utilise notamment ESX pour :

* récupérer les informations du joueur ;
* lire son métier actif ;
* modifier son métier ;
* vérifier son groupe administrateur ;
* gérer les grades et les emplois.

⚠️ Les tables suivantes doivent exister dans ta base de données :

```
jobs
job_grades
users
```

***

### 🗄️ `oxmysql`

`oxmysql` permet au script d’enregistrer et de récupérer les métiers des joueurs.

Ressource nécessaire :

```
oxmysql
```

Ajoute-la avant ESX et MultiJob :

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

Le script utilise la base de données pour conserver :

* les métiers enregistrés ;
* les grades ;
* le métier actif ;
* les prises de service ;
* le temps total travaillé ;
* le temps travaillé dans la semaine ;
* la dernière prise de service.

⚠️ Vérifie que `oxmysql` est correctement relié à ta base de données dans le `server.cfg`.

Exemple :

```
set mysql_connection_string "mysql://utilisateur:motdepasse@localhost/nom_base"
```

***

### 🔧 `ox_lib`

`ox_lib` est utilisé pour l’interface et plusieurs fonctions du script.

Ressource nécessaire :

```
ox_lib
```

Ajoute-la avant MultiJob :

```
ensure ox_lib
ensure BSensei_multijob
```

`ox_lib` est notamment utilisé pour :

* les menus ;
* les fenêtres de confirmation ;
* les notifications ;
* les icônes ;
* les interactions avec l’interface.

⚠️ Si `ox_lib` n’est pas démarré, le menu MultiJob ne pourra pas fonctionner correctement.

***

### 🔔 Notifications facultatives

Selon le système sélectionné dans `config.lua`, certaines ressources supplémentaires peuvent être nécessaires.

#### Notifications ESX

Aucune ressource supplémentaire n’est nécessaire en dehors de :

```
es_extended
```

Configuration :

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

***

#### Notifications `ox_lib`

Aucune ressource supplémentaire n’est nécessaire puisque `ox_lib` est déjà obligatoire.

Configuration :

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

***

#### Notifications `okokNotify`

Si tu utilises `okokNotify`, la ressource doit être installée et démarrée avant MultiJob.

```
ensure okokNotify
ensure BSensei_multijob
```

Configuration :

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

***

#### Notifications personnalisées

Aucune dépendance précise n’est imposée.

Sélectionne :

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

Puis configure ton système dans :

```
BSensei_multijob/editable.lua
```

***

### 🗃️ Base de données ESX

Le script récupère automatiquement les métiers présents dans les tables ESX :

```
jobs
job_grades
```

Chaque métier doit posséder :

* un nom technique ;
* un label ;
* au moins un grade ;
* un salaire défini ;
* des grades correctement numérotés.

Exemple de métier :

```
police
ambulance
mechanic
taxi
```

Exemple de métier hors service :

```
offpolice
offambulance
offmechanic
```

💡 Le format des métiers hors service peut être modifié dans `config.lua`.

***

### ⚙️ Ordre de démarrage conseillé

Voici l’ordre recommandé dans ton `server.cfg` :

```
ensure oxmysql
ensure ox_lib
ensure es_extended

ensure BSensei_multijob
```

Avec `okokNotify` :

```
ensure oxmysql
ensure ox_lib
ensure es_extended
ensure okokNotify

ensure BSensei_multijob
```

⚠️ MultiJob doit toujours démarrer après ESX, `ox_lib` et `oxmysql`.

***

### ✅ Vérification des dépendances

Depuis la console serveur, utilise :

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

Vérifie qu’aucune ressource ne signale une erreur similaire à :

```
Couldn't find dependency
```

```
No such export
```

```
attempt to index a nil value
```

```
Table doesn't exist
```

***

### 🚨 En cas de problème

* Vérifie que `es_extended` est bien une version ESX Legacy récente
* Assure-toi que `ox_lib` démarre correctement
* Vérifie la connexion de `oxmysql`
* Contrôle que le fichier SQL a bien été importé
* Vérifie que les tables `jobs` et `job_grades` existent
* Contrôle l’ordre des ressources dans le `server.cfg`
* Vérifie le nom exact de chaque dépendance
* Consulte les consoles serveur et F8
* Redémarre complètement le serveur après une modification SQL

***

➡️ **Étape suivante : FAQ & problèmes fréquents**


---

# 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/dependances-necessaires.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.
