> 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-annonce-entreprise-systeme-dannonce-style/faq-and-problemes-frequents.md).

# FAQ & problèmes fréquents

## ❓ FAQ & problèmes fréquents

Cette page regroupe les problèmes les plus courants rencontrés avec **BSensei Annonces Entreprises** ainsi que les vérifications à effectuer avant de contacter le support.

***

### 📢 La commande `/annonce` ne fonctionne pas

Vérifie que le script est correctement démarré :

```
ensure es_extended
ensure BSensei_annonces
```

Depuis la console serveur, utilise :

```
refresh
ensure BSensei_annonces
```

Contrôle également :

* le nom exact du dossier ;
* l’ordre de démarrage des ressources ;
* les erreurs présentes dans la console serveur ;
* les erreurs présentes dans la console F8 ;
* que la commande n’est pas déjà utilisée par un autre script.

Le nom conseillé du dossier est :

```
BSensei_annonces
```

***

### 🚫 Le message « entreprise non autorisée » apparaît

Le métier du joueur n’est probablement pas présent dans `Config.Jobs`.

Ouvre :

```
BSensei_annonces/config.lua
```

Puis ajoute le métier concerné :

```lua
Config.Jobs = {
    mechanic = {
        label = "LS Custom",
        image = "images/mechanic.png"
    }
}
```

Le nom technique doit correspondre exactement au métier ESX du joueur :

```
mechanic
```

⚠️ Le label visible du métier ne doit pas être utilisé comme clé.

✅ Correct :

```lua
mechanic = {
```

❌ Incorrect :

```lua
LS Custom = {
```

***

### 💼 Le bon métier n’est pas détecté

Vérifie le métier actuellement attribué au joueur dans ESX.

La clé présente dans `Config.Jobs` doit correspondre exactement à :

```lua
PlayerData.job.name
```

Exemple :

```
mechanic
ambulance
police
burgershot
```

Les majuscules et minuscules doivent également être identiques.

Ces valeurs sont différentes :

```
mechanic
Mechanic
MECHANIC
```

Reconnecte le joueur après une modification de son métier afin de vérifier que ses données ESX sont correctement actualisées.

***

### 🖼️ Le logo de l’entreprise ne s’affiche pas

Vérifie le chemin configuré :

```lua
image = "images/mechanic.png"
```

Le fichier doit être présent ici :

```
BSensei_annonces/html/images/mechanic.png
```

Contrôle également :

* le nom exact du fichier ;
* son extension ;
* les majuscules et minuscules ;
* l’absence d’espace dans le nom ;
* le format de l’image ;
* que le fichier n’est pas corrompu.

✅ Exemple correct :

```
mechanic.png
```

❌ Exemples incorrects :

```
Mechanic.PNG
mechanic logo.png
mechanic.png.png
```

💡 Sous Linux, `logo.png` et `Logo.png` sont considérés comme deux fichiers différents.

***

### 🧱 L’interface ne s’ouvre pas

Vérifie que le dossier `html` est complet :

```
BSensei_annonces/html/
```

Il doit notamment contenir :

```
index.html
style.css
script.js
images/
sounds/
```

Contrôle également le fichier `fxmanifest.lua`.

Les fichiers de l’interface doivent être correctement déclarés.

Exemple :

```lua
ui_page "html/index.html"
```

Puis :

```lua
files {
    "html/index.html",
    "html/style.css",
    "html/script.js",
    "html/images/*",
    "html/sounds/*"
}
```

⚠️ Ne modifie pas les chemins sans déplacer également les fichiers concernés.

***

### 🖱️ La souris reste bloquée à l’écran

Cela signifie généralement que l’interface NUI n’a pas été correctement fermée.

Essaie d’abord d’utiliser :

```
Échap
```

Si le problème persiste :

1. Ouvre la console F8
2. Utilise la commande suivante :

```
restart BSensei_annonces
```

Vérifie ensuite dans la console F8 si une erreur JavaScript apparaît lors de la fermeture du menu.

Le fichier concerné est généralement :

```
BSensei_annonces/html/script.js
```

⚠️ Ne renomme pas les événements NUI utilisés pour fermer l’interface.

***

### ✍️ Impossible d’écrire dans l’éditeur

Vérifie que le curseur est bien actif dans la zone de texte.

Contrôle également :

* que l’interface possède le focus ;
* qu’aucune autre NUI n’est ouverte ;
* que `script.js` ne génère aucune erreur ;
* que la zone de texte n’a pas été supprimée dans `index.html` ;
* que l’identifiant HTML de la zone n’a pas été modifié.

Une erreur JavaScript peut être visible dans la console F8.

Exemple :

```
Uncaught TypeError
```

ou :

```
Cannot read properties of null
```

***

### 😀 Les emojis ne fonctionnent pas

Vérifie que les boutons d’emojis sont toujours présents dans :

```
BSensei_annonces/html/index.html
```

Leur fonctionnement est géré dans :

```
BSensei_annonces/html/script.js
```

Contrôle que :

* les événements `click` sont toujours présents ;
* les identifiants HTML n’ont pas été renommés ;
* le caractère emoji est compatible avec l’encodage du fichier ;
* le fichier est enregistré en UTF-8.

