Astral Realms Documentation Help

Placeholders

AstralChat registers three placeholder namespaces with AstralCore: chat_* (network-wide queries), channel_* (per-channel queries), and tag_* (per-tag queries). For the underlying placeholder syntax (%a_b_c%, %a_{b_c}%, $e(...)), see Placeholders.

chat_*

Placeholder

Type

Description

%chat_prefix%

Component

The LuckPerms prefix of the viewer's highest-weight group within groups.yml. Walks staff → paid (if showPaidRoles is on) → free.

%chat_equippedTag%

ChatTag

The viewer's equipped tag, or empty when none. Chain into %chat_equippedTag_component%.

%chat_equippedTag_component%

Component

Shorthand for the badge component — what you almost always want in a channel format.

%chat_subscribed_<channel>%

Boolean

true if the viewer is subscribed to that channel.

%chat_privateMessagesEnabled%

Boolean

Reflects /togglepm.

%chat_mentionsEnabled%

Boolean

Reflects the toggle-chat-mentions action.

%chat_showPaidRoles%

Boolean

Reflects the toggle-paid-roles action.

%chat_tags%

ItemProvider

Every tag in tags.yml, ready to be used as a layout provider.

%chat_channels%

ItemProvider

Every channel from config.yml.

%chat_channel_<name>%

ChatChannel

The channel with that name. Chain into %chat_channel_staff_format%, etc.

%chat_prefix% is the integration point with LuckPerms. The plugin reads groups.yml to know which group names belong to which bucket and picks the highest-weight match among the player's inherited groups:

permissions: staff: [moderator, admin] paid: [vip, mvp] free: [default, member]

channel_*

A ChatChannel placeholder. The base form (%chat_channel_<name>%) returns the channel itself; chain keys to drill into it.

Placeholder

Type

Description

%channel_name%

String

The channel's runtime name.

%channel_format%

ComponentWrapper

The MiniMessage format.

%channel_default%

Boolean

true for the default channel.

%channel_permission%

String

Required permission, or null.

%channel_command%

String

Custom command name, or null.

%channel_cooldown%

Duration

Cooldown duration.

%channel_filtered%

Boolean

Whether filters apply.

%channel_autoSubscribe%

Boolean

Value of the YAML flag.

%channel_subscribed%

Boolean

true when the viewer is subscribed.

Typical use in a menu layout that lists every channel:

layouts: channels: provider: "%chat_channels%" taint: "channel" items: channel-item: taints: [ "channel" ] item-stack: material: PAPER name: "%channel_name%" lore: - "<gray>Cooldown: <white>%channel_cooldown%" - "<gray>Filtered: <white>%channel_filtered%" - "<gray>Subscribed: <white>%channel_subscribed%" actions: LEFT: - "[player] subscribe %channel_name%"

tag_*

A ChatTag placeholder, used inside the %chat_tags% layout.

Placeholder

Type

Description

%tag_id%

String

Tag id.

%tag_component%

Component

The badge.

%tag_description%

List<Component>

Lore lines.

%tag_permission%

String

Required permission, or null.

%tag_equipped%

Boolean

true when this is the viewer's currently-equipped tag.

layouts: tags: provider: "%chat_tags%" taint: "tag" items: tag-item: taints: [ "tag" ] item-stack: material: NAME_TAG name: "%tag_component%" lore: "%tag_description%" view-requirements: - "[permission] %tag_permission%" actions: LEFT: - "[equip-chat-tag] %tag_id%"
Last modified: 25 July 2026