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

# Projet, module, graphe, bloc : qui contient quoi

# 🧱 Projet, module, graphe, bloc : qui contient quoi

Vous venez d'ouvrir Celestory et quatre mots reviennent sans arrêt : **projet**, **module**, **graphe**, **bloc**. Ils désignent quatre niveaux emboîtés, du plus grand au plus petit. Tant qu'on ne les a pas remis dans l'ordre, la barre latérale de gauche ressemble à une liste de dossiers sans logique. Une fois l'ordre posé, tout le reste de l'outil devient lisible. 🎯

Cet article ne montre pas comment créer quoi que ce soit : il pose seulement le **modèle mental**. Comptez cinq minutes, et gardez le schéma sous la main.

---

${frame}[Vidéo : Projet, module, graphe, bloc](https://celestory-docs-videos.netlify.app/fr/panorama-ia/projet-module-graphe-bloc.html)

## 🎭 Une image pour tenir le tout : le théâtre

Toute cette histoire tient dans une comparaison, qu'on va garder jusqu'au bout :

| Dans Celestory | Au théâtre |
|---|---|
| Le **projet** | Le théâtre : le bâtiment, et tout ce qu'il abrite. |
| Un **module** | Un spectacle à l'affiche, avec sa troupe et ses décors à lui. |
| Un **graphe** | Le conducteur d'un spectacle : la feuille qui dit ce qui se passe, et dans quel ordre. |
| Un **bloc** | Une ligne de ce conducteur : une réplique, un changement de décor, une question posée au public. |
| Une **variable** | Le tableau blanc du hall d'entrée : il n'y en a qu'un, et on le lit depuis n'importe quel spectacle. |

Retenez surtout la dernière ligne. **Le tableau blanc est dans le hall, pas dans les loges** — même si l'arbre de Celestory laisse croire l'inverse. C'est le piège central de cet article, et on y revient plus bas. ⚠️

---

## 🗺️ Le schéma de l'emboîtement réel

```plain text
PROJET
│
├── VARIABLES DU PROJET ◀────────────────────────────────────────────┐
│      une seule liste, à plat, valable partout                      │
│      ├─ prenomJoueur   (Texte)                                     │
│      ├─ pointsDeVie    (Nombre)                                    │
│      └─ Chapitre 2     (dossier : rangement visuel, rien de plus)  │
│                                                                    │
├── MENUS   accueil · pause · ATH · superposition                    │
│                                                                    │
├── MODULES   (1 au minimum)                                         │
│   │                                                                │
│   ├── « Intro »  —  modèle Chatbot                                 │
│   │     ├── Graphe de départ                                       │
│   │     │     [Départ] ──fil──▶ [Dialogue] ──fil──▶ [Choix]        │
│   │     │     + des groupes : des boîtes autour des blocs          │
│   │     ├── « Calcul du score »  ← autre graphe de CE module       │
│   │     ├── Personnages          ← à CE module                     │
│   │     ├── Scènes               ← à CE module                     │
│   │     ├── Contexte   n'est à personne : c'est un raccourci ──────┘
│   │     └── Réglages du module
│   │
│   └── « Chapitre 1 »  —  modèle Roman visuel
│         même structure, personnages et scènes DIFFÉRENTS
│
└── GRAPHES GLOBAUX
       rattachés à aucun module, appelables depuis n'importe lequel
```

Le trait qui remonte de **Contexte** vers **Variables du projet** est la seule flèche du schéma. Elle dit tout : cette ligne est rangée sous un module, mais elle ne lui appartient pas.

---

## 🏛️ Le projet : le niveau le plus haut

Le projet, c'est ce que vous ouvrez quand vous cliquez sur une vignette depuis votre page d'accueil. Il n'y a rien au-dessus.

Sont rangés **directement dans le projet**, à côté des modules et pas dedans :

-   les **variables** (et leurs dossiers de rangement) ;
-   les **menus** : les écrans hors histoire — accueil, pause, réglages, ATH ;
-   les **étiquettes**, les **traductions**, les **fichiers** de votre bibliothèque ;
-   les réglages de **connexion à des services externes** et les options d'export.

Autrement dit : **tout ce qui n'est pas explicitement rangé dans un module est rangé dans le projet.** C'est vrai jusque dans le fichier de sauvegarde, où la liste des modules et la liste des variables sont deux listes voisines, au même niveau.

---

## 🎬 Le module : un spectacle, un modèle

Un module est une **application complète et jouable**, avec sa propre allure. La barre latérale de gauche, intitulée **Modules**, en liste un par dossier.

À la création d'un module, vous choisissez son **modèle** (son « template ») parmi deux :

-   **Chatbot** — l'application ressemble à une conversation, façon messagerie ;
-   **Roman visuel** — l'application ressemble à un livre illustré plein écran.

🔺 Ce choix n'est pas cosmétique : il décide des blocs disponibles dans les graphes du module, et de ce que contient sa fenêtre de réglages. Un module Chatbot et un module Roman visuel n'ont pas le même catalogue de briques.

Un projet contient **au moins un module** — le bouton de suppression disparaît purement et simplement quand il n'en reste qu'un.

### Ce que la barre latérale affiche sous un module

| Ligne dans l'arbre | Ce que le clic ouvre | Portée réelle |
|---|---|---|
| **Graphe de départ** | Le graphe par lequel le module commence. Il n'a pas de nom modifiable. | Le module |
| *(vos graphes nommés)* | Les autres graphes que vous avez ajoutés à ce module. | Le module |
| **Personnages** | L'onglet Personnages des réglages du module. | Le module |
| **Scènes** | L'onglet des décors. **N'apparaît que sur un module Chatbot.** | Le module |
| **Contexte** | La fenêtre **« Variables du projet »**. | ⚠️ **Le projet entier** |
| **Réglages du module** | La fenêtre Paramètres du module (apparence, styles). | Le module |

> ⚠️ **Le piège « Contexte »**
> Quatre de ces cinq lignes désignent bien quelque chose qui appartient au module. La cinquième ment sur sa portée.
> **« Contexte » n'est pas le contexte de ce module.** C'est un simple raccourci vers la liste des variables du projet — exactement la même fenêtre que le raccourci clavier `Cmd+Shift+V` (`Ctrl+Shift+V` sous Windows). Ouvrez-la : son titre affiche noir sur blanc **« Variables du projet »**.
> Conséquence concrète : si vous cliquez sur « Contexte » sous le module *Intro* puis créez une variable, elle est visible et modifiable depuis *Chapitre 1*, et depuis tous les autres modules que vous créerez ensuite. Il n'existe **aucun** moyen de donner une variable à un seul module.

---

## 🕸️ Le graphe : le conducteur du spectacle

Un graphe est une grande page vierge (sans grille ni magnétisme) sur laquelle vous posez des **blocs** et les reliez par des **fils**. C'est là que vit toute la logique : ce qui se dit, ce qui se demande, ce qui se calcule, ce qui se décide.

Un graphe contient exactement trois sortes de choses :

-   les **blocs** — les briques d'action ;
-   les **connexions** (les fils) — elles disent quel bloc suit quel bloc ;
-   les **groupes** — de simples boîtes colorées et nommées que vous dessinez autour d'un paquet de blocs pour vous y retrouver. Un groupe ne change rien au déroulement, il range.

### Graphe de départ et graphes nommés

Le **graphe de départ** est créé en même temps que le module, et il contient un unique bloc : **Départ**. C'est le point d'entrée : quand le module se lance, l'exécution part de là.

🔺 Le bloc **Départ** est unique dans un graphe : Celestory refuse d'en ajouter un second, et refuse aussi de supprimer celui qui est là.

Les autres graphes, vous les créez vous-même (bouton **Ajouter ▸ Ajouter un graphe**), et vous leur donnez un nom. Ils ne commencent pas par un bloc Départ mais par une paire **Entrée** / **Sortie** : ce sont des sous-parties qu'on appelle depuis un autre graphe, avec le bloc **Ouvrir un graphe**, et qui rendent la main quand elles sont finies. Pratique pour sortir un long calcul ou une scène répétée du conducteur principal.

> 🔺 **Qui peut appeler qui ?**
> Depuis un graphe d'un module, le bloc **Ouvrir un graphe** ne vous propose que : les graphes **du même module**, et les **graphes globaux**. Les graphes d'un autre module n'apparaissent jamais dans la liste. Un module ne va pas se servir chez le voisin.

---

## 🌍 Les graphes globaux : les numéros passe-partout

Tout en bas de la barre latérale, un dossier **Graphes globaux** rassemble les graphes rattachés à **aucun** module. Ce sont vos numéros passe-partout : n'importe quel module peut les appeler.

On en crée un en choisissant **« Aucun »** dans le menu déroulant *Module* de la fenêtre d'ajout de graphe. On peut aussi faire glisser un graphe existant depuis un module vers ce dossier.

> ⚠️ **Rendre un graphe global détruit une partie de son contenu**
> Un graphe global doit pouvoir tourner dans un module Chatbot comme dans un module Roman visuel. Il ne peut donc contenir que des blocs communs aux deux.
> Quand vous faites glisser un graphe d'un module vers **Graphes globaux**, Celestory vous avertit, puis **supprime tous les blocs liés au modèle** — les blocs Dialogue, Choix, Notification et compagnie disparaissent, et les fils qui y menaient avec eux. Seuls les blocs neutres (conditions, variables, calculs, appels de services) survivent.
> Vérifiez bien le contenu du graphe avant d'accepter. L'opération est annulable dans l'instant (`Cmd+Z`), pas trois manipulations plus tard.

🔺 Faire glisser un graphe d'un module **vers un autre module** ne détruit rien — mais Celestory ne l'autorise que si les deux modules ont le **même modèle**. Chatbot vers Chatbot : oui. Chatbot vers Roman visuel : le dépôt est refusé.

---

## 🔑 Ce qui est partagé, et ce qui ne l'est pas

C'est le tableau à retenir. Il répond à 90 % des « mais pourquoi je ne retrouve pas… ? » des premiers jours.

| Élément | Partagé entre les modules ? | Où il vit réellement |
|---|---|---|
| **Variables** | ✅ Oui, toutes, tout le temps | Le projet — une seule liste, à plat |
| **Menus** (accueil, pause, ATH…) | ✅ Oui | Le projet |
| **Étiquettes, traductions, fichiers** | ✅ Oui | Le projet |
| **Graphes globaux** | ✅ Oui | Le projet, hors de tout module |
| **Personnages** | ❌ Non | Le module |
| **Scènes / décors** | ❌ Non | Le module (Chatbot uniquement) |
| **Réglages et styles du module** | ❌ Non | Le module |
| **Graphes rattachés à un module** | ❌ Non | Le module |
| **Blocs, fils, groupes** | ❌ Non | Le graphe qui les contient |

Trois conséquences qu'on ne devine pas :

1.  **Les dossiers de variables ne cloisonnent rien.** Vous pouvez ranger vos variables dans des dossiers, et même des dossiers dans des dossiers. C'est du rangement visuel, rien d'autre : un dossier ne rend pas une variable privée, ni propre à un module.
2.  **Supprimer un module ne supprime pas ses variables.** Ses graphes partent avec lui ; les variables que ces graphes utilisaient restent dans la liste du projet, orphelines. À vous d'aller faire le ménage.
3.  **Exporter un module va chercher les variables ailleurs.** Quand vous exportez un module dans un fichier, Celestory parcourt ses blocs pour ramasser les variables qu'ils utilisent — précisément parce qu'elles ne sont pas dedans.

---

## 🚪 Passer d'un module à l'autre

Un module ne s'enchaîne pas tout seul sur le suivant : rien ne relie deux modules comme un fil relie deux blocs. Il existe trois façons de désigner le module qui doit s'ouvrir.

| Depuis… | Le réglage | Ce qu'il fait |
|---|---|---|
| **Un graphe** | Le bloc **Ouvrir un module**, champ *Module* | Bascule vers le module choisi, en pleine histoire. Il propose tous les modules du projet. |
| **Un menu** | L'élément **Bouton commencer**, réglage *Module à ouvrir* | Lance le module choisi depuis un écran d'accueil. |
| **L'export** | Le choix *Module de départ* (ou *Menu de départ*) | Décide par quoi l'application exportée commence. |

Dans les trois cas, c'est bien vous qui choisissez **quel** module. Aucun de ces réglages n'est figé sur le premier module de la liste — le premier module est seulement la valeur proposée par défaut, changeable dans un menu déroulant.

> 🔺 **Les variables traversent le changement de module**
> Quand un bloc **Ouvrir un module** vous fait basculer, les valeurs en cours ne bougent pas : le score gagné dans *Intro* est toujours là dans *Chapitre 1*. C'est le fonctionnement normal, et c'est la raison d'être d'une liste de variables commune.
> La seule exception est l'interrupteur **Réinitialiser les variables** du *Bouton commencer* d'un menu : activé, il remet toutes les variables à leur valeur d'origine au lancement. C'est ce qu'on veut sur un bouton « Nouvelle partie », et ce qu'on ne veut surtout pas sur un bouton « Continuer ».

---

## 🧭 Les trois mots qu'on ne vous a pas expliqués

Vous les croiserez dès le premier graphe ouvert :

-   **Bloc** — une brique posée sur le graphe. Elle fait une chose : afficher une réplique, poser une question, comparer deux valeurs.
-   **Point** — une petite pastille sur le bord d'un bloc. Les points de gauche sont ce que le bloc reçoit, ceux de droite ce qu'il donne.
-   **Fil** — le trait que vous tirez d'un point à un autre pour dire « et ensuite ».

Ces trois-là ont leur propre article : **Relier deux blocs : le fil, les triangles et les cercles**. Il explique pourquoi certains points sont des triangles et d'autres des cercles, et pourquoi certaines liaisons sont refusées.

---

## ✅ Le résumé en cinq phrases

1.  Un **projet** contient des **modules**, et à côté d'eux une liste de **variables** commune à tous.
2.  Un **module** est une application jouable, bâtie sur un modèle (Chatbot ou Roman visuel), avec ses personnages, ses décors et ses réglages à lui.
3.  Un **graphe** est le conducteur : des **blocs** reliés par des **fils**. Chaque module a son graphe de départ, plus les graphes nommés que vous ajoutez.
4.  Les **graphes globaux** n'appartiennent à personne et servent tout le monde — au prix de ne contenir que des blocs neutres.
5.  Sous un module, la ligne **Contexte** ouvre les variables **du projet entier** : l'étiquette ment sur sa portée.

---

→ Prochaine étape : passez à la pratique avec **Votre premier projet : de la page blanche au premier écran**, qui reprend ces quatre niveaux dans l'ordre où vous allez les rencontrer. 🚀