Cet article est aussi disponible en :

Une variable, c'est se souvenir

🧠 Une variable, c'est se souvenir


Au chapitre 1, votre lecteur a le choix : dire la vérité au garde, ou lui mentir. Il ment. Trois chapitres plus tard, le garde le recroise — et devrait s'en souvenir.


Sans mémoire, votre graphe ne peut rien faire de ce mensonge. Il lui faudrait dupliquer toute la suite de l'histoire : une version « il a menti » et une version « il a dit la vérité », en double, jusqu'à la fin. Ajoutez un deuxième choix mémorable et vous passez à quatre copies, un troisième à huit. 😱


Une variable, c'est exactement ce qui évite ça : un endroit où votre histoire note quelque chose, pour le relire plus tard. Un post-it que le projet garde en poche pendant toute la partie. 📝


🔺 Pas de maths là-dedans. Une variable Celestory n'est pas une inconnue à trouver : c'est une étiquette avec une valeur écrite dessus. AMenti = vrai. Points = 12. PrenomJoueur = Camille. Vous écrivez dessus quand vous voulez, vous relisez quand vous voulez.




🪟 La fenêtre Variables


Deux chemins pour l'ouvrir :


  • le menu de projet (le bouton bleu en haut à gauche) → Variables ;
  • le raccourci Cmd+Maj+V (Ctrl+Maj+V sous Windows).


La fenêtre s'intitule « Variables du projet ». Ce titre n'est pas un détail de vocabulaire — retenez-le, on y revient plus bas.


Elle se lit en deux colonnes : à gauche la liste de vos variables (avec un champ « Rechercher une variable… » au-dessus), à droite la fiche de celle que vous avez sélectionnée. Tant que vous n'en avez aucune, la colonne de droite affiche simplement « Ajoutez votre première variable pour ajouter de l'intelligence à votre scénario ».


➕ Créer une variable


Bouton Ajouter variable en bas de la colonne de gauche. Une petite fenêtre demande trois choses :


  1. Type de la variable (ne peut pas être changé) — le menu déroulant du tableau ci-dessous. ⚠️ C'est définitif : pour changer de type, il faut supprimer et recréer.
  2. De (ne peut pas être changé) — ce deuxième menu n'apparaît que si vous avez choisi Liste : il demande de quoi la liste est faite.
  3. Nom de la variable (peut être changé) — celui-ci, oui, se renomme à tout moment.


Le bouton de validation refuse de s'activer et affiche « Cette variable existe déjà » si le nom est déjà pris. 👍


🎚️ La valeur initiale


Sur la fiche de droite, sous le nom, un champ Valeur initiale. C'est la valeur que la variable aura au tout début de la partie, avant que quoi que ce soit ne l'ait modifiée.


Pour sept types sur huit, Celestory crée cette valeur tout seul à la création, avec une valeur de départ neutre : 0 pour un Nombre, faux pour un Booléen, un texte vide (multiligne) pour un Texte. Vous n'avez qu'à la corriger si elle ne vous convient pas.


🔺 Seul le type Image de fond ne fabrique rien automatiquement : sa valeur initiale reste vide tant que vous ne la remplissez pas.


🔺 Une valeur initiale vide n'est pas une erreur, et ne produit aucun message : elle produit du vide, silencieusement, partout où vous lirez la variable. Prenez l'habitude de la remplir.



📋 Les types de variables disponibles


Huit types, dans l'ordre exact du menu déroulant :


Type

Ce qu'il retient

Exemple d'usage

Texte

Une chaîne de caractères, sur une ou plusieurs lignes.

Le prénom du joueur, une réponse saisie, un long contexte pour l'IA.

Booléen

Vrai ou faux, rien d'autre. Valeur de départ : faux.

« A menti au garde », « a trouvé la clé », « a vu le tutoriel ».

Nombre

Une valeur chiffrée. Valeur de départ : 0.

Points, vies, argent, compteur de tentatives.

Image

Un fichier image.

Le portrait choisi par le joueur.

