> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://documentation.celestory.io/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Quand rien ne marche, et que rien ne le dit

# 🔇 Quand rien ne marche, et que rien ne le dit

C'est probablement l'article le plus utile de cette documentation. Il ne parle pas d'un bloc en particulier : il recense des défauts qui ne produisent **aucun message d'erreur**. Le graphe compile, la validation est verte, vous testez... et le rendu est faux. Pas de croix rouge à suivre, pas de ligne de log à lire : juste un décor qui manque, un texte invisible, ou une histoire qui ne démarre pas.

Chaque ligne du tableau ci-dessous a été vérifiée directement dans le comportement de l'application, pas seulement observée une fois.

---

## 🗂️ Le mémo

| Symptôme | Cause | Que faire |
|---|---|---|
| Le décor ne s'affiche pas, et **aucune requête réseau** ne part chercher l'image | Le bloc utilisé est l'ancien bloc **Scène** — pas **Fond**. Son entrée attend une scène déjà enregistrée dans l'onglet **Scènes** du module, pas une image. Y brancher une image est accepté sans la moindre erreur, mais rien ne se charge jamais. | Passez toujours par la chaîne **Charger image → Image de fond → Fond**. Le bloc **Scène** est un bloc hérité, sans fiche dans cette documentation : évitez-le pour un décor, sauf à savoir exactement ce que vous faites avec l'onglet Scènes. |
| Le décor est bien là, mais **s'étire en largeur** | Le réglage **Couvrir** de l'Image de fond ne couvre pas le cadre comme son nom le promet : il agrandit l'image en largeur seulement, sans respecter ses proportions. | Corrigez avec un bloc **CSS** qui cadre réellement le décor sans l'étirer (voir *Mettre en forme sans écrire de CSS*). |
| Les répliques s'affichent en **serif**, alors que le reste de l'app est en sans-serif | Le nom de police choisi est l'entrée générique tout en haut de la liste (« sans-serif », « serif »). Pour certains éléments — les dialogues en particulier — ce nom est toujours écrit entre guillemets dans le style final : un nom générique entre guillemets ne veut plus rien dire pour le navigateur, qui retombe sur son serif par défaut. | Choisissez un vrai nom de police dans la liste (Nunito, Arial…), jamais l'entrée générique du haut. |
| Les répliques sont **invisibles** | Le style de texte d'un personnage part, par défaut, avec une couleur `#efefef` — un blanc cassé pensé pour un fond sombre. Sur une bulle claire, le texte se fond dedans. | Ouvrez le style de texte du personnage et posez une couleur qui contraste avec la bulle. |
| **L'histoire ne démarre jamais**, le débogueur reste bloqué sur un bloc | Le bloc **Jouer musique** n'ouvre le passage suivant qu'une fois le son effectivement lancé. Un son chargé depuis une URL externe peut ne jamais démarrer (format non reconnu, en-têtes manquants…) : le bloc attend indéfiniment, sans jamais signaler d'erreur ni relâcher le flux. | Pour un morceau de musique, téléversez le fichier dans le projet plutôt que de pointer une URL externe. |
| Un **seuil sur une variable** se comporte n'importe comment | Dans un bloc **Expression**, chaque nom utilisé dans la formule crée automatiquement une entrée du même nom sur le bloc — mais cette entrée n'est reliée à **rien**. Tant qu'elle reste dans le vide, l'expression tourne avec une valeur par défaut à la place de votre variable. | Après avoir écrit ou modifié une expression, vérifiez chaque entrée créée et reliez-y la bonne variable. |
| Une **correction ne change rien** au jeu, même après un test | L'éditeur de code d'un bloc (CSS, HTML5…) n'enregistre votre texte que lorsqu'il **perd le focus** — un clic ailleurs, ou la fermeture de la fenêtre. Tant que ça n'arrive pas, la modification reste affichée à l'écran, jamais réellement commise au graphe. | Cliquez toujours en dehors de l'éditeur (ou fermez la fenêtre du bloc) avant de tester. Vérifiez aussi qu'un second onglet ouvert sur le même projet ne joue pas, lui, l'ancienne version enregistrée côté serveur. |
| Vous écrivez **dix lignes de CSS** pour un résultat qui existait déjà | Le réglage est déjà l'un des 90 champs de **Style de l'app** / **Style des blocs** — couleur de fond, marges, style de texte, image de bordure… | Avant d'ouvrir le bloc CSS, cherchez dans Style de l'app et Style des blocs. Voir *Mettre en forme sans écrire de CSS*. |
| Une **variable citée dans un texte** reste affichée telle quelle, accolades comprises | Le nom entre doubles accolades contient un accent, par exemple `{{Prénom}}`. Seuls les lettres non accentuées, les chiffres et le tiret bas sont reconnus : l'accent casse la détection **en silence**, et aucune entrée n'est créée pour recevoir la variable. | Écrivez le nom de variable sans accent entre les accolades (`{{Prenom}}`) ; réservez les accents au reste de la phrase. Voir *Injecter une variable dans un texte : les doubles accolades*. |
| Un **personnage en image**, ajouté à l'écran dans un module Visual Novel, **n'apparaît jamais** | Le bloc qui ajoute ou fait entrer le personnage attend qu'une **humeur** précise lui soit indiquée. Sans humeur choisie, aucune image n'est appliquée : le personnage est bien présent sur la scène, mais rien ne le rend visible. | Choisissez toujours une humeur au moment d'ajouter ou de faire apparaître un personnage. |

---

## 🧭 La règle qui résume tout

**La validation dit si le graphe compile, pas si l'histoire est belle.**

Ouvrez **Tester en jouant** après chaque changement visuel, et regardez vraiment le rendu — pas seulement le voyant vert à côté du bouton de validation. C'est le seul endroit qui vous dira la vérité sur ces dix pannes.

---

→ Prochaine étape : reprenez votre dernier module publié, ouvrez-le en **Tester en jouant**, et comparez-le ligne par ligne à ce tableau — même les décors et répliques qui vous paraissent déjà corrects.
