Le mécanisme tient en une phrase : **tout mot écrit entre doubles accolades dans un champ de texte fait apparaître un nouveau point d'entrée sur le bloc.** Vous posez un trou dans votre phrase, et Celestory fabrique la prise qui va le remplir. 🪄

---

## ✍️ Le principe en trois temps

Dans un bloc Dialogue, vous tapez :

```plain text
Bonjour {{Prenom}} ! Vous avez {{Score}} points.
```

1. **Vous écrivez.** Deux entrées apparaissent sur le bloc : `Prenom` et `Score`.
1. **Vous reliez.** Ce sont des points comme les autres : branchez-y une variable, la sortie d'un autre bloc, ou saisissez une valeur en dur.
1. **Celestory remplace.** À l'exécution, chaque référence cède la place à la valeur reçue.

🔺 **Une seule accolade ne déclenche rien.** `{Prenom}` s'affichera tel quel, littéralement.

🔺 **Créer le point ne suffit pas, il faut le câbler.** Une entrée laissée en l'air est remplacée par **du vide** : votre phrase devient « Bonjour  ! Vous avez  points. », sans le moindre message d'erreur.

---

## 🔤 Ce que vous avez le droit d'écrire entre les accolades

Le nom n'accepte que les **lettres non accentuées**, les **chiffres** et le **tiret bas** `_`. Tout le reste casse la détection **en silence** : aucune entrée n'est créée.

```plain text
{{Prenom}}        ✅ détecté
{{Score_2}}       ✅ détecté
{{Prénom}}        ❌ l'accent bloque tout
{{mon-score}}     ❌ le tiret n'est pas accepté
{{ Prenom }}      ❌ les espaces non plus
```

🔺 Non, vous **ne pouvez pas** écrire `{{Prénom}}`. Mettez les accents dans le reste de la phrase, jamais dans l'accolade.

🔺 La casse compte : `{{Score}}` et `{{score}}` créent **deux entrées différentes**.

---

## 🔁 La même variable citée plusieurs fois

```plain text
Bravo {{Prenom}} ! Vraiment, {{Prenom}}, quelle partie.
```

Celestory ne crée **qu'un seul point** `Prenom`, pas deux. Vous le branchez une fois, et **toutes** les occurrences sont remplacées. ✅

---

## 🎚️ Quel type pour le point créé ?

Le point n'est pas figé sur « Texte ». Il accepte indifféremment du **Texte**, un **Nombre**, un **Booléen**, une **Date**, une **Sélection unique** ou une **Sélection multiple**, et la valeur est convertie en texte à l'affichage.

Deux blocs acceptent en plus un **Objet** : **Formater texte** et le **Dialogue** du template Chatbot. L'objet y est inséré sous sa forme brute, ce qui est pratique pour déboguer mais rarement élégant pour un joueur.

Le bloc **HTML5**, lui, accepte deux types que les autres n'ont pas : une **Couleur** (insérée sous sa forme `#1f5fd0`) et une **Unité CSS** (insérée avec son unité, `12px`). Il n'accepte en revanche ni l'Objet, ni la Date, ni les sélections (les nouveautés de cette page valent pour les neuf autres blocs). Voir **Paramétrer une app HTML5 depuis le Graphe**.

### 🏷️ Une sélection s'écrit avec le libellé de l'option

Branchez une variable **Sélection unique** ou **Sélection multiple** sur le point : le texte affiche **le libellé de l'option choisie**, dans la langue du joueur si vous avez traduit les options. Pour une sélection multiple, ce sont les libellés des options cochées, séparés par une virgule et une espace (« Livre, Arc »), dans l'ordre de la liste d'options. Voir [Variables de sélection (unique et multiple)](lien:elements-de-loutil/variables-de-selection.md).

### 📅 Une date s'écrit en toutes lettres

Branchez une **Date** (variable ou bloc de date) : le texte affiche la date et l'heure, avec le mois en toutes lettres, **dans la langue du joueur**, sinon dans la langue du projet, sinon dans celle de l'appareil, et à l'heure de l'appareil du joueur. Pour un autre format (jour de la semaine seul, format court, motif personnalisé), passez d'abord par le bloc **Formater une date** et branchez son texte.

---

## 🧱 Les blocs concernés

Le mécanisme n'est pas universel : il vit dans dix blocs.

**Quel que soit le template :** **Formater texte** (le bloc dédié, qui ne fait que ça et renvoie le texte assemblé), **Notification**, et **HTML5**, où les accolades se posent dans le code, pas dans un champ de texte.

**Template Chatbot :** **Dialogue**, **Choix avec dialogue**, **Narrateur**, **Alerte**.

**Template Visual Novel :** **Dialogue**, **Alerte**, **Slide**.

🔺 Partout ailleurs, `{{...}}` n'est que du texte ordinaire. Besoin d'une phrase dynamique dans un autre bloc ? Fabriquez-la avec **Formater texte** et branchez sa sortie là où il faut.

---

## ⚠️ Renommer une référence, c'est perdre son câble

Un point n'est reconnu que par son nom exact. Si vous corrigez `{{Prenom}}` en `{{PrenomJoueur}}`, Celestory considère que l'ancien point n'existe plus : **il le supprime, et supprime le lien qui y était branché.** Le nouveau point apparaît vierge. De même, effacer `{{Score}}` de la phrase fait disparaître l'entrée `Score`.

Vérifiez donc vos branchements après chaque retouche de texte, surtout sur un bloc qui compte cinq ou six références.

---

→ Prochaine étape : ouvrez un bloc **Formater texte**, écrivez `Bonjour {{Prenom}}, vous avez {{Score}} points.`, reliez les deux entrées à vos variables et branchez la sortie sur un bloc Dialogue. Vous tenez la brique de base de toute personnalisation dans Celestory.