Liste

Une collection ordonnée d'un même type, demandé à la création : Fichier, Texte, Image, Nombre, Objet, Booléen ou Image de fond.

L'inventaire, les indices déjà trouvés.

Objet

Un ensemble de paires clé/valeur, modifiable champ par champ ou en JSON brut.

Une fiche de personnage complète, une réponse d'API.

Fichier

Un fichier générique, tous formats.

Un document déposé par le joueur.

Image de fond

Une image combinée à une couleur, une position et une répétition.

Le décor courant, qui change selon l'avancée.


🔺 Les types Booléen, Fichier et Liste n'offrent pas le bouton Vider : leur valeur ne peut pas être remise à « rien », seulement remplacée.



🎬 L'exemple filé : le garde se souvient du mensonge


Quatre étapes, du début à la fin.


1️⃣ Créer la variable


Cmd+Maj+V → Ajouter variable → type Booléen → nom AMenti. Sa valeur initiale s'affiche à faux : au démarrage, personne n'a menti. ✅


2️⃣ L'écrire au chapitre 1


Dans le graphe, juste après la branche « je mens » de votre bloc Choix, ajoutez un bloc Assignation. Il a trois entrées :


  • in — le fil qui arrive du choix ;
  • variable — quelle variable écrire ;
  • valeur — quoi y écrire.


Sur l'entrée variable, ouvrez le sélecteur et choisissez AMenti. 🔎 L'entrée valeur n'existe pas encore : elle apparaît automatiquement dès que vous avez désigné la variable, et elle prend d'elle-même le bon type (ici une case à cocher, puisque AMenti est un Booléen). Cochez-la : vrai.


🔺 Refermez la fenêtre : si rien n'est relié à variable ni à valeur, le bloc se replie sur le graphe en une pastille AMenti = vrai, avec seulement in et out. La variable et la valeur ne se règlent plus alors que dans la fenêtre d'édition (double-clic).


Branchez la sortie out sur la suite de la scène. Voilà, le mensonge est noté. 🖊️


3️⃣ La relire au chapitre 4


Là où le garde le recroise, posez un bloc Condition. Il a une entrée condition qui attend un Booléen. Deux sorties : vrai et faux.


Pour y amener AMenti, deux façons strictement équivalentes :


  • Le bloc Variable — un petit bloc qui ne porte que le nom de la variable et une seule sortie. Posez-le, tirez un fil de sa sortie vers l'entrée condition.
  • Directement sur le point — ouvrez la fenêtre d'édition du bloc Condition et, sur le champ condition, utilisez l'option Sélectionner une variable. Pas de fil, pas de bloc en plus : le champ pointe sur la variable.


Dans les deux cas, la lecture est vivante : Celestory va chercher la valeur au moment où le joueur passe, pas celle d'origine.


Branchez vrai sur « Tiens, le menteur… » et faux sur « Bonsoir, honnête voyageur. » 🎭


🔺 Le bloc Condition a son propre article : ☑️ Mettre en place des conditions vrai/faux. Il détaille les comparaisons, les combinaisons de tests et les branchements multiples. Une variable sans condition ne sert à rien, une condition sans variable non plus : les deux articles se lisent à la suite.


4️⃣ Vérifier que ça marche


Lancez le lecteur et ouvrez son panneau Variables. Vous y voyez la liste complète, avec la valeur en direct, qui change sous vos yeux quand le bloc Assignation passe. Vous pouvez même y forcer une valeur à la main pour tester la branche du chapitre 4 sans rejouer le chapitre 1. 🧪



🔎 ⚠️ Pourquoi vous ne trouverez jamais le bloc « Variable » dans la recherche


C'est le piège le plus déroutant de ce chapitre, et il mérite son encadré.


Ouvrez le menu d'ajout de bloc, tapez variable : rien. Le bloc Variable est délibérément exclu de la liste des blocs et de sa recherche. 🙈


