The formats.yml file is where you define exactly what your chat looks like. These advanced display formats use MiniMessage, so channel layouts can include hover text, click events, and semantic color tags.

Global vs Local

You can assign different visual layouts to different channels.

channels:
  global: "<hover:show_text:'<muted><time></muted>'><prefix>{tag}<click:suggest_command:'/msg <player> '><white><display_name></white></click><suffix> <muted>»</muted> <white><message></white></hover>"
  local: "<hover:show_text:'<muted><time></muted>'><prefix>{tag}<click:suggest_command:'/msg <player> '><white><display_name></white></click><suffix> <muted>»</muted> <secondary><message></secondary></hover>"

In this default setup:

  • Global messages are pure <white>.
  • Local messages are colored using the <secondary> branding color to visually separate them from global shouts.

Hover & Click Events

MiniMessage allows you to nest interactive tags. Let’s break down a name tag:

<click:suggest_command:'/msg <player> '><white><display_name></white></click>

When a user clicks the display name, it will automatically type /msg Steve into their chat bar!

Branding Colors

Scribe’s default config.yml uses the ecosystem color tokens from the standards:

  • <primary>
  • <text>
  • <highlight>
  • <success>
  • <warning>
  • <error>

The default values are legacy color codes such as &d, &7, and &f. Older format aliases such as <secondary>, <accent>, and <muted> are still accepted for compatibility and map to the standard text/highlight colors.