Vous avez posé un branchement, créé une variable, écrit deux répliques. Il faut maintenant vérifier que ça marche. Celestory ne vous dira presque rien tout seul : c'est vous qui devez regarder, et surtout **savoir où regarder**. 👀

Cet article donne une routine de test répétable, puis détaille ce que la fenêtre de débogage montre — et ce qu'elle ne montre pas.

🔺 Cet article traite de la **méthode**. Le catalogue des pannes qui n'affichent aucun message est ailleurs : voir *Quand rien ne marche, et que rien ne le dit*.

---


[▶️ Vidéo : Tester son projet et lire le débogueur](https://celestory-docs-videos.netlify.app/fr/geste-ui/tester-et-lire-le-debogueur.html)


## 🔁 La routine : cinq gestes, toujours dans cet ordre

1. **Sauvegardez** (`Cmd/Ctrl + S`). Le test ne le fait pas pour vous.
2. **Jouez** : bouton **Jouer le module courant** dans la barre du haut.
3. **Observez** — la fenêtre de jeu *et* la fenêtre **Débogue** à côté, *et* le graphe derrière, qui se recentre tout seul sur le bloc en cours.
4. **Fermez** la fenêtre de test avant de corriger.
5. **Corrigez**, puis recommencez au point 1.

⚠️ Le point 4 n'est pas du confort. La fenêtre de test **fige l'état du projet au moment où elle s'ouvre** : le projet est compilé une seule fois, à l'ouverture, depuis ce que l'éditeur a en mémoire. Vous pouvez modifier dix blocs pendant que le test tourne, la fenêtre continuera de jouer l'ancienne version. Fermer et rouvrir est le **seul** moyen de recompiler.

---

## ▶️ Le bouton Jouer : ce qu'il fait vraiment

Le bouton **Jouer le module courant** ouvre une fenêtre flottante intitulée **Tester en jouant**, à l'intérieur même du Creator. À côté d'elle s'ouvre automatiquement une seconde fenêtre, **Débogue**, de 360 × 640 pixels, calée à droite de l'écran.

Trois idées fausses à démonter tout de suite :

⚠️ **Jouer ne sauvegarde pas.** Le test compile ce que votre navigateur a en mémoire, pas ce qui est sur le serveur. Conséquences : un test réussi ne protège de rien si vous fermez l'onglet sans sauvegarder ; et un collègue qui ouvre le projet ne verra pas ce que vous venez de tester.

⚠️ **Jouer ne produit aucun lien.** Il n'y a pas d'URL, pas de page publique, rien à envoyer à qui que ce soit. Le test vit dans votre fenêtre d'éditeur et meurt avec elle. Pour obtenir un lien jouable, il faut passer par **Publier** et choisir la plateforme **Lien direct**. Et attention : le bouton **Partager** ne sert *pas* à ça — il invite des collaborateurs dans **l'éditeur**, pas des joueurs dans le jeu.

⚠️ **Le raccourci `Maj + P` est affiché mais ne fonctionne pas.** L'infobulle du bouton l'annonce (« Jouer depuis le module. Maj + P »), mais la combinaison n'est reliée à rien dans le code. Cliquez sur le bouton.

### 🏷️ Le filigrane

Un logo Celestory semi-transparent s'affiche en haut au centre de la fenêtre de test. Il disparaît si l'abonnement est **Premium**, **Pro** ou **Business**.

🔺 Subtilité vérifiée : le filigrane suit l'abonnement du **propriétaire du projet**, pas le vôtre. Si vous travaillez sur le projet de quelqu'un d'autre, c'est son abonnement à lui qui décide.

### 🍔 Démarrer sur un menu

Survolez le bouton Jouer sans cliquer : un petit volet se déplie avec une entrée **Ouvrir le menu …** par menu lançable du projet. Seuls les menus de type **Principal** et **Page** y figurent — les ATH et les Superpositions en sont exclus, ce qui est logique : ils ne sont pas des points de départ.

---

## 🎯 Jouer depuis un bloc précis

Oui, ça existe, mais ce n'est pas dans la barre d'outils. **Clic droit sur un bloc unique** dans le graphe → **Jouer depuis ce bloc**.

🔺 L'entrée n'apparaît que si **un seul** bloc est sélectionné (pas de groupe) **et** que ce bloc possède au moins une sortie de type flux. Un bloc qui ne fait que produire une valeur ne peut pas être un point de départ : rien ne partirait de lui.

C'est l'outil qui fait gagner le plus de temps quand vous corrigez la fin d'une histoire longue : inutile de rejouer les vingt premières minutes.

---

## 🔎 La fenêtre Débogue : trois onglets

### 📍 Onglet **Général** — où en est l'histoire

C'est le cœur du débogueur. Il affiche en permanence :

- **Bloc courant** : son **ID** et son **nom**, tous deux sélectionnables (donc copiables).
- **Centrer la vue sur le bloc** : ramène le graphe sur le bloc en train de jouer.
- **Recommencer** : relance l'histoire depuis le début. ⚠️ Cela **réinitialise aussi toutes les variables** à leur valeur de départ.
- Un sélecteur de langue + **Recommencer avec la langue sélectionnée**, si votre projet est traduit.
- **Charger le dernier checkpoint** et **Supprimer les données du dernier checkpoint** — uniquement si un checkpoint a été enregistré pendant la partie.
- **Remplacer scénario par le contenu joué** (voir plus bas ⤵️).

✨ Le meilleur du débogueur n'est même pas dans cette fenêtre : **le graphe se recentre tout seul sur le bloc en cours, à chaque étape**. Si l'histoire saute vers un autre graphe, l'éditeur l'ouvre puis s'y recentre. Placez la fenêtre de test à côté du canevas et regardez les deux : vous *voyez* votre histoire se dérouler bloc par bloc. C'est là que se repèrent les branchements qui partent du mauvais côté.

### 🔢 Onglet **Variables** — les valeurs en direct

Contrairement à ce qu'on lit parfois, **oui, le débogueur montre les valeurs de variables en temps réel.** L'onglet liste toutes les variables du projet, **groupées par type** (Textes, Nombres, Booléens, Images, Objets, Fichiers…), avec un champ de **recherche** en haut. Chaque valeur se met à jour à chaque étape de l'histoire.

Une variable qui n'a encore rien reçu affiche **Non défini**.

✨ Mieux : les valeurs sont **modifiables en place**. Changez un nombre dans l'onglet et l'histoire continue avec votre valeur. C'est la façon la plus rapide de tester une branche conditionnelle sans rejouer tout le chemin qui y mène.

🔺 Cette injection ne modifie **que la partie en cours**. Rien n'est écrit dans le graphe, et **Recommencer** remet tout à zéro.

### 📐 Onglet **Affichage** — les formats d'écran

- **Visualiser les ratios d'écran** : choisissez un format (9/16, 16/9, 21/9, 9/19.5…), puis **Redimensionner** applique ce format à la fenêtre de test. Utile pour voir ce que donne votre décor sur un téléphone en portrait.
- **Ratio du projet** : celui-ci, en revanche, **modifie réellement le projet**. Ne le touchez pas par curiosité.

⚠️ **Sur mobile, la fenêtre Débogue ne s'ouvre pas du tout.** En dessous de 768 pixels de large, le jeu se lance, mais sans aucun outil de suivi. Testez depuis un ordinateur.

---

## 🕰️ « Contenu test joué » : le débogueur rétrospectif

Voilà la fonction la moins connue et l'une des plus utiles. Elle ne vit pas dans la fenêtre Débogue mais dans la **fenêtre d'édition d'un bloc**.

Après avoir joué puis **fermé** la fenêtre de test, ouvrez un bloc que l'histoire a traversé. Tout en bas de sa fenêtre d'édition apparaît une section **Contenu test joué**, avec une ligne repliable **par test**, datée (« le 22/09/2026 à 14:35 »). Dépliez-la : vous voyez, **entrée par entrée**, la valeur que le bloc a réellement reçue pendant ce test.

C'est exactement ce qu'il faut pour répondre à « mais qu'est-ce qu'il avait, ce bloc, au moment où il a joué ? » — un texte assemblé à partir de variables, une réponse renvoyée par une IA, une ligne lue dans Baserow.

⚠️ Trois limites, toutes vérifiées :

- La section n'apparaît **qu'après la fermeture** de la fenêtre de test. Tant que vous jouez, rien n'est enregistré.
- L'historique n'est **jamais sauvegardé** avec le projet. Rechargez la page et tous les « Contenu test joué » disparaissent.
- Le titre de la section est en **français en dur dans le code** : il s'affiche en français même quand tout le reste du Creator est en anglais. Ce n'est pas un bug d'affichage de votre côté.

### 🔀 Et le bouton « Remplacer scénario par le contenu joué » ?

Ce bouton, dans l'onglet Général, **n'affiche rien du tout** : ce n'est pas une vue, c'est une **action d'écriture**. Il ouvre une fenêtre où vous choisissez une session (la session courante, ou un test daté), puis :

- **Remplacer** : écrase le contenu de chaque bloc joué dans le graphe par ce qui a été joué.
- **Dupliquer le module** : fait la même chose, mais dans une copie du module.

⚠️ **Remplacer est destructif.** Si votre contenu vient de variables ou d'une IA, dupliquez le module d'origine d'abord — c'est ce que conseille la fenêtre elle-même. La manipulation passe par l'historique, donc `Cmd/Ctrl + Z` peut la défaire, mais ne comptez pas là-dessus.

---

## 🙈 Ce que le débogueur ne montre pas

| Ce qu'on croit y trouver | La réalité |
|---|---|
| Un journal des étapes, façon liste déroulante | Non. Le chemin parcouru **est** enregistré en mémoire, mais **aucun écran ne l'affiche**. Vous ne voyez que le bloc courant. |
| Les erreurs de compilation | Non. Voir la section suivante : elles ne sortent que dans la console du navigateur. |
| Les sorties non reliées | Non. Une branche qui ne mène nulle part compile sans rien dire. |
| Un message quand un bloc échoue | Non. Un bloc qui reste bloqué reste simplement bloqué, et le « Bloc courant » n'avance plus. |
| Les valeurs de variables | Si ! C'est justement ce qu'il fait le mieux. 🎉 |

---

## 🔕 Les trois erreurs que personne ne vous dira

Celestory sait détecter trois défauts au moment de compiler votre projet. Il les range dans une liste d'erreurs… **qu'aucune interface ne lit**. Elles ne partent que dans la console technique du navigateur.

| Erreur | Ce qu'elle veut dire | Traduction disponible ? |
|---|---|---|
| `noStartFound` | Le module n'a **aucun** bloc **start**. | Oui, en français et en anglais — mais jamais affichée. |
| `tooManyStarts` | Le module a **plusieurs** blocs **start**. | ❌ **Aucune**, ni en français ni en anglais. |
| `blockNotFound` | Le graphe contient un bloc d'un type que cette version du Creator ne connaît pas. | ❌ **Aucune**, ni en français ni en anglais. |

**Ce que vous verrez à la place :** dans les deux premiers cas, le lecteur démarre sur un bloc de départ vide — la fenêtre **Tester en jouant** reste blanche et la fenêtre Débogue n'affiche aucun bloc courant. Pas de message, pas de croix rouge. Une fenêtre de jeu qui reste blanche au lancement, c'est **ça**, dans neuf cas sur dix.

🔺 Rassurez-vous : dans l'éditeur, ces deux erreurs sont difficiles à provoquer à la main. Ajouter un second **start** est refusé par un message (en anglais : *Can't add more start block in this graph*), le start ne se colle pas et ne se supprime pas. Elles apparaissent surtout sur un module **importé**, **dupliqué**, ou construit par **l'agent IA**. `blockNotFound`, lui, signale presque toujours un projet qui vient d'une autre version.