Il se trouve ailleurs : tout en bas du menu d'ajout, sous un titre « Variables », où Celestory liste vos variables par leur nom. Cliquer sur AMenti pose un bloc Variable déjà relié à AMenti. Le champ de recherche filtre bien cette section — mais par nom de variable, pas par nom de bloc : tapez AMenti, pas variable.


🔺 Conséquence directe : tant que vous n'avez déclaré aucune variable, la section n'existe pas et le bloc est parfaitement introuvable. Ce n'est pas un bug d'affichage : créez d'abord la variable dans la fenêtre Variables, le bloc apparaîtra ensuite.


🔺 Autre chemin, pratique une fois qu'on le connaît : tirez un fil depuis une entrée et lâchez-le dans le vide. Le menu d'auto-complétion qui s'ouvre propose, en plus des blocs, toutes vos variables du bon type — et pose le bloc déjà branché. ⚡



🌍 ⚠️ La portée : il n'y a qu'un seul sac, et il est commun


Point capital, et contre-intuitif : une variable Celestory est globale au projet entier.


Pas au module. Pas au graphe. Pas à la scène. Il n'existe qu'une seule liste, plate, partagée par tout le projet — c'est bien ce que dit le titre de la fenêtre, « Variables du projet ». Le AMenti que vous écrivez dans le module « Prologue » est exactement le même que celui que vous lisez dans le module « Épilogue ». Une variable créée depuis n'importe où est immédiatement visible partout.


C'est très pratique — c'est ce qui permet à une histoire de traverser ses modules sans rien perdre — mais ça a trois conséquences à connaître :


  • 🔺 Les noms se bousculent. Deux collaborateurs qui créent chacun un Compteur dans « leur » partie travaillent en réalité sur la même case mémoire. Préfixez : Ch1_Compteur, Combat_Compteur.
  • 🔺 Supprimer une variable frappe tout le projet. Celestory parcourt tous les graphes, supprime tous les blocs Variable qui y renvoient, et vide tous les champs qui la désignaient. C'est propre, c'est complet, et c'est irréversible d'un clic (l'annulation reste votre filet).
  • 🔺 Renommer en double échoue en silence. Si vous tapez un nom déjà porté par une autre variable, le renommage est purement et simplement ignoré : aucun message, l'ancien nom reste. Vérifiez que le nouveau nom s'est bien affiché.



🎭 ⚠️ Le piège « Contexte » dans la barre latérale


Dépliez un module dans la barre latérale de gauche : sous chacun s'affiche une entrée Contexte (icône bulle de dialogue).


Le mot suggère fortement « les variables de ce module ». Ce n'est pas le cas. Ce raccourci ouvre la fenêtre Variables du projet, à l'identique, sans aucun filtre de module. Cliquez sur « Contexte » sous le module A ou sous le module B : vous obtenez rigoureusement la même liste.


🔺 « Contexte » est un raccourci vers la fenêtre Variables, rien de plus. Il est rangé sous chaque module par commodité d'accès, pas parce qu'il y aurait un contexte par module. Il n'en existe pas.



🗂️ Les groupes : des dossiers, et rien d'autre


La fenêtre Variables propose un bouton Ajouter groupe, et chaque groupe peut contenir des sous-groupes. On peut y glisser ses variables, plier et déplier l'arborescence.


🔺 Un groupe est purement cosmétique. Il range l'affichage, un point c'est tout. Il ne crée aucun cloisonnement : une variable rangée dans le dossier « Combat » reste lisible et modifiable depuis n'importe quel bloc du projet, exactement comme les autres. Rangez pour vous y retrouver, jamais pour isoler.



✍️ Les quatre blocs qui écrivent dans une variable


Bloc

Ce qu'il fait

Types acceptés

Assignation

Écrit une valeur dans une variable, en remplaçant l'ancienne.

Nombre, Texte, Booléen, Image, Liste, Image de fond, Fichier, Objet.

Assignation Multiple

La même chose, pour plusieurs variables d'un coup. Une entrée nombre règle combien de couples variable/valeur le bloc affiche.

Les mêmes.

Incrémentation

Ajoute une quantité à la valeur actuelle (1 par défaut).

Nombre uniquement.

Décrémentation

Retire une quantité à la valeur actuelle (1 par défaut).

Nombre uniquement.


🔺 Incrémentation et Décrémentation sont la bonne réponse à « ajouter un point » : elles lisent, calculent et réécrivent en un seul bloc. Faire la même chose avec une Assignation demanderait de lire la variable, de l'additionner ailleurs, puis de la réassigner. 🎯


🔺 Le bloc Variable, lui, ne fait que lire. Il n'a pas d'entrée, seulement une sortie. Il ne modifie jamais rien.



💬 Afficher une variable dans une phrase


Vous n'avez pas besoin d'un montage compliqué pour écrire « Vous avez 12 points ». Il suffit d'écrire, dans le champ de texte du bloc, Vous avez {{Points}} points. : la double accolade fait apparaître une entrée Points sur le bloc, que vous branchez à votre variable.


C'est un mécanisme à part entière, avec ses règles (pas d'accents entre les accolades, la casse compte, dix blocs concernés seulement) — tout est dans l'article 🧩 Injecter une variable dans un texte : les doubles accolades. Ne repartez pas d'ici sans l'avoir lu si vous voulez du texte personnalisé.



