Table des matières
Guide complet Block + Typescript
Lorsque l’on crée une expérience Battlefield Portal, afficher des informations aux joueurs devient vite indispensable : messages de kill personnalisés, notifications diverses, textes d’interface, noms d’objectifs…
Toutes ces fonctionnalités reposent sur un élément fondamental : la fonction Message().
Ce petit guide explique clairement comment l’utiliser, que vous travailliez en Block ou en Typescript, avec des exemples concrets dans les deux modes.
A quoi sert Message() ?
Dans les scripts Portal, la fonction Message() sert à créer un objet Message qui pourra ensuite être utilisé par diverses fonctions :
DisplayNotificationMessage(message)DisplayHighlightedWorldLogMessage(message)SetScoreboardHeader(message)AddUIText(... message)AddUIIcon(... iconText: Message)- Et bien d’autres.
Utilisation en Block
Dans Block, l’utilisation est très simple :
- Utilisez le bloc UI → Message.
- Ajoutez-y un littéral de type TEXTE comme premier argument LITERALES -> Texte
- Entrez le libellé du message (par exemple
Le joueur {} vient de rentrer dans le jeu). - Si la valeur associée à votre clé possède des paramètres (
{}), ajoutez les valeurs via les champs fournis (paramètre 2, 3 et 4). - Connectez ensuite le bloc à une action comme UI → Display Notification Message.
Exemple Block : afficher une notification à un joueur qui arrive en jeu

En définition block, nous ne manipulons pas le fichier Strings.json: Portal le fait pour nous.
Utilisation en Typescript
Les définitions provenant du fichier index.d.ts montrent clairement les différentes surcharges :
export function Message(
msg: string | number | Player
): Message;
export function Message(
msg: string | number | Player,
msgArg0: string | number | Player
): Message;
export function Message(
msg: string | number | Player,
msgArg0: string | number | Player,
msgArg1: string | number | Player
): Message;
export function Message(
msg: string | number | Player,
msgArg0: string | number | Player,
msgArg1: string | number | Player,
msgArg2: string | number | Player
): Message;Cela permet 4 usages :
- Message simple :
Message("KEY_SIMPLE") - Message avec un paramètre :
Message("KEY_WITH_PARAM", 42) - Message avec deux paramètres :
Message("KEY_WITH_TWO_PARAMS", player, 3) - Message avec trois paramètres :
Message("KEY_WITH_THREE_PARAMS", player, 3, "ANOTHER_TEXT_KEY")
Dans le fichier Strings.json, les textes concernés utilisent des placeholders {} en suivant l’ordre des paramètres de la fonction.
Voici maintenant des exemples concrets basés sur la définition officielle.
Exemple 1 : message simple
Script.ts :
mod.DisplayNotificationMessage(
mod.Message("GAME_STARTED")
);Strings.json :
{
"GAME_STARTED": "La partie commence !"
}Exemple 2 : message avec un paramètre (nombre)
Script.ts :
mod.DisplayHighlightedWorldLogMessage(
mod.Message("PLAYERS_REMAINING", 5),
mod.GetTeam(1)
);Strings.json :
{
"PLAYERS_REMAINING": "Encore {0} joueurs en vie."
}Exemple 3 : message avec un paramètre joueur
Script.ts :
async function onKill(killer: mod.Player, victim: mod.Player) {
mod.DisplayNotificationMessage(
mod.Message("PLAYER_KILLED_PLAYER", killer, victim),
killer
);
}Strings.json :
{
"PLAYER_KILLED_PLAYER": "{} a éliminé {}."
}Exemple 4 : message dans un UI Text Widget
Script.ts :
mod.AddUIText(
"statusText",
new mod.Vector(0.5, 0.2, 0),
new mod.Vector(300, 80, 0),
mod.UIAnchor.Center,
mod.GetUIRoot(),
true,
5,
new mod.Vector(0, 0, 0),
0.25,
mod.UIBgFill.Blur,
mod.Message("STATUS_WAITING", 12),
32,
new mod.Vector(1, 1, 1),
1,
mod.UIAnchor.Center,
mod.UIDepth.AboveGameUI
);Strings.json :
{
"STATUS_WAITING": "Début dans {0} secondes..."
}Bonnes pratiques
- Toujours définir les chaînes dans
Strings.json. Les valeurs brutes n’apparaîtront jamais si elles ne sont pas définies. - Limiter les placeholders :
Message()accepte jusqu’à 3 paramètres en plus de la clé de la chaîne souhaitée. - Choisir des clés explicites :
ROUND_STARTING,PLAYER_JOINED,ZONE_NEUTRALIZED, … - Tester sur serveur : certains messages s’affichent uniquement côté client (notification) ou globalement (world log).
Conclusion
La fonction Message() est un élément central de la communication dans vos expériences Battlefield Portal. Elle vous permet d’afficher des textes propres, localisables, dynamiques et compatibles avec toutes les fonctions d’interface.
En maîtrisant à la fois son usage Block et TypeScript, vous pouvez produire des expériences plus lisibles, plus immersives, et surtout beaucoup plus professionnelles.
Aucun Commentaire! Soyez le premier.