> ## Documentation Index
> Fetch the complete documentation index at: https://docs.headlesslabs.xyz/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Variables

> Variables replace brace-delimited tokens with data supplied by the current event. The parser does not query other accounts or evaluate arbitrary expressions.

## Resolution and errors

Names are case-insensitive. This guide lists the 127 current public Headless variables. A listed variable without data for the event renders as `N/A`; an unknown name or invalid syntax is rejected. The parser may retain internal legacy identifiers that are not part of this public catalog.

## Formatting functions

`{lower(variable)}` lowercases text and `{proper(variable)}` applies title case; numeric values passed to `proper` receive thousands separators. Each function accepts exactly one known variable, not an expression.

### Profile and formatting

```headless-script Syntax theme={null}
{user.display_name}
```

```headless-script Example theme={null}
{user.display_name} in {guild.name}
```

```headless-script Syntax theme={null}
{lower(user.name)}
```

```headless-script Example theme={null}
{lower(user.name)} · {proper(guild.count)}
```

```headless-script Syntax theme={null}
{user.mention}
```

```headless-script Example theme={null}
{user.mention} · {channel.mention}
```

## Event scope

The catalog covers values from current Headless events, including server, user, channel, Roblox, YouTube, leveling, boosts, and moderation. A recognized key may still resolve to `N/A` when an event does not provide it. Reserved fields for unavailable providers are omitted from this public guide.

## Headless-specific variables

Level-up notices add `{level}`, `{xp}`, `{total_xp}`, and `{gained}` alongside `{level.new_rank}` and `{level.user_xp}`. Booster Roles announcements add `{boost_count}` (the server total), `{boost_tier}`, and `{boost_since}` (the boost date or `N/A`). In that event `{boost.count}` is `1` for a member currently boosting and `N/A` when there is no boost date. The `{user}`, `{mention}`, `{username}`, and `{server}` aliases can be adapted to each event.

### Levels and boosts

```headless-script Syntax theme={null}
{level}
```

```headless-script Example theme={null}
{user} reached level {level}; +{gained} XP; {total_xp} total
```

```headless-script Syntax theme={null}
{boost_count}
```

```headless-script Example theme={null}
{mention} boosted {server}: tier {boost_tier}, {boost_count} server boosts
```

> [!NOTE]
>
> The catalog comes from Headless's original renderer and is checked against `build_template_context`. Some keys exist only during specific events; a recognized key can resolve to `N/A` when the event does not provide that value.

## Current runtime variables

This public catalog documents 127 variables used by current Headless events. Some internal legacy variables are not included; use this list when configuring compatible messages and previews.

> **Server**
>
> ```text theme={null}
> {guild.name}
> {guild.id}
> {guild.count}
> {guild.region}
> {guild.shard}
> {guild.owner_id}
> {guild.created_at}
> {guild.created_at_timestamp}
> {guild.emoji_count}
> {guild.role_count}
> {guild.boost_count}
> {guild.boost_tier}
> {guild.preferred_locale}
> {guild.key_features}
> {guild.icon}
> {guild.banner}
> {guild.splash}
> {guild.discovery}
> {guild.max_presences}
> {guild.max_members}
> {guild.max_video_channel_users}
> {guild.afk_timeout}
> {guild.afk_channel}
> {guild.channels}
> {guild.channels_count}
> {guild.text_channels}
> {guild.text_channels_count}
> {guild.voice_channels}
> {guild.voice_channels_count}
> {guild.category_channels}
> {guild.category_channels_count}
> {guild.vanity}
> ```

> **User**
>
> ```text theme={null}
> {user}
> {user.id}
> {user.mention}
> {user.name}
> {user.tag}
> {user.avatar}
> {user.guild_avatar}
> {user.display_avatar}
> {user.joined_at}
> {user.joined_at_timestamp}
> {user.created_at}
> {user.created_at_timestamp}
> {user.display_name}
> {user.boost}
> {user.boost_since}
> {user.boost_since_timestamp}
> {user.color}
> {user.top_role}
> {user.role_list}
> {user.role_text_list}
> {user.bot}
> {user.badges_icons}
> {user.badges}
> {user.join_position}
> {user.join_position_suffix}
> {author}
> {author.name}
> {author.nickname}
> {author.discriminator}
> ```

> **Channel, date, and time**
>
> ```text theme={null}
> {channel.name}
> {channel.id}
> {channel.mention}
> {channel.topic}
> {channel.type}
> {channel.category_id}
> {channel.category_name}
> {channel.position}
> {channel.slowmode_delay}
> {date.now}
> {date.utc_timestamp}
> {date.now_proper}
> {date.now_short}
> {date.now_shorter}
> {date.utc_now}
> {date.utc_now_proper}
> {date.utc_now_short}
> {date.utc_now_shorter}
> {time.now}
> {time.now_military}
> {time.utc_now}
> {time.utc_now_military}
> ```

> **Roblox**
>
> ```text theme={null}
> {roblox.name}
> {roblox.id}
> {roblox.followers}
> {roblox.following}
> {roblox.display_name}
> {roblox.description}
> {roblox.verified}
> {roblox.premium}
> {roblox.rap}
> {roblox.created}
> {roblox.created.raw}
> {roblox.created.short}
> {roblox.age}
> {roblox.banned}
> {roblox.last_online}
> {roblox.last_online.raw}
> {roblox.last_online.short}
> {roblox.avatar}
> {roblox.badges}
> {roblox.previous_names}
> {roblox.url}
> ```

> **YouTube**
>
> ```text theme={null}
> {youtube.channel.name}
> {youtube.channel.url}
> {youtube.channel.id}
> {youtube.video.url}
> {youtube.video.title}
> {youtube.video.thumbnail_url}
> ```

> **Levels, boosts, and moderation**
>
> ```text theme={null}
> {level.new_rank}
> {level.user_xp}
> {boost.count}
> {bumpreminder.last_user_bump}
> {bumpreminder.next_bump}
> {moderator}
> {moderator.name}
> {moderator.tag}
> {moderator.avatar}
> {moderator.bot}
> {moderator.color}
> {moderator.mention}
> {moderator.created_at}
> {moderator.id}
> {reason}
> {duration}
> {invite_url}
> ```

## Steps

**1. Choose the module route**

Confirm where the message will be used before choosing a variable.

**2. Insert the token**

Wrap the key in braces and preserve dots in nested names.

**3. Preview a real event**

Check replacements and `N/A` values with the module's preview command when available.

## Related pages

* [Ticket variables](/docs/en/server/tickets/variables.md)
* [Welcome](/docs/en/server/welcome.md)
* [Sticky Messages](/docs/en/server/sticky-messages.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.