Astral Realms Documentation Help

Placeholders

AstralTown registers nine placeholder namespaces with AstralCore. For the placeholder syntax itself (%a_b_c%, %a_{b_c}%, $e(...)) see Placeholders.

towns_* (root)

Network-wide and per-viewer queries.

Placeholder

Type

Description

%towns_towns%

ItemProvider<Town>

Every cached town — use as a layout provider.

%towns_warps%

ItemProvider<Warp>

Every warp on the network, sorted by weekly visits.

%towns_player_all%

ItemProvider<Town>

Towns the viewer belongs to.

%towns_player_selected%

Town

The viewer's selected town (or null).

%towns_current%

String

Selected town name, or "none".

%towns_chatEnabled%

Boolean

Town chat toggle on the viewer's TownPlayerData.

%towns_favoriteWarps%

ItemProvider<Warp>

Warps the viewer has pinned.

town_*

A Town placeholder. Returned by %towns_player_selected%, layout entries from %towns_towns%, or any service that hands a Town to a placeholder container.

Placeholder

Type

Description

%town_id%

UUID

Primary key.

%town_name%

String

Town name.

%town_owner%

UUID

Owner ID.

%town_balance%

int

Raw balance.

%town_balanceFormatted%

String

Thousands-separated.

%town_members%

ItemProvider<TownMember>

All members.

%town_member_<UUID>%

TownMember

One member by id.

%town_roles%

ItemProvider<TownRole>

All roles.

%town_settings%

ItemProvider

Setting toggles for the settings menu.

%town_claims%

int

Claim count.

%town_subzones%

ItemProvider<SubZone>

Subzones.

%town_hasWarp%

Boolean

True when the town has at least one warp.

%town_warp_<name>%

Warp

Lookup by name.

%town_hasPermission_<TYPE>%

Boolean

Whether the viewer holds the permission.

role_*

A TownRole placeholder.

Placeholder

Type

Description

%role_id%

UUID

%role_name%

String

Internal name.

%role_displayName%

Component

MiniMessage component.

%role_description%

String

%role_default%

Boolean

Default role marker.

%role_permissions%

ItemProvider

Permission toggle items.

%role_scope%

UUID?

Subzone id for scoped roles.

%role_hasScope%

Boolean

True for subzone-scoped roles.

%role_subzone%

SubZone?

The subzone, when scoped.

%role_canEdit%

Boolean

True when the viewer's weight is strictly greater than this role's.

member_*

A TownMember or SubZoneMember. Keys overlap intentionally.

Placeholder

Type

Description

%member_id%

UUID

Player id.

%member_name%

String

Display name.

%member_role%

TownRole

Role assignment.

%member_player%

MinecraftPlayer

Network-aware player handle.

warp_*

A Warp placeholder.

Placeholder

Type

Description

%warp_name%

String

Warp name.

%warp_owner%

Town

Owning town.

%warp_weeklyVisits%

int

Visit counter.

%warp_pinned%

Boolean

True when the viewer has pinned this warp.

subzone_*

A SubZone placeholder.

Placeholder

Type

Description

%subzone_id%

UUID

%subzone_townId%

UUID

Parent town.

%subzone_name%

String

%subzone_description%

String

%subzone_inheritSettings%

Boolean

%subzone_settings%

EnumSet<TownSettings>

Subzone overrides.

%subzone_members%

List<SubZoneMember>

%subzone_roles%

List<TownRole>

Subzone-scoped roles.

%subzone_cuboid%

Cuboid

Region.

%subzone_x1 / y1 / z1 / x2 / y2 / z2%

int

Corner coordinates.

ban_*

A TownBan placeholder.

Placeholder

Type

Description

%ban_id%

UUID

%ban_townId%

UUID

%ban_memberId%

UUID

Banned player.

%ban_member%

MinecraftPlayer

Resolved player.

%ban_reason%

String?

Optional reason.

%ban_date%

String

Formatted timestamp.

invitation_*

A TownInvitation placeholder.

Placeholder

Type

Description

%invitation_townId%

UUID

%invitation_sender%

MinecraftPlayer

%invitation_recipient%

MinecraftPlayer

%invitation_expiresAt%

long

Epoch ms.

%invitation_createdAt%

long

Epoch ms.

log_*

A TownLog placeholder — see Logs.

Placeholder

Type

Description

%log_id%

UUID

%log_townId%

UUID

%log_member%

TownMember?

Acting member.

%log_action%

LogType

%log_payload%

String

Type-aware formatted summary.

%log_icon%

ItemStackWrapper

From logs.yml.

%log_date%

String

Formatted timestamp.

Last modified: 25 July 2026