Fonctions
Chaque fonction utilisable dans {{ … }}, par catégorie. Le fonctionnement du langage est dans Expressions. Les résultats ci-dessous sont calculés par Tsuaa lui-même, avec le 15 janvier 2026 à 14:30 UTC comme heure actuelle et le français comme langue du serveur.
Valeurs
default(valeur, secours)
La valeur, ou la valeur de secours quand elle est vide (absente, texte vide ou liste vide). Le secours n'est évalué que s'il sert.
default("", "friend") — Donne friend
if(condition, alors, sinon)
La deuxième valeur quand la condition est vraie, la troisième sinon. Seule celle renvoyée est évaluée.
if(3 > 2, "big", "small") — Donne big
is_empty(valeur)
Vrai quand la valeur est absente, un texte vide ou une liste vide.
is_empty([]) — Donne true
number(valeur)
Transforme un texte qui contient un nombre en nombre. Échoue sur un texte qui n'en est pas un.
number("42") + 1 — Donne 43
text(valeur)
La valeur sous forme de texte : un nombre ou une date écrits dans la langue du serveur, une liste séparée par des virgules.
length(text(12345)) — Donne 5
Nombres
round(nombre, [décimales])
Arrondit un nombre, à un nombre de décimales s'il est donné (jusqu'à 10).
round(3.14159, 2) — Donne 3.14
floor(nombre)
Arrondit un nombre à l'inférieur.
floor(4.7) — Donne 4
ceil(nombre)
Arrondit un nombre au supérieur.
ceil(4.2) — Donne 5
abs(nombre)
Un nombre sans son signe.
abs(-7) — Donne 7
min(nombre, …)
Le plus petit des nombres.
min(4, 9, 2) — Donne 2
max(nombre, …)
Le plus grand des nombres.
max(4, 9, 2) — Donne 9
clamp(nombre, min, max)
Le nombre, gardé entre un minimum et un maximum.
clamp(120, 0, 100) — Donne 100
pow(nombre, puissance)
Un nombre élevé à une puissance.
pow(2, 10) — Donne 1024
sqrt(nombre)
La racine carrée d'un nombre.
sqrt(81) — Donne 9
random(min, max)
Un nombre entier au hasard entre deux bornes, incluses.
random(1, 6) — Donne 4
format_number(nombre)
Un nombre écrit comme l'écrit la langue du serveur, avec les séparateurs de milliers.
format_number(1234567.5) — Donne 1 234 567,5
Texte
upper(texte)
Le texte en majuscules.
upper("hello") — Donne HELLO
lower(texte)
Le texte en minuscules.
lower("HeLLo") — Donne hello
capitalize(texte)
Le texte avec sa première lettre en majuscule.
capitalize("hello world") — Donne Hello world
trim(texte)
Le texte sans les espaces au début et à la fin.
trim(" hi ") — Donne hi
length(texte ou liste)
Le nombre de caractères d'un texte, ou d'éléments d'une liste.
length("Tsuaa") — Donne 5
slice(texte ou liste, début, [fin])
Une partie d'un texte ou d'une liste, d'une position (0 est la première) jusqu'à une autre, exclue. Une position négative compte depuis la fin.
slice("Discord", 0, 4) — Donne Disc
truncate(texte, longueur)
Le texte coupé à une longueur maximale, terminé par … s'il était plus long.
truncate("A very long title", 10) — Donne A very lo…
replace(texte, recherche, remplacement)
Le texte où chaque occurrence d'une recherche est remplacée.
replace("a-b-c", "-", " ") — Donne a b c
contains(texte, recherche)
Vrai quand le texte contient la recherche.
contains("Hello there", "there") — Donne true
starts_with(texte, début)
Vrai quand le texte commence par le début donné.
starts_with("!help", "!") — Donne true
ends_with(texte, fin)
Vrai quand le texte finit par la fin donnée.
ends_with("photo.png", ".png") — Donne true
matches(texte, motif)
Vrai quand le texte correspond à une expression régulière (500 caractères au plus).
matches("abc123", "^[a-z]+[0-9]+$") — Donne true
split(texte, séparateur)
Découpe un texte en liste à chaque séparateur.
split("red,green,blue", ",") — Donne red, green, blue
repeat(texte, fois)
Le texte répété un certain nombre de fois.
repeat("ab", 3) — Donne ababab
Dates
now()
La date et l'heure actuelles.
now() — Donne 15/01/2026 14:30
date(valeur)
Transforme un texte ISO (2026-01-15T14:30:00Z) ou un timestamp en millisecondes en date.
date("2026-01-15T14:30:00Z") — Donne 15/01/2026 14:30
add(date, quantité, unité)
Une date décalée d'une quantité d'une unité : seconds, minutes, hours, days, weeks, months ou years. Une quantité négative recule.
add("2026-01-15T14:30:00Z", 1, "months") — Donne 15/02/2026 14:30
diff(date, autre date, unité)
Le nombre d'unités entières de la seconde date à la première.
diff("2026-03-01", "2026-01-15", "days") — Donne 45
since(date, unité)
Le nombre d'unités entières écoulées depuis une date.
since("2026-01-01", "days") — Donne 14
discord_time(date, [style])
Une date que Discord affiche dans le fuseau et la langue de chaque lecteur. Styles : relative, date, long_date, time, datetime, full (par défaut).
discord_time("2026-01-15T14:30:00Z", "relative") — Donne <t:1768487400:R>
format_date(date, [style])
Une date écrite dans la langue du serveur, en UTC. Styles : date, long_date, time, datetime (par défaut), full.
format_date("2026-01-15T14:30:00Z", "long_date") — Donne 15 janvier 2026
timestamp([date])
Une date en millisecondes depuis le 1er janvier 1970 ; l'heure actuelle sans date.
timestamp("2026-01-15T14:30:00Z") — Donne 1768487400000
Listes
join(liste, [séparateur])
Les éléments d'une liste réunis en un texte, avec un séparateur (une virgule et un espace par défaut).
join(["a", "b", "c"], " / ") — Donne a / b / c
first(liste)
Le premier élément d'une liste, ou vide.
first(["a", "b", "c"]) — Donne a
last(liste)
Le dernier élément d'une liste, ou vide.
last(["a", "b", "c"]) — Donne c
at(liste, position)
L'élément à une position d'une liste (0 est le premier, -1 le dernier), ou vide.
at(["a", "b", "c"], -1) — Donne c
includes(liste, valeur)
Vrai quand la liste contient la valeur.
includes(["mod", "admin"], "admin") — Donne true
pick(liste)
Un élément d'une liste au hasard, ou vide.
pick(["rock", "paper", "scissors"]) — Donne paper