diff --git a/changelog.md b/changelog.md
index 7c8abb4c..f6c18f52 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,6 @@
 # 12.0
 ## 12.0.21 - La nomination d'Astrobazzarh
+- Les noms pour les messages dans le tchat sont maintenant ceux des tokens plutôt que ceux des acteurs
 - Fix: le choix des effets dans les options s'affiche correctement
 
 ## 12.0.20 - Le tableau d'Astrobazzarh
diff --git a/module/actor.js b/module/actor.js
index 848368ac..d0c962cf 100644
--- a/module/actor.js
+++ b/module/actor.js
@@ -181,7 +181,7 @@ export class RdDActor extends RdDBaseActorSang {
         whisper: ChatUtility.getOwners(this),
         content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-potionenchantee-chateaudormant.html`, {
           pr: nouveauReve,
-          alias: this.name,
+          alias: this.getAlias(),
           potionName: it.name,
           potionImg: it.img
         })
@@ -1341,7 +1341,7 @@ export class RdDActor extends RdDBaseActorSang {
     const etat = this.getEtatGeneral({ ethylisme: true });
     const nbDoses = Number(this.system.compteurs.ethylisme.nb_doses || 0);
     const ethylismeData = {
-      alias: this.name,
+      alias: this.getAlias(),
       actor: this,
       vie: this.system.sante.vie.max,
       alcool: alcool,
@@ -1426,7 +1426,7 @@ export class RdDActor extends RdDBaseActorSang {
     const perteDissolution = Math.max(0, Math.min(dissolution, conversion));
 
     let stressRollData = {
-      alias: this.name,
+      alias: this.getAlias(),
       selectedCarac: this.system.carac.reve,
       rolled: stressRoll,
       stress: fromStress,
@@ -1517,7 +1517,7 @@ export class RdDActor extends RdDBaseActorSang {
         carac.value = niveauSuivant;
 
         let checkXp = {
-          alias: this.name,
+          alias: this.getAlias(),
           carac: caracName,
           value: niveauSuivant,
           xp: carac.xp
@@ -1547,7 +1547,7 @@ export class RdDActor extends RdDBaseActorSang {
         newCompData.system.niveau += 1;
         newCompData.system.xp = newXP;
         let checkXp = {
-          alias: this.name,
+          alias: this.getAlias(),
           competence: newCompData.name,
           niveau: newCompData.system.niveau,
           xp: newCompData.system.xp,
@@ -1784,7 +1784,7 @@ export class RdDActor extends RdDBaseActorSang {
     }
     const competence = this.getCompetence(compName);
     let rollData = {
-      alias: this.name,
+      alias: this.getAlias(),
       caracValue: Number(carac.value),
       selectedCarac: carac,
       competence: competence,
@@ -1857,7 +1857,7 @@ export class RdDActor extends RdDBaseActorSang {
       label: 'Jet ' + Grammar.apostrophe('de', competence.name),
       template: 'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-competence.html',
       rollData: {
-        alias: this.name,
+        alias: this.getAlias(),
         carac: this.system.carac,
         selectedCarac: this.getCaracByName(caracName),
         selectedCaracName: caracName,
@@ -2930,7 +2930,7 @@ export class RdDActor extends RdDBaseActorSang {
 
     let newQuantite = herbeData.system.quantite - herbeData.nbBrins;
     let messageData = {
-      alias: this.name,
+      alias: this.getAlias(),
       nbBrinsReste: newQuantite,
       potion: newPotion,
       herbe: herbeData
diff --git a/module/actor/base-actor-reve.js b/module/actor/base-actor-reve.js
index 50680bb4..fbbf03ca 100644
--- a/module/actor/base-actor-reve.js
+++ b/module/actor/base-actor-reve.js
@@ -117,7 +117,7 @@ export class RdDBaseActorReve extends RdDBaseActor {
     for (let effect of this.getEffects()) {
       if (effect.duration.type !== 'none' && (effect.duration.remaining <= 0 || options.terminer)) {
         await effect.delete();
-        ChatMessage.create({ content: `${this.name} n'est plus ${Misc.lowerFirst(game.i18n.localize(effect.system.label))} !` });
+        ChatMessage.create({ content: `${this.getAlias()} n'est plus ${Misc.lowerFirst(game.i18n.localize(effect.system.label))} !` });
       }
     }
   }
