Astral Realms Documentation Help

Placeholders

AstralFarmPass registers one root placeholder, %farmpass_…%, on the global container. Everything else on this page is reached through it: the objects a layout provider hands to a menu expose their own namespaces as %parameter_<namespace>_<key>%.

Every %farmpass_…% key needs a player context — resolved for the console or a non-player audience, the whole namespace returns nothing.

farmpass_* (root)

Placeholder

Resolves to

%farmpass_season%

The current season id, a YearMonth string such as 2026-08.

%farmpass_points%

The viewer's points this season; 0 when their data is not loaded.

%farmpass_rewards%

The whole reward ladder, in rewards.yml order, as a provider for a layout or a lore modifier.

%farmpass_quests_<TYPE>%

The quests of that type that are unlocked and not expired — what the player can work on right now.

%farmpass_all_<TYPE>%

The quests of that type that have not expired, including the ones still locked — used to show a whole month of weekly quests with a countdown on the locked ones.

<TYPE> is a QuestType name, matched case-insensitively: %farmpass_quests_DAILY%, %farmpass_all_WEEKLY%. An unknown type resolves to nothing.

layouts: daily_quests: taint: "daily_quests" provider: "%farmpass_quests_DAILY%" rewards: taint: "rewards_free" provider: "%farmpass_rewards%"

quest_*

One entry from %farmpass_quests_…%/%farmpass_all_…%. In a menu, reached as %parameter_quest_<key>%; inside a blueprint's own display, as %quest_<key>%.

Placeholder

Resolves to

%quest_id%

The quest's deterministic UUID.

%quest_blueprint%

The blueprint it was dealt from — chain further with its sub-keys.

%quest_requiredAmount%

The rolled target.

%quest_unlocksAt%

When the quest opens, as a time placeholder (%quest_unlocksAt_remaining-format%, …).

%quest_expiresAt%

When it closes, same shape.

%quest_unlocked%

Whether it has opened yet (boolean).

%quest_expired%

Whether it has closed (boolean).

%quest_progress%

The viewer's progress; 0 when their data is not loaded.

%quest_completed%

Whether the viewer reached the target (boolean).

%quest_values%

What the goal accepts — the blocks, mobs, biomes, enchantments or ids it watches — as an iterable of value entries. Empty when anything counts.

%quest_item%

The blueprint's display, rendered for the viewer (see below).

%quest_item% and the progress line

%quest_item% renders the blueprint's display with the quest registered in the container, so the lore written in a blueprint file can describe the viewer's own copy of the quest. Two short names are registered on top of the quest's own keys, because that is what the blueprint files have always used:

Placeholder

Resolves to

%required%

The viewer's progress.

%total%

The rolled target.

# blueprints/daily/wheat.yml display: material: "wheat" lore: - "<secondary_color>%required%/%total%<text_color> blés"
# menus/main.yml quest_daily: material: "paper" copy-from: "%parameter_quest_item%" taints: [ "daily_quests" ]

Both %quest_item% and %quest_progress% need a player context; from the console they resolve to nothing and 0 respectively.

blueprint_*

Reached through %quest_blueprint_…% (or %parameter_quest_blueprint_…%).

Placeholder

Resolves to

%blueprint_id%

The blueprint id.

%blueprint_type%

DAILY or WEEKLY.

%blueprint_display%

The raw display item, rendered without any quest context.

%blueprint_goal%

The goal object.

%blueprint_minimum%/%blueprint_maximum%

The goal-value bounds; 1 when the blueprint declares none.

reward_*

One entry from %farmpass_rewards%.

Placeholder

Resolves to

%reward_id%

The tier id.

%reward_requiredPoints%

Its points threshold.

%reward_display%

The free track's icon; nothing when the tier omits it.

%reward_premiumDisplay%

The premium track's icon; nothing when the tier omits it.

%reward_hasDefault%

Whether the free track hands anything out (boolean).

%reward_hasPremium%

Whether the premium track does (boolean).

%reward_claimed_free%/%reward_claimed_premium%

Whether the viewer already claimed that track.

%reward_available_free%/%reward_available_premium%

Not claimed and enough points. Does not test the premium permission — the menu adds a [permission] view requirement for that.

claimed and available require the _free/_premium suffix; without it, or without a player context, they resolve to nothing.

value_*

One entry of %quest_values% — a block, mob, biome, enchantment, loot table, scroll rarity or shop item id the quest's goal accepts.

Placeholder

Resolves to

%value_name%

A display name. Anything the game knows about is left translatable, so each player reads it in their own language, spelled the way the game spells it; anything else falls back to a prettified key (deepslate_coal_ore → Deepslate Coal Ore).

%value_key%

The raw key (diamond_ore, plains, …).

A bare %value_…% with no sub-key resolves to the name.

Usage: listing quests in a lore

Layout providers are not the only consumer — a lore modifier can iterate the same providers:

# menus/main.yml quest_weekly_menu: slot: 38 lore: - "%lore-modifiers_quests%" lore-modifiers: quests: type: iterable provider: "%farmpass_quests_WEEKLY%" maximum-entries: 6 content: " <text_color>- %parameter_quest_item_name% <secondary_color>%parameter_quest_progress%<text_color>/<secondary_color>%parameter_quest_requiredAmount%"

Further reading

Last modified: 25 September 2026