💾 Ce qui survit d'une session de jeu à l'autre


Question naturelle : si le joueur ferme l'onglet et revient demain, AMenti est-il toujours à vrai ?


Seulement si vous l'avez prévu. Il existe bien une sauvegarde de partie, mais elle n'est pas automatique : elle repose sur deux blocs.


  • Le bloc Sauvegarde enregistre, à l'instant où le joueur le traverse, tout l'état de la partie : la position dans le graphe, le module en cours, la pile d'appels… et la valeur de toutes les variables. Le tout est écrit dans le navigateur du joueur, une sauvegarde par projet.
  • Le bloc Charger sauvegarde restaure cet état. Il possède une sortie pas de sauvegarde trouvé pour le cas — fréquent — où le joueur vient pour la première fois.


🔺 Sans bloc Sauvegarde dans votre graphe, rien n'est conservé. À la fermeture, toutes les variables repartent de leur valeur initiale.


🔺 La sauvegarde est un instantané, pas un enregistrement continu : ce qui s'est passé après le dernier passage dans un bloc Sauvegarde est perdu. Posez-en un à chaque fin de chapitre.


🔺 Elle vit dans le navigateur du joueur. Changer d'appareil, de navigateur, ou vider les données du site : la sauvegarde disparaît.


🔺 Côté menus, le Bouton commencer possède une option Réinitialiser les variables. Activée, elle remet tout à la valeur initiale en lançant le module ; désactivée, elle conserve l'état courant. C'est exactement la différence entre « Nouvelle partie » et « Reprendre ». 🎮



🩹 Deux détails qui surprennent


🔺 Le bloc Variable garde l'ancien nom. Son étiquette est copiée au moment où vous le posez, et n'est pas remise à jour si vous renommez la variable ensuite. Le lien reste correct — c'est bien la bonne variable qui est lue — mais le graphe affiche un nom périmé. Remplacez le bloc pour rafraîchir l'affichage.


🔺 Une variable non branchée ne se plaint pas. Que la valeur initiale soit vide, qu'un point value reste en l'air ou qu'une entrée attende un fil qui n'arrive jamais, Celestory ne dit rien : il utilise du vide et continue. Le panneau Variables du lecteur est votre seul témoin fiable. 🔦



→ Prochaine étape : votre histoire sait maintenant se souvenir — reste à le vérifier de vos yeux. Direction Tester son projet et lire le débogueur, pour lancer une partie et regarder vos variables changer en direct, valeur par valeur. C'est là que l'on découvre si le post-it a vraiment été écrit. 🔍

Mis à jour le : 23/09/2026

Cet article a-t-il répondu à vos questions ?

Partagez vos commentaires

Annuler

Merci !