@@ -288,7 +288,7 @@ export class RdDBaseActorReve extends RdDBaseActor {
 
     await this.openRollDialog({
       name: `jet-${this.id}`,
-      label: `Jet de ${this.name}`,
+      label: `Jet de ${this.getAlias()}`,
       template: 'systems/foundryvtt-reve-de-dragon/templates/dialog-roll.html',
       rollData: {
         carac: carac,
@@ -463,7 +463,7 @@ export class RdDBaseActorReve extends RdDBaseActor {
 
   async $afficherEncaissement(encaissement, show, defenderToken) {
     foundry.utils.mergeObject(encaissement, {
-      alias: defenderToken?.name ?? this.name,
+      alias: defenderToken?.name ?? this.getAlias(),
       hasPlayerOwner: this.hasPlayerOwner,
       show: show ?? {}
     }, { overwrite: false });
@@ -496,7 +496,7 @@ export class RdDBaseActorReve extends RdDBaseActor {
     }
     const rolled = await RdDResolutionTable.roll(this.getReveActuel(), - Number(entite.system.carac.niveau.value));
     const rollData = {
-      alias: this.name,
+      alias: this.getAlias(),
       rolled: rolled,
       entite: entite.name,
       selectedCarac: this.system.carac.reve
@@ -516,7 +516,7 @@ export class RdDBaseActorReve extends RdDBaseActor {
   isEntiteAccordee(attacker) { return true }
 
   async setEntiteReveAccordee(actor) {
-    ui.notifications.error("Impossible de s'accorder à " + this.name + ": ce n'est pas une entité incarnée");
+    ui.notifications.error("Impossible de s'accorder à " + this.getAlias() + ": ce n'est pas une entité incarnée");
   }
 
 }
diff --git a/module/actor/base-actor-sang.js b/module/actor/base-actor-sang.js
index 26a58350..45d84458 100644
--- a/module/actor/base-actor-sang.js
+++ b/module/actor/base-actor-sang.js
@@ -191,7 +191,7 @@ export class RdDBaseActorSang extends RdDBaseActorReve {
       encaissement.mort = true;
       ChatMessage.create({
         content: `
-        ${this.name} vient de succomber à une seconde blessure critique ! Que les Dragons gardent son Archétype en paix !`
+        ${this.getAlias()} vient de succomber à une seconde blessure critique ! Que les Dragons gardent son Archétype en paix !`
       });
     }
     return blessure;
@@ -218,7 +218,7 @@ export class RdDBaseActorSang extends RdDBaseActorReve {
   async jetDeVie() {
     if (this.isDead()) {
       ChatMessage.create({
-        content: `Jet de Vie: ${this.name} est déjà mort, ce n'est pas la peine d'en rajouter !!!!!`,
+        content: `Jet de Vie: ${this.getAlias()} est déjà mort, ce n'est pas la peine d'en rajouter !!!!!`,
         whisper: ChatUtility.getOwners(this)
       })
       return
@@ -242,7 +242,7 @@ export class RdDBaseActorSang extends RdDBaseActorReve {
       await this.santeIncDec("vie", -perte);
     }
     if (this.isDead()) {
-      msgText += `
${this.name} est mort !!!!`;
+      msgText += `
${this.getAlias()} est mort !!!!`;
     }
     else if (prochainJet > 0) {
       msgText += `
Prochain jet de vie dans ${prochainJet} ${isCritique ? 'round' : 'minute'}${prochainJet > 1 ? 's' : ''} ${isCritique ? '(état critique)' : '(état grave)'}`
@@ -273,7 +273,7 @@ export class RdDBaseActorSang extends RdDBaseActorReve {
 
   async setSonne(sonne = true) {
     if (!game.combat && sonne) {
-      ui.notifications.info(`${this.name} est hors combat, il ne reste donc pas sonné`);
+      ui.notifications.info(`${this.getAlias()} est hors combat, il ne reste donc pas sonné`);
       return;
     }
     await this.setEffect(STATUSES.StatusStunned, sonne)
diff --git a/module/actor/base-actor.js b/module/actor/base-actor.js
index d84a9a20..349d1973 100644
--- a/module/actor/base-actor.js
+++ b/module/actor/base-actor.js
@@ -78,6 +78,13 @@ export class RdDBaseActor extends Actor {
     return game.actors.get(actorId)
   }
 
+  getAlias() {
+    if (this.token?.name != null && this.token != this.prototypeToken) {
+      return this.token.name
+    }
+    return this.name
+  }
+
   isPersonnageJoueur() { return false }
 
   static extractActorMin = (actor) => { return { id: actor?.id, type: actor?.type, name: actor?.name, img: actor?.img }; };
@@ -367,7 +374,7 @@ export class RdDBaseActor extends Actor {
     chatAchatItem.quantiteTotal = quantite;
     ChatMessage.create({
       user: achat.userId,
-      speaker: { alias: (acheteur ?? vendeur).name },
+      speaker: { alias: (acheteur ?? vendeur).getAlias() },
       whisper: ChatUtility.getOwners(this),
       content: await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/chat-achat-item.html', chatAchatItem)
     });
@@ -683,7 +690,7 @@ export class RdDBaseActor extends Actor {
       type: this.type,
       img: this.img,
       pack: this.pack,
-      name: this.name,
+      name: this.getAlias(),
       system: { description: this.system.description }
     }
     renderTemplate('systems/foundryvtt-reve-de-dragon/templates/post-actor.html', chatData)
@@ -691,10 +698,10 @@ export class RdDBaseActor extends Actor {
   }
 
   actionImpossible(action) {
-    ui.notifications.info(`${this.name} ne peut pas faire cette action: ${action}`)
+    ui.notifications.info(`${this.getAlias()} ne peut pas faire cette action: ${action}`)
 
   }
-  async roll() { this.actionImpossible("jet de caractéristiques") }
+
   async jetEthylisme() { this.actionImpossible("jet d'éthylisme") }
   async rollAppelChance() { this.actionImpossible("appel à la chance") }
   async jetDeMoral() { this.actionImpossible("jet de moral") }
diff --git a/module/actor/commerce-sheet.js b/module/actor/commerce-sheet.js
index 2aed0d6b..7a305195 100644
--- a/module/actor/commerce-sheet.js
+++ b/module/actor/commerce-sheet.js
@@ -73,7 +73,7 @@ export class RdDCommerceSheet extends RdDBaseActorSheet {
     }
     const disponible = this.actor.getQuantiteDisponible(item)
     if (disponible == 0) {
-      ui.notifications.warn(`${this.name} n'a plus de ${item.name} en vente`);
+      ui.notifications.warn(`${this.getAlias()} n'a plus de ${item.name} en vente`);
       return;
     }
 
diff --git a/module/dialog-create-signedraconique.js b/module/dialog-create-signedraconique.js
index 0f50f21c..40f90988 100644
--- a/module/dialog-create-signedraconique.js
+++ b/module/dialog-create-signedraconique.js
@@ -51,7 +51,7 @@ export class DialogCreateSigneDraconique extends Dialog {
       whisper: ChatUtility.getOwners(actor),
       content: await renderTemplate("systems/foundryvtt-reve-de-dragon/templates/chat-signe-draconique-actor.html", {
         signe: signe,
-        alias: actor.name
+        alias: actor.getAlias()
       })
     });
   }
diff --git a/module/rdd-combat.js b/module/rdd-combat.js
index 6401f7a8..78c27dcb 100644
--- a/module/rdd-combat.js
+++ b/module/rdd-combat.js
@@ -133,10 +133,10 @@ export class RdDCombatManager extends Combat {
           scene: canvas.scene._id,
           actor: combatant.actor?._id,
           token: combatant.token._id,
-          alias: combatant.token.name,
+          alias: combatant.token?.name,
           sound: CONFIG.sounds.dice,
         },
-        flavor: `${combatant.token.name} a fait son jet d'Initiative (${messageOptions.info})
`
+        flavor: `${combatant.token?.name} a fait son jet d'Initiative (${messageOptions.info})
`
       },
         messageOptions);
       roll.toMessage(messageData, { rollMode, create: true });
@@ -252,7 +252,7 @@ export class RdDCombatManager extends Combat {
           if (action && action.type == "arme") {
             for (let initData of premierRoundInit) {
               if (Grammar.toLowerCaseNoAccentNoSpace(action.system.initpremierround).includes(initData.pattern)) {
-                let msg = `