When editing formats.yml, you will rely on placeholders to inject dynamic data into the chat.
Internal Placeholders
These placeholders are processed directly by Scribe and are available everywhere in formats.yml:
| Placeholder | Description |
|---|---|
{player} |
The raw Minecraft username of the player. |
{display_name} |
The player’s active nickname. Falls back to username. |
{message} |
The actual text the player typed. |
{time} |
The time the message was sent (formatted via config.yml). |
{tag} |
The player’s equipped chat tag (from /tags). |
{prefix} |
The player’s LuckPerms/Vault prefix. |
{suffix} |
The player’s LuckPerms/Vault suffix. |
Roleplay Placeholders
These are specific to the roleplay section in formats.yml.
| Placeholder | Description |
|---|---|
{action} |
The action described in /me, /do, or /try. |
{result} |
The number rolled in /roll. |
{max} |
The maximum bounds of the /roll command. |
PlaceholderAPI (PAPI)
Scribe supports full PlaceholderAPI integration. If you have PlaceholderAPI installed, you can use any %placeholder% directly inside formats.yml or config.yml.
For example, to display a player’s faction or town in their chat format:
default: "<gray>[%towny_town%]</gray> <primary>{display_name}</primary>: <white>{message}</white>"
MiniPlaceholders
If you want to use PAPI placeholders but prefer parsing them through MiniMessage tags instead of %, Scribe fully supports MiniPlaceholders.
Ensure integrations.miniplaceholders is set to true in your config.yml, and you can write:
<white><player_name></white> <gray>has <player_ping>ms</gray>