Exemple d’encodage conseillé :

```
UTF-8
```

***

### **B** Le gras, l’italique ou le soulignement ne fonctionne pas

Les outils de mise en forme sont gérés par l’interface NUI.

Vérifie :

* que les boutons existent dans `index.html` ;
* que leurs fonctions sont présentes dans `script.js` ;
* que les classes CSS correspondantes existent ;
* qu’aucune erreur JavaScript n’apparaît dans F8.

Ne renomme pas les identifiants utilisés par JavaScript.

Exemple :

```html
<button id="boldButton">B</button>
```

Si `boldButton` est modifié dans le HTML, son nom doit également être modifié dans le JavaScript.

***

### 🎨 La couleur du texte ne fonctionne pas

Vérifie que le sélecteur de couleur est toujours présent dans l’interface.

Exemple :

```html
<input type="color">
```

Contrôle également que le navigateur NUI récupère correctement la valeur sélectionnée.

Une couleur HTML utilise généralement ce format :

```
#2ecc71
```

⚠️ Ne supprime pas le symbole `#`.

***

### 📏 Le message est coupé

Une limite de caractères est probablement appliquée dans l’interface.

Vérifie le texte indicatif :

```lua
InputPlaceholder = "Votre texte (max 120 caractères)"
```

Ce texte est uniquement informatif.

La limite réelle peut être définie dans :

```
BSensei_annonces/html/index.html
```

Exemple :

```html
maxlength="120"
```

Elle peut également être contrôlée dans :

```
BSensei_annonces/html/script.js
```

Pour augmenter la limite à 200 caractères :

```html
maxlength="200"
```

⚠️ Des annonces trop longues peuvent dépasser de l’interface ou gêner les joueurs.

***

### 📝 Le joueur peut envoyer une annonce vide

Vérifie que la validation du message n’a pas été supprimée dans le JavaScript ou le client Lua.

Le texte d’erreur est défini dans :

```lua
NoMessage = "Tu dois écrire un message avant d’envoyer ton annonce."
```

Une annonce contenant uniquement des espaces doit également être refusée.

Exemples de messages invalides :

```
""
" "
"     "
```

***

### ⏳ Le cooldown ne fonctionne pas

Vérifie sa valeur dans `config.lua` :

```lua
Config.Cooldown = 1800
```

La valeur est exprimée en secondes.

Exemples :

```
60 = 1 minute
300 = 5 minutes
1800 = 30 minutes
```

Pour tester rapidement :

```lua
Config.Cooldown = 10
```

Redémarre ensuite le script :

```
restart BSensei_annonces
```

⚠️ Pense à remettre une durée correcte après les tests.

***

### ⌛ Le cooldown est beaucoup trop long

Vérifie que tu n’as pas confondu les secondes et les millisecondes.

✅ Trente minutes :

```lua
Config.Cooldown = 1800
```

❌ Valeur beaucoup trop importante :

```lua
Config.Cooldown = 1800000
```

Le script utilise des secondes dans sa configuration.

***

### 🔄 Le cooldown se réinitialise après un redémarrage

Le cooldown est conservé en mémoire pendant que le script fonctionne.

Un redémarrage de la ressource ou du serveur peut donc le réinitialiser.

Ce comportement est normal si aucune sauvegarde en base de données n’est prévue.

Le script ne nécessite aucun fichier SQL dans sa configuration d’origine.

***

### 👥 L’annonce n’apparaît pas chez les autres joueurs

Vérifie que l’annonce est bien envoyée au serveur puis diffusée à tous les clients.

Contrôle :

* la console serveur ;
* la console F8 du joueur qui envoie l’annonce ;
* la console F8 des autres joueurs ;
* que l’événement serveur n’a pas été renommé ;
* que l’événement client de réception existe toujours.

Redémarre le script chez tous les joueurs avec :

```
restart BSensei_annonces
```

💡 Lors d’un redémarrage de ressource, certains joueurs peuvent devoir rouvrir leur interface.

***

### 📢 L’annonce apparaît uniquement chez l’expéditeur

Cela indique généralement que l’événement a été déclenché uniquement côté client.

La diffusion doit passer par un événement serveur envoyé à tous les joueurs.

Exemple de fonctionnement attendu :

```lua
TriggerServerEvent("BSensei_annonces:sendAnnouncement", data)
```

Puis côté serveur :

```lua
TriggerClientEvent("BSensei_annonces:showAnnouncement", -1, data)
```

La valeur suivante signifie « tous les joueurs » :

```lua
-1
```

⚠️ Ne modifie pas les noms des événements si le script est protégé ou si tu ne maîtrises pas leur fonctionnement.

***

### 🔊 Le son de l’annonce ne fonctionne pas

Vérifie que le fichier audio existe dans :

```
BSensei_annonces/html/sounds/
```

Contrôle également :

* son nom exact ;
* son extension ;
* sa déclaration dans le NUI ;
* le volume de FiveM ;
* le volume général de Windows ;
* que le navigateur NUI autorise la lecture du fichier.

Formats conseillés :