### 🔬 Comment les lire quand même

Deux chemins, tous les deux réels :

- **La fenêtre de développement.** Tapez les lettres **`d`**, puis **`b`**, puis **`g`** à la suite dans le canevas. Une fenêtre *Celestory Debug Mode* s'ouvre (en anglais). Choisissez **Build project save data** : vous obtenez la compilation complète de votre projet en texte. Cherchez-y `"errors"` : si le tableau n'est pas vide, vous avez le nom de l'erreur et le bloc concerné.
- **L'agent IA du graphe.** Son outil de validation compile le projet et **renvoie cette même liste d'erreurs**, en clair — plus les sorties qui ne mènent nulle part et les entrées de valeur qui ne lisent rien. Demandez-lui simplement de valider votre module.

🔺 Curiosité assumée : l'assistant IA a droit à un rapport d'erreurs que l'interface humaine n'a pas. 🤖

---

## 🗂️ Symptôme → cause probable → où regarder

| Symptôme | Cause probable | Où regarder |
|---|---|---|
| La fenêtre **Tester en jouant** reste blanche dès le lancement | Aucun bloc **start**, ou plusieurs, dans le module | `d` `b` `g` → **Build project save data** → chercher `"errors"` ; ou demander une validation à l'agent IA |
| La fenêtre de jeu reste blanche alors que le module a bien un start | Un bloc d'un type inconnu de cette version (`blockNotFound`) | Même endroit : l'erreur nomme le type de bloc fautif |
| **Ma correction n'a aucun effet** dans le test | La fenêtre de test a figé le projet à son ouverture | Fermez-la, rouvrez-la. Et vérifiez que vous avez bien cliqué **hors** de l'éditeur de code avant (voir *Quand rien ne marche…*) |
| **L'histoire s'arrête** et ne repart plus | Un bloc attend quelque chose qui n'arrive jamais (son externe, appel réseau…) | Onglet **Général** → le **Nom du bloc courant** ne change plus : c'est lui le coupable. **Centrer la vue sur le bloc** pour le retrouver |
| Un branchement part **toujours du même côté** | La condition lit une variable qui n'a pas la valeur attendue | Onglet **Variables** au moment du choix. Si la variable affiche **Non défini**, son entrée n'est reliée à rien |
| Un texte affiche `{{Prenom}}` **tel quel** | La variable n'a jamais été injectée dans le texte | Onglet **Variables** : la variable existe-t-elle avec ce nom exact, sans accent ? |
| **Je ne sais pas quelle valeur le bloc a reçue** | — | Fermez le test, ouvrez le bloc, dépliez **Contenu test joué** |
| Le test **repart du début** alors que je voulais tester la fin | Vous avez utilisé le bouton Jouer | Clic droit sur le bloc voulu → **Jouer depuis ce bloc** |
| Aucune fenêtre **Débogue** ne s'ouvre | Écran de moins de 768 px, ou fenêtre fermée par erreur | Agrandissez la fenêtre du navigateur, refermez et relancez le test |
| Un **logo Celestory** apparaît en haut du jeu | Abonnement inférieur à Premium **du propriétaire du projet** | Rien à corriger : c'est le filigrane, voir *Crédits IA et abonnement* |
| Mon collègue ne voit pas ce que je viens de tester | Jouer ne sauvegarde pas | `Cmd/Ctrl + S` |

---

## 🧭 La règle à retenir

**Le débogueur répond à « où en est l'histoire » et « que valent les variables ». Il ne répond jamais à « pourquoi ça ne marche pas ».** Cette réponse-là, c'est vous qui la construisez : en suivant le bloc courant dans le graphe, en lisant les variables au bon moment, et en dépliant « Contenu test joué » après coup.

Et rien de tout cela n'est enregistré. Chaque test qui vous a appris quelque chose s'évapore quand vous rechargez la page — notez ce que vous trouvez. 📝

---

→ Prochaine étape : maintenant que vous testez sérieusement, il reste le geste que Celestory ne fera jamais à votre place — direction **Sauvegarder : Celestory ne le fait pas pour vous**. 💾
