> For the complete documentation index, see [llms.txt](https://wiki.helpch.at/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.helpch.at/helpchat-plugins/chatchat/formats.md).

# Formats

Configure global and channel-specific ChatChat message formats.

ChatChat formats public messages with MiniMessage, PlaceholderAPI, and ChatChat's internal tags. Global priority formats live in `formats.yml`; a channel can also define its own formats in `channels.yml`.

## Format structure

Each priority format has a name, a numeric `priority`, and a `parts` mapping. Every part is a list of strings; ChatChat joins the strings and renders the result as one message. Use `<message>` where the player's processed message should appear.

```yaml
default-format: default

formats:
  default:
    priority: 1
    parts:
      channel:
        - '%chatchat_channel_prefix% '
      name:
        - '<white>%player_displayname%'
      divider:
        - ' <gray>» '
      message:
        - '<message>'
```

The `default-format` is used when a player has no permission for another available format. The console uses the separate `console-format`.

## Priority and permissions

Players with more than one eligible format use the one with the highest priority according to `extensions.yml`:

* `addons.deluxechat.inverse_priorities: false` (default): the larger number wins.
* `addons.deluxechat.inverse_priorities: true`: the smaller number wins, matching DeluxeChat's priority direction.

A channel format with a matching permission is selected before any global format, regardless of global format priority.

| Format type                      | Permission                           |
| -------------------------------- | ------------------------------------ |
| Global format named `staff`      | `chatchat.format.staff`              |
| `staff` format on channel `team` | `chatchat.channel.format.team.staff` |

The configured default format needs no permission. See [Permissions](/helpchat-plugins/chatchat/permissions.md).

The default `staff` format uses a dark-gray bracketed red `STAFF` badge: `<dark_gray>[</dark_gray><red>STAFF</red><dark_gray>]</dark_gray>`.

## Placeholders and tags

Formats support PlaceholderAPI placeholders in percent form, such as `%player_name%`, and the `<papi:...>` and `<recipient:...>` tags. `<message>` inserts the processed player message. For private-message formats, the sender and recipient contexts are available.

ChatChat also supports MiniMessage formatting tags and configured MiniPlaceholders. See [Placeholders](/helpchat-plugins/chatchat/placeholders.md) and [MiniMessage tags in chat](/helpchat-plugins/chatchat/tags.md).

`console-format` uses a limited parser on Spigot. Tags such as keybind, translation, fonts, and selectors may not work there, and extra percent signs can break the format. Paper handles these console-format limitations more reliably. Avoid tags that need a player recipient context.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://wiki.helpch.at/helpchat-plugins/chatchat/formats.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