```
.mp3
.ogg
.wav
```

Teste avec un fichier audio court et léger.

***

### 🔁 Le son se joue plusieurs fois

Vérifie que l’événement d’affichage n’est pas déclenché plusieurs fois.

Contrôle également que :

* le script n’est pas démarré deux fois ;
* deux dossiers identiques ne sont pas présents ;
* deux lignes `ensure BSensei_annonces` ne sont pas présentes ;
* plusieurs événements JavaScript ne lancent pas le même son.

Recherche dans le `server.cfg` :

```
BSensei_annonces
```

Une seule ligne de démarrage doit être présente.

***

### 🔔 Les notifications ESX ne s’affichent pas

Vérifie que `es_extended` est correctement démarré :

```
ensure es_extended
ensure BSensei_annonces
```

Le script utilise normalement :

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

Contrôle également :

* que l’objet ESX est correctement récupéré ;
* qu’aucun autre système ne bloque les notifications ;
* que le message existe dans `Config.Text` ;
* qu’aucune erreur Lua n’apparaît dans F8.

***

### 🌍 Les textes restent inchangés

Vérifie que tu modifies bien le bon fichier :

```
BSensei_annonces/config.lua
```

Puis redémarre la ressource :

```
restart BSensei_annonces
```

Si le texte se trouve directement dans l’interface, vérifie également :

```
BSensei_annonces/html/index.html
```

et :

```
BSensei_annonces/html/script.js
```

⚠️ Une actualisation du navigateur ne suffit pas. La ressource FiveM doit être redémarrée.

***

### 🔤 Les accents apparaissent mal

Les fichiers doivent être enregistrés en :

```
UTF-8
```

Exemple de caractères incorrects :

```
Annonces dâ€™entreprises
CrÃ©er une annonce
```

Dans Visual Studio Code :

```
Encodage → Enregistrer avec l’encodage → UTF-8
```

Redémarre ensuite le script.

***

### 🧱 L’annonce sort de l’écran

Le message est probablement trop long ou contient une mise en forme excessive.

Vérifie les règles CSS dans :

```
BSensei_annonces/html/style.css
```

Les propriétés suivantes peuvent être utiles :

```css
overflow-wrap: break-word;
word-break: break-word;
max-width: 100%;
```

Tu peux également réduire la limite de caractères dans l’éditeur.

***

### 📱 L’interface est trop grande ou trop petite

L’affichage dépend de la résolution et de la mise à l’échelle du joueur.

Vérifie que le CSS utilise principalement :

```
%
vw
vh
rem
```

Évite de définir toute l’interface uniquement avec de grandes valeurs fixes en pixels.

Teste au minimum avec les résolutions suivantes :

```
1920 × 1080
2560 × 1440
1366 × 768
```

***

### 📁 Erreur après avoir renommé le dossier

Utilise le nom recommandé :

```
BSensei_annonces
```

Évite :

* les espaces ;
* les accents ;
* les parenthèses ;
* les numéros de version ;
* les doubles dossiers.

✅ Bon exemple :

```
resources/[bsensei]/BSensei_annonces
```

❌ Mauvais exemple :

```
resources/[bsensei]/BSensei_annonces_v1.0/BSensei_annonces
```

***

### 🧪 Vérification rapide

Depuis la console serveur :

```
refresh
ensure es_extended
ensure BSensei_annonces
```

Teste ensuite avec un métier autorisé :

```
/annonce
```

Contrôle dans cet ordre :

1. L’ouverture du menu
2. La détection du métier
3. Le nom de l’entreprise
4. Le logo
5. La rédaction du message
6. Les emojis
7. Le gras, l’italique et le soulignement
8. La couleur du texte
9. L’envoi de l’annonce
10. L’affichage chez les autres joueurs
11. Le son
12. Le cooldown

***

### 🚨 Avant de contacter le support

Prépare les informations suivantes :

* ta version d’ESX Legacy ;
* une capture complète de l’erreur ;
* les logs de la console serveur ;
* les logs de la console F8 ;
* le métier technique du joueur ;
* la partie concernée de `Config.Jobs` ;
* le nom du logo configuré ;
* les modifications effectuées dans les fichiers HTML, CSS ou JavaScript ;
* une courte vidéo si le problème concerne l’interface.

💡 Ne transmets jamais tes tokens, tes clés FiveM ou les identifiants de ta base de données.

***

### 🚨 Avant de contacter le support

Prépare les informations suivantes :

* ton framework
* ton système d’inventaire
* ton système de notifications
* ton dispatch
* une capture de l’erreur
* les logs client F8
* les logs de la console serveur
* les modifications effectuées dans `config.lua`

💡 Ne transmets jamais tes clés privées, tokens Discord ou informations sensibles.

***

### 📞 Besoin d’aide supplémentaire ?

Si tu as suivi toute la doc et que le problème persiste :

💬 Rejoins le support :\
👉 <https://discord.gg/4kQQJPyJPJ>

***

© **BSensei Scripts** · Tous droits réservés.


---

# 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-annonce-entreprise-systeme-dannonce-style/faq-and-problemes-frequents.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.
