> For the complete documentation index, see [llms.txt](https://simple.superiormc.cn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://simple.superiormc.cn/arcmenu-wiki/text-formatting/text-placeholders.md).

# Placeholders and text formatting

Placeholders insert player information, menu arguments or stored values into text. Use them in frontend text, tooltips, action arguments and conditions. Image paths support only placeholder syntax that fits their path rules.

## Built-in player placeholders

| Placeholder                              | Content             | Spigot       |
| ---------------------------------------- | ------------------- | ------------ |
| `%player_name%`                          | Player name.        | Supported.   |
| `%player_uuid%`                          | Player UUID.        | Supported.   |
| `%player_world%`                         | Current world name. | Unsupported. |
| `%player_x%`, `%player_y%`, `%player_z%` | Player coordinates. | Supported.   |

These need no PlaceholderAPI. Coordinates on Paper-family servers have two decimal places; do not rely on identical text formatting across platforms.

```yaml
frontend:
  player-information:
    type: text
    content: '&fPlayer: %player_name%'
    size: 4
    update: 20
    offset: {x: 0, y: 20, z: 1}
```

Add this fragment to an existing menu. Positive `update` values refresh text periodically in game ticks; `-1` disables periodic refresh. Static text usually needs no updates. Choose intervals for changing coordinates, balances and similar content.

## Player data and menu arguments

Periodic text updates require a Paper-family server. Spigot displays text when the menu opens and does not periodically refresh it.

These forms require Paper, Folia, Leaf or similar servers.

| Short form                  | Equivalent form                        | Content                          |
| --------------------------- | -------------------------------------- | -------------------------------- |
| `{meta:selected-world}`     | `%arcmenu_meta_selected-world%`        | Temporary player data.           |
| `{data:preferred-world}`    | `%arcmenu_data_preferred-world%`       | Saved player data.               |
| `{globaldata:event-status}` | `%arcmenu_globaldata_event-status%`    | Shared server data.              |
| `{0}`, `{1}`                | `%arcmenu_args_0%`, `%arcmenu_args_1%` | First and second menu arguments. |

Arguments are numbered from `0`. Pass them with `open: menu-id arguments...` or change them with `set-args`. See [Advanced actions](/arcmenu-wiki/menu-configuration/menus/advanced-actions.md) for writing, clearing and retention.

Unset data reads as `null`. A missing `{number}` remains unchanged, while the equivalent `%arcmenu_args_number%` reads as `null`. Use conditions to select default content instead of assuming unset values are empty or `0`.

Read chat input through `{meta:input}` or `{meta:input-stage-name}`. See [Chat input](/arcmenu-wiki/menu-configuration/menus/advanced-actions.md#chat-input) for the workflow.

ArcMenu resolves these forms in its own menus and actions. This does not mean other plugins recognize them directly.

## PlaceholderAPI

Paper-family servers can use other plugins' placeholders through PlaceholderAPI. Install any expansions or providing plugins required by the placeholder's documentation as well.

Confirm actual output before adding a placeholder to a menu. Economy, level and statistics plugins use different names; do not infer a name solely from its purpose. Spigot does not support this integration.

Unrecognized placeholders may remain as literal text. Check actual output before comparing balances or quantities in [Conditions](/arcmenu-wiki/menu-configuration/menus/conditions.md); unresolved content is not a numeric value.

## Colors and styles

Menu text and ordinary messages use `&` color codes. Keep YAML text in quotation marks.

| Syntax                 | Effect                      |
| ---------------------- | --------------------------- |
| `&f`, `&7`, `&a`, `&c` | White, gray, green and red. |
| `&l`                   | Bold.                       |
| `&o`                   | Italic.                     |
| `&n`                   | Underlined.                 |
| `&r`                   | Resets color and styling.   |

For example, `'&a&lWelcome! &r&7Choose an option.'`. Check whether existing styles remain appropriate when changing colors, and use `&r` to reset them when needed.

Frontend text uses `font` to select a font, defaulting to `minecraft:default`. Custom fonts need matching player resource pack content. Specifying a font name does not install it. Ordinary `content` does not use MiniMessage tags or JSON message syntax.

Spigot supports only the default font.

Frontend rectangles, image tints and tooltip backgrounds use their own color fields; `&a` does not replace those values. Tooltip backgrounds require eight-digit `'#AARRGGBB'`. See the relevant reference pages for other fields.

## Interactive chat text

On Paper-family servers, `tellraw` sends JSON chat text, including hover descriptions or clickable links. It is a chat action, not the format for frontend `content`.

For example, `tellraw: {"text":"Menu information","color":"green"}`. In a YAML action list, use outer single quotes to preserve JSON double quotes. See [Actions and navigation](/arcmenu-wiki/menu-configuration/menus/actions.md) for placement.

## Checking and loading

Run `/arcmenu validate` and `/arcmenu reload` after editing. Check placeholders, fonts, colors and periodic updates with an ordinary player account. Custom fonts and dynamic images also require checking the latest loaded pack.

Plugin message language settings do not automatically translate text authored in menus. See [Language management](/arcmenu-wiki/feature-configuration/languages.md).
