> ## 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).

# Tester son projet et lire le débogueur

# ▶️ Tester son projet et lire le débogueur

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*.

---

${frame}[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**. 💾